Salome HOME
Implimentation of the Config XML Reader
[modules/shaper.git] / src / XGUI / XGUI_Workbench.cpp
index f73c693fc8ceb045c1dec92c3213e5ebc3b63ead..ac930f0766af0f12799eb2c7d892aac24c6a1aa0 100644 (file)
@@ -69,14 +69,26 @@ XGUI_Workbench::XGUI_Workbench(QWidget *theParent) :
 
 }
 
-IMenuGroup* XGUI_Workbench::addGroup()
+/*
+ * Creates a new group in the workbench with given name.
+ * If no name provided it would be defined as {workbench_name}_Group_N.
+ */
+IMenuGroup* XGUI_Workbench::addGroup(const QString& theName)
 {
+    QString aGroupName = theName;
+    //Generate a group name.
+    if(theName.isEmpty()){
+      QString aGroupName = objectName();
+      aGroupName = aGroupName.replace("_Workbench", "_Group_%1");
+      aGroupName = aGroupName.arg(myGroups.count());
+    }
     if (!myLayout->isEmpty()) {
         int aNb = myLayout->count();
         QLayoutItem* aItem = myLayout->itemAt(aNb - 1);
         myLayout->removeItem(aItem);
     }
     XGUI_MenuGroupPanel* aGroup = new XGUI_MenuGroupPanel(myChildWidget);
+    aGroup->setObjectName(aGroupName);
     myLayout->addWidget(aGroup);
     addSeparator();
     myLayout->addStretch();
@@ -84,6 +96,22 @@ IMenuGroup* XGUI_Workbench::addGroup()
     return aGroup;
 }
 
+/*
+ * Searches for already created group with given name.
+ */
+IMenuGroup* XGUI_Workbench::findGroup(const QString& theName)
+{
+  QString aGroupName = theName;
+  XGUI_MenuGroupPanel* aPanel;
+  foreach(aPanel, myGroups) {
+    if(aPanel->objectName() == theName) {
+      return aPanel;
+    }
+  }
+  return NULL;
+}
+
+
 void XGUI_Workbench::addSeparator()
 {
     QFrame* aLine = new QFrame(myChildWidget);
@@ -92,6 +120,7 @@ void XGUI_Workbench::addSeparator()
     myLayout->addWidget(aLine);
 }
 
+
 void XGUI_Workbench::resizeEvent(QResizeEvent* theEvent)
 {
     QWidget::resizeEvent(theEvent);