summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/clangcodemodel/clangfollowsymbol.cpp14
-rw-r--r--src/plugins/classview/classviewmanager.cpp5
-rw-r--r--src/plugins/classview/classviewparser.cpp4
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeeditor.cpp6
-rw-r--r--src/plugins/cppeditor/cppuseselections_test.cpp3
-rw-r--r--src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp8
-rw-r--r--src/plugins/cpptools/builtincursorinfo.cpp6
-rw-r--r--src/plugins/cpptools/builtineditordocumentprocessor.cpp1
-rw-r--r--src/plugins/cpptools/cppcanonicalsymbol.cpp3
-rw-r--r--src/plugins/cpptools/cppcompletionassist.cpp11
-rw-r--r--src/plugins/cpptools/cppcompletionassist.h2
-rw-r--r--src/plugins/cpptools/cppelementevaluator.cpp2
-rw-r--r--src/plugins/cpptools/cppfollowsymbolundercursor.cpp32
-rw-r--r--src/plugins/debugger/analyzer/analyzerutils.cpp2
-rw-r--r--src/plugins/designer/qtcreatorintegration.cpp3
-rw-r--r--src/plugins/qmakeprojectmanager/profileeditor.cpp6
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeprojectmanager.cpp3
-rw-r--r--src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp7
-rw-r--r--src/plugins/qmldesigner/qmldesignerplugin.cpp3
-rw-r--r--src/plugins/texteditor/texteditor.cpp11
20 files changed, 72 insertions, 60 deletions
diff --git a/src/plugins/clangcodemodel/clangfollowsymbol.cpp b/src/plugins/clangcodemodel/clangfollowsymbol.cpp
index 3e85ebc8d9..c430c810c3 100644
--- a/src/plugins/clangcodemodel/clangfollowsymbol.cpp
+++ b/src/plugins/clangcodemodel/clangfollowsymbol.cpp
@@ -163,13 +163,10 @@ void ClangFollowSymbol::findLink(const CppTools::CursorInEditor &data,
CppTools::SymbolFinder *symbolFinder,
bool inNextSplit)
{
- int lineNumber = 0, positionInBlock = 0;
+ int line = 0;
+ int column = 0;
QTextCursor cursor = Utils::Text::wordStartCursor(data.cursor());
- Utils::Text::convertPosition(cursor.document(), cursor.position(), &lineNumber,
- &positionInBlock);
-
- const uint line = lineNumber;
- const uint column = positionInBlock + 1;
+ Utils::Text::convertPosition(cursor.document(), cursor.position(), &line, &column);
ClangEditorDocumentProcessor *processor = ClangEditorDocumentProcessor::get(
data.filePath().toString());
@@ -177,7 +174,10 @@ void ClangFollowSymbol::findLink(const CppTools::CursorInEditor &data,
return processLinkCallback(Utils::Link());
if (!resolveTarget) {
- processLinkCallback(linkAtCursor(cursor, data.filePath().toString(), line, column,
+ processLinkCallback(linkAtCursor(cursor,
+ data.filePath().toString(),
+ static_cast<uint>(line),
+ static_cast<uint>(column),
processor));
return;
}
diff --git a/src/plugins/classview/classviewmanager.cpp b/src/plugins/classview/classviewmanager.cpp
index 2b3b839cda..de4b1450c5 100644
--- a/src/plugins/classview/classviewmanager.cpp
+++ b/src/plugins/classview/classviewmanager.cpp
@@ -423,7 +423,7 @@ void Manager::onDocumentUpdated(CPlusPlus::Document::Ptr doc)
/*!
Opens the text editor for the file \a fileName on \a line (1-based) and
- \a column (1-based).
+ \a column (0-based).
*/
void Manager::gotoLocation(const QString &fileName, int line, int column)
@@ -468,7 +468,8 @@ void Manager::gotoLocations(const QList<QVariant> &list)
}
}
}
- gotoLocation(loc.fileName(), loc.line(), loc.column());
+ // line is 1-based, column is 0-based
+ gotoLocation(loc.fileName(), loc.line(), loc.column() - 1);
}
/*!
diff --git a/src/plugins/classview/classviewparser.cpp b/src/plugins/classview/classviewparser.cpp
index e206b180a1..edf7a038ce 100644
--- a/src/plugins/classview/classviewparser.cpp
+++ b/src/plugins/classview/classviewparser.cpp
@@ -369,9 +369,9 @@ void Parser::addSymbol(const ParserTreeItem::Ptr &item, const CPlusPlus::Symbol
if (itemAdd.isNull())
itemAdd = ParserTreeItem::Ptr(new ParserTreeItem());
- // locations are 1-based in Symbol, start with 0 for the editor
+ // locations have 1-based column in Symbol, use the same here.
SymbolLocation location(QString::fromUtf8(symbol->fileName() , symbol->fileNameLength()),
- symbol->line(), symbol->column() - 1);
+ symbol->line(), symbol->column());
itemAdd->addSymbolLocation(location);
// prevent showing a content of the functions
diff --git a/src/plugins/cmakeprojectmanager/cmakeeditor.cpp b/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
index a1b529e3e9..122569616e 100644
--- a/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
@@ -146,8 +146,10 @@ void CMakeEditorWidget::findLinkAt(const QTextCursor &cursor,
{
Utils::Link link;
- int lineNumber = 0, positionInBlock = 0;
- convertPosition(cursor.position(), &lineNumber, &positionInBlock);
+ int line = 0;
+ int column = 0;
+ convertPosition(cursor.position(), &line, &column);
+ const int positionInBlock = column - 1;
const QString block = cursor.block().text();
diff --git a/src/plugins/cppeditor/cppuseselections_test.cpp b/src/plugins/cppeditor/cppuseselections_test.cpp
index 8de8048a89..99674b2e3c 100644
--- a/src/plugins/cppeditor/cppuseselections_test.cpp
+++ b/src/plugins/cppeditor/cppuseselections_test.cpp
@@ -31,6 +31,7 @@
#include <QElapsedTimer>
#include <QtTest>
+// Uses 1-based line and 0-based column.
struct Selection {
Selection(int line, int column, int length) : line(line), column(column), length(length) {}
int line;
@@ -116,7 +117,7 @@ SelectionList UseSelectionsTestCase::toSelectionList(
int line, column;
const int position = qMin(selection.cursor.position(), selection.cursor.anchor());
m_editorWidget->convertPosition(position, &line, &column);
- result << Selection(line, column, selection.cursor.selectedText().length());
+ result << Selection(line, column - 1, selection.cursor.selectedText().length());
}
return result;
}
diff --git a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
index 3ac121d918..8d30cfbd43 100644
--- a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
+++ b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
@@ -317,7 +317,7 @@ F2TestCase::F2TestCase(CppEditorAction action,
initialTestFile->m_editor->setCursorPosition(initialTestFile->m_cursorPosition);
// qDebug() << "Initial line:" << initialTestFile->editor->currentLine();
-// qDebug() << "Initial column:" << initialTestFile->editor->currentColumn() - 1;
+// qDebug() << "Initial column:" << initialTestFile->editor->currentColumn();
OverrideItemList immediateVirtualSymbolResults;
OverrideItemList finalVirtualSymbolResults;
@@ -338,7 +338,7 @@ F2TestCase::F2TestCase(CppEditorAction action,
QSKIP((curTestName + " is not supported by Clang FollowSymbol").toLatin1());
}
- initialTestFile->m_editorWidget->openLinkUnderCursor();
+ widget->openLinkUnderCursor();
break;
}
@@ -349,7 +349,7 @@ F2TestCase::F2TestCase(CppEditorAction action,
QSharedPointer<VirtualFunctionTestAssistProvider> testProvider(
new VirtualFunctionTestAssistProvider(widget));
builtinFollowSymbol->setVirtualFunctionAssistProvider(testProvider);
- initialTestFile->m_editorWidget->openLinkUnderCursor();
+ widget->openLinkUnderCursor();
immediateVirtualSymbolResults = testProvider->m_immediateItems;
finalVirtualSymbolResults = testProvider->m_finalItems;
@@ -382,7 +382,7 @@ F2TestCase::F2TestCase(CppEditorAction action,
QEXPECT_FAIL("globalVarFromEnum", "Contributor works on a fix.", Abort);
QEXPECT_FAIL("matchFunctionSignature_Follow_5", "foo(int) resolved as CallAST", Abort);
QCOMPARE(currentTextEditor->currentLine(), expectedLine);
- QCOMPARE(currentTextEditor->currentColumn() - 1, expectedColumn);
+ QCOMPARE(currentTextEditor->currentColumn(), expectedColumn);
// qDebug() << immediateVirtualSymbolResults;
// qDebug() << finalVirtualSymbolResults;
diff --git a/src/plugins/cpptools/builtincursorinfo.cpp b/src/plugins/cpptools/builtincursorinfo.cpp
index 4522af15a9..85603ba090 100644
--- a/src/plugins/cpptools/builtincursorinfo.cpp
+++ b/src/plugins/cpptools/builtincursorinfo.cpp
@@ -184,8 +184,9 @@ private:
{
CursorInfo result;
+ // findLocalUses operates with 1-based line and 0-based column
const CppTools::SemanticInfo::LocalUseMap localUses
- = BuiltinCursorInfo::findLocalUses(m_document, m_line, m_column);
+ = BuiltinCursorInfo::findLocalUses(m_document, m_line, m_column - 1);
result.localUses = localUses;
splitLocalUses(localUses, &result.useRanges, &result.unusedVariablesRanges);
@@ -216,8 +217,7 @@ private:
bool good = false;
foreach (const CppTools::SemanticInfo::Use &use, uses) {
unsigned l = static_cast<unsigned>(m_line);
- // convertCursorPosition() returns a 0-based column number.
- unsigned c = static_cast<unsigned>(m_column + 1);
+ unsigned c = static_cast<unsigned>(m_column);
if (l == use.line && c >= use.column && c <= (use.column + use.length)) {
good = true;
break;
diff --git a/src/plugins/cpptools/builtineditordocumentprocessor.cpp b/src/plugins/cpptools/builtineditordocumentprocessor.cpp
index 684f765eac..d5bfa51020 100644
--- a/src/plugins/cpptools/builtineditordocumentprocessor.cpp
+++ b/src/plugins/cpptools/builtineditordocumentprocessor.cpp
@@ -112,7 +112,6 @@ CppTools::CheckSymbols *createHighlighter(const CPlusPlus::Document::Ptr &doc,
int line, column;
convertPosition(textDocument, macro.utf16CharOffset(), &line, &column);
- ++column; //Highlighting starts at (column-1) --> compensate here
Result use(line, column, macro.nameToQString().size(), SemanticHighlighter::MacroUse);
macroUses.append(use);
}
diff --git a/src/plugins/cpptools/cppcanonicalsymbol.cpp b/src/plugins/cpptools/cppcanonicalsymbol.cpp
index 3f1869de63..fa5d074921 100644
--- a/src/plugins/cpptools/cppcanonicalsymbol.cpp
+++ b/src/plugins/cpptools/cppcanonicalsymbol.cpp
@@ -60,7 +60,6 @@ Scope *CanonicalSymbol::getScopeAndExpression(const QTextCursor &cursor, QString
QTextCursor tc = cursor;
int line, column;
Utils::Text::convertPosition(cursor.document(), tc.position(), &line, &column);
- ++column; // 1-based line and 1-based column
int pos = tc.position();
QTextDocument *textDocument = cursor.document();
@@ -74,7 +73,7 @@ Scope *CanonicalSymbol::getScopeAndExpression(const QTextCursor &cursor, QString
ExpressionUnderCursor expressionUnderCursor(m_document->languageFeatures());
*code = expressionUnderCursor(tc);
- return m_document->scopeAt(line, column);
+ return m_document->scopeAt(line, column - 1);
}
Symbol *CanonicalSymbol::operator()(const QTextCursor &cursor)
diff --git a/src/plugins/cpptools/cppcompletionassist.cpp b/src/plugins/cpptools/cppcompletionassist.cpp
index af4372a458..87bc2df0b4 100644
--- a/src/plugins/cpptools/cppcompletionassist.cpp
+++ b/src/plugins/cpptools/cppcompletionassist.cpp
@@ -1092,7 +1092,7 @@ int InternalCppCompletionAssistProcessor::startCompletionHelper()
int line = 0, column = 0;
Utils::Text::convertPosition(m_interface->textDocument(), startOfExpression, &line, &column);
const QString fileName = m_interface->fileName();
- return startCompletionInternal(fileName, line, column, expression, endOfExpression);
+ return startCompletionInternal(fileName, line, column - 1, expression, endOfExpression);
}
bool InternalCppCompletionAssistProcessor::tryObjCCompletion()
@@ -1125,7 +1125,7 @@ bool InternalCppCompletionAssistProcessor::tryObjCCompletion()
int line = 0, column = 0;
Utils::Text::convertPosition(m_interface->textDocument(), m_interface->position(), &line,
&column);
- Scope *scope = thisDocument->scopeAt(line, column);
+ Scope *scope = thisDocument->scopeAt(line, column - 1);
if (!scope)
return false;
@@ -1319,7 +1319,8 @@ bool InternalCppCompletionAssistProcessor::objcKeywordsWanted() const
}
int InternalCppCompletionAssistProcessor::startCompletionInternal(const QString &fileName,
- unsigned line, unsigned column,
+ unsigned line,
+ unsigned positionInBlock,
const QString &expr,
int endOfExpression)
{
@@ -1331,7 +1332,7 @@ int InternalCppCompletionAssistProcessor::startCompletionInternal(const QString
m_model->m_typeOfExpression->init(thisDocument, m_interface->snapshot());
- Scope *scope = thisDocument->scopeAt(line, column);
+ Scope *scope = thisDocument->scopeAt(line, positionInBlock);
QTC_ASSERT(scope != 0, return -1);
if (expression.isEmpty()) {
@@ -2016,7 +2017,7 @@ bool InternalCppCompletionAssistProcessor::completeConstructorOrFunction(const Q
int lineSigned = 0, columnSigned = 0;
Utils::Text::convertPosition(m_interface->textDocument(), m_interface->position(),
&lineSigned, &columnSigned);
- unsigned line = lineSigned, column = columnSigned;
+ unsigned line = lineSigned, column = columnSigned - 1;
// find a scope that encloses the current location, starting from the lastVisibileSymbol
// and moving outwards
diff --git a/src/plugins/cpptools/cppcompletionassist.h b/src/plugins/cpptools/cppcompletionassist.h
index 8e0097b2fa..7bb7776940 100644
--- a/src/plugins/cpptools/cppcompletionassist.h
+++ b/src/plugins/cpptools/cppcompletionassist.h
@@ -113,7 +113,7 @@ private:
bool tryObjCCompletion();
bool objcKeywordsWanted() const;
int startCompletionInternal(const QString &fileName,
- unsigned line, unsigned column,
+ unsigned line, unsigned positionInBlock,
const QString &expression,
int endOfExpression);
diff --git a/src/plugins/cpptools/cppelementevaluator.cpp b/src/plugins/cpptools/cppelementevaluator.cpp
index 90fb21a34c..afd8944bde 100644
--- a/src/plugins/cpptools/cppelementevaluator.cpp
+++ b/src/plugins/cpptools/cppelementevaluator.cpp
@@ -373,7 +373,7 @@ void CppElementEvaluator::execute()
// Fetch the expression's code
ExpressionUnderCursor expressionUnderCursor(doc->languageFeatures());
const QString &expression = expressionUnderCursor(m_tc);
- Scope *scope = doc->scopeAt(line, column);
+ Scope *scope = doc->scopeAt(line, column - 1);
TypeOfExpression typeOfExpression;
typeOfExpression.init(doc, snapshot);
diff --git a/src/plugins/cpptools/cppfollowsymbolundercursor.cpp b/src/plugins/cpptools/cppfollowsymbolundercursor.cpp
index 65bfd310a5..a66c357986 100644
--- a/src/plugins/cpptools/cppfollowsymbolundercursor.cpp
+++ b/src/plugins/cpptools/cppfollowsymbolundercursor.cpp
@@ -491,12 +491,12 @@ void FollowSymbolUnderCursor::findLink(
{
Link link;
- int lineNumber = 0, positionInBlock = 0;
+ int line = 0;
+ int column = 0;
QTextCursor cursor = data.cursor();
QTextDocument *document = cursor.document();
- Utils::Text::convertPosition(document, cursor.position(), &lineNumber, &positionInBlock);
- const unsigned line = lineNumber;
- const unsigned column = positionInBlock + 1;
+ Utils::Text::convertPosition(document, cursor.position(), &line, &column);
+ const int positionInBlock = column - 1;
Snapshot snapshot = theSnapshot;
@@ -541,8 +541,8 @@ void FollowSymbolUnderCursor::findLink(
for (int i = 0; i < tokens.size(); ++i) {
const Token &tk = tokens.at(i);
- if (((unsigned) positionInBlock) >= tk.utf16charsBegin()
- && ((unsigned) positionInBlock) < tk.utf16charsEnd()) {
+ if (static_cast<unsigned>(positionInBlock) >= tk.utf16charsBegin()
+ && static_cast<unsigned>(positionInBlock) < tk.utf16charsEnd()) {
int closingParenthesisPos = tokens.size();
if (i >= 2 && tokens.at(i).is(T_IDENTIFIER) && tokens.at(i - 1).is(T_LPAREN)
&& (tokens.at(i - 2).is(T_SIGNAL) || tokens.at(i - 2).is(T_SLOT))) {
@@ -584,8 +584,8 @@ void FollowSymbolUnderCursor::findLink(
// In this case we want to look at one token before the current position to recognize
// an operator if the cursor is inside the actual operator: operator[$]
- if (unsigned(positionInBlock) >= tk.utf16charsBegin()
- && unsigned(positionInBlock) <= tk.utf16charsEnd()) {
+ if (static_cast<unsigned>(positionInBlock) >= tk.utf16charsBegin()
+ && static_cast<unsigned>(positionInBlock) <= tk.utf16charsEnd()) {
cursorRegionReached = true;
if (tk.is(T_OPERATOR)) {
link = attemptFuncDeclDef(cursor, theSnapshot,
@@ -675,7 +675,7 @@ void FollowSymbolUnderCursor::findLink(
}
// Find the last symbol up to the cursor position
- Scope *scope = doc->scopeAt(line, column);
+ Scope *scope = doc->scopeAt(line, positionInBlock);
if (!scope)
return processLinkCallback(link);
@@ -698,19 +698,21 @@ void FollowSymbolUnderCursor::findLink(
if (d->isDeclaration() || d->isFunction()) {
const QString fileName = QString::fromUtf8(d->fileName(), d->fileNameLength());
if (data.filePath().toString() == fileName) {
- if (unsigned(lineNumber) == d->line()
- && unsigned(positionInBlock) >= d->column()) { // TODO: check the end
+ if (static_cast<unsigned>(line) == d->line()
+ && static_cast<unsigned>(positionInBlock) >= d->column()) {
+ // TODO: check the end
result = r; // take the symbol under cursor.
break;
}
}
} else if (d->isUsingDeclaration()) {
- int tokenBeginLineNumber = 0, tokenBeginColumnNumber = 0;
+ int tokenBeginLineNumber = 0;
+ int tokenBeginColumnNumber = 0;
Utils::Text::convertPosition(document, beginOfToken, &tokenBeginLineNumber,
&tokenBeginColumnNumber);
- if (unsigned(tokenBeginLineNumber) > d->line()
- || (unsigned(tokenBeginLineNumber) == d->line()
- && unsigned(tokenBeginColumnNumber) > d->column())) {
+ if (static_cast<unsigned>(tokenBeginLineNumber) > d->line()
+ || (static_cast<unsigned>(tokenBeginLineNumber) == d->line()
+ && static_cast<unsigned>(tokenBeginColumnNumber) >= d->column())) {
result = r; // take the symbol under cursor.
break;
}
diff --git a/src/plugins/debugger/analyzer/analyzerutils.cpp b/src/plugins/debugger/analyzer/analyzerutils.cpp
index 96fb4ef9e5..2a30067562 100644
--- a/src/plugins/debugger/analyzer/analyzerutils.cpp
+++ b/src/plugins/debugger/analyzer/analyzerutils.cpp
@@ -74,7 +74,7 @@ CPlusPlus::Symbol *AnalyzerUtils::findSymbolUnderCursor()
CPlusPlus::ExpressionUnderCursor expressionUnderCursor(doc->languageFeatures());
moveCursorToEndOfName(&tc);
const QString &expression = expressionUnderCursor(tc);
- CPlusPlus::Scope *scope = doc->scopeAt(line, column);
+ CPlusPlus::Scope *scope = doc->scopeAt(line, column - 1);
CPlusPlus::TypeOfExpression typeOfExpression;
typeOfExpression.init(doc, snapshot);
diff --git a/src/plugins/designer/qtcreatorintegration.cpp b/src/plugins/designer/qtcreatorintegration.cpp
index 703fac1434..9d3f9919a0 100644
--- a/src/plugins/designer/qtcreatorintegration.cpp
+++ b/src/plugins/designer/qtcreatorintegration.cpp
@@ -329,7 +329,8 @@ static Document::Ptr addDefinition(const Snapshot &docTable,
const QString contents = editor->textDocument()->plainText();
int column;
editor->convertPosition(contents.length(), line, &column);
- editor->gotoLine(*line, column);
+ // gotoLine accepts 0-based column.
+ editor->gotoLine(*line, column - 1);
editor->insert(definition);
*line += 1;
}
diff --git a/src/plugins/qmakeprojectmanager/profileeditor.cpp b/src/plugins/qmakeprojectmanager/profileeditor.cpp
index fb854311a7..cb26142767 100644
--- a/src/plugins/qmakeprojectmanager/profileeditor.cpp
+++ b/src/plugins/qmakeprojectmanager/profileeditor.cpp
@@ -81,8 +81,10 @@ void ProFileEditorWidget::findLinkAt(const QTextCursor &cursor,
{
Link link;
- int lineNumber = 0, positionInBlock = 0;
- convertPosition(cursor.position(), &lineNumber, &positionInBlock);
+ int line = 0;
+ int column = 0;
+ convertPosition(cursor.position(), &line, &column);
+ const int positionInBlock = column - 1;
const QString block = cursor.block().text();
diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectmanager.cpp b/src/plugins/qmakeprojectmanager/qmakeprojectmanager.cpp
index 6e3a3e43ad..3af228874a 100644
--- a/src/plugins/qmakeprojectmanager/qmakeprojectmanager.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakeprojectmanager.cpp
@@ -128,7 +128,8 @@ void QmakeManager::addLibraryImpl(const QString &fileName, BaseTextEditor *edito
// add extra \n in case the last line is not empty
int line, column;
editor->convertPosition(endOfDoc, &line, &column);
- if (!editor->textAt(endOfDoc - column, column).simplified().isEmpty())
+ const int positionInBlock = column - 1;
+ if (!editor->textAt(endOfDoc - positionInBlock, positionInBlock).simplified().isEmpty())
snippet = QLatin1Char('\n') + snippet;
editor->insert(snippet);
diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp
index 8bf98d79c9..240fe160d4 100644
--- a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp
+++ b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp
@@ -133,9 +133,10 @@ void TextEditorWidget::jumpTextCursorToSelectedModelNode()
const int nodeOffset = rewriterView->nodeOffset(selectedNode);
if (nodeOffset > 0) {
- int line, column;
- m_textEditor->editorWidget()->convertPosition(nodeOffset, &line, &column);
- m_textEditor->editorWidget()->gotoLine(line, column);
+ int line, column;
+ m_textEditor->editorWidget()->convertPosition(nodeOffset, &line, &column);
+ // line has to be 1 based, column 0 based!
+ m_textEditor->editorWidget()->gotoLine(line, column - 1);
}
}
m_updateSelectionTimer.stop();
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp
index 877010a3b7..9ab39cce37 100644
--- a/src/plugins/qmldesigner/qmldesignerplugin.cpp
+++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp
@@ -374,7 +374,8 @@ void QmlDesignerPlugin::jumpTextCursorToSelectedModelNode()
if (currentSelectedNode != selectedNode) {
int line, column;
currentDesignDocument()->textEditor()->convertPosition(nodeOffset, &line, &column);
- currentDesignDocument()->textEditor()->gotoLine(line, column);
+ // line has to be 1 based, column 0 based!
+ currentDesignDocument()->textEditor()->gotoLine(line, column - 1);
}
}
}
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp
index 3141a12620..37a57412bf 100644
--- a/src/plugins/texteditor/texteditor.cpp
+++ b/src/plugins/texteditor/texteditor.cpp
@@ -3104,14 +3104,14 @@ bool TextEditorWidget::restoreState(const QByteArray &state)
int version;
int vval;
int hval;
- int lval;
- int cval;
+ int lineVal;
+ int columnVal;
QDataStream stream(state);
stream >> version;
stream >> vval;
stream >> hval;
- stream >> lval;
- stream >> cval;
+ stream >> lineVal;
+ stream >> columnVal;
if (version >= 1) {
QList<int> collapsedBlocks;
@@ -3137,7 +3137,8 @@ bool TextEditorWidget::restoreState(const QByteArray &state)
}
d->m_lastCursorChangeWasInteresting = false; // avoid adding last position to history
- gotoLine(lval, cval);
+ // line is 1-based, column is 0-based
+ gotoLine(lineVal, columnVal - 1);
verticalScrollBar()->setValue(vval);
horizontalScrollBar()->setValue(hval);
d->saveCurrentCursorPositionForNavigation();