#include "XGUI_Displayer.h"
#include "XGUI_OperationMgr.h"
#include "XGUI_SalomeConnector.h"
+#include "XGUI_SalomeViewer.h"
#include "XGUI_ActionsMgr.h"
#include "XGUI_ErrorDialog.h"
+#include "XGUI_ViewerProxy.h"
#include <ModelAPI_PluginManager.h>
#include <ModelAPI_Feature.h>
{
myMainWindow = mySalomeConnector? 0 : new XGUI_MainWindow();
- // In SALOME viewer is accessible only when module is initialized
- // and in SALOME mode myDisplayer object has to be created later
- // So, displayer will be created on demand.
+ myDisplayer = new XGUI_Displayer(this);
mySelector = new XGUI_SelectionMgr(this);
connect(mySelector, SIGNAL(selectionChanged()), this, SLOT(changeCurrentDocument()));
+
myOperationMgr = new XGUI_OperationMgr(this);
myActionsMgr = new XGUI_ActionsMgr(this);
myErrorDlg = new XGUI_ErrorDialog(myMainWindow);
+ myViewerProxy = new XGUI_ViewerProxy(this);
+
connect(myOperationMgr, SIGNAL(operationStarted()), this, SLOT(onOperationStarted()));
connect(myOperationMgr, SIGNAL(operationStopped(ModuleBase_Operation*)),
this, SLOT(onOperationStopped(ModuleBase_Operation*)));
} else {
hidePropertyPanel();
updateCommandStatus();
-
- if (myMainWindow) {
- myActionsMgr->restoreCommandState();
- }
+ myActionsMgr->restoreCommandState();
}
}
}
//Find or create Workbench
QString aWchName = QString::fromStdString(theMessage->workbenchId());
+ QString aNestedFeatures = QString::fromStdString(theMessage->nestedFeatures());
+ bool isUsePropPanel = theMessage->isUseInput();
if (isSalomeMode()) {
+ QString aId = QString::fromStdString(theMessage->id());
salomeConnector()->addFeature(aWchName,
QString::fromStdString(theMessage->id()),
- QString::fromStdString(theMessage->text()),
+ aId,
QString::fromStdString(theMessage->tooltip()),
QIcon(theMessage->icon().c_str()),
- false, this,
+ isUsePropPanel, this,
SLOT(onFeatureTriggered()), QKeySequence());
+ myActionsMgr->addCommand(aId, salomeConnector()->command(aId));
+ salomeConnector()->setNestedActions(aId, aNestedFeatures.split(" "));
+
} else {
+
XGUI_MainMenu* aMenuBar = myMainWindow->menuObject();
XGUI_Workbench* aPage = aMenuBar->findWorkbench(aWchName);
if (!aPage) {
if (!aGroup) {
aGroup = aPage->addGroup(aGroupName);
}
- bool isUsePropPanel = theMessage->isUseInput();
//Create feature...
XGUI_Command* aCommand = aGroup->addFeature(QString::fromStdString(theMessage->id()),
QString::fromStdString(theMessage->text()),
QString::fromStdString(theMessage->tooltip()),
QIcon(theMessage->icon().c_str()),
QKeySequence(), isUsePropPanel);
+ aCommand->setUnblockableCommands(aNestedFeatures.split(" "));
myActionsMgr->addCommand(aCommand);
myPartSetModule->featureCreated(aCommand);
}
createDockWidgets();
mySelector->connectViewers();
}
+ myViewerProxy->connectToViewer();
showObjectBrowser();
if (!isSalomeMode()) {
myMainWindow->showPythonConsole();
}
}
-//******************************************************
-XGUI_Displayer* XGUI_Workshop::displayer() const
-{
- // In SALOME viewer is accessible only when module is initialized
- // and in SALOME mode myDisplayer object has to be created later (on demand)
- if (!myDisplayer) {
- XGUI_Workshop* that = (XGUI_Workshop*)this;
- that->myDisplayer = isSalomeMode() ?
- new XGUI_Displayer(salomeConnector()->AISContext()):
- new XGUI_Displayer(myMainWindow->viewer()->AISContext());
- }
- return myDisplayer;
-}
-
//******************************************************
void XGUI_Workshop::changeCurrentDocument()
{
{
emit salomeViewerSelection();
}
+
+
+//**************************************************************
+XGUI_SalomeViewer* XGUI_Workshop::salomeViewer() const
+{
+ return mySalomeConnector->viewer();
+}