connect(myOperationMgr, SIGNAL(operationStopped(ModuleBase_Operation*)),
SLOT(onOperationStopped(ModuleBase_Operation*)));
connect(myMainWindow, SIGNAL(exitKeySequence()), SLOT(onExit()));
- connect(myOperationMgr, SIGNAL(operationStarted()), myActionsMgr, SLOT(update()));
- connect(myOperationMgr, SIGNAL(operationStopped(ModuleBase_Operation*)), myActionsMgr,
- SLOT(update()));
+ // TODO(sbh): It seems that application works properly without update on operationStarted
+ connect(myOperationMgr, SIGNAL(operationStarted(ModuleBase_Operation*)),
+ myActionsMgr, SLOT(update()));
+ connect(myOperationMgr, SIGNAL(operationStopped(ModuleBase_Operation*)),
+ myActionsMgr, SLOT(update()));
connect(this, SIGNAL(errorOccurred(const QString&)), myErrorDlg, SLOT(addError(const QString&)));
}
//Initialize event listening
Events_Loop* aLoop = Events_Loop::loop();
aLoop->registerListener(this, Events_Error::errorID()); //!< Listening application errors.
- //TODO(sbh): Implement static method to extract event id [SEID]
- aLoop->registerListener(this, Events_Loop::eventByName(EVENT_FEATURE_LOADED));
- // TODO Is it good to use non standard event within workshop?
+ aLoop->registerListener(this, Events_Loop::eventByName(Config_FeatureMessage::GUI_EVENT()));
aLoop->registerListener(this, Events_Loop::eventByName(EVENT_OPERATION_LAUNCHED));
aLoop->registerListener(this, Events_Loop::eventByName(EVENT_OBJECT_UPDATED));
aLoop->registerListener(this, Events_Loop::eventByName(EVENT_OBJECT_CREATED));
}
//A message to start feature creation received.
- if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_FEATURE_LOADED)) {
+ if (theMessage->eventID() == Events_Loop::loop()->eventByName(Config_FeatureMessage::GUI_EVENT())) {
boost::shared_ptr<Config_FeatureMessage> aFeatureMsg =
boost::dynamic_pointer_cast<Config_FeatureMessage>(theMessage);
if (!aFeatureMsg->isInternal()) {
}
SessionPtr aMgr = ModelAPI_Session::get();
if (aMgr->hasModuleDocument()) {
- QAction* aUndoCmd;
- QAction* aRedoCmd;
+ QAction *aUndoCmd, *aRedoCmd;
foreach(QAction* aCmd, aCommands) {
QString aId = aCmd->data().toString();
if (aId == "UNDO_CMD")
// Enable all commands
aCmd->setEnabled(true);
}
- aUndoCmd->setEnabled(aMgr->canUndo());
- aRedoCmd->setEnabled(aMgr->canRedo());
+ aUndoCmd->setEnabled(aMgr->canUndo() && !aMgr->isOperation());
+ aRedoCmd->setEnabled(aMgr->canRedo() && !aMgr->isOperation());
} else {
foreach(QAction* aCmd, aCommands) {
QString aId = aCmd->data().toString();
if (theList.size() > 0)
myDisplayer->updateViewer();
}
+
+//**************************************************************
+void XGUI_Workshop::closeDocument()
+{
+ myDisplayer->closeLocalContexts();
+ myDisplayer->eraseAll();
+ objectBrowser()->clearContent();
+
+ SessionPtr aMgr = ModelAPI_Session::get();
+ aMgr->moduleDocument()->close();
+ objectBrowser()->clearContent();
+}