+QMenu* XGUI_ContextMenuMgr::viewerMenu() const
+{
+ QMenu* aMenu = new QMenu();
+ addViewerItems(aMenu);
+ if (aMenu->actions().size() > 0) {
+ return aMenu;
+ }
+ delete aMenu;
+ return 0;
+}
+
+void XGUI_ContextMenuMgr::addViewerItems(QMenu* theMenu) const
+{
+ XGUI_SelectionMgr* aSelMgr = myWorkshop->selector();
+ QFeatureList aFeatures = aSelMgr->selectedFeatures();
+ if (aFeatures.size() > 0) {
+ if (aFeatures.size() == 1)
+ theMenu->addAction(action("EDIT_CMD"));
+ bool isVisible = false;
+ foreach(FeaturePtr aFeature, aFeatures) {
+ if (myWorkshop->displayer()->isVisible(aFeature)) {
+ isVisible = true;
+ break;
+ }
+ }
+ if (isVisible)
+ theMenu->addAction(action("HIDE_CMD"));
+ else
+ theMenu->addAction(action("SHOW_CMD"));
+ theMenu->addAction(action("DELETE_CMD"));
+ }
+ if (!myWorkshop->isSalomeMode()) {
+ QMdiArea* aMDI = myWorkshop->mainWindow()->mdiArea();
+ if (aMDI->actions().size() > 0) {
+ QMenu* aSubMenu = theMenu->addMenu(tr("Windows"));
+ aSubMenu->addActions(aMDI->actions());
+ }
+ }
+}
+