void Model_Session::closeAll()
{
Model_Application::getApplication()->deleteAllDocuments();
- static const Events_ID aDocChangeEvent = Events_Loop::eventByName(EVENT_DOCUMENT_CHANGED);
+ static const Events_ID aDocsCloseEvent = Events_Loop::eventByName(EVENT_DOCUMENTS_CLOSED);
myCurrentDoc = NULL;
- static std::shared_ptr<Events_Message> aMsg(new Events_Message(aDocChangeEvent));
+ static std::shared_ptr<Events_Message> aMsg(new Events_Message(aDocsCloseEvent));
Events_Loop::loop()->send(aMsg);
- Events_Loop::loop()->flush(aDocChangeEvent);
+ Events_Loop::loop()->flush(aDocsCloseEvent);
}
void Model_Session::startOperation(const std::string& theId, const bool theAttachedToNested)
{
return Model_Application::getApplication();
}
-#endif
\ No newline at end of file
+#endif
MAYBE_UNUSED static const char * EVENT_PLUGIN_LOADED = "PluginLoaded";
/// The active document becomes another one
MAYBE_UNUSED static const char * EVENT_DOCUMENT_CHANGED = "CurrentDocumentChanged";
+/// All documents closed
+MAYBE_UNUSED static const char * EVENT_DOCUMENTS_CLOSED = "AllDocumentsClosed";
/// Event ID that order of objects in group is changed,
/// so, tree must be fully recreated (movement of feature)
Events_Loop* aLoop = Events_Loop::loop();
aLoop->registerListener(this, Events_Loop::eventByName(EVENT_DOCUMENT_CHANGED));
+ aLoop->registerListener(this, Events_Loop::eventByName(EVENT_DOCUMENTS_CLOSED));
aLoop->registerListener(this, Events_Loop::eventByName(EVENT_OBJECT_TO_REDISPLAY));
aLoop->registerListener(this, Events_Loop::eventByName(EVENT_FEATURE_LICENSE_VALID));
//******************************************************
void PartSet_Module::processEvent(const std::shared_ptr<Events_Message>& theMessage)
{
- if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_DOCUMENT_CHANGED)) {
+ if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_DOCUMENTS_CLOSED)) {
+ closeDocument();
+ } else if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_DOCUMENT_CHANGED)) {
SessionPtr aMgr = ModelAPI_Session::get();
if (!aMgr->hasModuleDocument()) // if document is closed, do not call the document creation
return;