summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks
diff options
context:
space:
mode:
authorDavid Faure <david.faure@kdab.com>2022-04-29 16:35:34 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2022-05-19 12:26:57 +0000
commit1e938c348b936328fafbcaae4c0c7d91003143e5 (patch)
treefa3460f26601a1c790bb21c93d4274e524eeca3c /tests/benchmarks
parente5a5c099afb315e6e35483c60e5bfa6d9ce9f775 (diff)
QTextDocument: add setLayoutEnabled()
This allows to set up everything first - without paying for layouting at every step - and only then trigger layouting. Same performance behavior as setTextWidth(0), but this is a more explicit/readable API. Change-Id: I044dbd8b1301b1c97a92f9a29ccde2baf27a7665 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'tests/benchmarks')
-rw-r--r--tests/benchmarks/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/benchmarks/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/benchmarks/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
index 536d366b63..b8684610a8 100644
--- a/tests/benchmarks/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/benchmarks/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -35,6 +35,7 @@ private slots:
void translate();
void createTextItem();
void createTextItemZeroWidth();
+ void createTextItemNoLayouting();
};
tst_QGraphicsItem::tst_QGraphicsItem()
@@ -235,5 +236,22 @@ void tst_QGraphicsItem::createTextItemZeroWidth()
}
}
+void tst_QGraphicsItem::createTextItemNoLayouting()
+{
+ // Ensure QFontDatabase loaded the font beforehand
+ QFontInfo(qApp->font()).family();
+ const QString text = "This is some text";
+ QBENCHMARK {
+ QGraphicsTextItem item;
+ item.document()->setLayoutEnabled(false);
+ // Prepare everything
+ item.setPlainText(text);
+ QTextOption option = item.document()->defaultTextOption();
+ option.setAlignment(Qt::AlignHCenter);
+ item.document()->setDefaultTextOption(option);
+ // And (in a real app) enable layouting here
+ }
+}
+
QTEST_MAIN(tst_QGraphicsItem)
#include "tst_qgraphicsitem.moc"