Salome HOME
refs #30 - Sketch base GUI: create, draw lines
[modules/shaper.git] / src / XGUI / XGUI_ContextMenuMgr.cpp
index 4dc852f9a4d7178e80976f36d56dfbca31bf0ef0..f5d55c8dbbf3736bec921f6e69396e2b4d3fb18b 100644 (file)
@@ -78,7 +78,7 @@ void XGUI_ContextMenuMgr::onContextMenuRequest(QContextMenuEvent* theEvent)
 
 QMenu* XGUI_ContextMenuMgr::objectBrowserMenu() const
 {
-  QMenu* aMenu = new QMenu();
+  QList<QAction*> aActions;
   XGUI_SelectionMgr* aSelMgr = myWorkshop->selector();
   QFeatureList aFeatures = aSelMgr->selectedFeatures();
   if (aFeatures.size() == 1) {
@@ -89,23 +89,25 @@ QMenu* XGUI_ContextMenuMgr::objectBrowserMenu() const
       if (aFeature->getKind() == "Part") {
         boost::shared_ptr<ModelAPI_Document> aFeaDoc = aFeature->data()->docRef("PartDocument")->value();
         if (aMgr->currentDocument() == aFeaDoc)
-          aMenu->addAction(action("DEACTIVATE_PART_CMD"));
+          aActions.append(action("DEACTIVATE_PART_CMD"));
         else 
-          aMenu->addAction(action("ACTIVATE_PART_CMD"));
+          aActions.append(action("ACTIVATE_PART_CMD"));
       } else {
-        aMenu->addAction(action("EDIT_CMD"));
+        aActions.append(action("EDIT_CMD"));
       }
 
     // Process Root object (document)
     } else { // If feature is 0 the it means that selected root object (document)
       if (aMgr->currentDocument() != aMgr->rootDocument()) {
-        aMenu->addAction(action("ACTIVATE_PART_CMD"));
+        aActions.append(action("ACTIVATE_PART_CMD"));
       }
     }
   }
-  if (aMenu->actions().size() > 0)
+  if (aActions.size() > 0) {
+    QMenu* aMenu = new QMenu();
+    aMenu->addActions(aActions);
     return aMenu;
-  delete aMenu;
+  }
   return 0;
 }