source: trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Bdd/src/BaseV_modify.cpp @ 33

Last change on this file since 33 was 33, checked in by chou, 17 years ago

correction de qq bugs

File size: 2.4 KB
Line 
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"
8namespace morpheo{
9namespace tools{
10namespace viewer{
11namespace 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
Note: See TracBrowser for help on using the repository browser.