+ GroupWidget* child = createChildScene(scene->getGroupWidget(),newItem);
+ if (show) child->show();
+ return child;
+
+}
+
+GroupWidget *Dispatcher::createChildScene(GroupWidget* parentWidget, BoxItem *upperItemOfGroupItem) {
+ static QString fctName = "Dispatcher::createChildScene()";
+#ifdef DEBUG_FCTNAME
+ cout << "call to " << qPrintable(fctName) << endl;
+#endif
+
+ GroupWidget* group = NULL;
+ /* NB: this method may be called during design process or when loading
+ a project. In this case, upperItemOfGroupItem is NULL, thus a lot of things
+ cannot be initialized yet. This is why there are 2 cases below
+ */
+
+ if (upperItemOfGroupItem != NULL) {
+ // getting back the goup block already created
+ GroupBlock* groupBlock = AB_TO_GRP(upperItemOfGroupItem->getRefBlock());
+ // creating the view part of the group
+ GroupItem *groupItem = new GroupItem(upperItemOfGroupItem,groupBlock,this,params);
+ // creating the group widget
+ group = new GroupWidget(parentWidget, this, params);
+ // getting the newly created scene
+ GroupScene *scene = group->getScene();
+ scene->setId(sceneCounter++);
+ // affecting group item to the scene
+ scene->setGroupItem(groupItem);
+ groupList.append(group);
+
+ mainWindow->getLibrary()->updateComboScene();
+ }
+ else {
+ GroupItem *groupItem = new GroupItem(this,params);
+ // creating the group widget
+ group = new GroupWidget(parentWidget, this, params);
+ // getting the newly created scene
+ GroupScene *scene = group->getScene();
+ // affecting group item to the scene
+ scene->setGroupItem(groupItem);
+ groupList.append(group);
+ }