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

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

Morpheo Viewer Release 5.0
Réalisation des étapes 3 (fin) et 4.

File size: 2.3 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 ;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          delete g;
60         
61        }
62     
63      break;
64    case -1:
65      if(nbGroup(namegroup)==1)
66        break;
67      else 
68        {
69          groups->removeAt(listgroup->lastIndexOf(namegroup)); 
70          listgroup->removeAt(listgroup->lastIndexOf(namegroup)); 
71        }
72      break;
73    default:
74      return -1;
75    }
76    return 0;
77  }
78
79  void BaseV::modifyValue(string nomgroup,string nameparam,int value)
80  { 
81    Group g=searchGroup(nomgroup);
82    Param *np=new Param(nameparam,value,nomgroup); 
83    g.addParam(nameparam,np); 
84    delete np;
85  }
86
87};//end bdd
88};//end viewer
89};//end tools
90};//end morpheo
Note: See TracBrowser for help on using the repository browser.