aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2018-06-15 14:33:01 +0200
committerIvan Donchevskii <ivan.donchevskii@qt.io>2018-06-19 09:20:53 +0000
commita91956f3009df73c897c579ffcdab2108f7e5455 (patch)
tree6410a88ed323f8a1edcff85fad8bb5a190c9e0b0 /src/libs/utils
parentb6dfab804b7715eec92022805b7f5ced74400ff6 (diff)
Utils: Move common positionInText function to Utils::Text
Change-Id: I5d74a73058ca457b0fb3f13eaf945f224d5699fb Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/libs/utils')
-rw-r--r--src/libs/utils/textutils.cpp7
-rw-r--r--src/libs/utils/textutils.h3
2 files changed, 10 insertions, 0 deletions
diff --git a/src/libs/utils/textutils.cpp b/src/libs/utils/textutils.cpp
index c42f84166fb..0eb16d2dd11 100644
--- a/src/libs/utils/textutils.cpp
+++ b/src/libs/utils/textutils.cpp
@@ -58,6 +58,13 @@ Utils::OptionalLineColumn convertPosition(const QTextDocument *document, int pos
return optional;
}
+int positionInText(QTextDocument *textDocument, int line, int column)
+{
+ // Deduct 1 from line and column since they are 1-based.
+ // Column should already be converted from UTF-8 byte offset to the TextEditor column.
+ return textDocument->findBlockByNumber(line - 1).position() + column - 1;
+}
+
QString textAt(QTextCursor tc, int pos, int length)
{
if (pos < 0)
diff --git a/src/libs/utils/textutils.h b/src/libs/utils/textutils.h
index f0143165eb7..7c87108832b 100644
--- a/src/libs/utils/textutils.h
+++ b/src/libs/utils/textutils.h
@@ -43,6 +43,9 @@ QTCREATOR_UTILS_EXPORT bool convertPosition(const QTextDocument *document,
QTCREATOR_UTILS_EXPORT
Utils::OptionalLineColumn convertPosition(const QTextDocument *document, int pos);
+// line and column are 1-based
+QTCREATOR_UTILS_EXPORT int positionInText(QTextDocument *textDocument, int line, int column);
+
QTCREATOR_UTILS_EXPORT QString textAt(QTextCursor tc, int pos, int length);
QTCREATOR_UTILS_EXPORT QTextCursor selectAt(QTextCursor textCursor, uint line, uint column, uint length);