diff options
author | David Faure <david.faure@kdab.com> | 2022-04-29 11:29:19 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-05-16 22:34:06 +0000 |
commit | 42cf2a2617ffd0d563fcd46c5aa5409007e211de (patch) | |
tree | 4d31f0ded9f53c243521652b2d41067eadedfc7b /src | |
parent | 367092d7e02bfe0054b78e856b7addbdb56aae2e (diff) |
QWidgetTextControl: don't clear() a new empty document
Before: 0.063 msecs per iteration
After: 0.054 msecs per iteration
clear() takes time because:
1) QTextDocumentLayout::documentChanged() => doLayout() => layoutFrame()
2) QTextDocumentPrivate::init() => insertBlock() => finishEdit() =>
QTextDocumentLayout::documentChanged() => layoutStep() => ... => doLayout() again
Pick-to: 6.3 6.2
Change-Id: I7a13164d06a1ed77226f2b9d7d12e69ce5b31dfe
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/widgets/qwidgettextcontrol.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp index ad8e79f4e2..e73975f9e2 100644 --- a/src/widgets/widgets/qwidgettextcontrol.cpp +++ b/src/widgets/widgets/qwidgettextcontrol.cpp @@ -412,11 +412,11 @@ void QWidgetTextControlPrivate::setContent(Qt::TextFormat format, const QString if (!doc) { if (document) { doc = document; - clearDocument = false; } else { palette = QApplication::palette("QWidgetTextControl"); doc = new QTextDocument(q); } + clearDocument = false; _q_documentLayoutChanged(); cursor = QTextCursor(doc); |