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

Private GIT Repository
finished VHDL gen. (but have to test further
[blast.git] / BoxItem.cpp
index 34b567a94dcb9ef1b76d5facc92c9d9a224f8a35..9ff42a88f7feb96f3f4d7ac413f870c2fe778e73 100644 (file)
@@ -572,11 +572,14 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
       }
     }    
 
-    if (iface->getInputModifier() != NULL) {
-      removeModifier = menu.addAction("Remove input modifier");
-    }
-    if (iface->getInputModifier() != NULL) {
-      showModifier = menu.addAction("Show input modifier parameters");
+    if (iface->getAssociatedIface() != NULL) {
+      ConnectedInterface* assoIface = AI_TO_CON(iface->getAssociatedIface());
+      if (assoIface->getInputModifier() != NULL) {
+        removeModifier = menu.addAction("Remove input modifier");
+      }
+      if (assoIface->getInputModifier() != NULL) {
+        showModifier = menu.addAction("Show input modifier parameters");
+      }
     }
 
   }
@@ -717,7 +720,7 @@ void BoxItem::loadFunctional(QDomElement funcElement) throw(Exception) {
     throw(Exception(PROJECTFILE_CORRUPTED));
   }
   if (referenceMd5 != referenceXml) {
-    throw(Exception(PROJECTFILE_CORRUPTED));
+    reference = referenceXml;
   }
   else {
     reference = referenceMd5;
@@ -788,6 +791,17 @@ void BoxItem::loadFunctional(QDomElement funcElement) throw(Exception) {
       functionalBlock->addInterface(ctlIface);
     }    
   }
+  // connect clk and rst to group clk/rst or to clkrstgen
+  if ((name != "clkrstgen") && (parentGroupBlock != NULL)) {
+    try {
+      functionalBlock->connectClkReset();
+    }
+    catch(Exception e) {
+      AbstractBlock* source = (AbstractBlock *)(e.getSource());
+      cerr << qPrintable(source->getName()) << ":" << qPrintable(e.getMessage()) << endl;
+      throw(e);
+    }
+  }
   
   // creating InterfaceItem
   initInterfaceItems();