diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-04-12 09:33:49 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-04-12 07:49:21 +0000 |
commit | 4a8ae68f1e8acc0eb358ba7814a677ea7c5ae4f2 (patch) | |
tree | ee19aeca3fa3dbd03c2dfb0880e54b76bc9807fd /src/quickcontrols2/qquickiconlabel.cpp | |
parent | 1e959f340854b3494f5017640e2832a8ea3ee4a6 (diff) |
QQuickIconLabel: reduce the amount of implicit size re-calculation
Before:
Average: 124.6 frames; using samples; MedianAll=125; StdDev=0.894427, CoV=0.00717839
After:
Average: 134 frames; using samples; MedianAll=134; StdDev=0.707107, CoV=0.00527692
Task-number: QTBUG-59746
Change-Id: I67dac9e51aba908e2a22f64a2b2c906d4a6b573b
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src/quickcontrols2/qquickiconlabel.cpp')
-rw-r--r-- | src/quickcontrols2/qquickiconlabel.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/quickcontrols2/qquickiconlabel.cpp b/src/quickcontrols2/qquickiconlabel.cpp index b7e83f97..d1ac8349 100644 --- a/src/quickcontrols2/qquickiconlabel.cpp +++ b/src/quickcontrols2/qquickiconlabel.cpp @@ -131,8 +131,10 @@ void QQuickIconLabelPrivate::syncImage() void QQuickIconLabelPrivate::updateOrSyncImage() { if (updateImage()) { - updateImplicitSize(); - layout(); + if (componentComplete) { + updateImplicitSize(); + layout(); + } } else { syncImage(); } @@ -186,8 +188,10 @@ void QQuickIconLabelPrivate::syncLabel() void QQuickIconLabelPrivate::updateOrSyncLabel() { if (updateLabel()) { - updateImplicitSize(); - layout(); + if (componentComplete) { + updateImplicitSize(); + layout(); + } } else { syncLabel(); } @@ -504,8 +508,10 @@ void QQuickIconLabel::setSpacing(qreal spacing) return; d->spacing = spacing; - d->updateImplicitSize(); - d->layout(); + if (d->image && d->label) { + d->updateImplicitSize(); + d->layout(); + } } bool QQuickIconLabel::isMirrored() const @@ -634,11 +640,11 @@ void QQuickIconLabel::resetBottomPadding() void QQuickIconLabel::componentComplete() { Q_D(QQuickIconLabel); - QQuickItem::componentComplete(); if (d->image) completeComponent(d->image); if (d->label) completeComponent(d->label); + QQuickItem::componentComplete(); d->layout(); } |