diff options
-rw-r--r-- | src/gui/text/qtextdocument.cpp | 19 | ||||
-rw-r--r-- | src/gui/text/qtextdocument.h | 1 | ||||
-rw-r--r-- | tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp | 11 |
3 files changed, 31 insertions, 0 deletions
diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp index 07aec6f019..61bab2dbfd 100644 --- a/src/gui/text/qtextdocument.cpp +++ b/src/gui/text/qtextdocument.cpp @@ -1145,9 +1145,28 @@ void QTextDocument::setMetaInformation(MetaInformation info, const QString &stri } /*! + Returns the raw text contained in the document without any + formatting information. If you want formatting information + use a QTextCursor instead. + + \since 5.9 + \sa toPlainText() +*/ +QString QTextDocument::toRawText() const +{ + Q_D(const QTextDocument); + return d->plainText(); +} + +/*! Returns the plain text contained in the document. If you want formatting information use a QTextCursor instead. + This function returns the same as toRawText(), but will replace + some unicode characters, such as line separators and non-breaking + spaces, with ASCII alternatives. If you need the precise contents + of the document, use toRawText() instead. + \note Embedded objects, such as images, are represented by a Unicode value U+FFFC (OBJECT REPLACEMENT CHARACTER). diff --git a/src/gui/text/qtextdocument.h b/src/gui/text/qtextdocument.h index 1888088f0d..c2761a39b9 100644 --- a/src/gui/text/qtextdocument.h +++ b/src/gui/text/qtextdocument.h @@ -151,6 +151,7 @@ public: void setHtml(const QString &html); #endif + QString toRawText() const; QString toPlainText() const; void setPlainText(const QString &text); diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp index de5b2a8676..ef1ad76161 100644 --- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp @@ -135,6 +135,7 @@ private slots: void setPlainText(); void toPlainText(); + void toRawText(); void deleteTextObjectsOnClear(); @@ -2396,6 +2397,16 @@ void tst_QTextDocument::toPlainText() QCOMPARE(doc->toPlainText(), QLatin1String("Hello World")); } +void tst_QTextDocument::toRawText() +{ + doc->setHtml(" "); + + QString rawText = doc->toRawText(); + QCOMPARE(rawText.size(), 1); + QCOMPARE(rawText.at(0).unicode(), ushort(QChar::Nbsp)); +} + + void tst_QTextDocument::deleteTextObjectsOnClear() { QPointer<QTextTable> table = cursor.insertTable(2, 2); |