void MultiDocumentPanel::updateOrder() { const Array <Component*> oldList (components); if (mode == FloatingWindows) { components.clear(); for (int i = 0; i < getNumChildComponents(); ++i) { MultiDocumentPanelWindow* const dw = dynamic_cast <MultiDocumentPanelWindow*> (getChildComponent (i)); if (dw != nullptr) components.add (dw->getContentComponent()); } } else { if (tabComponent != nullptr) { Component* const current = tabComponent->getCurrentContentComponent(); if (current != nullptr) { components.removeValue (current); components.add (current); } } } if (components != oldList) activeDocumentChanged(); }
bool SessionManager::open(const QString& name_){ if(_docMgr.closeAllIfPossible()){ _currentSession = name_; SessionSettings s; QList<QStringList> views; s.load(_currentSession, views); if(views.size() == 1){ //open in the active view //to be sure another won't be activated for nothing _docMgr.blockSignals(true); _docMgr.open(views[0]); _docMgr.blockSignals(false); }else{ for(int i = 0; i < views.size(); i++){ _docMgr.blockSignals(true); _docMgr.open(views[i], i); _docMgr.blockSignals(false); } } //update main window emit activeDocumentChanged(_docMgr.getActiveDocument()); return true; }else{ error(); return false; } }
void MultiDocumentPanel::updateOrder() { auto oldList = components; if (mode == FloatingWindows) { components.clear(); for (auto* child : getChildren()) if (auto* dw = dynamic_cast<MultiDocumentPanelWindow*> (child)) components.add (dw->getContentComponent()); } else { if (tabComponent != nullptr) { if (auto* current = tabComponent->getCurrentContentComponent()) { components.removeFirstMatchingValue (current); components.add (current); } } } if (components != oldList) activeDocumentChanged(); }
void DocumentManager::setActiveDocument(IDocument *document) { if (document != m_activeDocument) { m_activeDocument = document; emit (activeDocumentChanged(m_activeDocument)); } }
void DocumentManager::on_activeDocumentChange(IDocument &document) { if (&document != m_activeDocument) { m_activeDocument = &document; emit(activeDocumentChanged(this->m_activeDocument)); } }
void FileManager::activateDocument(Document* document) { qDebug() << "FileManager::activateDocument(Document* document)"; // filename = cleanPath(filename); // if(!m_documentMap.contains(filename)) // return false; m_activeDocument = document;//m_documentMap.value(filename); emit activeDocumentChanged(m_activeDocument); // return true; }
void DocumentManager::closeAll() { for (IDocument *d : m_documents) { emit(closing(d)); delete d; } m_documents.clear(); m_activeDocument = NULL; emit (activeDocumentChanged(NULL)); }
void TourDuMondeDocumentController::setDocument(ITourDuMondeDocument *doc) { m_document.reset(doc); if (m_document) { connect(m_document.get(), &ITourDuMondeDocument::nameChanged, this, &ITourDuMondeDocumentController::activeDocumentNameChanged); } emit activeDocumentChanged(m_document.get()); emit activeDocumentNameChanged(activeDocumentName()); }
void DocumentManager::requestFocus(IDocument *document) { if (document != NULL) { int i = m_documents.indexOf(document); if (i >= 0) { m_activeDocument = m_documents[i]; emit (activeDocumentChanged(m_activeDocument)); } } }
void FileManager::closeDocument(Document* document) { emit aboutToCloseDocument(document); m_documentMap.remove(document->documentInfo()->absoluteFilePath()); m_documents.removeAll(document); // m_documents.removeOne(document); if(m_activeDocument == document) { m_activeDocument = 0; emit activeDocumentChanged(m_activeDocument); } Q_ASSERT(!m_documents.contains(document)); delete document; }
void DocumentManager::addDocument( IDocument *document) { if(!m_documents.contains(document)) { m_documents.append(document); this->m_activeDocument = document; emit(added(document)); emit(activeDocumentChanged(document)); } }
MainWindow::~MainWindow() { // Save recent file entries //actionOpenRecent_->saveEntries(KGlobal::config()->group("Recent Files")); // deselect activeDocument_ = 0L; activeDocumentChanged(-1); for (int i = 0; i < documents_.size(); ++i) delete documents_[i].second; for (int i = 0; i < 4; ++i) { delete renderWidget_[i]; delete glContext_[i]; } }
void DocumentManager::closeDocument( IDocument *document) { if (document != NULL) { int i = m_documents.indexOf(document); if (i >= 0) { m_documents.removeAt(i); emit (closing(document)); if (this->m_activeDocument == document) { this->m_activeDocument = m_documents.count() == 0 ? NULL : i == 0 ? m_documents[0] : m_documents[i-1]; emit(activeDocumentChanged(this->m_activeDocument)); } delete document; } } }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { activeDocument_ = 0L; newcnt_ = 1; // set up the main window init(); initGui(); initActions(); initMenus(); initToolBars(); initConnections(); Config *cfg = Application::self()->config(); QByteArray state = cfg->state(); QByteArray geometry = cfg->geometry(); if (!state.isEmpty()) restoreState(state); if (!geometry.isEmpty()) restoreGeometry(geometry); // to make sure that there is no open models. activeDocumentChanged(-1); emit actionEnabled(false); // parse cmd line args QStringList args = qApp->arguments(); for (int i = 1; i < args.size(); ++i) { const QString &arg = args[i]; if (!arg.startsWith("-")) openFile(arg); } setStatusMessage(tr("Ready...")); }
bool MultiDocumentPanel::closeDocument (Component* component, const bool checkItsOkToCloseFirst) { if (components.contains (component)) { if (checkItsOkToCloseFirst && ! tryToCloseDocument (component)) return false; component->removeComponentListener (this); const bool shouldDelete = MultiDocHelpers::shouldDeleteComp (component); component->getProperties().remove ("mdiDocumentDelete_"); component->getProperties().remove ("mdiDocumentBkg_"); if (mode == FloatingWindows) { for (int i = getNumChildComponents(); --i >= 0;) { MultiDocumentPanelWindow* const dw = dynamic_cast <MultiDocumentPanelWindow*> (getChildComponent (i)); if (dw != nullptr && dw->getContentComponent() == component) { ScopedPointer<MultiDocumentPanelWindow> (dw)->clearContentComponent(); break; } } if (shouldDelete) delete component; components.removeValue (component); if (isFullscreenWhenOneDocument() && components.size() == 1) { for (int i = getNumChildComponents(); --i >= 0;) { ScopedPointer<MultiDocumentPanelWindow> dw (dynamic_cast <MultiDocumentPanelWindow*> (getChildComponent (i))); if (dw != nullptr) dw->clearContentComponent(); } addAndMakeVisible (components.getFirst()); } } else { jassert (components.indexOf (component) >= 0); if (tabComponent != nullptr) { for (int i = tabComponent->getNumTabs(); --i >= 0;) if (tabComponent->getTabContentComponent (i) == component) tabComponent->removeTab (i); } else { removeChildComponent (component); } if (shouldDelete) delete component; if (tabComponent != nullptr && tabComponent->getNumTabs() <= numDocsBeforeTabsUsed) tabComponent = nullptr; components.removeValue (component); if (components.size() > 0 && tabComponent == nullptr) addAndMakeVisible (components.getFirst()); } resized(); activeDocumentChanged(); } else { jassertfalse; } return true; }
bool MultiDocumentPanel::addDocument (Component* const component, const Colour& docColour, const bool deleteWhenRemoved) { // If you try passing a full DocumentWindow or ResizableWindow in here, you'll end up // with a frame-within-a-frame! Just pass in the bare content component. jassert (dynamic_cast <ResizableWindow*> (component) == nullptr); if (component == nullptr || (maximumNumDocuments > 0 && components.size() >= maximumNumDocuments)) return false; components.add (component); component->getProperties().set ("mdiDocumentDelete_", deleteWhenRemoved); component->getProperties().set ("mdiDocumentBkg_", (int) docColour.getARGB()); component->addComponentListener (this); if (mode == FloatingWindows) { if (isFullscreenWhenOneDocument()) { if (components.size() == 1) { addAndMakeVisible (component); } else { if (components.size() == 2) addWindow (components.getFirst()); addWindow (component); } } else { addWindow (component); } } else { if (tabComponent == nullptr && components.size() > numDocsBeforeTabsUsed) { addAndMakeVisible (tabComponent = new MDITabbedComponentInternal()); Array <Component*> temp (components); for (int i = 0; i < temp.size(); ++i) tabComponent->addTab (temp[i]->getName(), docColour, temp[i], false); resized(); } else { if (tabComponent != nullptr) tabComponent->addTab (component->getName(), docColour, component, false); else addAndMakeVisible (component); } setActiveDocument (component); } resized(); activeDocumentChanged(); return true; }