From 2ab90078f4344b73cce6ca0ad69a0b1d1757e30a Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Thu, 28 Jan 2010 14:46:00 +0100 Subject: [PATCH] Center cursor when going from Design mode to text mode Just use high level TextEditor::gotoLine instead of directly manipulating the QTextCursor. Task-number: BAUHAUS-326 --- src/plugins/qmldesigner/designmodewidget.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index 30a2011c982..986a8b868f7 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -311,14 +311,15 @@ void DocumentWidget::setAutoSynchronization(bool sync) selectedNode = rewriter->selectedModelNodes().first(); if (selectedNode.isValid()) { - int nodeOffset = rewriter->nodeOffset(selectedNode); - QTextCursor editTextCursor = m_textBuffer->textCursor(); - if (nodeOffset > 0 - && nodeForPosition(editTextCursor.position()) != selectedNode) { - if (debug) - qDebug() << "Moving text cursor to " << nodeOffset; - editTextCursor.setPosition(nodeOffset); - m_textBuffer->setTextCursor(editTextCursor); + const int nodeOffset = rewriter->nodeOffset(selectedNode); + if (nodeOffset > 0) { + const ModelNode currentSelectedNode + = nodeForPosition(m_textBuffer->textCursor().position()); + if (currentSelectedNode != selectedNode) { + int line, column; + textEditor()->convertPosition(nodeOffset, &line, &column); + textEditor()->gotoLine(line, column); + } } } } -- GitLab