diff options
author | Kai Köhne <kai.koehne@qt.io> | 2022-01-05 08:29:21 +0100 |
---|---|---|
committer | Kai Köhne <kai.koehne@qt.io> | 2022-01-06 07:58:39 +0100 |
commit | 93c1f481abb43c33c53fca703a83a19d208b68df (patch) | |
tree | 2f5926b3d244f7bc86e48369aeac175a14f0406c /src/gui | |
parent | f19ce3898e0257dac1112754b1a84c24486bda01 (diff) |
Add QTextDocumentFragment::toRawText()
Like QTextDocument::toRawText(), QTextDocumentFragment::toRawText()
does allow access to the raw string without normalizing nbsp,
line separator, paragraph separator unicode characters.
[ChangeLog][QtGui][Text] Added QTextDocumentFragment::toRawText() function.
Task-number: QTBUG-99572
Change-Id: Ia74150a3870ea0e6326fdcda4d9d0410019124ae
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/text/qtextdocumentfragment.cpp | 32 | ||||
-rw-r--r-- | src/gui/text/qtextdocumentfragment.h | 1 |
2 files changed, 27 insertions, 6 deletions
diff --git a/src/gui/text/qtextdocumentfragment.cpp b/src/gui/text/qtextdocumentfragment.cpp index 24f2198d4e..f263e96154 100644 --- a/src/gui/text/qtextdocumentfragment.cpp +++ b/src/gui/text/qtextdocumentfragment.cpp @@ -266,12 +266,11 @@ void QTextDocumentFragmentPrivate::insert(QTextCursor &_cursor) const document fragment. Document fragments can also be created by the static functions, fromPlainText() and fromHtml(). - The contents of a document fragment can be obtained as plain text - by using the toPlainText() function, or it can be obtained as HTML + The contents of a document fragment can be obtained as raw text + by using the toRawText() function, or it can be obtained as HTML with toHtml(). */ - /*! Constructs an empty QTextDocumentFragment. @@ -358,10 +357,16 @@ bool QTextDocumentFragment::isEmpty() const } /*! - Returns the document fragment's text as plain text (i.e. with no - formatting information). + This function returns the same as toRawText(), but will replace + some unicode characters with ASCII alternatives. + In particular, no-break space (U+00A0) is replaced by a regular + space (U+0020), and both paragraph (U+2029) and line (U+2028) + separators are replaced by line feed (U+000A). + If you need the precise contents of the document, use toRawText() + instead. - \sa toHtml() + + \sa toHtml(), toRawText() */ QString QTextDocumentFragment::toPlainText() const { @@ -371,6 +376,21 @@ QString QTextDocumentFragment::toPlainText() const return d->doc->toPlainText(); } +/*! + Returns the document fragment's text as raw text (i.e. with no + formatting information). + + \since 6.4 + \sa toHtml(), toPlainText() +*/ +QString QTextDocumentFragment::toRawText() const +{ + if (!d) + return QString(); + + return d->doc->toRawText(); +} + #ifndef QT_NO_TEXTHTMLPARSER /*! diff --git a/src/gui/text/qtextdocumentfragment.h b/src/gui/text/qtextdocumentfragment.h index 2283b06c6c..37d7006ae6 100644 --- a/src/gui/text/qtextdocumentfragment.h +++ b/src/gui/text/qtextdocumentfragment.h @@ -64,6 +64,7 @@ public: bool isEmpty() const; QString toPlainText() const; + QString toRawText() const; #ifndef QT_NO_TEXTHTMLPARSER QString toHtml() const; #endif // QT_NO_TEXTHTMLPARSER |