From 5aea93028f7c1bd669ea1e9f900242048c04c693 Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Wed, 14 Jul 2010 12:21:23 +0200 Subject: [PATCH] Add position to navigation history when navigating through outline --- src/plugins/cppeditor/cppoutline.cpp | 5 +++++ src/plugins/qmljseditor/qmljseditor.cpp | 5 +++++ src/plugins/qmljseditor/qmljsoutline.cpp | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/src/plugins/cppeditor/cppoutline.cpp b/src/plugins/cppeditor/cppoutline.cpp index 60e217666e6..5bab2160bee 100644 --- a/src/plugins/cppeditor/cppoutline.cpp +++ b/src/plugins/cppeditor/cppoutline.cpp @@ -4,6 +4,7 @@ #include <Symbol.h> #include <coreplugin/ifile.h> +#include <coreplugin/editormanager/editormanager.h> #include <cplusplus/OverviewModel.h> #include <QtCore/QDebug> @@ -126,6 +127,10 @@ void CppOutlineWidget::updateSelectionInText(const QItemSelection &selection) if (debug) qDebug() << "CppOutline - moving cursor to" << line << column - 1; + Core::EditorManager *editorManager = Core::EditorManager::instance(); + editorManager->cutForwardNavigationHistory(); + editorManager->addCurrentPositionToNavigationHistory(); + // line has to be 1 based, column 0 based! m_editor->gotoLine(line, column - 1); m_blockCursorSync = false; diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index 7528acd51b2..690464cb600 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -50,6 +50,7 @@ #include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/actioncontainer.h> #include <coreplugin/actionmanager/command.h> +#include <coreplugin/editormanager/editormanager.h> #include <coreplugin/icore.h> #include <coreplugin/coreconstants.h> #include <coreplugin/modemanager.h> @@ -830,6 +831,10 @@ void QmlJSTextEditor::jumpToOutlineElement(int /*index*/) QModelIndex index = m_outlineCombo->view()->currentIndex(); AST::SourceLocation location = index.data(QmlOutlineModel::SourceLocationRole).value<AST::SourceLocation>(); + Core::EditorManager *editorManager = Core::EditorManager::instance(); + editorManager->cutForwardNavigationHistory(); + editorManager->addCurrentPositionToNavigationHistory(); + QTextCursor cursor = textCursor(); cursor.setPosition(location.offset); setTextCursor(cursor); diff --git a/src/plugins/qmljseditor/qmljsoutline.cpp b/src/plugins/qmljseditor/qmljsoutline.cpp index 8c8d83357d3..ee3b5bb4fdf 100644 --- a/src/plugins/qmljseditor/qmljsoutline.cpp +++ b/src/plugins/qmljseditor/qmljsoutline.cpp @@ -2,6 +2,7 @@ #include "qmloutlinemodel.h" #include <coreplugin/ifile.h> +#include <coreplugin/editormanager/editormanager.h> #include <QtGui/QVBoxLayout> #include <QDebug> @@ -90,6 +91,10 @@ void QmlJSOutlineWidget::updateSelectionInText(const QItemSelection &selection) QModelIndex index = selection.indexes().first(); AST::SourceLocation location = index.data(QmlOutlineModel::SourceLocationRole).value<AST::SourceLocation>(); + Core::EditorManager *editorManager = Core::EditorManager::instance(); + editorManager->cutForwardNavigationHistory(); + editorManager->addCurrentPositionToNavigationHistory(); + QTextCursor textCursor = m_editor.data()->textCursor(); m_blockCursorSync = true; textCursor.setPosition(location.offset); -- GitLab