aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickcontrols2/qquickiconlabel.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-04-12 09:33:49 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-04-12 07:49:21 +0000
commit4a8ae68f1e8acc0eb358ba7814a677ea7c5ae4f2 (patch)
treeee19aeca3fa3dbd03c2dfb0880e54b76bc9807fd /src/quickcontrols2/qquickiconlabel.cpp
parent1e959f340854b3494f5017640e2832a8ea3ee4a6 (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.cpp20
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();
}