Salome HOME
Issue #394 Undo-ing a Sketch element
[modules/shaper.git] / src / XGUI / XGUI_ContextMenuMgr.cpp
index dcde2a6b592a2bc710f42505b8e96983b26fd3d7..8072aa81d21853732f448c98ff3ce121dd08e953 100644 (file)
@@ -19,6 +19,8 @@
 #include <ModelAPI_Session.h>
 #include <ModelAPI_ResultGroup.h>
 
+#include <ModuleBase_IModule.h>
+
 #include <QAction>
 #include <QContextMenuEvent>
 #include <QMenu>
@@ -145,7 +147,7 @@ QMenu* XGUI_ContextMenuMgr::objectBrowserMenu() const
             aMenu->addAction(action("DEACTIVATE_PART_CMD"));
           else
             aMenu->addAction(action("ACTIVATE_PART_CMD"));
-        } else if (hasFeature) {
+        } else if (hasFeature && aObject->document() == aMgr->activeDocument()) {
           aMenu->addAction(action("EDIT_CMD"));
         } else {
           if (aDisplayer->isVisible(aObject)) {
@@ -181,6 +183,11 @@ QMenu* XGUI_ContextMenuMgr::objectBrowserMenu() const
   }
   aMenu->addSeparator();
   aMenu->addActions(myWorkshop->objectBrowser()->actions());
+
+  ModuleBase_IModule* aModule = myWorkshop->module();
+  if (aModule)
+    aModule->addObjectBrowserItems(aMenu);
+
   if (aMenu->actions().size() > 0) {
     return aMenu;
   }
@@ -243,6 +250,10 @@ void XGUI_ContextMenuMgr::addViewerItems(QMenu* theMenu) const
       aSubMenu->addActions(aMDI->actions());
     }
   }
+
+  ModuleBase_IModule* aModule = myWorkshop->module();
+  if (aModule)
+    aModule->addViewerItems(theMenu);
 }
 
 void XGUI_ContextMenuMgr::connectObjectBrowser() const