aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authordt <qtc-committer@nokia.com>2010-09-03 11:57:46 +0200
committerdt <qtc-committer@nokia.com>2010-09-06 13:56:53 +0200
commitbde1ebaaea85e460f0cba7240af06e714b387acb (patch)
treea4fde6f8253462ad7facba22147a16677387df83 /src/plugins
parent0e2a7608f2da6e32fdfe3e12ea1af164bb28807e (diff)
Remove EditorManager::ensureEditorManagerVisible()
The function always switched to Edit Mode, which was the cause for several bugs. Since openEditor() already does switch to the right mode, the function is not really needed. The following actions now respect the prefered mode of the editor: "f file"-locator The Open Documents list Editor history navigation
Diffstat (limited to 'src/plugins')
-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);
}