]> AND Private Git Repository - blast.git/blobdiff - Parameters.cpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
clkconvert OP compute done
[blast.git] / Parameters.cpp
index 98ea7ebc0d626c016f99bfeb9b6146fa66e940e7..23b798f1a47e54d16bb6a91fad8508b7ba31661b 100644 (file)
@@ -52,6 +52,8 @@ Parameters::Parameters() {
   projectPath = "";\r
   projectName = "";\r
   projectFile = "";\r
+\r
+  graph = new Graph();\r
 }\r
 \r
 Parameters::~Parameters() {\r
@@ -69,13 +71,14 @@ void Parameters::clear() {
   refPathes.clear();\r
 }\r
 \r
-Graph* Parameters::createGraph(bool createTopGroupIfaces) {\r
-  graph = new Graph(createTopGroupIfaces);\r
+Graph* Parameters::initGraph(bool createTopGroupIfaces) {\r
+  graph->createTopGroup(createTopGroupIfaces);\r
   return graph;\r
 }\r
 \r
 void Parameters::destroyGraph() {\r
   delete graph;\r
+  graph = new Graph();\r
 }\r
 \r
 ReferenceBlock* Parameters::getReferenceBlock(int idCategory, int idBlock) {\r
@@ -95,6 +98,7 @@ ReferenceBlock* Parameters::getHiddenReferenceBlock(QString blockName) {
   return ref;\r
 }\r
 \r
+\r
 void Parameters::createDelayBlock() {\r
   delayRef = new ReferenceBlock("no.xml");\r
   delayRef->addCategory(100);\r
@@ -272,6 +276,14 @@ GroupWidget *Parameters::loadProject(QDomElement root) throw(Exception) {
     if(!ok) throw(Exception(PROJECTFILE_CORRUPTED));\r
 \r
     if (idUpperScene == -1) {\r
+      QString clkList = currentSceneNode.attribute("clklist","none");\r
+      if (clkList == "none") throw(Exception(PROJECTFILE_CORRUPTED));\r
+      QStringList clks = clkList.split(",");\r
+      for(int j=0;j<clks.size();j++) {\r
+        double freq = clks.at(j).toDouble(&ok);\r
+        if(!ok) throw(Exception(PROJECTFILE_CORRUPTED));\r
+        graph->addClock(freq);\r
+      }\r
       topGroup = dispatcher->createTopScene(Dispatcher::Load);\r
       topScene->setId(idScene);\r
       groupItem = topScene->getGroupItem();      \r
@@ -280,6 +292,11 @@ GroupWidget *Parameters::loadProject(QDomElement root) throw(Exception) {
     else {\r
       cout << "trying to create scene n°" << idScene << " with upper scene n°" <<idUpperScene << endl;\r
       GroupScene* upperScene = searchSceneById(idUpperScene, topScene);\r
+      /* IMPORTANT: calling addNewEmptyGroup() leads to create a new GroupWidget\r
+       *            AND a BoxItem in upperScene that represents the GroupItem in the\r
+       *            newly created child scene. Thus, it has not to be created when\r
+       *            reading bi_group tags in the following but just searched\r
+       */\r
       groupWidget = dispatcher->addNewEmptyGroup(Dispatcher::Load, upperScene,false);\r
       groupWidget->getScene()->setId(idScene);\r
       groupItem = groupWidget->getScene()->getGroupItem();      \r
@@ -452,12 +469,16 @@ GroupWidget *Parameters::loadProject(QDomElement root) throw(Exception) {
     int to = currentConnectionNode.attribute("to","none").toInt(&ok);\r
     if(!ok) throw(Exception(PROJECTFILE_CORRUPTED));\r
 \r
-\r
+    bool showConn = true;\r
+    QString visStr = currentConnectionNode.attribute("visible","none");\r
+    if (visStr == "false") {\r
+      showConn = false;\r
+    }\r
     InterfaceItem *iface1 = searchInterfaceItemById(from,topScene);\r
     InterfaceItem *iface2 = searchInterfaceItemById(to,topScene);\r
 \r
     if(iface1 != NULL && iface2 != NULL){\r
-      dispatcher->createConnection(Dispatcher::Load, iface1,iface2);\r
+      dispatcher->createConnection(Dispatcher::Load, iface1,iface2,showConn);\r
     } else {\r
       cout << "interfaces not found, connect canceled!" << endl;\r
     }\r
@@ -1165,7 +1186,9 @@ void Parameters::save(QString confFile) {
 \r
       writer.writeAttribute("from",QString::number(item->getFromInterfaceItem()->getId()));\r
       writer.writeAttribute("to", QString::number(item->getToInterfaceItem()->getId()));\r
-\r
+      if (!item->isVisible()) {\r
+        writer.writeAttribute("visible","false");\r
+      }\r
       writer.writeEndElement();\r
     }\r
 \r