From 4e6c8e38be694f61333f54efd7e9c02e29c69ed6 Mon Sep 17 00:00:00 2001
From: Kai Koehne <kai.koehne@nokia.com>
Date: Wed, 14 Jul 2010 12:53:54 +0200
Subject: [PATCH] CppOutline: Fix navigation to e.g. enum members

Use symbol->line() && symbol->column() instead going through the
translation unit. That's also what CppEditor does in
jumpToOutlineElement().
---
 src/plugins/cppeditor/cppoutline.cpp | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/plugins/cppeditor/cppoutline.cpp b/src/plugins/cppeditor/cppoutline.cpp
index 5bab2160bee..146b060ae68 100644
--- a/src/plugins/cppeditor/cppoutline.cpp
+++ b/src/plugins/cppeditor/cppoutline.cpp
@@ -120,19 +120,16 @@ void CppOutlineWidget::updateSelectionInText(const QItemSelection &selection)
         CPlusPlus::Symbol *symbol = m_model->symbolFromIndex(index);
         if (symbol) {
             m_blockCursorSync = true;
-            unsigned line, column;
-
-            m_model->document()->translationUnit()->getPosition(symbol->startOffset(), &line, &column);
 
             if (debug)
-                qDebug() << "CppOutline - moving cursor to" << line << column - 1;
+                qDebug() << "CppOutline - moving cursor to" << symbol->line() << symbol->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_editor->gotoLine(symbol->line(), symbol->column() - 1);
             m_blockCursorSync = false;
         }
     }
-- 
GitLab