]> 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 568e946458a69a7b9604901f114479be7d0780fd..34b567a94dcb9ef1b76d5facc92c9d9a224f8a35 100644 (file)
@@ -280,6 +280,15 @@ void BoxItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) {
       }
       break;
     }
       }
       break;
     }
+    case Title:
+      cout << "abnormal case while resizing block" << endl;
+      break;
+    case BorderWest:
+      cout << "abnormal case while resizing block" << endl;
+      break;
+    case BorderNorth:
+      cout << "abnormal case while resizing block" << endl;
+      break;
     case NoBorder:
       cout << "abnormal case while resizing block" << endl;
       break;
     case NoBorder:
       cout << "abnormal case while resizing block" << endl;
       break;
@@ -504,6 +513,10 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
   QAction* showRstClkIface = NULL;
   QAction* showWishboneIface = NULL;
   QAction* showParameters = NULL;
   QAction* showRstClkIface = NULL;
   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
 
   InterfaceItem* ifaceItem = getInterfaceItemFromCursor(event->pos().x(), event->pos().y());
   // menu for interface
@@ -550,6 +563,22 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
         }
       }      
     }
         }
       }      
     }
+    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 {
   }
   // menu for blocks (group or func)
   else {
@@ -575,6 +604,7 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
       showWishboneIface->setChecked(wishboneVisible);
     }
     removeAction = menu.addAction("Remove");
       showWishboneIface->setChecked(wishboneVisible);
     }
     removeAction = menu.addAction("Remove");
+    generateVHDL = menu.addAction("Generate VHDL");
   }
 
   QAction* selectedAction = NULL;
   }
 
   QAction* selectedAction = NULL;
@@ -624,13 +654,22 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
   else if(selectedAction == showWishboneIface) {
     dispatcher->showWishboneIface(this);
   }
   else if(selectedAction == showWishboneIface) {
     dispatcher->showWishboneIface(this);
   }
-  else if(selectedAction == showParameters) {
-    if (refBlock->isFunctionalBlock()) {
-      FunctionalBlock* fun = AB_TO_FUN(refBlock);
-      fun->createDelta();
-    }
+  else if(selectedAction == showParameters) {    
     new ParametersWindow(refBlock, params, NULL);
     new ParametersWindow(refBlock, params, NULL);
-  }    
+  }
+  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) {
 }
 
 void BoxItem::loadFunctional(QDomElement funcElement) throw(Exception) {
@@ -691,6 +730,7 @@ void BoxItem::loadFunctional(QDomElement funcElement) throw(Exception) {
   */
   functionalBlock->setName(name);
   setRefBlock(functionalBlock);
   */
   functionalBlock->setName(name);
   setRefBlock(functionalBlock);
+  params->blockToItem.insert(functionalBlock,this);
 
   setPos(posX,posY);
   setDimension(dimX,dimY);
 
   setPos(posX,posY);
   setDimension(dimX,dimY);
@@ -826,7 +866,7 @@ void BoxItem::save(QXmlStreamWriter &writer) {
 
     writer.writeAttribute("id",QString::number(id));
     writer.writeAttribute("inside_group",QString::number(childGroupItem->getId()));
 
     writer.writeAttribute("id",QString::number(id));
     writer.writeAttribute("inside_group",QString::number(childGroupItem->getId()));
-    QString attrPos = QString::number(pos().x()).append(",").append(QString::number(pos().y()));
+    QString attrPos = QString::number((int)(pos().x())).append(",").append(QString::number((int)(pos().y())));
     writer.writeAttribute("position",attrPos);
     QString attrDim = QString::number(getWidth()).append(",").append(QString::number(getHeight()));
     writer.writeAttribute("dimension",attrDim);
     writer.writeAttribute("position",attrPos);
     QString attrDim = QString::number(getWidth()).append(",").append(QString::number(getHeight()));
     writer.writeAttribute("dimension",attrDim);