From cbdcd1e4a7f7fbd704330416409cca912d072d4f Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Tue, 15 Dec 2015 12:09:32 +0100 Subject: [PATCH] CppTools: Move function to BuiltinEditorDocumentProcessor It's only needed there. Change-Id: Id12aa9d0fdf50b3292316426587677f79a09a9e9 Reviewed-by: Marco Bubke --- .../cpptools/baseeditordocumentprocessor.cpp | 47 ------------------- .../cpptools/baseeditordocumentprocessor.h | 4 -- .../builtineditordocumentprocessor.cpp | 43 +++++++++++++++++ 3 files changed, 43 insertions(+), 51 deletions(-) diff --git a/src/plugins/cpptools/baseeditordocumentprocessor.cpp b/src/plugins/cpptools/baseeditordocumentprocessor.cpp index d79ef7e7952..72173c1181e 100644 --- a/src/plugins/cpptools/baseeditordocumentprocessor.cpp +++ b/src/plugins/cpptools/baseeditordocumentprocessor.cpp @@ -33,13 +33,7 @@ #include "cppmodelmanager.h" #include "editordocumenthandle.h" -#include #include -#include - -#include - -#include namespace CppTools { @@ -55,7 +49,6 @@ BaseEditorDocumentProcessor::BaseEditorDocumentProcessor( TextEditor::TextDocument *document) : m_baseTextDocument(document) { - QTC_CHECK(document); } BaseEditorDocumentProcessor::~BaseEditorDocumentProcessor() @@ -81,46 +74,6 @@ BaseEditorDocumentProcessor *BaseEditorDocumentProcessor::get(const QString &fil return 0; } -QList BaseEditorDocumentProcessor::toTextEditorSelections( - const QList &diagnostics, - QTextDocument *textDocument) -{ - const TextEditor::FontSettings &fontSettings = TextEditor::TextEditorSettings::instance()->fontSettings(); - - QTextCharFormat warningFormat = fontSettings.toTextCharFormat(TextEditor::C_WARNING); - QTextCharFormat errorFormat = fontSettings.toTextCharFormat(TextEditor::C_ERROR); - - QList result; - foreach (const CPlusPlus::Document::DiagnosticMessage &m, diagnostics) { - QTextEdit::ExtraSelection sel; - if (m.isWarning()) - sel.format = warningFormat; - else - sel.format = errorFormat; - - QTextCursor c(textDocument->findBlockByNumber(m.line() - 1)); - const QString text = c.block().text(); - const int startPos = m.column() > 0 ? m.column() - 1 : 0; - if (m.length() > 0 && startPos + m.length() <= (unsigned)text.size()) { - c.setPosition(c.position() + startPos); - c.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor, m.length()); - } else { - for (int i = 0; i < text.size(); ++i) { - if (!text.at(i).isSpace()) { - c.setPosition(c.position() + i); - break; - } - } - c.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); - } - sel.cursor = c; - sel.format.setToolTip(m.text()); - result.append(sel); - } - - return result; -} - void BaseEditorDocumentProcessor::runParser(QFutureInterface &future, BaseEditorDocumentParser::Ptr parser, BaseEditorDocumentParser::InMemoryInfo info) diff --git a/src/plugins/cpptools/baseeditordocumentprocessor.h b/src/plugins/cpptools/baseeditordocumentprocessor.h index eb3b322ecd0..e66aed23e00 100644 --- a/src/plugins/cpptools/baseeditordocumentprocessor.h +++ b/src/plugins/cpptools/baseeditordocumentprocessor.h @@ -87,10 +87,6 @@ signals: void semanticInfoUpdated(const CppTools::SemanticInfo semanticInfo); // TODO: Remove me protected: - static QList toTextEditorSelections( - const QList &diagnostics, - QTextDocument *textDocument); - static void runParser(QFutureInterface &future, BaseEditorDocumentParser::Ptr parser, BaseEditorDocumentParser::InMemoryInfo info); diff --git a/src/plugins/cpptools/builtineditordocumentprocessor.cpp b/src/plugins/cpptools/builtineditordocumentprocessor.cpp index f1e11b63755..0a9a23a1164 100644 --- a/src/plugins/cpptools/builtineditordocumentprocessor.cpp +++ b/src/plugins/cpptools/builtineditordocumentprocessor.cpp @@ -38,6 +38,8 @@ #include "cppworkingcopy.h" #include +#include +#include #include #include @@ -46,11 +48,52 @@ #include #include +#include static Q_LOGGING_CATEGORY(log, "qtc.cpptools.builtineditordocumentprocessor") namespace { +QList toTextEditorSelections( + const QList &diagnostics, + QTextDocument *textDocument) +{ + const TextEditor::FontSettings &fontSettings = TextEditor::TextEditorSettings::instance()->fontSettings(); + + QTextCharFormat warningFormat = fontSettings.toTextCharFormat(TextEditor::C_WARNING); + QTextCharFormat errorFormat = fontSettings.toTextCharFormat(TextEditor::C_ERROR); + + QList result; + foreach (const CPlusPlus::Document::DiagnosticMessage &m, diagnostics) { + QTextEdit::ExtraSelection sel; + if (m.isWarning()) + sel.format = warningFormat; + else + sel.format = errorFormat; + + QTextCursor c(textDocument->findBlockByNumber(m.line() - 1)); + const QString text = c.block().text(); + const int startPos = m.column() > 0 ? m.column() - 1 : 0; + if (m.length() > 0 && startPos + m.length() <= (unsigned)text.size()) { + c.setPosition(c.position() + startPos); + c.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor, m.length()); + } else { + for (int i = 0; i < text.size(); ++i) { + if (!text.at(i).isSpace()) { + c.setPosition(c.position() + i); + break; + } + } + c.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); + } + sel.cursor = c; + sel.format.setToolTip(m.text()); + result.append(sel); + } + + return result; +} + CppTools::CheckSymbols *createHighlighter(const CPlusPlus::Document::Ptr &doc, const CPlusPlus::Snapshot &snapshot, QTextDocument *textDocument)