#include "XGUI_Workshop.h"
#include "XGUI_ObjectsBrowser.h"
#include "XGUI_SelectionMgr.h"
+#include "XGUI_Displayer.h"
#include <ModelAPI_Data.h>
#include <ModelAPI_AttributeDocRef.h>
+#include <ModelAPI_Object.h>
#include <QAction>
#include <QContextMenuEvent>
XGUI_ContextMenuMgr::XGUI_ContextMenuMgr(XGUI_Workshop* theParent) :
QObject(theParent), myWorkshop(theParent)
{
-
}
XGUI_ContextMenuMgr::~XGUI_ContextMenuMgr()
aAction = new QAction(QIcon(":pictures/assembly.png"), tr("Deactivate"), this);
addAction("DEACTIVATE_PART_CMD", aAction);
+
+ 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)
//Process Feature
if (aFeature) {
if (aFeature->getKind() == "Part") {
- boost::shared_ptr<ModelAPI_Document> aFeaDoc = aFeature->data()->docRef("PartDocument")->value();
+ ObjectPtr aObject = boost::dynamic_pointer_cast<ModelAPI_Object>(aFeature);
+ DocumentPtr aFeaDoc = aObject->featureRef()->data()->docRef("PartDocument")->value();
if (aMgr->currentDocument() == aFeaDoc)
aMenu->addAction(action("DEACTIVATE_PART_CMD"));
else
aMenu->addAction(action("ACTIVATE_PART_CMD"));
} else {
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"));
}
+ 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 (aMenu->actions().size() > 0)
+ aMenu->addActions(myWorkshop->objectBrowser()->actions());
+ if (aMenu->actions().size() > 0) {
return aMenu;
+ }
delete aMenu;
return 0;
}