diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-04-11 16:42:12 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-04-11 18:33:32 +0000 |
commit | 53a101f35b76ccea0e8a6bd00055259811df41d1 (patch) | |
tree | a757b336e9c63ec0d4e8a79c06341c7c33451806 /src/quickcontrols2/qquickiconlabel_p_p.h | |
parent | 4503d45b93721e516e949419f3b9c6b796a7c13e (diff) |
QQuickIconLabel: create icon and label items lazily
Before:
Average: 120.2 frames; using samples; MedianAll=120; StdDev=0.447214, CoV=0.00372058
After:
Average: 129.8 frames; using samples; MedianAll=130; StdDev=0.447214, CoV=0.00344541
Task-number: QTBUG-59746
Change-Id: I44b521688cd60e7e287968828f9d4062cc642a0d
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src/quickcontrols2/qquickiconlabel_p_p.h')
-rw-r--r-- | src/quickcontrols2/qquickiconlabel_p_p.h | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/quickcontrols2/qquickiconlabel_p_p.h b/src/quickcontrols2/qquickiconlabel_p_p.h index bdd3e373..00c2d404 100644 --- a/src/quickcontrols2/qquickiconlabel_p_p.h +++ b/src/quickcontrols2/qquickiconlabel_p_p.h @@ -54,6 +54,10 @@ QT_BEGIN_NAMESPACE +class QQuickText; +class QQuickIcon; +class QQuickIconImage; + class QQuickIconLabelPrivate : public QQuickItemPrivate, public QQuickItemChangeListener { Q_DECLARE_PUBLIC(QQuickIconLabel) @@ -61,6 +65,22 @@ class QQuickIconLabelPrivate : public QQuickItemPrivate, public QQuickItemChange public: explicit QQuickIconLabelPrivate(); + bool hasIcon() const; + bool hasText() const; + + bool createImage(); + bool destroyImage(); + bool updateImage(); + void syncImage(); + void updateOrSyncImage(); + + bool createLabel(); + bool destroyLabel(); + bool updateLabel(); + void syncLabel(); + void updateOrSyncLabel(); + + void updateIcon(); void updateImplicitSize(); void layout(); @@ -74,16 +94,20 @@ public: void itemImplicitHeightChanged(QQuickItem *) override; void itemDestroyed(QQuickItem *item) override; - QQuickItem *icon; - QQuickItem *label; + bool mirrored; QQuickIconLabel::Display display; Qt::Alignment alignment; qreal spacing; - bool mirrored; qreal topPadding; qreal leftPadding; qreal rightPadding; qreal bottomPadding; + QFont font; + QColor color; + QString text; + QQuickIcon *icon; + QQuickIconImage *image; + QQuickText *label; }; QT_END_NAMESPACE |