summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordt <qtc-committer@nokia.com>2010-09-14 15:15:57 +0200
committerdt <qtc-committer@nokia.com>2010-09-14 15:23:11 +0200
commit08ccda586254de7ff4c66ccdb98d9843847080be (patch)
treef5a2f84c816c92f5beeb71712bc4abacc0f93520 /src
parentf068e1159615ee2e1140008359e998ed95c778fd (diff)
downloadqt-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
Diffstat (limited to 'src')
-rw-r--r--src/plugins/coreplugin/basemode.h3
-rw-r--r--src/plugins/coreplugin/coreconstants.h3
-rw-r--r--src/plugins/coreplugin/designmode.cpp5
-rw-r--r--src/plugins/coreplugin/designmode.h1
-rw-r--r--src/plugins/coreplugin/editmode.cpp5
-rw-r--r--src/plugins/coreplugin/editmode.h1
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.cpp11
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.h2
-rw-r--r--src/plugins/coreplugin/editormanager/editorview.cpp13
-rw-r--r--src/plugins/coreplugin/editormanager/ieditor.h2
-rw-r--r--src/plugins/coreplugin/editormanager/openeditorsview.cpp2
-rw-r--r--src/plugins/coreplugin/editormanager/openeditorswindow.cpp5
-rw-r--r--src/plugins/coreplugin/editortoolbar.cpp4
-rw-r--r--src/plugins/coreplugin/imode.h1
-rw-r--r--src/plugins/coreplugin/mainwindow.cpp4
-rw-r--r--src/plugins/coreplugin/modemanager.cpp13
-rw-r--r--src/plugins/coreplugin/modemanager.h2
-rw-r--r--src/plugins/cpaster/cpasterplugin.cpp2
-rw-r--r--src/plugins/cpptools/cppfilesettingspage.cpp6
-rw-r--r--src/plugins/cpptools/cppfindreferences.cpp6
-rw-r--r--src/plugins/cvs/cvsplugin.cpp13
-rw-r--r--src/plugins/debugger/debuggeragents.cpp6
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp6
-rw-r--r--src/plugins/designer/formeditorw.cpp2
-rw-r--r--src/plugins/designer/formwindoweditor.cpp4
-rw-r--r--src/plugins/designer/formwindoweditor.h2
-rw-r--r--src/plugins/git/gitclient.cpp2
-rw-r--r--src/plugins/git/gitplugin.cpp3
-rw-r--r--src/plugins/helloworld/helloworldplugin.cpp1
-rw-r--r--src/plugins/locator/basefilefilter.cpp2
-rw-r--r--src/plugins/locator/filesystemfilter.cpp3
-rw-r--r--src/plugins/locator/opendocumentsfilter.cpp4
-rw-r--r--src/plugins/mercurial/mercurialclient.cpp2
-rw-r--r--src/plugins/mercurial/mercurialplugin.cpp3
-rw-r--r--src/plugins/perforce/perforceplugin.cpp7
-rw-r--r--src/plugins/projectexplorer/foldernavigationwidget.cpp2
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp4
-rw-r--r--src/plugins/projectexplorer/projecttreewidget.cpp2
-rw-r--r--src/plugins/qmljseditor/qmljseditor.cpp10
-rw-r--r--src/plugins/qmljseditor/qmljseditor.h2
-rw-r--r--src/plugins/qmljsinspector/qmljsinspector.cpp2
-rw-r--r--src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp4
-rw-r--r--src/plugins/qt4projectmanager/wizards/qmlstandaloneappwizard.cpp3
-rw-r--r--src/plugins/subversion/subversionplugin.cpp14
-rw-r--r--src/plugins/texteditor/basefilefind.cpp5
-rw-r--r--src/plugins/texteditor/refactoringchanges.cpp4
-rw-r--r--src/plugins/vcsbase/cleandialog.cpp2
-rw-r--r--src/plugins/vcsbase/vcsbaseeditor.cpp3
-rw-r--r--src/plugins/vcsbase/vcsbaseoutputwindow.cpp2
-rw-r--r--src/plugins/vcsbase/vcsbasesubmiteditor.cpp2
-rw-r--r--src/plugins/welcome/welcomemode.cpp5
-rw-r--r--src/plugins/welcome/welcomemode.h1
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"); }