summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui
diff options
context:
space:
mode:
authorDavid Faure <david.faure@kdab.com>2022-05-25 22:07:36 +0200
committerDavid Faure <david.faure@kdab.com>2022-05-26 16:58:42 +0200
commit09c7457f4ab8021e7637e60e6c3d1f644639aec1 (patch)
treea616cc26d117d741d593542d7dc41a67a79de96f /tests/auto/gui
parent2996ca031efcd97ef9866186ae53e96ed75c9fbf (diff)
QTextDocument: add setLayoutEnabled()
This allows to set up everything first - without paying for the layout calculation at every step - and only then trigger the layout once. Results: 0.065 msecs to create a QGraphicsTextItem with some text (layouted) 0.036 msecs to set everything up in a QGraphicsTextItem with 0 width Change-Id: I138bd1d58941d029bc0a36d2730216778f1fbd97 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'tests/auto/gui')
-rw-r--r--tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
index 5344e6881c..ad9e1965b6 100644
--- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
@@ -180,6 +180,8 @@ private slots:
void insertHtmlWithComments_data();
void insertHtmlWithComments();
+ void delayedLayout();
+
private:
void backgroundImage_checkExpectedHtml(const QTextDocument &doc);
void buildRegExpData();
@@ -3931,5 +3933,24 @@ void tst_QTextDocument::insertHtmlWithComments()
QCOMPARE(blockContent, expectedBlocks);
}
+void tst_QTextDocument::delayedLayout()
+{
+ QTextDocument doc;
+ doc.setHtml("<html>Foobar</html>");
+ QCOMPARE(doc.blockCount(), 1);
+
+ doc.setLayoutEnabled(false);
+
+ // Force creation of a layout
+ QVERIFY(doc.documentLayout());
+
+ QTextBlock block = doc.begin();
+ QTextLayout *layout = block.layout();
+ QCOMPARE(layout->lineCount(), 0); // layout didn't happen yet
+
+ doc.setLayoutEnabled(true);
+ QCOMPARE(layout->lineCount(), 1); // layout happened
+}
+
QTEST_MAIN(tst_QTextDocument)
#include "tst_qtextdocument.moc"