#include "XGUI_Workshop.h"
#include "XGUI_ObjectsBrowser.h"
#include "XGUI_SelectionMgr.h"
+#include "XGUI_Displayer.h"
#include <ModelAPI_Data.h>
#include <ModelAPI_AttributeDocRef.h>
XGUI_ContextMenuMgr::XGUI_ContextMenuMgr(XGUI_Workshop* theParent) :
QObject(theParent), myWorkshop(theParent)
{
-
}
XGUI_ContextMenuMgr::~XGUI_ContextMenuMgr()
aAction = new QAction(QIcon(":pictures/delete.png"), tr("Delete"), this);
addAction("DELETE_CMD", aAction);
+
+ aAction = new QAction(QIcon(":pictures/eye_pencil.png"), tr("Show"), this);
+ addAction("SHOW_CMD", aAction);
+
+ aAction = new QAction(QIcon(":pictures/eye_pencil_closed.png"), tr("Hide"), this);
+ addAction("HIDE_CMD", aAction);
}
void XGUI_ContextMenuMgr::addAction(const QString& theId, QAction* theAction)
QMenu* XGUI_ContextMenuMgr::objectBrowserMenu() const
{
- QList<QAction*> aActions;
+ QMenu* aMenu = new QMenu();
XGUI_SelectionMgr* aSelMgr = myWorkshop->selector();
QFeatureList aFeatures = aSelMgr->selectedFeatures();
if (aFeatures.size() == 1) {
ObjectPtr aObject = boost::dynamic_pointer_cast<ModelAPI_Object>(aFeature);
DocumentPtr aFeaDoc = aObject->featureRef()->data()->docRef("PartDocument")->value();
if (aMgr->currentDocument() == aFeaDoc)
- aActions.append(action("DEACTIVATE_PART_CMD"));
+ aMenu->addAction(action("DEACTIVATE_PART_CMD"));
else
- aActions.append(action("ACTIVATE_PART_CMD"));
+ aMenu->addAction(action("ACTIVATE_PART_CMD"));
} else {
- aActions.append(action("EDIT_CMD"));
+ aMenu->addAction(action("EDIT_CMD"));
+
+ XGUI_Displayer* aDisplayer = myWorkshop->displayer();
+ if (aDisplayer->IsVisible(aFeature))
+ aMenu->addAction(action("HIDE_CMD"));
+ else
+ aMenu->addAction(action("SHOW_CMD"));
}
- aActions.append(action("DELETE_CMD"));
+ aMenu->addAction(action("DELETE_CMD"));
+ aMenu->addSeparator();
// Process Root object (document)
} else { // If feature is 0 the it means that selected root object (document)
if (aMgr->currentDocument() != aMgr->rootDocument()) {
- aActions.append(action("ACTIVATE_PART_CMD"));
+ aMenu->addAction(action("ACTIVATE_PART_CMD"));
}
}
}
- aActions.append(myWorkshop->objectBrowser()->actions());
- if (aActions.size() > 0) {
- QMenu* aMenu = new QMenu();
- aMenu->addActions(aActions);
+ aMenu->addActions(myWorkshop->objectBrowser()->actions());
+ if (aMenu->actions().size() > 0) {
return aMenu;
}
+ delete aMenu;
return 0;
}
activatePart(FeaturePtr());
else if (theId == "DELETE_CMD")
deleteFeatures(aFeatures);
+ else if (theId == "SHOW_CMD")
+ showFeatures(aFeatures, true);
+ else if (theId == "HIDE_CMD")
+ showFeatures(aFeatures, false);
}
//**************************************************************
aMgr->rootDocument()->finishOperation();
}
}
+
+//**************************************************************
+void XGUI_Workshop::showFeatures(QFeatureList theList, bool isVisible)
+{
+// foreach (FeaturePtr aFeature, theList) {
+// }
+}