summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorKai Köhne <kai.koehne@qt.io>2022-01-05 08:29:21 +0100
committerKai Köhne <kai.koehne@qt.io>2022-01-06 07:58:39 +0100
commit93c1f481abb43c33c53fca703a83a19d208b68df (patch)
tree2f5926b3d244f7bc86e48369aeac175a14f0406c /src/gui
parentf19ce3898e0257dac1112754b1a84c24486bda01 (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.cpp32
-rw-r--r--src/gui/text/qtextdocumentfragment.h1
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