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

Private GIT Repository
added context to dispatcher op.
[blast.git] / GroupScene.cpp
index 48de27e6ff76b81a85c5c035337ad98aa3169564..0eaa8a1dc8435587cbd5d4ebe70da8e921ab71b1 100644 (file)
@@ -38,6 +38,17 @@ GroupScene::~GroupScene() {
   groupItem = NULL;
 }
 
   groupItem = NULL;
 }
 
+/*
+void GroupScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) {
+
+  //QGraphicsScene::mouseMoveEvent(event);
+  
+  QPointF p = event->scenePos();
+  cout << p.x() << "," << p.y() << endl;
+
+}
+*/
+
 void GroupScene::setSelectedInterface(int id, InterfaceItem* iface) {
   if ((id < 1)|| (id > 2)) return;
   selectedInterfaces[id-1] = iface;
 void GroupScene::setSelectedInterface(int id, InterfaceItem* iface) {
   if ((id < 1)|| (id > 2)) return;
   selectedInterfaces[id-1] = iface;
@@ -92,16 +103,35 @@ int GroupScene::setInterfacesId(int countInit) {
   return counter;
 }
 
   return counter;
 }
 
-BoxItem *GroupScene::createBoxItem(AbstractBlock *block) {
+BoxItem *GroupScene::createBoxItem(AbstractBlock *block, BoxItem::Position hPos, BoxItem::Position vPos, AbstractBoxItem::LockType lock, BoxItem::SpanType span) {
 
 
-  BoxItem* item = new BoxItem(block,dispatcher,params,groupItem);
+  BoxItem* item = new BoxItem(block,dispatcher,params,groupItem, lock, span);
   item->setZValue(1);
   // add item from the QList
   boxItems.append(item);
   // repainting the group
   groupItem->updateShape();
   // center the new block
   item->setZValue(1);
   // add item from the QList
   boxItems.append(item);
   // repainting the group
   groupItem->updateShape();
   // center the new block
-  QPointF newPos((groupItem->getWidth()-item->getTotalWidth())/2.0, (groupItem->getHeight()-item->getTotalHeight())/2.0);
+  double x,y;
+  if (hPos == BoxItem::Left) {
+    x = 0;
+  }
+  else if (hPos == BoxItem::Center) {
+    x = (groupItem->getWidth()-item->getTotalWidth())/2.0;
+  }
+  else if (hPos == BoxItem::Right) {
+    x = groupItem->getWidth()-item->getTotalWidth();
+  }
+  if (vPos == BoxItem::Top) {
+    y = 0;
+  }
+  else if (vPos == BoxItem::Center) {
+    y = (groupItem->getHeight()-item->getTotalHeight())/2.0;
+  }
+  else if (vPos == BoxItem::Bottom) {
+    y = groupItem->getHeight()-item->getTotalHeight();
+  }
+  QPointF newPos(x,y);
   newPos = newPos-item->getOriginPoint();
   item->moveTo(newPos);
 
   newPos = newPos-item->getOriginPoint();
   item->moveTo(newPos);
 
@@ -155,10 +185,11 @@ void GroupScene::removeSourceItem(SourceItem* item) {
   sourceItems.removeAll(item);  
 }
 
   sourceItems.removeAll(item);  
 }
 
-void GroupScene::createConnectionItem(InterfaceItem *iface1, InterfaceItem *iface2) {
+void GroupScene::createConnectionItem(InterfaceItem *iface1, InterfaceItem *iface2, bool visible) {
   ConnectionItem* conn = NULL;
   
   conn = new ConnectionItem(iface1,iface2, dispatcher, params);
   ConnectionItem* conn = NULL;
   
   conn = new ConnectionItem(iface1,iface2, dispatcher, params);
+  conn->setVisible(visible);
   addItem(conn);  
   addConnectionItem(conn);
 }
   addItem(conn);  
   addConnectionItem(conn);
 }
@@ -211,11 +242,11 @@ void GroupScene::unselecteInterfaces() {
 
   if (selectedInterfaces[0] != NULL) {
     selectedInterfaces[0]->selected = false;
 
   if (selectedInterfaces[0] != NULL) {
     selectedInterfaces[0]->selected = false;
-    selectedInterfaces[0] == NULL;
+    selectedInterfaces[0] = NULL;
   }
   if (selectedInterfaces[1] != NULL) {
     selectedInterfaces[1]->selected = false;
   }
   if (selectedInterfaces[1] != NULL) {
     selectedInterfaces[1]->selected = false;
-    selectedInterfaces[1] == NULL;
+    selectedInterfaces[1] = NULL;
   }
 }
 
   }
 }