aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.cpp28
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.h2
-rw-r--r--src/plugins/cpptools/cpptoolsplugin.cpp4
-rw-r--r--src/plugins/git/gitplugin.cpp1
-rw-r--r--src/plugins/locator/filesystemfilter.cpp1
-rw-r--r--src/plugins/locator/opendocumentsfilter.cpp1
-rw-r--r--src/plugins/mercurial/mercurialplugin.cpp2
-rw-r--r--src/plugins/perforce/perforceplugin.cpp1
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp2
-rw-r--r--src/plugins/projectexplorer/showineditortaskhandler.cpp1
-rw-r--r--src/plugins/qmldesigner/designmodewidget.cpp2
-rw-r--r--src/plugins/texteditor/linenumberfilter.cpp4
-rw-r--r--src/plugins/vcsbase/vcsbaseeditor.cpp4
13 files changed, 25 insertions, 28 deletions
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 20af0f8f3e..c0e56ac3a8 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -971,12 +971,7 @@ Core::IEditor *EditorManager::activateEditor(Core::Internal::EditorView *view, C
if (!(flags & NoActivate)) {
setCurrentEditor(editor, (flags & IgnoreNavigationHistory));
if (!(flags & NoModeSwitch)) {
- const QString preferredMode = editor->preferredMode();
- if (preferredMode.isEmpty() || preferredMode == Core::Constants::MODE_EDIT) {
- ensureEditorManagerVisible();
- } else {
- ModeManager::instance()->activateMode(preferredMode);
- }
+ switchToPreferedMode();
}
if (isVisible())
editor->widget()->setFocus();
@@ -1255,10 +1250,22 @@ QStringList EditorManager::getOpenFileNames() const
QString(), &m_d->selectedFilter);
}
-void EditorManager::ensureEditorManagerVisible()
+
+/// Empty mode == figure out the correct mode from the editor
+/// forcePrefered = true, switch to the mode even if the editor is visible in another mode
+/// forcePrefered = false, only switch if it is not visible
+void EditorManager::switchToPreferedMode()
{
- if (!isVisible())
- m_d->m_core->modeManager()->activateMode(Constants::MODE_EDIT);
+ QString preferedMode;
+ // Figure out prefered mode for editor
+ if (m_d->m_currentEditor)
+ preferedMode = m_d->m_currentEditor->preferredMode();
+
+ if (preferedMode.isEmpty())
+ preferedMode = Constants::MODE_EDIT;
+
+ if (m_d->m_core->modeManager()->currentMode()->id() != preferedMode)
+ m_d->m_core->modeManager()->activateMode(preferedMode);
}
IEditor *EditorManager::openEditorWithContents(const QString &editorId,
@@ -1613,7 +1620,6 @@ void EditorManager::goBackInNavigationHistory()
{
currentEditorView()->goBackInNavigationHistory();
updateActions();
- ensureEditorManagerVisible();
return;
}
@@ -1621,7 +1627,6 @@ void EditorManager::goForwardInNavigationHistory()
{
currentEditorView()->goForwardInNavigationHistory();
updateActions();
- ensureEditorManagerVisible();
}
OpenEditorsWindow *EditorManager::windowPopup() const
@@ -1717,7 +1722,6 @@ bool EditorManager::restoreState(const QByteArray &state)
m_d->m_splitter->restoreState(splitterstates);
// splitting and stuff results in focus trouble, that's why we set the focus again after restoration
- ensureEditorManagerVisible();
if (m_d->m_currentEditor) {
m_d->m_currentEditor->widget()->setFocus();
} else if (Core::Internal::SplitterOrView *view = currentSplitterOrView()) {
diff --git a/src/plugins/coreplugin/editormanager/editormanager.h b/src/plugins/coreplugin/editormanager/editormanager.h
index 0dae2ae0b9..0de53d38c6 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.h
+++ b/src/plugins/coreplugin/editormanager/editormanager.h
@@ -126,7 +126,7 @@ public:
QStringList getOpenFileNames() const;
QString getOpenWithEditorId(const QString &fileName, bool *isExternalEditor = 0) const;
- void ensureEditorManagerVisible();
+ void switchToPreferedMode();
bool hasEditor(const QString &fileName) const;
QList<IEditor *> editorsForFileName(const QString &filename) const;
QList<IEditor *> editorsForFile(IFile *file) const;
diff --git a/src/plugins/cpptools/cpptoolsplugin.cpp b/src/plugins/cpptools/cpptoolsplugin.cpp
index 1595fd231c..90d234560b 100644
--- a/src/plugins/cpptools/cpptoolsplugin.cpp
+++ b/src/plugins/cpptools/cpptoolsplugin.cpp
@@ -170,10 +170,8 @@ void CppToolsPlugin::switchHeaderSource()
Core::EditorManager *editorManager = Core::EditorManager::instance();
Core::IEditor *editor = editorManager->currentEditor();
QString otherFile = correspondingHeaderOrSource(editor->file()->fileName());
- if (!otherFile.isEmpty()) {
+ if (!otherFile.isEmpty())
editorManager->openEditor(otherFile);
- editorManager->ensureEditorManagerVisible();
- }
}
QFileInfo CppToolsPlugin::findFile(const QDir &dir, const QString &name,
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index e549e6d483..bf881a9729 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -679,7 +679,6 @@ Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const Commit
Core::IEditor *editor = m_core->editorManager()->openEditor(fileName, QLatin1String(Constants::GITSUBMITEDITOR_ID));
if (Git::Constants::debug)
qDebug() << Q_FUNC_INFO << fileName << editor;
- m_core->editorManager()->ensureEditorManagerVisible();
GitSubmitEditor *submitEditor = qobject_cast<GitSubmitEditor*>(editor);
QTC_ASSERT(submitEditor, return 0);
// The actions are for some reason enabled by the context switching
diff --git a/src/plugins/locator/filesystemfilter.cpp b/src/plugins/locator/filesystemfilter.cpp
index 6c2d5c8422..6ef07bdbae 100644
--- a/src/plugins/locator/filesystemfilter.cpp
+++ b/src/plugins/locator/filesystemfilter.cpp
@@ -103,7 +103,6 @@ void FileSystemFilter::accept(FilterEntry selection) const
return;
}
m_editorManager->openEditor(selection.internalData.toString());
- m_editorManager->ensureEditorManagerVisible();
}
bool FileSystemFilter::openConfigDialog(QWidget *parent, bool &needsRefresh)
diff --git a/src/plugins/locator/opendocumentsfilter.cpp b/src/plugins/locator/opendocumentsfilter.cpp
index 4102d8e0d1..535d670e47 100644
--- a/src/plugins/locator/opendocumentsfilter.cpp
+++ b/src/plugins/locator/opendocumentsfilter.cpp
@@ -103,5 +103,4 @@ void OpenDocumentsFilter::accept(FilterEntry selection) const
return;
}
m_editorManager->openEditor(selection.internalData.toString());
- m_editorManager->ensureEditorManagerVisible();
}
diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp
index 63a8ac4292..1b21bece09 100644
--- a/src/plugins/mercurial/mercurialplugin.cpp
+++ b/src/plugins/mercurial/mercurialplugin.cpp
@@ -599,8 +599,6 @@ void MercurialPlugin::showCommitWidget(const QList<QPair<QString, QString> > &st
return;
}
- core->editorManager()->ensureEditorManagerVisible();
-
CommitEditor *commitEditor = qobject_cast<CommitEditor *>(editor);
if (!commitEditor) {
diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp
index c338cdd59d..35067f4bda 100644
--- a/src/plugins/perforce/perforceplugin.cpp
+++ b/src/plugins/perforce/perforceplugin.cpp
@@ -674,7 +674,6 @@ Core::IEditor *PerforcePlugin::openPerforceSubmitEditor(const QString &fileName,
{
Core::EditorManager *editorManager = Core::EditorManager::instance();
Core::IEditor *editor = editorManager->openEditor(fileName, Constants::PERFORCE_SUBMIT_EDITOR_ID);
- editorManager->ensureEditorManagerVisible();
PerforceSubmitEditor *submitEditor = static_cast<PerforceSubmitEditor*>(editor);
submitEditor->restrictToProjectFiles(depotFileNames);
submitEditor->registerActions(m_undoAction, m_redoAction, m_submitCurrentLogAction, m_diffSelectedFiles);
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index d7a9daab08..2388f11320 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -2116,7 +2116,6 @@ void ProjectExplorerPlugin::openFile()
QTC_ASSERT(d->m_currentNode, return)
Core::EditorManager *em = Core::EditorManager::instance();
em->openEditor(d->m_currentNode->path());
- em->ensureEditorManagerVisible();
}
void ProjectExplorerPlugin::showInGraphicalShell()
@@ -2312,7 +2311,6 @@ void ProjectExplorerPlugin::openEditorFromAction(QAction *action, const QString
}
em->openEditor(fileName, factory->id());
- em->ensureEditorManagerVisible();
return;
}
if (qVariantCanConvert<Core::IExternalEditor *>(data)) {
diff --git a/src/plugins/projectexplorer/showineditortaskhandler.cpp b/src/plugins/projectexplorer/showineditortaskhandler.cpp
index 8783bcd7c0..fce46a94c5 100644
--- a/src/plugins/projectexplorer/showineditortaskhandler.cpp
+++ b/src/plugins/projectexplorer/showineditortaskhandler.cpp
@@ -56,7 +56,6 @@ void ShowInEditorTaskHandler::handle(const ProjectExplorer::Task &task)
{
QFileInfo fi(task.file);
TextEditor::BaseTextEditor::openEditorAt(fi.canonicalFilePath(), task.line);
- Core::EditorManager::instance()->ensureEditorManagerVisible();
}
QAction *ShowInEditorTaskHandler::createAction(QObject *parent)
diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp
index f14efdb6e2..4c708a2c0a 100644
--- a/src/plugins/qmldesigner/designmodewidget.cpp
+++ b/src/plugins/qmldesigner/designmodewidget.cpp
@@ -130,7 +130,7 @@ void DocumentWarningWidget::setError(const RewriterView::Error &error)
void DocumentWarningWidget::goToError()
{
m_designModeWidget->textEditor()->gotoLine(m_error.line(), m_error.column());
- Core::EditorManager::instance()->ensureEditorManagerVisible();
+ Core::ModeManager::instance()->activateMode(Core::Constants::MODE_EDIT);
}
// ---------- DesignModeWidget
diff --git a/src/plugins/texteditor/linenumberfilter.cpp b/src/plugins/texteditor/linenumberfilter.cpp
index ee73f4af87..961c03c9e4 100644
--- a/src/plugins/texteditor/linenumberfilter.cpp
+++ b/src/plugins/texteditor/linenumberfilter.cpp
@@ -31,6 +31,8 @@
#include "itexteditor.h"
#include <coreplugin/editormanager/editormanager.h>
+#include <coreplugin/coreconstants.h>
+#include <coreplugin/modemanager.h>
#include <QtCore/QVariant>
@@ -61,10 +63,10 @@ void LineNumberFilter::accept(FilterEntry selection) const
ITextEditor *editor = currentTextEditor();
if (editor) {
Core::EditorManager *editorManager = Core::EditorManager::instance();
- editorManager->ensureEditorManagerVisible();
editorManager->addCurrentPositionToNavigationHistory();
editor->gotoLine(selection.internalData.toInt());
editor->widget()->setFocus();
+ Core::ModeManager::instance()->activateMode(Core::Constants::MODE_EDIT);
}
}
diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp
index 83f7d7938a..fc0281c5ba 100644
--- a/src/plugins/vcsbase/vcsbaseeditor.cpp
+++ b/src/plugins/vcsbase/vcsbaseeditor.cpp
@@ -36,6 +36,8 @@
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/ifile.h>
#include <coreplugin/iversioncontrol.h>
+#include <coreplugin/coreconstants.h>
+#include <coreplugin/modemanager.h>
#include <extensionsystem/pluginmanager.h>
#include <projectexplorer/editorconfiguration.h>
#include <projectexplorer/projectexplorer.h>
@@ -634,7 +636,7 @@ void VCSBaseEditor::jumpToChangeFromDiff(QTextCursor cursor)
Core::EditorManager *em = Core::EditorManager::instance();
Core::IEditor *ed = em->openEditor(fileName);
- em->ensureEditorManagerVisible();
+ Core::ModeManager::instance()->activateMode(Core::Constants::MODE_EDIT);
if (TextEditor::ITextEditor *editor = qobject_cast<TextEditor::ITextEditor *>(ed))
editor->gotoLine(chunkStart + lineCount);
}