Index: /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Bdd/src/BaseP_alloc.cpp
===================================================================
--- /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Bdd/src/BaseP_alloc.cpp	(revision 32)
+++ /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Bdd/src/BaseP_alloc.cpp	(revision 33)
@@ -15,7 +15,7 @@
   }
 
- BaseP::BaseP(BaseP *p){
-   *this=p;
-  }
+//  BaseP::BaseP(BaseP *p){
+//    *this=p;
+//   }
  
 };//end bdd
Index: /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Bdd/src/BaseV_modify.cpp
===================================================================
--- /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Bdd/src/BaseV_modify.cpp	(revision 32)
+++ /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Bdd/src/BaseV_modify.cpp	(revision 33)
@@ -28,6 +28,6 @@
 	position_tab=position_tab_init;
       else
-	for(position_tab=position_tab_init ;level<groups->operator[](position_tab+1).getLevel();position_tab++);
-      //cout << position_tab << "         " << position_tab_init<<endl;
+	for(position_tab=position_tab_init ;position_tab+1<groups->size()&&level<groups->operator[](position_tab+1).getLevel();position_tab++);
+      cout << position_tab << "         " << position_tab_init<<endl;
       //create a new group and add
       for(i=position_tab;i>=position_tab_init;i--)
@@ -55,6 +55,7 @@
 		}
 	    }
-	  groups->insert(position_tab+1,*g);
-	  listgroup->insert(position_tab+1,g->getName());
+	      groups->insert(position_tab+1,*g);
+	      listgroup->insert(position_tab+1,g->getName());
+	  
 	  delete g;
 	  
Index: /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Bdd/src/BaseV_searchComponent.cpp
===================================================================
--- /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Bdd/src/BaseV_searchComponent.cpp	(revision 32)
+++ /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Bdd/src/BaseV_searchComponent.cpp	(revision 33)
@@ -13,5 +13,5 @@
     int tmp=listcomp->indexOf(v,0);
     if(tmp == -1)
-      return NULL;
+      return BaseP();
     else
       return pos->operator[](tmp);
Index: /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Graphics/src/Graphics_file_actions.cpp
===================================================================
--- /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Graphics/src/Graphics_file_actions.cpp	(revision 32)
+++ /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Graphics/src/Graphics_file_actions.cpp	(revision 33)
@@ -13,5 +13,5 @@
   QString current2;
   if(!file_open && is_save){//if no file open or if the file opened has been saved -> open other file, else -> ask for saving file
-    current2 = QFileDialog::getOpenFileName(this,"", "./data");
+    current2 = QFileDialog::getOpenFileName(this,"", "./data",tr("(*.pos)"));
     this->setDisabled(true);
     /*if a file has been opened*/
@@ -79,4 +79,7 @@
   repaint();
   display_param();
+  wparam->close();
+  this->_parameters();
+  this->_parameters();
   this->setDisabled(false);
   setMouseTracking(true);
@@ -98,5 +101,5 @@
       wa->close();
     if(save_as){//if "save as" 
-      current_name = QFileDialog::getSaveFileName(this,"","./data");
+      current_name = QFileDialog::getSaveFileName(this,"","./data",tr("(*.cfg)"));
       save_as = false;
       parse->save_file(current_name.toStdString(),0);
Index: /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Graphics/src/Graphics_parameters_window.cpp
===================================================================
--- /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Graphics/src/Graphics_parameters_window.cpp	(revision 32)
+++ /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Graphics/src/Graphics_parameters_window.cpp	(revision 33)
@@ -50,5 +50,5 @@
   scpu.append(" \n");
   cpu ->setText(QString::fromStdString(scpu));
-  cpu->setFixedSize(300,50);
+  cpu->setFixedSize(350,50);
   pbox->addWidget(cpu);
   
@@ -235,5 +235,5 @@
   cout << "value : " << v << endl; 
   param = obj.section(":",1,1);
-  //cout << "param : " << param.toStdString() << endl;
+  cout << "param : " << param.toStdString() << endl;
 
   base->modifyValue(group.toStdString(),param.toStdString(),v);
@@ -252,5 +252,5 @@
   QString obj = QObject::sender()->objectName();
   int v,j;
-  //cout << "name : " << obj.toStdString() << endl;
+  cout << "name : " << obj.toStdString() << endl;
   v = i;
   //cout << "value : " << v << endl; 
@@ -263,4 +263,5 @@
     exit(1);
   }
+  
   wparam->close();
   apply_display = false;
Index: /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Parser/src/Parse_save.cpp
===================================================================
--- /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Parser/src/Parse_save.cpp	(revision 32)
+++ /trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Parser/src/Parse_save.cpp	(revision 33)
@@ -3,4 +3,5 @@
  * type: 0 ->user save a file 
  *       1 ->function apply() temporary save
+ * experimental function !!!
  */
 #include "Tools/Viewer/Parser/include/parser.h"
@@ -133,4 +134,9 @@
 	    ts << "     </front_end>" <<endl <<endl;
 	  }
+	if((it+1)!=g->end() && (it+1)->getName()=="front_end" && (it)->getName()=="decod")
+	  {
+	    ts << "        </decod_unit>" <<endl <<endl;
+	    ts << "     </front_end>" <<endl <<endl;
+	  }
 	if((it+1)!=g->end() && (it+1)->getName()=="execution_loop" && (it)->getName()=="commit")
 	  ts << "       </out_of_order_engine>" <<endl <<endl;
