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

Private GIT Repository
adding xsd files to master
[blast.git] / GroupScene.cpp
index daf6bf1e2102d782f883655dd708b8b899786169..e8c9e842ecb9454925fef709f5d6b6d199cfffd7 100644 (file)
@@ -86,15 +86,8 @@ QList<AbstractBoxItem*> GroupScene::getGroupAndBlocks() {
 
 BoxItem *GroupScene::createBlockItem(AbstractBlock *block) {
 
 
 BoxItem *GroupScene::createBlockItem(AbstractBlock *block) {
 
-  BoxItem* blockItem = new BoxItem(block,dispatcher,params,groupItem);
-  blockItem->setZValue(1);
-  addBlockItem(blockItem);
-  return blockItem;
-}
-
-void GroupScene::addBlockItem(BoxItem* item) {
-  // add item from the viewport
-  //addItem(item);
+  BoxItem* item = new BoxItem(block,dispatcher,params,groupItem);
+  item->setZValue(1);
   // add item from the QList
   blockItems.append(item);
   // repainting the group
   // add item from the QList
   blockItems.append(item);
   // repainting the group
@@ -102,7 +95,16 @@ void GroupScene::addBlockItem(BoxItem* item) {
   // center the new block
   QPointF newPos((groupItem->getWidth()-item->getTotalWidth())/2.0, (groupItem->getHeight()-item->getTotalHeight())/2.0);
   newPos = newPos-item->getOriginPoint();
   // center the new block
   QPointF newPos((groupItem->getWidth()-item->getTotalWidth())/2.0, (groupItem->getHeight()-item->getTotalHeight())/2.0);
   newPos = newPos-item->getOriginPoint();
-  item->moveTo(newPos);  
+  item->moveTo(newPos);
+
+  return item;
+}
+
+void GroupScene::addBlockItem(BoxItem* item) {  
+  // add item from the QList
+  blockItems.append(item);
+  // repainting the group
+  groupItem->updateShape();  
 }
 
 void GroupScene::removeBlockItem(BoxItem* item) {
 }
 
 void GroupScene::removeBlockItem(BoxItem* item) {
@@ -187,6 +189,12 @@ void GroupScene::updateConnectionItemsShape() {
 void GroupScene::save(QXmlStreamWriter &writer) {
   writer.writeStartElement("scene");
   writer.writeAttribute("id",QString::number(id));
 void GroupScene::save(QXmlStreamWriter &writer) {
   writer.writeStartElement("scene");
   writer.writeAttribute("id",QString::number(id));
+  if (parentScene == NULL) {
+    writer.writeAttribute("upper_scene",QString::number(-1));
+  }
+  else {
+    writer.writeAttribute("upper_scene",QString::number(parentScene->getId()));
+  }
   groupItem->save(writer);
 
   writer.writeStartElement("block_items");
   groupItem->save(writer);
 
   writer.writeStartElement("block_items");