diff options
author | dt <qtc-committer@nokia.com> | 2010-09-14 15:15:57 +0200 |
---|---|---|
committer | dt <qtc-committer@nokia.com> | 2010-09-14 15:23:11 +0200 |
commit | 08ccda586254de7ff4c66ccdb98d9843847080be (patch) | |
tree | f5a2f84c816c92f5beeb71712bc4abacc0f93520 | |
parent | f068e1159615ee2e1140008359e998ed95c778fd (diff) | |
download | qt-creator-08ccda586254de7ff4c66ccdb98d9843847080be.tar.gz |
EditorManager: Change openEditor/activateEditor to not do mode switching
Also introduce a indirection, modes have now types, edit and debug have
the same type, and editors do have a prefered type of modes instead of a
prefered mode.
That fixes the bug that if the prefered qml editing mode was set to
design, then in switching between qml editors would
- in Edit Mode: stay in edit mode
- in Debug Mode: switch to debug mode
52 files changed, 139 insertions, 79 deletions
diff --git a/src/plugins/coreplugin/basemode.h b/src/plugins/coreplugin/basemode.h index 77ead779b8..d800ceb50f 100644 --- a/src/plugins/coreplugin/basemode.h +++ b/src/plugins/coreplugin/basemode.h @@ -58,6 +58,7 @@ public: int priority() const { return m_priority; } QWidget *widget() { return m_widget; } QString id() const { return m_id; } + QString type() const { return m_type; } Context context() const { return m_context; } QString contextHelpId() const { return m_helpId; } @@ -66,6 +67,7 @@ public: void setPriority(int priority) { m_priority = priority; } void setWidget(QWidget *widget) { m_widget = widget; } void setId(const QString &id) { m_id = id; } + void setType(const QString &type) { m_type = type; } void setContextHelpId(const QString &helpId) { m_helpId = helpId; } void setContext(const Context &context) { m_context = context; } @@ -75,6 +77,7 @@ private: int m_priority; QWidget *m_widget; QString m_id; + QString m_type; QString m_helpId; Context m_context; }; diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h index 13081d5ecc..32c525ddd5 100644 --- a/src/plugins/coreplugin/coreconstants.h +++ b/src/plugins/coreplugin/coreconstants.h @@ -68,8 +68,11 @@ const char * const IDE_REVISION_STR = ""; //modes const char * const MODE_WELCOME = "Welcome"; +const char * const MODE_WELCOME_TYPE = "Type.Welcome"; const char * const MODE_EDIT = "Edit"; +const char * const MODE_EDIT_TYPE = "Type.Edit"; const char * const MODE_DESIGN = "Design"; +const char * const MODE_DESIGN_TYPE = "Type.Design"; const int P_MODE_WELCOME = 100; const int P_MODE_EDIT = 90; const int P_MODE_DESIGN = 89; diff --git a/src/plugins/coreplugin/designmode.cpp b/src/plugins/coreplugin/designmode.cpp index 44965576c0..f3d6590e18 100644 --- a/src/plugins/coreplugin/designmode.cpp +++ b/src/plugins/coreplugin/designmode.cpp @@ -164,6 +164,11 @@ QString DesignMode::id() const return QLatin1String(Constants::MODE_DESIGN); } +QString DesignMode::type() const +{ + return QLatin1String(Constants::MODE_DESIGN_TYPE); +} + QStringList DesignMode::registeredMimeTypes() const { QStringList rc; diff --git a/src/plugins/coreplugin/designmode.h b/src/plugins/coreplugin/designmode.h index 6eee5e7782..7c23c73a82 100644 --- a/src/plugins/coreplugin/designmode.h +++ b/src/plugins/coreplugin/designmode.h @@ -73,6 +73,7 @@ public: QIcon icon() const; int priority() const; QString id() const; + QString type() const; signals: void actionsUpdated(Core::IEditor *editor); diff --git a/src/plugins/coreplugin/editmode.cpp b/src/plugins/coreplugin/editmode.cpp index 2470c4f4d6..f8ba81af0b 100644 --- a/src/plugins/coreplugin/editmode.cpp +++ b/src/plugins/coreplugin/editmode.cpp @@ -114,6 +114,11 @@ QString EditMode::id() const return QLatin1String(Constants::MODE_EDIT); } +QString EditMode::type() const +{ + return QLatin1String(Constants::MODE_EDIT_TYPE); +} + Context EditMode::context() const { static Context contexts(Constants::C_EDIT_MODE, diff --git a/src/plugins/coreplugin/editmode.h b/src/plugins/coreplugin/editmode.h index 0e2900cd39..3e289a73fa 100644 --- a/src/plugins/coreplugin/editmode.h +++ b/src/plugins/coreplugin/editmode.h @@ -58,6 +58,7 @@ public: int priority() const; QWidget* widget(); QString id() const; + QString type() const; Context context() const; private slots: diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index 1b701a3538..3f2f105014 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -970,7 +970,7 @@ Core::IEditor *EditorManager::activateEditor(Core::Internal::EditorView *view, C if (!(flags & NoActivate)) { setCurrentEditor(editor, (flags & IgnoreNavigationHistory)); - if (!(flags & NoModeSwitch)) { + if (flags & ModeSwitch) { switchToPreferedMode(); } if (isVisible()) @@ -1254,13 +1254,14 @@ void EditorManager::switchToPreferedMode() QString preferedMode; // Figure out prefered mode for editor if (m_d->m_currentEditor) - preferedMode = m_d->m_currentEditor->preferredMode(); + preferedMode = m_d->m_currentEditor->preferredModeType(); if (preferedMode.isEmpty()) - preferedMode = Constants::MODE_EDIT; + preferedMode = Constants::MODE_EDIT_TYPE; - if (m_d->m_core->modeManager()->currentMode()->id() != preferedMode) - m_d->m_core->modeManager()->activateMode(preferedMode); + if (m_d->m_core->modeManager()->currentMode()->type() != preferedMode) { + m_d->m_core->modeManager()->activateModeType(preferedMode); + } } IEditor *EditorManager::openEditorWithContents(const QString &editorId, diff --git a/src/plugins/coreplugin/editormanager/editormanager.h b/src/plugins/coreplugin/editormanager/editormanager.h index a67cb271a8..68c22f1e34 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.h +++ b/src/plugins/coreplugin/editormanager/editormanager.h @@ -109,7 +109,7 @@ public: enum OpenEditorFlag { NoActivate = 1, IgnoreNavigationHistory = 2, - NoModeSwitch = 4 + ModeSwitch = 4 }; Q_DECLARE_FLAGS(OpenEditorFlags, OpenEditorFlag) diff --git a/src/plugins/coreplugin/editormanager/editorview.cpp b/src/plugins/coreplugin/editormanager/editorview.cpp index d53f8d2f95..07ba37fd2f 100644 --- a/src/plugins/coreplugin/editormanager/editorview.cpp +++ b/src/plugins/coreplugin/editormanager/editorview.cpp @@ -276,9 +276,9 @@ void EditorView::listSelectionActivated(int index) EditorManager *em = CoreImpl::instance()->editorManager(); QAbstractItemModel *model = EditorManager::instance()->openedEditorsModel(); if (IEditor *editor = model->data(model->index(index, 0), Qt::UserRole).value<IEditor*>()) { - em->activateEditor(this, editor); + em->activateEditor(this, editor, Core::EditorManager::ModeSwitch); } else { - em->activateEditor(model->index(index, 0), this); + em->activateEditor(model->index(index, 0), this, Core::EditorManager::ModeSwitch); } } @@ -445,9 +445,11 @@ void EditorView::goBackInNavigationHistory() EditLocation location = m_navigationHistory.at(m_currentNavigationHistoryPosition); IEditor *editor; if (location.file) { - editor = em->activateEditor(this, location.file, EditorManager::IgnoreNavigationHistory); + editor = em->activateEditor(this, location.file, + EditorManager::IgnoreNavigationHistory | EditorManager::ModeSwitch); } else { - editor = em->openEditor(this, location.fileName, location.id, EditorManager::IgnoreNavigationHistory); + editor = em->openEditor(this, location.fileName, location.id, + EditorManager::IgnoreNavigationHistory | EditorManager::ModeSwitch); if (!editor) { m_navigationHistory.removeAt(m_currentNavigationHistoryPosition); continue; @@ -469,7 +471,8 @@ void EditorView::goForwardInNavigationHistory() EditLocation location = m_navigationHistory.at(m_currentNavigationHistoryPosition); IEditor *editor; if (location.file) { - editor = em->activateEditor(this, location.file, EditorManager::IgnoreNavigationHistory); + editor = em->activateEditor(this, location.file, + EditorManager::IgnoreNavigationHistory | EditorManager::ModeSwitch); } else { editor = em->openEditor(this, location.fileName, location.id, EditorManager::IgnoreNavigationHistory); if (!editor) { diff --git a/src/plugins/coreplugin/editormanager/ieditor.h b/src/plugins/coreplugin/editormanager/ieditor.h index 58dd9060d8..3d8b7eb996 100644 --- a/src/plugins/coreplugin/editormanager/ieditor.h +++ b/src/plugins/coreplugin/editormanager/ieditor.h @@ -65,7 +65,7 @@ public: virtual QWidget *toolBar() = 0; - virtual QString preferredMode() const { return QString(); } + virtual QString preferredModeType() const { return QString(); } signals: void changed(); diff --git a/src/plugins/coreplugin/editormanager/openeditorsview.cpp b/src/plugins/coreplugin/editormanager/openeditorsview.cpp index f9559a7044..c8387ff25b 100644 --- a/src/plugins/coreplugin/editormanager/openeditorsview.cpp +++ b/src/plugins/coreplugin/editormanager/openeditorsview.cpp @@ -190,7 +190,7 @@ void OpenEditorsWidget::handleClicked(const QModelIndex &index) void OpenEditorsWidget::activateEditor(const QModelIndex &index) { m_ui.editorList->selectionModel()->select(index, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); - EditorManager::instance()->activateEditor(index); + EditorManager::instance()->activateEditor(index, 0, EditorManager::ModeSwitch); } void OpenEditorsWidget::closeEditor(const QModelIndex &index) diff --git a/src/plugins/coreplugin/editormanager/openeditorswindow.cpp b/src/plugins/coreplugin/editormanager/openeditorswindow.cpp index 399ab26486..e74ba2ff8c 100644 --- a/src/plugins/coreplugin/editormanager/openeditorswindow.cpp +++ b/src/plugins/coreplugin/editormanager/openeditorswindow.cpp @@ -277,9 +277,10 @@ void OpenEditorsWindow::selectEditor(QTreeWidgetItem *item) return; if (IFile *file = item->data(0, Qt::UserRole).value<IFile*>()) { EditorView *view = item->data(0, Qt::UserRole+1).value<EditorView*>(); - EditorManager::instance()->activateEditor(view, file); + EditorManager::instance()->activateEditor(view, file, Core::EditorManager::ModeSwitch); } else { - EditorManager::instance()->openEditor(item->toolTip(0), item->data(0, Qt::UserRole+2).toByteArray()); + EditorManager::instance()->openEditor(item->toolTip(0), item->data(0, Qt::UserRole+2).toByteArray(), + Core::EditorManager::ModeSwitch); } } diff --git a/src/plugins/coreplugin/editortoolbar.cpp b/src/plugins/coreplugin/editortoolbar.cpp index 09b57296dd..73d8f8eb11 100644 --- a/src/plugins/coreplugin/editortoolbar.cpp +++ b/src/plugins/coreplugin/editortoolbar.cpp @@ -256,12 +256,12 @@ void EditorToolBar::changeActiveEditor(int row) if (editor) { if (editor != em->currentEditor()) - em->activateEditor(editor, EditorManager::NoModeSwitch); + em->activateEditor(editor); } else { //em->activateEditor(model->index(index, 0), this); QString fileName = model->data(modelIndex, Qt::UserRole + 1).toString(); QByteArray kind = model->data(modelIndex, Qt::UserRole + 2).toByteArray(); - editor = em->openEditor(fileName, kind, EditorManager::NoModeSwitch); + editor = em->openEditor(fileName, kind); } if (editor) { m_editorList->setCurrentIndex(m_editorsListModel->indexOf(editor).row()); diff --git a/src/plugins/coreplugin/imode.h b/src/plugins/coreplugin/imode.h index 86b4030cc0..7b316f23e3 100644 --- a/src/plugins/coreplugin/imode.h +++ b/src/plugins/coreplugin/imode.h @@ -52,6 +52,7 @@ public: virtual QIcon icon() const = 0; virtual int priority() const = 0; virtual QString id() const = 0; + virtual QString type() const = 0; void setEnabled(bool enabled); bool isEnabled() const; diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index d8e2132936..77a57c5bcf 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -964,7 +964,7 @@ void MainWindow::openFileWith() if (isExternal) { editorManager()->openExternalEditor(fileName, editorId); } else { - editorManager()->openEditor(fileName, editorId); + editorManager()->openEditor(fileName, editorId, Core::EditorManager::ModeSwitch); } } } @@ -1272,7 +1272,7 @@ void MainWindow::openRecentFile() if (const QAction *action = qobject_cast<const QAction*>(sender())) { const QString fileName = action->data().toString(); if (!fileName.isEmpty()) - editorManager()->openEditor(fileName); + editorManager()->openEditor(fileName, QString(), Core::EditorManager::ModeSwitch); } } diff --git a/src/plugins/coreplugin/modemanager.cpp b/src/plugins/coreplugin/modemanager.cpp index 091bcff4f4..1b0a14e329 100644 --- a/src/plugins/coreplugin/modemanager.cpp +++ b/src/plugins/coreplugin/modemanager.cpp @@ -149,6 +149,19 @@ IMode *ModeManager::mode(const QString &id) const return 0; } +void ModeManager::activateModeType(const QString &type) +{ + int index = -1; + for (int i = 0; i < d->m_modes.count(); ++i) { + if (d->m_modes.at(i)->type() == type) { + index = i; + break; + } + } + if (index != -1) + d->m_modeStack->setCurrentIndex(index); +} + void ModeManager::activateMode(const QString &id) { const int index = indexOf(id); diff --git a/src/plugins/coreplugin/modemanager.h b/src/plugins/coreplugin/modemanager.h index ea0fb71618..b0939e88ee 100644 --- a/src/plugins/coreplugin/modemanager.h +++ b/src/plugins/coreplugin/modemanager.h @@ -66,6 +66,8 @@ public: void addProjectSelector(QAction *action); void addWidget(QWidget *widget); + void activateModeType(const QString &type); + signals: void currentModeAboutToChange(Core::IMode *mode); diff --git a/src/plugins/cpaster/cpasterplugin.cpp b/src/plugins/cpaster/cpasterplugin.cpp index 492d91f384..f4908a43a8 100644 --- a/src/plugins/cpaster/cpasterplugin.cpp +++ b/src/plugins/cpaster/cpasterplugin.cpp @@ -342,7 +342,7 @@ void CodepasterPlugin::finishFetch(const QString &titleDescription, Core::IEditor* editor = EditorManager::instance()->openEditor(fileName); QTC_ASSERT(editor, return) editor->setDisplayName(titleDescription); - EditorManager::instance()->activateEditor(editor); + EditorManager::instance()->activateEditor(editor, Core::EditorManager::ModeSwitch); } Q_EXPORT_PLUGIN(CodepasterPlugin) diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp index 397cb91280..6355c3e3f2 100644 --- a/src/plugins/cpptools/cppfilesettingspage.cpp +++ b/src/plugins/cpptools/cppfilesettingspage.cpp @@ -285,7 +285,8 @@ void CppFileSettingsWidget::slotEdit() QString path = licenseTemplatePath(); // Edit existing file with C++ if (!path.isEmpty()) { - Core::EditorManager::instance()->openEditor(path, QLatin1String(CppEditor::Constants::CPPEDITOR_ID)); + Core::EditorManager::instance()->openEditor(path, QLatin1String(CppEditor::Constants::CPPEDITOR_ID), + Core::EditorManager::ModeSwitch); return; } // Pick a file name and write new template, edit with C++ @@ -301,7 +302,8 @@ void CppFileSettingsWidget::slotEdit() file.write(tr(licenseTemplateTemplate).toUtf8()); file.close(); setLicenseTemplatePath(path); - Core::EditorManager::instance()->openEditor(path, QLatin1String(CppEditor::Constants::CPPEDITOR_ID)); + Core::EditorManager::instance()->openEditor(path, QLatin1String(CppEditor::Constants::CPPEDITOR_ID), + Core::EditorManager::ModeSwitch); } // --------------- CppFileSettingsPage diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index b0cd403ef3..6029f33c4a 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -304,9 +304,11 @@ void CppFindReferences::searchFinished() void CppFindReferences::openEditor(const Find::SearchResultItem &item) { if (item.path.size() > 0) { - TextEditor::BaseTextEditor::openEditorAt(item.path.first(), item.lineNumber, item.textMarkPos); + TextEditor::BaseTextEditor::openEditorAt(item.path.first(), item.lineNumber, item.textMarkPos, + QString(), + Core::EditorManager::ModeSwitch); } else { - Core::EditorManager::instance()->openEditor(item.text); + Core::EditorManager::instance()->openEditor(item.text, QString(), Core::EditorManager::ModeSwitch); } } diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp index e20b3339ef..c904002cd8 100644 --- a/src/plugins/cvs/cvsplugin.cpp +++ b/src/plugins/cvs/cvsplugin.cpp @@ -557,7 +557,7 @@ void CVSPlugin::cvsDiff(const QString &workingDir, const QStringList &files) // Show in the same editor if diff has been executed before if (Core::IEditor *editor = locateEditor("originalFileName", id)) { editor->createNew(output); - Core::EditorManager::instance()->activateEditor(editor); + Core::EditorManager::instance()->activateEditor(editor, Core::EditorManager::ModeSwitch); setDiffBaseDirectory(editor, workingDir); return; } @@ -571,7 +571,8 @@ void CVSPlugin::cvsDiff(const QString &workingDir, const QStringList &files) CVSSubmitEditor *CVSPlugin::openCVSSubmitEditor(const QString &fileName) { - Core::IEditor *editor = Core::EditorManager::instance()->openEditor(fileName, QLatin1String(Constants::CVSCOMMITEDITOR_ID)); + Core::IEditor *editor = Core::EditorManager::instance()->openEditor(fileName, QLatin1String(Constants::CVSCOMMITEDITOR_ID), + Core::EditorManager::ModeSwitch); CVSSubmitEditor *submitEditor = qobject_cast<CVSSubmitEditor*>(editor); QTC_ASSERT(submitEditor, /**/); submitEditor->registerActions(m_submitUndoAction, m_submitRedoAction, m_submitCurrentLogAction, m_submitDiffAction); @@ -819,7 +820,7 @@ void CVSPlugin::filelog(const QString &workingDir, // the common usage pattern of continuously changing and diffing a file if (Core::IEditor *editor = locateEditor("logFileName", id)) { editor->createNew(response.stdOut); - Core::EditorManager::instance()->activateEditor(editor); + Core::EditorManager::instance()->activateEditor(editor, Core::EditorManager::ModeSwitch); } else { const QString title = QString::fromLatin1("cvs log %1").arg(id); Core::IEditor *newEditor = showOutputInEditor(title, response.stdOut, VCSBase::LogOutput, source, codec); @@ -961,7 +962,7 @@ void CVSPlugin::annotate(const QString &workingDir, const QString &file, if (Core::IEditor *editor = locateEditor("annotateFileName", id)) { editor->createNew(response.stdOut); VCSBase::VCSBaseEditor::gotoLineOfEditor(editor, lineNumber); - Core::EditorManager::instance()->activateEditor(editor); + Core::EditorManager::instance()->activateEditor(editor, Core::EditorManager::ModeSwitch); } else { const QString title = QString::fromLatin1("cvs annotate %1").arg(id); Core::IEditor *newEditor = showOutputInEditor(title, response.stdOut, VCSBase::AnnotateOutput, source, codec); @@ -1156,7 +1157,7 @@ bool CVSPlugin::describe(const QString &repositoryPath, const QString commitId = entries.front().revisions.front().commitId; if (Core::IEditor *editor = locateEditor("describeChange", commitId)) { editor->createNew(output); - Core::EditorManager::instance()->activateEditor(editor); + Core::EditorManager::instance()->activateEditor(editor, Core::EditorManager::ModeSwitch); setDiffBaseDirectory(editor, repositoryPath); } else { const QString title = QString::fromLatin1("cvs describe %1").arg(commitId); @@ -1241,7 +1242,7 @@ Core::IEditor * CVSPlugin::showOutputInEditor(const QString& title, const QStrin if (codec) e->setCodec(codec); Core::IEditor *ie = e->editableInterface(); - Core::EditorManager::instance()->activateEditor(ie); + Core::EditorManager::instance()->activateEditor(ie, Core::EditorManager::ModeSwitch); return ie; } diff --git a/src/plugins/debugger/debuggeragents.cpp b/src/plugins/debugger/debuggeragents.cpp index 8130f27886..aeb703e647 100644 --- a/src/plugins/debugger/debuggeragents.cpp +++ b/src/plugins/debugger/debuggeragents.cpp @@ -129,7 +129,7 @@ void MemoryViewAgent::createBinEditor(quint64 addr) SIGNAL(endOfFileRequested(Core::IEditor *)), SLOT(handleEndOfFileRequested(Core::IEditor*))); m_editors << editor; - editorManager->activateEditor(editor, EditorManager::NoModeSwitch); + editorManager->activateEditor(editor); QMetaObject::invokeMethod(editor->widget(), "setNewWindowRequestAllowed"); QMetaObject::invokeMethod(editor->widget(), "setLazyData", Q_ARG(quint64, addr), Q_ARG(int, DataRange), Q_ARG(int, BinBlockSize)); @@ -153,7 +153,7 @@ void MemoryViewAgent::addLazyData(QObject *editorToken, quint64 addr, { IEditor *editor = qobject_cast<IEditor *>(editorToken); if (editor && editor->widget()) { - EditorManager::instance()->activateEditor(editor, EditorManager::NoModeSwitch); + Core::EditorManager::instance()->activateEditor(editor); QMetaObject::invokeMethod(editor->widget(), "addLazyData", Q_ARG(quint64, addr / BinBlockSize), Q_ARG(QByteArray, ba)); } @@ -349,7 +349,7 @@ void DisassemblerViewAgent::setContents(const QString &contents) d->configureMimeType(); } - editorManager->activateEditor(d->editor, EditorManager::NoModeSwitch); + editorManager->activateEditor(d->editor); plainTextEdit = qobject_cast<QPlainTextEdit *>(d->editor->widget()); if (plainTextEdit) { diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 0a835346bc..4bd2462ac2 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -479,6 +479,7 @@ public: DebugMode(QObject *parent = 0) : BaseMode(parent) { setDisplayName(QCoreApplication::translate("Debugger::Internal::DebugMode", "Debug")); + setType(Core::Constants::MODE_EDIT_TYPE); setId(MODE_DEBUG); setIcon(QIcon(__(":/fancyactionbar/images/mode_Debug.png"))); setPriority(P_MODE_DEBUG); @@ -2587,7 +2588,7 @@ void DebuggerPlugin::gotoLocation(const QString &file, int line, bool setMarker) bool newEditor = false; ITextEditor *editor = BaseTextEditor::openEditorAt(file, line, 0, QString(), - EditorManager::IgnoreNavigationHistory | EditorManager::NoModeSwitch, + EditorManager::IgnoreNavigationHistory, &newEditor); if (!editor) return; @@ -2608,8 +2609,7 @@ void DebuggerPlugin::openTextEditor(const QString &titlePattern0, IEditor *editor = editorManager->openEditorWithContents( Core::Constants::K_DEFAULT_TEXT_EDITOR_ID, &titlePattern, contents); QTC_ASSERT(editor, return); - editorManager->activateEditor(editor, - EditorManager::IgnoreNavigationHistory|EditorManager::NoModeSwitch); + editorManager->activateEditor(editor, EditorManager::IgnoreNavigationHistory); } void DebuggerPlugin::writeSettings() const diff --git a/src/plugins/designer/formeditorw.cpp b/src/plugins/designer/formeditorw.cpp index 348bb8b540..7729b370ac 100644 --- a/src/plugins/designer/formeditorw.cpp +++ b/src/plugins/designer/formeditorw.cpp @@ -903,7 +903,7 @@ void FormEditorW::switchSourceForm() Core::EditorManager *em = Core::EditorManager::instance(); const QString fileToOpen = otherFile(em); if (!fileToOpen.isEmpty()) - em->openEditor(fileToOpen); + em->openEditor(fileToOpen, QString(), Core::EditorManager::ModeSwitch); } } // namespace Internal diff --git a/src/plugins/designer/formwindoweditor.cpp b/src/plugins/designer/formwindoweditor.cpp index 8a97376fad..39c22d062c 100644 --- a/src/plugins/designer/formwindoweditor.cpp +++ b/src/plugins/designer/formwindoweditor.cpp @@ -257,9 +257,9 @@ TextEditor::PlainTextEditorEditable *FormWindowEditor::textEditable() return &d->m_textEditable; } -QString FormWindowEditor::preferredMode() const +QString FormWindowEditor::preferredModeType() const { - return QLatin1String(Core::Constants::MODE_DESIGN); + return QLatin1String(Core::Constants::MODE_DESIGN_TYPE); } } // namespace Designer diff --git a/src/plugins/designer/formwindoweditor.h b/src/plugins/designer/formwindoweditor.h index 08380fc5af..fabc7823b5 100644 --- a/src/plugins/designer/formwindoweditor.h +++ b/src/plugins/designer/formwindoweditor.h @@ -88,7 +88,7 @@ public: virtual QWidget *toolBar(); - virtual QString preferredMode() const; + virtual QString preferredModeType() const; // IContext virtual Core::Context context() const; diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 1403dd5cec..0406b6eaa1 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -187,7 +187,7 @@ VCSBase::VCSBaseEditor if (setSourceCodec) rc->setCodec(VCSBase::VCSBaseEditor::getCodec(source)); } - m_core->editorManager()->activateEditor(outputEditor); + m_core->editorManager()->activateEditor(outputEditor, Core::EditorManager::ModeSwitch); rc->setForceReadOnly(true); return rc; } diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 4d768308fe..2e647a0216 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -676,7 +676,8 @@ void GitPlugin::startCommit(bool amend) Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const CommitData &cd, bool amend) { - Core::IEditor *editor = m_core->editorManager()->openEditor(fileName, QLatin1String(Constants::GITSUBMITEDITOR_ID)); + Core::IEditor *editor = m_core->editorManager()->openEditor(fileName, QLatin1String(Constants::GITSUBMITEDITOR_ID), + Core::EditorManager::ModeSwitch); if (Git::Constants::debug) qDebug() << Q_FUNC_INFO << fileName << editor; GitSubmitEditor *submitEditor = qobject_cast<GitSubmitEditor*>(editor); diff --git a/src/plugins/helloworld/helloworldplugin.cpp b/src/plugins/helloworld/helloworldplugin.cpp index 14ca96b67b..5a5447fbf8 100644 --- a/src/plugins/helloworld/helloworldplugin.cpp +++ b/src/plugins/helloworld/helloworldplugin.cpp @@ -109,6 +109,7 @@ bool HelloWorldPlugin::initialize(const QStringList &arguments, QString *error_m // it will unregister itself from the plugin manager when it is deleted. Core::BaseMode *baseMode = new Core::BaseMode; baseMode->setId(QLatin1String("HelloWorld.HelloWorldMode")); + baseMode->setType(QLatin1String("HelloWorld.HelloWorldMode")); baseMode->setDisplayName(tr("Hello world!")); baseMode->setIcon(QIcon()); baseMode->setPriority(0); diff --git a/src/plugins/locator/basefilefilter.cpp b/src/plugins/locator/basefilefilter.cpp index 5ba5437cbc..002ef960d5 100644 --- a/src/plugins/locator/basefilefilter.cpp +++ b/src/plugins/locator/basefilefilter.cpp @@ -97,7 +97,7 @@ QList<FilterEntry> BaseFileFilter::matchesFor(QFutureInterface<Locator::FilterEn void BaseFileFilter::accept(Locator::FilterEntry selection) const { Core::EditorManager *em = Core::EditorManager::instance(); - em->openEditor(selection.internalData.toString()); + em->openEditor(selection.internalData.toString(), QString(), Core::EditorManager::ModeSwitch); } void BaseFileFilter::generateFileNames() diff --git a/src/plugins/locator/filesystemfilter.cpp b/src/plugins/locator/filesystemfilter.cpp index fe24241dbe..65b2f1ea45 100644 --- a/src/plugins/locator/filesystemfilter.cpp +++ b/src/plugins/locator/filesystemfilter.cpp @@ -106,7 +106,8 @@ void FileSystemFilter::accept(FilterEntry selection) const m_locatorWidget->show(value, value.length()); return; } - m_editorManager->openEditor(selection.internalData.toString()); + m_editorManager->openEditor(selection.internalData.toString(), QString(), + Core::EditorManager::ModeSwitch); } bool FileSystemFilter::openConfigDialog(QWidget *parent, bool &needsRefresh) diff --git a/src/plugins/locator/opendocumentsfilter.cpp b/src/plugins/locator/opendocumentsfilter.cpp index 0c06aff5a1..5603108d8f 100644 --- a/src/plugins/locator/opendocumentsfilter.cpp +++ b/src/plugins/locator/opendocumentsfilter.cpp @@ -101,8 +101,8 @@ void OpenDocumentsFilter::accept(FilterEntry selection) const { IEditor *editor = selection.internalData.value<IEditor *>(); if (editor) { - m_editorManager->activateEditor(editor); + m_editorManager->activateEditor(editor, Core::EditorManager::ModeSwitch); return; } - m_editorManager->openEditor(selection.internalData.toString()); + m_editorManager->openEditor(selection.internalData.toString(), QString(), Core::EditorManager::ModeSwitch); } diff --git a/src/plugins/mercurial/mercurialclient.cpp b/src/plugins/mercurial/mercurialclient.cpp index 57c46a6286..3cc71ca7aa 100644 --- a/src/plugins/mercurial/mercurialclient.cpp +++ b/src/plugins/mercurial/mercurialclient.cpp @@ -628,7 +628,7 @@ VCSBase::VCSBaseEditor *MercurialClient::createVCSEditor(const QString &kind, QS baseEditor->setCodec(VCSBase::VCSBaseEditor::getCodec(source)); } - core->editorManager()->activateEditor(outputEditor); + core->editorManager()->activateEditor(outputEditor, Core::EditorManager::ModeSwitch); baseEditor->setForceReadOnly(true); return baseEditor; } diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp index 51495fe4ab..1d5aac70b2 100644 --- a/src/plugins/mercurial/mercurialplugin.cpp +++ b/src/plugins/mercurial/mercurialplugin.cpp @@ -593,7 +593,8 @@ void MercurialPlugin::showCommitWidget(const QList<QPair<QString, QString> > &st } Core::IEditor *editor = core->editorManager()->openEditor(changeLog->fileName(), - QLatin1String(Constants::COMMIT_ID)); + QLatin1String(Constants::COMMIT_ID), + Core::EditorManager::ModeSwitch); if (!editor) { outputWindow->appendError(tr("Unable to create an editor for the commit.")); return; diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp index 6e4600e57d..4c6711462a 100644 --- a/src/plugins/perforce/perforceplugin.cpp +++ b/src/plugins/perforce/perforceplugin.cpp @@ -673,7 +673,8 @@ void PerforcePlugin::startSubmitProject() Core::IEditor *PerforcePlugin::openPerforceSubmitEditor(const QString &fileName, const QStringList &depotFileNames) { Core::EditorManager *editorManager = Core::EditorManager::instance(); - Core::IEditor *editor = editorManager->openEditor(fileName, Constants::PERFORCE_SUBMIT_EDITOR_ID); + Core::IEditor *editor = editorManager->openEditor(fileName, Constants::PERFORCE_SUBMIT_EDITOR_ID, + Core::EditorManager::ModeSwitch); PerforceSubmitEditor *submitEditor = static_cast<PerforceSubmitEditor*>(editor); submitEditor->restrictToProjectFiles(depotFileNames); submitEditor->registerActions(m_undoAction, m_redoAction, m_submitCurrentLogAction, m_diffSelectedFiles); @@ -1198,7 +1199,7 @@ Core::IEditor * PerforcePlugin::showOutputInEditor(const QString& title, const Q if (codec) e->setCodec(codec); Core::IEditor *ie = e->editableInterface(); - Core::EditorManager::instance()->activateEditor(ie); + Core::EditorManager::instance()->activateEditor(ie, Core::EditorManager::ModeSwitch); return ie; } @@ -1239,7 +1240,7 @@ void PerforcePlugin::p4Diff(const QString &workingDir, const QStringList &files) if (existingEditor) { existingEditor->createNew(result.stdOut); - Core::EditorManager::instance()->activateEditor(existingEditor); + Core::EditorManager::instance()->activateEditor(existingEditor, Core::EditorManager::ModeSwitch); } else { Core::IEditor *editor = showOutputInEditor(tr("p4 diff %1").arg(id), result.stdOut, VCSBase::DiffOutput, VCSBase::VCSBaseEditor::getSource(workingDir, files), diff --git a/src/plugins/projectexplorer/foldernavigationwidget.cpp b/src/plugins/projectexplorer/foldernavigationwidget.cpp index b505d7d9fd..b256ba0b2d 100644 --- a/src/plugins/projectexplorer/foldernavigationwidget.cpp +++ b/src/plugins/projectexplorer/foldernavigationwidget.cpp @@ -267,7 +267,7 @@ void FolderNavigationWidget::openItem(const QModelIndex &srcIndex) } // Open file. Core::EditorManager *editorManager = Core::EditorManager::instance(); - editorManager->openEditor(m_fileSystemModel->filePath(srcIndex)); + editorManager->openEditor(m_fileSystemModel->filePath(srcIndex), QString(), Core::EditorManager::ModeSwitch); } void FolderNavigationWidget::setCurrentTitle(QString dirName, const QString &fullPath) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index b8e9fb31cc..c8afcd8599 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -2102,7 +2102,7 @@ void ProjectExplorerPlugin::openFile() { QTC_ASSERT(d->m_currentNode, return) Core::EditorManager *em = Core::EditorManager::instance(); - em->openEditor(d->m_currentNode->path()); + em->openEditor(d->m_currentNode->path(), QString(), Core::EditorManager::ModeSwitch); } void ProjectExplorerPlugin::showInGraphicalShell() @@ -2297,7 +2297,7 @@ void ProjectExplorerPlugin::openEditorFromAction(QAction *action, const QString return; } - em->openEditor(fileName, factory->id()); + em->openEditor(fileName, factory->id(), Core::EditorManager::ModeSwitch); return; } if (qVariantCanConvert<Core::IExternalEditor *>(data)) { diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp index 20d18d0718..85109a4cd1 100644 --- a/src/plugins/projectexplorer/projecttreewidget.cpp +++ b/src/plugins/projectexplorer/projecttreewidget.cpp @@ -300,7 +300,7 @@ void ProjectTreeWidget::openItem(const QModelIndex &mainIndex) Node *node = m_model->nodeForIndex(mainIndex); if (node->nodeType() == FileNodeType) { Core::EditorManager *editorManager = Core::EditorManager::instance(); - editorManager->openEditor(node->path()); + editorManager->openEditor(node->path(), QString(), Core::EditorManager::ModeSwitch); } } diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index 7cedf1806a..9ea7c68174 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -657,14 +657,14 @@ static bool openInDesignMode() return bool(QmlDesigner::Constants::QML_OPENDESIGNMODE_DEFAULT); } -QString QmlJSEditorEditable::preferredMode() const +QString QmlJSEditorEditable::preferredModeType() const { Core::ModeManager *modeManager = Core::ModeManager::instance(); if (modeManager->currentMode() - && (modeManager->currentMode()->id() == Core::Constants::MODE_DESIGN - || modeManager->currentMode()->id() == Core::Constants::MODE_EDIT)) + && (modeManager->currentMode()->type() == Core::Constants::MODE_DESIGN_TYPE + || modeManager->currentMode()->type() == Core::Constants::MODE_EDIT_TYPE)) { - return modeManager->currentMode()->id(); + return modeManager->currentMode()->type(); } // if we are in other mode than edit or design, use the hard-coded default. @@ -672,7 +672,7 @@ QString QmlJSEditorEditable::preferredMode() const // have the user also access to this failsafe setting. if (editor()->mimeType() == QLatin1String(QmlJSEditor::Constants::QML_MIMETYPE) && openInDesignMode()) - return QLatin1String(Core::Constants::MODE_DESIGN); + return QLatin1String(Core::Constants::MODE_DESIGN_TYPE); return QString(); } diff --git a/src/plugins/qmljseditor/qmljseditor.h b/src/plugins/qmljseditor/qmljseditor.h index b70ad1ae88..5c1dd65b30 100644 --- a/src/plugins/qmljseditor/qmljseditor.h +++ b/src/plugins/qmljseditor/qmljseditor.h @@ -81,7 +81,7 @@ public: QString id() const; bool isTemporary() const { return false; } virtual bool open(const QString & fileName); - virtual QString preferredMode() const; + virtual QString preferredModeType() const; private: Core::Context m_context; diff --git a/src/plugins/qmljsinspector/qmljsinspector.cpp b/src/plugins/qmljsinspector/qmljsinspector.cpp index a62f916f3f..f789f843a4 100644 --- a/src/plugins/qmljsinspector/qmljsinspector.cpp +++ b/src/plugins/qmljsinspector/qmljsinspector.cpp @@ -519,7 +519,7 @@ void InspectorUi::gotoObjectReferenceDefinition(const QDeclarativeDebugObjectRef } Core::EditorManager *editorManager = Core::EditorManager::instance(); - Core::IEditor *editor = editorManager->openEditor(fileName, QString(), Core::EditorManager::NoModeSwitch); + Core::IEditor *editor = editorManager->openEditor(fileName); TextEditor::ITextEditor *textEditor = qobject_cast<TextEditor::ITextEditor*>(editor); if (textEditor) { diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp index b8a6e5fdaf..852f24ab43 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp @@ -210,7 +210,9 @@ void MaemoPackageCreationWidget::editDebianFile() const QString debianFilePath = MaemoTemplatesManager::instance() ->debianDirPath(m_step->buildConfiguration()->target()->project()) + QLatin1Char('/') + m_ui->debianFilesComboBox->currentText(); - Core::EditorManager::instance()->openEditor(debianFilePath); + Core::EditorManager::instance()->openEditor(debianFilePath, + QString(), + Core::EditorManager::ModeSwitch); } } // namespace Internal diff --git a/src/plugins/qt4projectmanager/wizards/qmlstandaloneappwizard.cpp b/src/plugins/qt4projectmanager/wizards/qmlstandaloneappwizard.cpp index e7574df094..abf1cf103d 100644 --- a/src/plugins/qt4projectmanager/wizards/qmlstandaloneappwizard.cpp +++ b/src/plugins/qt4projectmanager/wizards/qmlstandaloneappwizard.cpp @@ -190,7 +190,8 @@ bool QmlStandaloneAppWizard::postGenerateFiles(const QWizard *wizard, const Core const bool success = ProjectExplorer::CustomProjectWizard::postGenerateOpen(l, errorMessage); if (success && m_d->type == QmlStandaloneAppWizard::ImportQmlFile) { ProjectExplorer::ProjectExplorerPlugin::instance()->setCurrentFile(0, m_d->standaloneApp->mainQmlFile()); - Core::EditorManager::instance()->openEditor(m_d->standaloneApp->mainQmlFile()); + Core::EditorManager::instance()->openEditor(m_d->standaloneApp->mainQmlFile(), + QString(), Core::EditorManager::ModeSwitch); } return success; } diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index 2e56d22243..332ca5f372 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -558,7 +558,7 @@ void SubversionPlugin::svnDiff(const QString &workingDir, const QStringList &fil // Show in the same editor if diff has been executed before if (Core::IEditor *editor = locateEditor("originalFileName", files.front())) { editor->createNew(response.stdOut); - Core::EditorManager::instance()->activateEditor(editor); + Core::EditorManager::instance()->activateEditor(editor, Core::EditorManager::ModeSwitch); setDiffBaseDirectory(editor, workingDir); return; } @@ -572,7 +572,9 @@ void SubversionPlugin::svnDiff(const QString &workingDir, const QStringList &fil SubversionSubmitEditor *SubversionPlugin::openSubversionSubmitEditor(const QString &fileName) { - Core::IEditor *editor = Core::EditorManager::instance()->openEditor(fileName, QLatin1String(Constants::SUBVERSIONCOMMITEDITOR_ID)); + Core::IEditor *editor = Core::EditorManager::instance()->openEditor(fileName, + QLatin1String(Constants::SUBVERSIONCOMMITEDITOR_ID), + Core::EditorManager::ModeSwitch); SubversionSubmitEditor *submitEditor = qobject_cast<SubversionSubmitEditor*>(editor); QTC_ASSERT(submitEditor, /**/); submitEditor->registerActions(m_submitUndoAction, m_submitRedoAction, m_submitCurrentLogAction, m_submitDiffAction); @@ -858,7 +860,7 @@ void SubversionPlugin::filelog(const QString &workingDir, const QString id = VCSBase::VCSBaseEditor::getTitleId(workingDir, files); if (Core::IEditor *editor = locateEditor("logFileName", id)) { editor->createNew(response.stdOut); - Core::EditorManager::instance()->activateEditor(editor); + Core::EditorManager::instance()->activateEditor(editor, Core::EditorManager::ModeSwitch); } else { const QString title = QString::fromLatin1("svn log %1").arg(id); const QString source = VCSBase::VCSBaseEditor::getSource(workingDir, files); @@ -935,7 +937,7 @@ void SubversionPlugin::vcsAnnotate(const QString &workingDir, const QString &fil if (Core::IEditor *editor = locateEditor("annotateFileName", id)) { editor->createNew(response.stdOut); VCSBase::VCSBaseEditor::gotoLineOfEditor(editor, lineNumber); - Core::EditorManager::instance()->activateEditor(editor); + Core::EditorManager::instance()->activateEditor(editor, Core::EditorManager::ModeSwitch); } else { const QString title = QString::fromLatin1("svn annotate %1").arg(id); Core::IEditor *newEditor = showOutputInEditor(title, response.stdOut, VCSBase::AnnotateOutput, source, codec); @@ -999,7 +1001,7 @@ void SubversionPlugin::describe(const QString &source, const QString &changeNr) const QString id = diffArg + source; if (Core::IEditor *editor = locateEditor("describeChange", id)) { editor->createNew(description); - Core::EditorManager::instance()->activateEditor(editor); + Core::EditorManager::instance()->activateEditor(editor, Core::EditorManager::ModeSwitch); } else { const QString title = QString::fromLatin1("svn describe %1#%2").arg(fi.fileName(), changeNr); Core::IEditor *newEditor = showOutputInEditor(title, description, VCSBase::DiffOutput, source, codec); @@ -1118,7 +1120,7 @@ Core::IEditor * SubversionPlugin::showOutputInEditor(const QString& title, const if (codec) e->setCodec(codec); Core::IEditor *ie = e->editableInterface(); - Core::EditorManager::instance()->activateEditor(ie); + Core::EditorManager::instance()->activateEditor(ie, Core::EditorManager::ModeSwitch); return ie; } diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp index 6de00a8bc9..b34e1587bc 100644 --- a/src/plugins/texteditor/basefilefind.cpp +++ b/src/plugins/texteditor/basefilefind.cpp @@ -262,9 +262,10 @@ void BaseFileFind::updateComboEntries(QComboBox *combo, bool onTop) void BaseFileFind::openEditor(const Find::SearchResultItem &item) { if (item.path.size() > 0) { - TextEditor::BaseTextEditor::openEditorAt(item.path.first(), item.lineNumber, item.textMarkPos); + TextEditor::BaseTextEditor::openEditorAt(item.path.first(), item.lineNumber, item.textMarkPos, + QString(), Core::EditorManager::ModeSwitch); } else { - Core::EditorManager::instance()->openEditor(item.text); + Core::EditorManager::instance()->openEditor(item.text, QString(), Core::EditorManager::ModeSwitch); } } diff --git a/src/plugins/texteditor/refactoringchanges.cpp b/src/plugins/texteditor/refactoringchanges.cpp index 25da5bafae..4bf0be8bed 100644 --- a/src/plugins/texteditor/refactoringchanges.cpp +++ b/src/plugins/texteditor/refactoringchanges.cpp @@ -68,7 +68,7 @@ BaseTextEditor *RefactoringChanges::editorForFile(const QString &fileName, } Core::IEditor *editor = editorManager->openEditor(fileName, QString(), - Core::EditorManager::NoActivate | Core::EditorManager::IgnoreNavigationHistory | Core::EditorManager::NoModeSwitch); + Core::EditorManager::NoActivate | Core::EditorManager::IgnoreNavigationHistory); return qobject_cast<BaseTextEditor *>(editor->widget()); } @@ -161,7 +161,7 @@ BaseTextEditor *RefactoringChanges::activateEditor(const QString &fileName, int BaseTextEditor *editor = openEditor(fileName, pos); Core::EditorManager *editorManager = Core::EditorManager::instance(); - editorManager->activateEditor(editor->editableInterface()); + editorManager->activateEditor(editor->editableInterface(), Core::EditorManager::ModeSwitch); return editor; } diff --git a/src/plugins/vcsbase/cleandialog.cpp b/src/plugins/vcsbase/cleandialog.cpp index b068607a53..23104b7bda 100644 --- a/src/plugins/vcsbase/cleandialog.cpp +++ b/src/plugins/vcsbase/cleandialog.cpp @@ -252,7 +252,7 @@ void CleanDialog::slotDoubleClicked(const QModelIndex &index) if (const QStandardItem *item = d->m_filesModel->itemFromIndex(index)) if (!item->data(isDirectoryRole).toBool()) { const QString fname = item->data(fileNameRole).toString(); - Core::EditorManager::instance()->openEditor(fname); + Core::EditorManager::instance()->openEditor(fname, QString(), Core::EditorManager::ModeSwitch); } } diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp index fc0281c5ba..f65e221f63 100644 --- a/src/plugins/vcsbase/vcsbaseeditor.cpp +++ b/src/plugins/vcsbase/vcsbaseeditor.cpp @@ -635,8 +635,7 @@ void VCSBaseEditor::jumpToChangeFromDiff(QTextCursor cursor) return; Core::EditorManager *em = Core::EditorManager::instance(); - Core::IEditor *ed = em->openEditor(fileName); - Core::ModeManager::instance()->activateMode(Core::Constants::MODE_EDIT); + Core::IEditor *ed = em->openEditor(fileName, QString(), Core::EditorManager::ModeSwitch); if (TextEditor::ITextEditor *editor = qobject_cast<TextEditor::ITextEditor *>(ed)) editor->gotoLine(chunkStart + lineCount); } diff --git a/src/plugins/vcsbase/vcsbaseoutputwindow.cpp b/src/plugins/vcsbase/vcsbaseoutputwindow.cpp index 5045ddca1f..56ffe8b2e3 100644 --- a/src/plugins/vcsbase/vcsbaseoutputwindow.cpp +++ b/src/plugins/vcsbase/vcsbaseoutputwindow.cpp @@ -174,7 +174,7 @@ void OutputWindowPlainTextEdit::contextMenuEvent(QContextMenuEvent *event) } if (action == openAction) { const QString fileName = action->data().toString(); - Core::EditorManager::instance()->openEditor(fileName); + Core::EditorManager::instance()->openEditor(fileName, QString(), Core::EditorManager::ModeSwitch); } } delete menu; diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp index 736a798168..ad3b724902 100644 --- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp +++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp @@ -691,7 +691,7 @@ bool VCSBaseSubmitEditor::raiseSubmitEditor() // Try to activate a hidden one foreach (Core::IEditor *e, em->openedEditors()) { if (qobject_cast<VCSBaseSubmitEditor*>(e)) { - em->activateEditor(e, Core::EditorManager::IgnoreNavigationHistory); + em->activateEditor(e, Core::EditorManager::IgnoreNavigationHistory | Core::EditorManager::ModeSwitch); return true; } } diff --git a/src/plugins/welcome/welcomemode.cpp b/src/plugins/welcome/welcomemode.cpp index 4c7e3d5763..a09b564767 100644 --- a/src/plugins/welcome/welcomemode.cpp +++ b/src/plugins/welcome/welcomemode.cpp @@ -147,6 +147,11 @@ QString WelcomeMode::id() const return QLatin1String(Core::Constants::MODE_WELCOME); } +QString WelcomeMode::type() const +{ + return QLatin1String(Core::Constants::MODE_WELCOME_TYPE); +} + Core::Context WelcomeMode::context() const { static Core::Context contexts(Core::Constants::C_WELCOME_MODE); diff --git a/src/plugins/welcome/welcomemode.h b/src/plugins/welcome/welcomemode.h index 47cac9b4c3..acd4ac2b17 100644 --- a/src/plugins/welcome/welcomemode.h +++ b/src/plugins/welcome/welcomemode.h @@ -60,6 +60,7 @@ public: int priority() const; QWidget *widget(); QString id() const; + QString type() const; Core::Context context() const; void activated(); QString contextHelpId() const { return QLatin1String("Qt Creator Manual"); } |