X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/blast.git/blobdiff_plain/4cf57e6db08da791233d75237f62e74bc88dd427..756baf5c8eaf003e8271dab9c395de2b0e704857:/Parameters.cpp?ds=sidebyside

diff --git a/Parameters.cpp b/Parameters.cpp
index d3a8dd4..c60a927 100644
--- a/Parameters.cpp
+++ b/Parameters.cpp
@@ -81,7 +81,15 @@ ReferenceBlock* Parameters::getReferenceBlock(int idCategory, int idBlock) {
   BlockCategory* blockCat = categoryTree->searchCategory(idCategory);
 
   if (blockCat == NULL) return NULL;
-  ReferenceBlock* ref = blockCat->getBlock(idBlock);
+  ReferenceBlock* ref = blockCat->getBlockById(idBlock);
+  return ref;
+}
+
+ReferenceBlock* Parameters::getHiddenReferenceBlock(QString blockName) {
+
+  BlockCategory* blockCat = categoryTree->searchCategory(100);
+  if (blockCat == NULL) return NULL;
+  ReferenceBlock* ref = blockCat->getBlockByName(blockName);
   return ref;
 }
 
@@ -237,6 +245,16 @@ GroupWidget *Parameters::loadProject(QDomElement root) throw(Exception) {
   GroupBlock *groupBlock = NULL;
 
   GroupWidget* topGroup = NULL;
+
+  QString path = root.attribute("project_path","none");
+  if (path != "none") {
+    QDir dir(path);
+    if (dir.exists()) {
+      projectPath = path;
+
+    }
+    cout << "project path set to " << qPrintable(projectPath) << endl;
+  }
   /**********************************************************
    1 : getting scene and creating associated group widgets
   ***********************************************************/
@@ -457,23 +475,25 @@ GroupWidget *Parameters::loadProject(QDomElement root) throw(Exception) {
     QString paramsStr = currentModifierNode.attribute("params","none");
     if(!ok) throw(Exception(PROJECTFILE_CORRUPTED));
 
-    AbstractInputModifier* mod = NULL;
-    if (typeStr == "delay") {
-      int delay = paramsStr.toInt(&ok);
-      if(!ok) throw(Exception(PROJECTFILE_CORRUPTED));
-      mod = new DelayInputModifier(delay);
-    }
-
     /* NB: just adding delays for now. To be cont'd */
     InterfaceItem *iface = searchInterfaceItemById(id,topScene);
 
-    if(iface != NULL ) {
-      iface->refInter->setInputModifier(mod);
+    if ((iface == NULL ) || (iface->refInter == NULL) || (iface->refInter->getAssociatedIface() == NULL)) {
+      cout << "modified interface not found, modifiers setup canceled!" << endl;
+    }
+    else {
+      ConnectedInterface* connIface = AI_TO_CON(iface->refInter->getAssociatedIface());
 
-    } else {
-      cout << "interfaces not found, modifiers setup canceled!" << endl;
+      AbstractInputModifier* mod = NULL;
+      if (typeStr == "delay") {
+        int delay = paramsStr.toInt(&ok);
+        if(!ok) throw(Exception(PROJECTFILE_CORRUPTED));
+        mod = new DelayInputModifier(connIface, delay);
+        connIface->setInputModifier(mod);
+      }
     }
   }
+
   cout << "modifiers loaded and created succefully!" << endl;
 
   return topGroup;
@@ -1092,8 +1112,13 @@ void Parameters::setArrowPathes() {
   _inArrow.lineTo(arrowLineLength+arrowWidth,-arrowHeight/2);
   _inArrow.lineTo(arrowLineLength+arrowWidth,arrowHeight/2);
   _inArrow.lineTo(arrowLineLength,0);
-  _inArrow.closeSubpath();
-  inArrow = _inArrow;
+  //_inArrow.closeSubpath();
+  dataArrowIn = _inArrow;
+
+  QPainterPath _inArrowC;
+  _inArrowC.lineTo(arrowLineLength,0);
+  _inArrowC.addEllipse(arrowLineLength,-arrowHeight/2,arrowHeight-1,arrowHeight-1);
+  clkrstArrow = _inArrowC;
 
   QPainterPath _outArrow;
   _outArrow.lineTo(arrowLineLength,0);
@@ -1101,8 +1126,8 @@ void Parameters::setArrowPathes() {
   _outArrow.lineTo(arrowLineLength+arrowWidth,0);
   _outArrow.lineTo(arrowLineLength,arrowHeight/2);
   _outArrow.lineTo(arrowLineLength,0);
-  _outArrow.closeSubpath();
-  outArrow = _outArrow;
+  //_outArrow.closeSubpath();
+  dataArrowOut = _outArrow;
 
 }