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

Private GIT Repository
added context to dispatcher op.
[blast.git] / GroupWidget.cpp
index 043561e28c34495b6651725286860d3375335530..c530c2bd7985ec7d856fafef18146512a19f9de6 100644 (file)
@@ -21,7 +21,7 @@ GroupWidget::GroupWidget(GroupWidget *_upperGroup, Dispatcher *_dispatcher,
     scene = new GroupScene(NULL, this, dispatcher, params, true);
   }
   else {
     scene = new GroupScene(NULL, this, dispatcher, params, true);
   }
   else {
-    topGroup = true;
+    topGroup = false;
     scene = new GroupScene(upperGroup->getScene(), this, dispatcher, params, false);
   }
 
     scene = new GroupScene(upperGroup->getScene(), this, dispatcher, params, false);
   }
 
@@ -41,7 +41,13 @@ GroupWidget::GroupWidget(GroupWidget *_upperGroup, Dispatcher *_dispatcher,
 
 }
 
 
 }
 
-GroupWidget::~GroupWidget(){}
+GroupWidget::~GroupWidget(){
+  static QString fctName = "GroupWidget::~GroupWidget()";
+#ifdef DEBUG_FCTNAME
+  cout << "call to " << qPrintable(fctName) << endl;
+#endif  
+  // delete scene; // TO DO: must check if it is needed
+}
 
 void GroupWidget::changeConnectionMode(int mode) {
   /*
 
 void GroupWidget::changeConnectionMode(int mode) {
   /*
@@ -79,7 +85,7 @@ void GroupWidget::enableGroupButton(bool b) {
 
 
 void GroupWidget::mousePressEvent(QMouseEvent *e) {
 
 
 void GroupWidget::mousePressEvent(QMouseEvent *e) {
-  dispatcher->setCurrentGroupWidget(this);
+  dispatcher->setCurrentGroupWidget(Dispatcher::Design, this);
   QWidget::mousePressEvent(e);
 }
 
   QWidget::mousePressEvent(e);
 }
 
@@ -95,6 +101,7 @@ void GroupWidget::focusInEvent(QFocusEvent *e) {
 void GroupWidget::closeEvent(QCloseEvent *e) {
   clearFocus();
   focusNextChild();
 void GroupWidget::closeEvent(QCloseEvent *e) {
   clearFocus();
   focusNextChild();
+
 }
 
 
 }
 
 
@@ -147,46 +154,46 @@ void GroupWidget::createActions() {
 void GroupWidget::createToolbar() {
   toolbarEditMode = new QToolBar(tr("Mode"));
   toolbarAdd = new QToolBar(tr("Group"));
 void GroupWidget::createToolbar() {
   toolbarEditMode = new QToolBar(tr("Mode"));
   toolbarAdd = new QToolBar(tr("Group"));
-  toolbarTools = new QToolBar(tr("Tools"));
+  //toolbarTools = new QToolBar(tr("Tools"));
 
   toolbarEditMode->addWidget(new QLabel("Mode"));
 
   toolbarEditMode->addWidget(new QLabel("Mode"));
-  toolbarTools->addWidget(new QLabel("Tools"));
+  //toolbarTools->addWidget(new QLabel("Tools"));
 
   toolbarEditMode->addSeparator();
 
   toolbarEditMode->addSeparator();
-  toolbarTools->addSeparator();
+  //toolbarTools->addSeparator();
 
   toolbarEditMode->addWidget(butAddConnection);
   toolbarEditMode->addWidget(butEdit);
 
 
   toolbarEditMode->addWidget(butAddConnection);
   toolbarEditMode->addWidget(butEdit);
 
-  toolbarAdd->addAction(copyBlockAct);
+  //toolbarAdd->addAction(copyBlockAct);
   toolbarAdd->addAction(newEmptyGroupAct);
   toolbarAdd->addAction(newGroupAct);
 
   toolbarAdd->addAction(newEmptyGroupAct);
   toolbarAdd->addAction(newGroupAct);
 
-  toolbarTools->addAction(deleteAct);
-  toolbarTools->addAction(selectAllAct);
-  toolbarTools->addAction(unselectAllAct);
+  //toolbarTools->addAction(deleteAct);
+  //toolbarTools->addAction(selectAllAct);
+  //toolbarTools->addAction(unselectAllAct);
 
   layout->addWidget(toolbarEditMode,0,0);
   layout->addWidget(toolbarAdd,0,1);
 
   layout->addWidget(toolbarEditMode,0,0);
   layout->addWidget(toolbarAdd,0,1);
-  layout->addWidget(toolbarTools,0,2);
+  //layout->addWidget(toolbarTools,0,2);
 }
 
 void GroupWidget::slotEdit() {
 }
 
 void GroupWidget::slotEdit() {
-  dispatcher->unselectAllItems();
+  dispatcher->unselectAllItems(Dispatcher::Design);
   getScene()->setEditionMode(GroupScene::ItemEdition);
   updateBlockButton();
 }
 
 void GroupWidget::slotCopyBlock() {
   getScene()->setEditionMode(GroupScene::ItemEdition);
   updateBlockButton();
 }
 
 void GroupWidget::slotCopyBlock() {
-  foreach (BoxItem *item, params->getCurrentScene()->getBlockItems()) {
+  foreach (BoxItem *item, params->getCurrentScene()->getBoxItems()) {
     if(item->isSelected()){
     if(item->isSelected()){
-      dispatcher->duplicateBlock(item);
+      dispatcher->duplicateBoxItem(Dispatcher::Design, item);
     }
   }
 }
 
 void GroupWidget::slotAddConnection() {
     }
   }
 }
 
 void GroupWidget::slotAddConnection() {
-  dispatcher->unselectAllItems();
+  dispatcher->unselectAllItems(Dispatcher::Design);
   getScene()->setEditionMode(GroupScene::AddConnection);
   updateBlockButton();
 }
   getScene()->setEditionMode(GroupScene::AddConnection);
   updateBlockButton();
 }
@@ -222,32 +229,24 @@ void GroupWidget::updateBlockButton() {
 
 void GroupWidget::slotNewEmptyGroup() {
 
 
 void GroupWidget::slotNewEmptyGroup() {
 
-  // creating the GroupBlock in graph model
-  GroupBlock* parent = AB_TO_GRP(scene->getGroupItem()->getRefBlock());
-  cout << "new group : parent = "<< qPrintable(parent->getName()) << endl;
-  GroupBlock* groupBlock = params->getGraph()->createChildBlock(parent);
-  cout << "new group : child = "<< qPrintable(groupBlock->getName()) << ", child of " << qPrintable(groupBlock->getParent()->getName()) << endl;
-  // creating the BlockItem in the scene
-  BoxItem* newItem = scene->createBlockItem(groupBlock);
+  dispatcher->addNewEmptyGroup(Dispatcher::Design, scene);
 
 
-  GroupWidget* child = dispatcher->createChildScene(this,newItem);
-  child->show();
 }
 
 void GroupWidget::slotNewGroup()
 {
 }
 
 void GroupWidget::slotNewGroup()
 {
-  dispatcher->addNewFullGroup();
+  dispatcher->addNewFullGroup(Dispatcher::Design );
 }
 
 void GroupWidget::slotDeleteItems() {
 }
 
 void GroupWidget::slotDeleteItems() {
-  foreach (BoxItem *item, scene->getBlockItems()) {
+  foreach (BoxItem *item, scene->getBoxItems()) {
     if(item->isSelected()){
     if(item->isSelected()){
-      dispatcher->removeBlock(item);
+      dispatcher->removeBoxItem(Dispatcher::Design, item);
     }
   }
   foreach (ConnectionItem *item, scene->getConnectionItems()) {
     if(item->isSelected()){
     }
   }
   foreach (ConnectionItem *item, scene->getConnectionItems()) {
     if(item->isSelected()){
-      dispatcher->removeConnection(item);
+      dispatcher->removeConnection(Dispatcher::Design, item);
     }
   }
 }
     }
   }
 }