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

Private GIT Repository
add graph modif, progress on vhdl generation
[blast.git] / BoxItem.cpp
index 53d56ec46f1601accdda63d3f8139e84694dd146..34b567a94dcb9ef1b76d5facc92c9d9a224f8a35 100644 (file)
@@ -514,6 +514,9 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
   QAction* showWishboneIface = NULL;
   QAction* showParameters = NULL;
   QAction* showPatterns = NULL;
+  QAction* showModifier = NULL;
+  QAction* removeModifier = NULL;
+  QAction* generateVHDL = NULL;
 
   InterfaceItem* ifaceItem = getInterfaceItemFromCursor(event->pos().x(), event->pos().y());
   // menu for interface
@@ -560,9 +563,22 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
         }
       }      
     }
-    if ((iface->getAssociatedIface() != NULL) && (iface->getDirection() == AbstractInterface::Output)) {
-      showPatterns = menu.addAction("Show patterns");
+    if (iface->getAssociatedIface() != NULL) {
+      if (iface->getDirection() == AbstractInterface::Output) {
+        showPatterns = menu.addAction("Show output pattern");
+      }
+      else if (iface->getDirection() == AbstractInterface::Input) {
+        showPatterns = menu.addAction("Show input pattern");
+      }
+    }    
+
+    if (iface->getInputModifier() != NULL) {
+      removeModifier = menu.addAction("Remove input modifier");
+    }
+    if (iface->getInputModifier() != NULL) {
+      showModifier = menu.addAction("Show input modifier parameters");
     }
+
   }
   // menu for blocks (group or func)
   else {
@@ -588,6 +604,7 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
       showWishboneIface->setChecked(wishboneVisible);
     }
     removeAction = menu.addAction("Remove");
+    generateVHDL = menu.addAction("Generate VHDL");
   }
 
   QAction* selectedAction = NULL;
@@ -643,6 +660,16 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
   else if(selectedAction == showPatterns) {    
     dispatcher->showPatterns(ifaceItem);
   }
+  else if(selectedAction == removeModifier) {
+    dispatcher->removeModifier(ifaceItem);
+  }
+  else if(selectedAction == showModifier) {
+    dispatcher->showModifier(ifaceItem);
+  }
+  else if(selectedAction == generateVHDL) {
+    dispatcher->generateBlockVHDL(this);
+  }
+
 }
 
 void BoxItem::loadFunctional(QDomElement funcElement) throw(Exception) {
@@ -703,6 +730,7 @@ void BoxItem::loadFunctional(QDomElement funcElement) throw(Exception) {
   */
   functionalBlock->setName(name);
   setRefBlock(functionalBlock);
+  params->blockToItem.insert(functionalBlock,this);
 
   setPos(posX,posY);
   setDimension(dimX,dimY);