[32] | 1 | /* |
---|
| 2 | * |
---|
| 3 | * modifyGroup :modify the number of nb_* parameter |
---|
| 4 | * modifyValue :modify a parameter value |
---|
| 5 | */ |
---|
| 6 | #include "Tools/Viewer/Bdd/include/BaseV.h" |
---|
| 7 | #include "qstring.h" |
---|
| 8 | namespace morpheo{ |
---|
| 9 | namespace tools{ |
---|
| 10 | namespace viewer{ |
---|
| 11 | namespace bdd{ |
---|
| 12 | |
---|
| 13 | int BaseV::modifyGroup(string namegroup,int step) |
---|
| 14 | { |
---|
| 15 | |
---|
| 16 | int i,level,position_tab_init,position_tab; |
---|
| 17 | Group *g; Param *p; QList<Param> p2;LimitParam lp; |
---|
| 18 | |
---|
| 19 | if(listgroup->indexOf(namegroup)==-1) |
---|
| 20 | return -1; |
---|
| 21 | |
---|
| 22 | switch (step){ |
---|
| 23 | case 1: |
---|
| 24 | position_tab_init=listgroup->lastIndexOf(namegroup); |
---|
| 25 | level=(groups->operator[](position_tab_init)).getLevel(); |
---|
| 26 | //search the position to add a group |
---|
| 27 | if(level>=groups->operator[](position_tab_init+1).getLevel()) |
---|
| 28 | position_tab=position_tab_init; |
---|
| 29 | else |
---|
[33] | 30 | for(position_tab=position_tab_init ;position_tab+1<groups->size()&&level<groups->operator[](position_tab+1).getLevel();position_tab++); |
---|
| 31 | cout << position_tab << " " << position_tab_init<<endl; |
---|
[32] | 32 | //create a new group and add |
---|
| 33 | for(i=position_tab;i>=position_tab_init;i--) |
---|
| 34 | { |
---|
| 35 | g=new Group(groups->operator[](i).getName(),groups->operator[](i).getLevel()); |
---|
| 36 | p2=groups->operator[](i).getParam(); |
---|
| 37 | for(QList<Param>::iterator it=p2.begin();it!=p2.end();++it) |
---|
| 38 | { |
---|
| 39 | |
---|
| 40 | if(it->getName() == "id") |
---|
| 41 | { |
---|
| 42 | p=new Param(it->getName(),it->getValue()+1,g->getName()); |
---|
| 43 | g->addParam(p); |
---|
| 44 | } |
---|
| 45 | else if(QString::fromStdString(it->getName()).contains("link",Qt::CaseInsensitive)) |
---|
| 46 | { |
---|
| 47 | p=new Param(it->getName(),it->getValue(),g->getName()); |
---|
| 48 | g->addParam(p); |
---|
| 49 | } |
---|
| 50 | else |
---|
| 51 | { |
---|
| 52 | lp=searchLimitParam(it->getName()); |
---|
| 53 | p=new Param(lp.getName(),lp.getDefault(),g->getName()); |
---|
| 54 | g->addParam(p); |
---|
| 55 | } |
---|
| 56 | } |
---|
[33] | 57 | groups->insert(position_tab+1,*g); |
---|
| 58 | listgroup->insert(position_tab+1,g->getName()); |
---|
| 59 | |
---|
[32] | 60 | delete g; |
---|
| 61 | |
---|
| 62 | } |
---|
| 63 | |
---|
| 64 | break; |
---|
| 65 | case -1: |
---|
| 66 | if(nbGroup(namegroup)==1) |
---|
| 67 | break; |
---|
| 68 | else |
---|
| 69 | { |
---|
| 70 | groups->removeAt(listgroup->lastIndexOf(namegroup)); |
---|
| 71 | listgroup->removeAt(listgroup->lastIndexOf(namegroup)); |
---|
| 72 | } |
---|
| 73 | break; |
---|
| 74 | default: |
---|
| 75 | return -1; |
---|
| 76 | } |
---|
| 77 | return 0; |
---|
| 78 | } |
---|
| 79 | |
---|
| 80 | void BaseV::modifyValue(string nomgroup,string nameparam,int value) |
---|
| 81 | { |
---|
| 82 | Group g=searchGroup(nomgroup); |
---|
| 83 | Param *np=new Param(nameparam,value,nomgroup); |
---|
| 84 | g.addParam(nameparam,np); |
---|
| 85 | delete np; |
---|
| 86 | } |
---|
| 87 | |
---|
| 88 | };//end bdd |
---|
| 89 | };//end viewer |
---|
| 90 | };//end tools |
---|
| 91 | };//end morpheo |
---|