bool KateViewManager::createView ( KTextEditor::Document *doc ) { if (m_blockViewCreationAndActivation) return false; // create doc if (!doc) doc = KateDocManager::self()->createDoc (); // create view, registers its XML gui itself KTextEditor::View *view = (KTextEditor::View *) doc->createView (activeViewSpace()->stack); m_viewList.append (view); m_activeStates[view] = false; // disable settings dialog action delete view->actionCollection()->action( "set_confdlg" ); delete view->actionCollection()->action( "editor_options" ); //view->setContextMenu(view->defaultContextMenu()); connect(view, SIGNAL(dropEventPass(QDropEvent *)), mainWindow(), SLOT(slotDropEvent(QDropEvent *))); connect(view, SIGNAL(focusIn(KTextEditor::View *)), this, SLOT(activateSpace(KTextEditor::View *))); activeViewSpace()->addView( view ); viewCreated(view); activateView( view ); return true; }
void KateViewManager::documentCreated (KTextEditor::Document *doc) { if (m_blockViewCreationAndActivation) return; if (!activeView()) activateView (doc); }
void HandleViewList::currentItemChanged( QTreeWidgetItem * current, QTreeWidgetItem * ) { // First, update the item info ListWidget. // If current is NULL, this will clear the item info ListWidget updateItemInfo(current); if (current) { // If current is not NULL, set the status of "Delete" and "AddView" buttons // based on the type of the current node; switch ( current->type() ) { case DatasetItemType : m_viewListDock->m_btDelete->setEnabled(true); m_viewListDock->m_btAddView->setEnabled(false); break; case PipelineItemType : m_viewListDock->m_btDelete->setEnabled(false); m_viewListDock->m_btAddView->setEnabled(true); break; case ViewItemType : m_viewListDock->m_btDelete->setEnabled(true); m_viewListDock->m_btAddView->setEnabled(false); activateView(current); break; } } else { // if current is NULL, disable both "Delete" and "AddView" buttons. m_viewListDock->m_btDelete->setEnabled(false); m_viewListDock->m_btAddView->setEnabled(false); } }
void Example2Main::splitHorizontal() { if (!activeView()) return; Sublime::View *newView = activeView()->document()->createView(); area()->addView(newView, activeView(), Qt::Horizontal); activateView(newView); }
void Container::widgetActivated(int idx) { if (idx < 0) return; if (QWidget* w = d->stack->widget(idx)) { if(d->viewForWidget.contains(w)) emit activateView(d->viewForWidget[w]); } }
void KateViewManager::reactivateActiveView() { KTextEditor::View *view = activeView(); if (view) { m_activeStates[view] = false; activateView(view); } }
void KateViewManager::activatePrevView() { int i = m_viewSpaceList.indexOf (activeViewSpace()) - 1; if (i < 0) i = m_viewSpaceList.count() - 1; setActiveSpace (m_viewSpaceList.at(i)); activateView(m_viewSpaceList.at(i)->currentView()); }
void KateViewManager::activateNextView() { int i = m_viewSpaceList.indexOf (activeViewSpace()) + 1; if (i >= m_viewSpaceList.count()) i = 0; setActiveSpace (m_viewSpaceList.at(i)); activateView(m_viewSpaceList.at(i)->currentView()); }
KTextEditor::View* KateViewManager::activeView () { if (m_activeViewRunning) return 0L; m_activeViewRunning = true; for ( QList<KTextEditor::View*>::const_iterator it = m_viewList.constBegin(); it != m_viewList.constEnd(); ++it ) { if ( m_activeStates[*it] ) { m_activeViewRunning = false; return *it; } } // if we get to here, no view isActive() // first, try to get one from activeViewSpace() KateViewSpace* vs = activeViewSpace(); if ( vs && vs->currentView() ) { activateView (vs->currentView()); m_activeViewRunning = false; return vs->currentView(); } // last attempt: just pick first if ( !m_viewList.isEmpty() ) { activateView (m_viewList.first()); m_activeViewRunning = false; return m_viewList.first(); } m_activeViewRunning = false; // no views exists! return 0L; }
void HelpContentsView::onBackAction() { if(mBrowser->canGoBack()) { mBrowser->back(); } else { emit activateView(PreviousView); } }
void KateViewManager::activateSpace (KTextEditor::View* v) { if (!v) return; KateViewSpace* vs = (KateViewSpace*)v->parentWidget()->parentWidget(); if (!vs->isActiveSpace()) { setActiveSpace (vs); activateView(v); } }
KTextEditor::View *KateViewManager::openUrlWithView (const KUrl &url, const QString& encoding) { KTextEditor::Document *doc = KateDocManager::self()->openUrl (url, encoding); if (!doc) return 0; if (!doc->url().isEmpty()) m_mainWindow->fileOpenRecent->addUrl( doc->url() ); activateView( doc ); return activeView (); }
KTextEditor::Document *KateViewManager::openUrl (const KUrl &url, const QString& encoding, bool activate, bool isTempFile, const KateDocumentInfo& docInfo) { KTextEditor::Document *doc = KateDocManager::self()->openUrl (url, encoding, isTempFile, docInfo); if (!doc->url().isEmpty()) m_mainWindow->fileOpenRecent->addUrl( doc->url() ); if (activate) activateView( doc ); return doc; }
MainWindow::MainWindow(RootSection* document, const KComponentData &componentData) : m_doc(document), m_activeView(0), m_dockerManager(0) { Q_ASSERT(componentData.isValid()); KGlobal::setActiveComponent(componentData); // then, setup our actions setupActions(); // Create the docker manager after setting up the action m_dockerManager = new DockerManager(this); // Setup the view view = new View(m_doc, this); setCentralWidget(view); // a call to KXmlGuiWindow::setupGUI() populates the GUI // with actions, using KXMLGUI. // It also applies the saved mainwindow settings, if any, and ask the // mainwindow to automatically save settings if changed: window size, // toolbar position, icon size, etc. setupGUI(); activateView(view); // Position and show toolbars according to user's preference setAutoSaveSettings(componentData.componentName()); const int scnum = QApplication::desktop()->screenNumber(parentWidget()); QRect desk = QApplication::desktop()->screenGeometry(scnum); // if the desktop is virtual then use virtual screen size if(QApplication::desktop()->isVirtualDesktop()) desk = QApplication::desktop()->screenGeometry(QApplication::desktop()->screen()); KConfigGroup config(KGlobal::config(), componentData.componentName()); const QSize size(config.readEntry(QString::fromLatin1("Width %1").arg(desk.width()), 0), config.readEntry(QString::fromLatin1("Height %1").arg(desk.height()), 0)); resize(size); foreach(QDockWidget * wdg, m_dockWidgets) { if((wdg->features() & QDockWidget::DockWidgetClosable) == 0) { wdg->setVisible(true); } } forceDockTabFonts(); }
KTextEditor::View *KateViewManager::activateView( KTextEditor::Document *d ) { // no doc with this id found if (!d) return activeView (); // activate existing view if possible if ( activeViewSpace()->showView(d) ) { activateView( activeViewSpace()->currentView() ); return activeView (); } // create new view otherwise createView (d); return activeView (); }
void KateViewManager::slotDocumentOpen () { KTextEditor::View *cv = activeView(); if (cv) { KEncodingFileDialog::Result r = KEncodingFileDialog::getOpenUrlsAndEncoding( KateDocManager::self()->editor()->defaultEncoding(), cv->document()->url().url(), QString(), m_mainWindow, i18n("Open File")); KateDocumentInfo docInfo; docInfo.openedByUser = true; KTextEditor::Document *lastID = 0; for (KUrl::List::Iterator i = r.URLs.begin(); i != r.URLs.end(); ++i) lastID = openUrl( *i, r.encoding, false, false, docInfo); if (lastID) activateView (lastID); } }
void KateViewManager::activateDocument(const QModelIndex &index) { QVariant v = index.data(KateDocManager::DocumentRole); if (!v.isValid()) return; activateView(v.value<KTextEditor::Document*>()); }
void KateViewManager::removeViewSpace (KateViewSpace *viewspace) { // abort if viewspace is 0 if (!viewspace) return; // abort if this is the last viewspace if (m_viewSpaceList.count() < 2) return; // get current splitter QSplitter *currentSplitter = qobject_cast<QSplitter*>(viewspace->parentWidget()); // no splitter found, bah if (!currentSplitter) return; // delete views of the viewspace while (viewspace->viewCount() > 0 && viewspace->currentView()) { deleteView( viewspace->currentView(), false ); } // cu viewspace m_viewSpaceList.removeAt( m_viewSpaceList.indexOf( viewspace ) ); delete viewspace; // at this point, the splitter has exactly 1 child Q_ASSERT( currentSplitter->count() == 1 ); // if we are not the root splitter, move the child one level up and delete // the splitter then. if (currentSplitter != this) { // get parent splitter QSplitter *parentSplitter = qobject_cast<QSplitter*>(currentSplitter->parentWidget()); // only do magic if found ;) if (parentSplitter) { int index = parentSplitter->indexOf (currentSplitter); // save current splitter size, as the removal of currentSplitter looses the info QList<int> parentSizes = parentSplitter->sizes(); parentSplitter->insertWidget (index, currentSplitter->widget (0)); if (qVersion() == QLatin1String("4.6.2")) currentSplitter->hide(); // bug in Qt v4.6.2, prevents crash (bug:232140), line can be removed once we are sure that noone uses Qt 4.6.2 anymore. delete currentSplitter; // now restore the sizes again parentSplitter->setSizes(parentSizes); } } else if( QSplitter* splitter = qobject_cast<QSplitter*>(currentSplitter->widget(0)) ) { // we are the root splitter and have only one child, which is also a splitter // -> eliminate the redundant splitter and move both children into the root splitter QList<int> sizes = splitter->sizes(); // adapt splitter orientation to the splitter we are about to delete currentSplitter->setOrientation(splitter->orientation()); currentSplitter->addWidget( splitter->widget(0) ); currentSplitter->addWidget( splitter->widget(0) ); delete splitter; currentSplitter->setSizes( sizes ); } // find the view that is now active. KTextEditor::View* v = activeViewSpace()->currentView(); if ( v ) activateView( v ); updateViewSpaceActions (); emit viewChanged(); }