void UIContext::onRemoveDocument(doc::Document* doc) { if (doc == m_lastSelectedDoc) m_lastSelectedDoc = nullptr; // We don't destroy views in batch mode. if (isUIAvailable()) { Workspace* workspace = App::instance()->getMainWindow()->getWorkspace(); DocumentViews docViews; // Collect all views related to the document. for (WorkspaceView* view : *workspace) { if (DocumentView* docView = dynamic_cast<DocumentView*>(view)) { if (docView->getDocument() == doc) { docViews.push_back(docView); } } } for (DocumentView* docView : docViews) { workspace->removeView(docView); delete docView; } } }
DocumentView* UIContext::activeView() const { if (!isUIAvailable()) return NULL; Workspace* workspace = App::instance()->getMainWindow()->getWorkspace(); WorkspaceView* view = workspace->activeView(); if (DocumentView* docView = dynamic_cast<DocumentView*>(view)) return docView; else return NULL; }
DocumentView* UIContext::activeView() const { if (!isUIAvailable()) return nullptr; Workspace* workspace = App::instance()->workspace(); if (!workspace) return nullptr; WorkspaceView* view = workspace->activeView(); if (DocumentView* docView = dynamic_cast<DocumentView*>(view)) return docView; else return nullptr; }
void UIContext::onRemoveDocument(doc::Document* doc) { if (doc == m_lastSelectedDoc) m_lastSelectedDoc = nullptr; // We don't destroy views in batch mode. if (isUIAvailable()) { Workspace* workspace = App::instance()->workspace(); for (DocumentView* docView : getAllDocumentViews(doc)) { workspace->removeView(docView); delete docView; } } }
void UIContext::onGetActiveSite(Site* site) const { DocumentView* view = activeView(); if (view) { view->getSite(site); } // Default/dummy site (maybe for batch/command line mode) else if (!isUIAvailable()) { if (Document* doc = m_lastSelectedDoc) { site->document(doc); site->sprite(doc->sprite()); site->layer(doc->sprite()->indexToLayer(LayerIndex(0))); site->frame(0); } } }