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 |
---|
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 | //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 | } |
---|
57 | groups->insert(position_tab+1,*g); |
---|
58 | listgroup->insert(position_tab+1,g->getName()); |
---|
59 | |
---|
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 |
---|