Skip to content
Snippets Groups Projects
Commit f1de90c8 authored by Erik Verbruggen's avatar Erik Verbruggen
Browse files

C++ Editor: fixed cursor positioning after quickfix action.

parent e4f805da
No related branches found
No related tags found
No related merge requests found
...@@ -95,7 +95,9 @@ public: ...@@ -95,7 +95,9 @@ public:
targetFile.change(target); targetFile.change(target);
targetFile.indent(Utils::ChangeSet::Range(targetPosition2, targetPosition1)); targetFile.indent(Utils::ChangeSet::Range(targetPosition2, targetPosition1));
refactoring->activateEditor(m_targetFileName, targetPosition1); const int prefixLineCount = loc.prefix().count(QLatin1Char('\n'));
refactoring->activateEditor(m_targetFileName, loc.line() + prefixLineCount,
qMax(((int) loc.column()) - 1, 0));
} }
private: private:
......
...@@ -43,7 +43,16 @@ RefactoringChanges::RefactoringChanges() ...@@ -43,7 +43,16 @@ RefactoringChanges::RefactoringChanges()
{} {}
RefactoringChanges::~RefactoringChanges() RefactoringChanges::~RefactoringChanges()
{} {
if (!m_fileToOpen.isEmpty()) {
BaseTextEditor *editor = editorForFile(m_fileToOpen, true);
editor->gotoLine(m_lineToOpen, m_columnToOpen);
Core::EditorManager *editorManager = Core::EditorManager::instance();
editorManager->activateEditor(editor->editableInterface(),
Core::EditorManager::ModeSwitch);
}
}
BaseTextEditor *RefactoringChanges::editorForFile(const QString &fileName, BaseTextEditor *RefactoringChanges::editorForFile(const QString &fileName,
bool openIfClosed) bool openIfClosed)
...@@ -156,14 +165,11 @@ BaseTextEditor *RefactoringChanges::openEditor(const QString &fileName, int pos) ...@@ -156,14 +165,11 @@ BaseTextEditor *RefactoringChanges::openEditor(const QString &fileName, int pos)
return editor; return editor;
} }
BaseTextEditor *RefactoringChanges::activateEditor(const QString &fileName, int pos) void RefactoringChanges::activateEditor(const QString &fileName, int line, int column)
{ {
BaseTextEditor *editor = openEditor(fileName, pos); m_fileToOpen = fileName;
m_lineToOpen = line;
Core::EditorManager *editorManager = Core::EditorManager::instance(); m_columnToOpen = column;
editorManager->activateEditor(editor->editableInterface(), Core::EditorManager::ModeSwitch);
return editor;
} }
......
...@@ -105,11 +105,12 @@ public: ...@@ -105,11 +105,12 @@ public:
BaseTextEditor *openEditor(const QString &fileName, int pos = -1); BaseTextEditor *openEditor(const QString &fileName, int pos = -1);
/** /*!
* \param fileName the file to activate the editor for \param fileName the file to activate the editor for
* \param pos, 0-based offset to put the cursor on, -1 means don't move \param line the line to put the cursor on (1-based)
\param column the column to put the cursor on (1-based)
*/ */
BaseTextEditor *activateEditor(const QString &fileName, int pos = -1); void activateEditor(const QString &fileName, int line, int column);
private: private:
...@@ -121,6 +122,11 @@ private: ...@@ -121,6 +122,11 @@ private:
virtual void fileChanged(const QString &fileName) = 0; virtual void fileChanged(const QString &fileName) = 0;
friend class RefactoringFile; friend class RefactoringFile;
private:
QString m_fileToOpen;
int m_lineToOpen;
int m_columnToOpen;
}; };
} // namespace TextEditor } // namespace TextEditor
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment