From 24aea361b7b26bef467292d4f41ced1178b718bf Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 9 May 2023 14:15:38 +0200 Subject: [PATCH] Utils: remove OptionalLineColumn LineColumn already has a isValid() that is sufficient for the use case. Change-Id: I7f6e1d64b66a9af05d74ce0ef45717265dc28ed3 Reviewed-by: Jarek Kobus --- src/libs/utils/linecolumn.h | 2 -- src/libs/utils/textutils.cpp | 11 ++++------- src/libs/utils/textutils.h | 2 +- src/plugins/languageclient/languageclientsettings.cpp | 6 +++--- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/libs/utils/linecolumn.h b/src/libs/utils/linecolumn.h index 457ebd6a515..922c981d79e 100644 --- a/src/libs/utils/linecolumn.h +++ b/src/libs/utils/linecolumn.h @@ -39,8 +39,6 @@ public: int column = -1; }; -using OptionalLineColumn = std::optional; - } // namespace Utils Q_DECLARE_METATYPE(Utils::LineColumn) diff --git a/src/libs/utils/textutils.cpp b/src/libs/utils/textutils.cpp index 8b52d51d2c2..55e8a736d05 100644 --- a/src/libs/utils/textutils.cpp +++ b/src/libs/utils/textutils.cpp @@ -53,16 +53,13 @@ bool convertPosition(const QTextDocument *document, int pos, int *line, int *col } } -OptionalLineColumn convertPosition(const QTextDocument *document, int pos) +LineColumn convertPosition(const QTextDocument *document, int pos) { - OptionalLineColumn optional; - - QTextBlock block = document->findBlock(pos); - + const QTextBlock block = document->findBlock(pos); if (block.isValid()) - optional.emplace(block.blockNumber() + 1, pos - block.position()); + return {block.blockNumber() + 1, pos - block.position()}; - return optional; + return {}; } int positionInText(const QTextDocument *textDocument, int line, int column) diff --git a/src/libs/utils/textutils.h b/src/libs/utils/textutils.h index ce8a450302a..573dc7aa1d7 100644 --- a/src/libs/utils/textutils.h +++ b/src/libs/utils/textutils.h @@ -69,7 +69,7 @@ QTCREATOR_UTILS_EXPORT bool convertPosition(const QTextDocument *document, int pos, int *line, int *column); QTCREATOR_UTILS_EXPORT -OptionalLineColumn convertPosition(const QTextDocument *document, int pos); +LineColumn convertPosition(const QTextDocument *document, int pos); // line and column are 1-based QTCREATOR_UTILS_EXPORT int positionInText(const QTextDocument *textDocument, int line, int column); diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index 4dc70e31c96..92d314beabc 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -1052,12 +1052,12 @@ TextEditor::BaseTextEditor *jsonEditor() QJsonDocument::fromJson(content.toUtf8(), &error); if (error.error == QJsonParseError::NoError) return; - const Utils::OptionalLineColumn lineColumn + const Utils::LineColumn lineColumn = Utils::Text::convertPosition(document->document(), error.offset); - if (!lineColumn.has_value()) + if (!lineColumn.isValid()) return; auto mark = new TextMark(Utils::FilePath(), - lineColumn->line, + lineColumn.line, {::LanguageClient::Tr::tr("JSON Error"), jsonMarkId}); mark->setLineAnnotation(error.errorString()); mark->setColor(Utils::Theme::CodeModel_Error_TextMarkColor);