diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-12-14 20:00:46 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-12-15 10:04:26 +0000 |
commit | 6b89293b99e763589181fd1f75470712f52cee3c (patch) | |
tree | 028706ec2c8e28da6187c37539f6607887cf51a0 /src | |
parent | a03f18e026bb564237702cab477589b6916a0102 (diff) |
Control: defer the execution of the content item
Tumbler is excluded because test_customContentItemAtConstruction()
starts failing if deferred execution is enabled for the content item.
Task-number: QTBUG-50992
Change-Id: I11022c3c380311396453cf6229e068e4aae2d82a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickabstractbutton.cpp | 8 | ||||
-rw-r--r-- | src/quicktemplates2/qquickabstractbutton_p_p.h | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcombobox.cpp | 10 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcontainer.cpp | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcontrol.cpp | 3 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcontrol_p.h | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpage.cpp | 9 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpage_p.h | 1 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpane.cpp | 15 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpane_p.h | 3 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpopupitem.cpp | 6 | ||||
-rw-r--r-- | src/quicktemplates2/qquickscrollview.cpp | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickspinbox.cpp | 10 | ||||
-rw-r--r-- | src/quicktemplates2/qquickspinbox_p.h | 1 | ||||
-rw-r--r-- | src/quicktemplates2/qquicktumbler_p.h | 1 |
15 files changed, 18 insertions, 57 deletions
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp index 7448ac9a..45ade7bb 100644 --- a/src/quicktemplates2/qquickabstractbutton.cpp +++ b/src/quicktemplates2/qquickabstractbutton.cpp @@ -131,13 +131,6 @@ QQuickAbstractButtonPrivate::QQuickAbstractButtonPrivate() { } -QQuickItem *QQuickAbstractButtonPrivate::getContentItem() -{ - if (!contentItem) - executeContentItem(); - return contentItem; -} - void QQuickAbstractButtonPrivate::handlePress(const QPointF &point) { Q_Q(QQuickAbstractButton); @@ -605,7 +598,6 @@ void QQuickAbstractButton::componentComplete() { Q_D(QQuickAbstractButton); d->executeIndicator(true); - d->executeContentItem(true); QQuickControl::componentComplete(); } diff --git a/src/quicktemplates2/qquickabstractbutton_p_p.h b/src/quicktemplates2/qquickabstractbutton_p_p.h index 0d8eab81..6634971e 100644 --- a/src/quicktemplates2/qquickabstractbutton_p_p.h +++ b/src/quicktemplates2/qquickabstractbutton_p_p.h @@ -67,8 +67,6 @@ public: return button->d_func(); } - QQuickItem *getContentItem() override; - void handlePress(const QPointF &point) override; void handleMove(const QPointF &point) override; void handleRelease(const QPointF &point) override; diff --git a/src/quicktemplates2/qquickcombobox.cpp b/src/quicktemplates2/qquickcombobox.cpp index 357800d6..d221b9bc 100644 --- a/src/quicktemplates2/qquickcombobox.cpp +++ b/src/quicktemplates2/qquickcombobox.cpp @@ -253,8 +253,6 @@ public: void handleRelease(const QPointF &point) override; void handleUngrab() override; - QQuickItem *getContentItem() override; - void executeIndicator(bool complete = false); void executePopup(bool complete = false); @@ -671,13 +669,6 @@ void QQuickComboBoxPrivate::handleUngrab() q->setPressed(false); } -QQuickItem *QQuickComboBoxPrivate::getContentItem() -{ - if (!contentItem) - executeContentItem(); - return contentItem; -} - static inline QString indicatorName() { return QStringLiteral("indicator"); } void QQuickComboBoxPrivate::executeIndicator(bool complete) @@ -1591,7 +1582,6 @@ void QQuickComboBox::componentComplete() { Q_D(QQuickComboBox); d->executeIndicator(true); - d->executeContentItem(true); if (d->popup) d->executePopup(true); QQuickControl::componentComplete(); diff --git a/src/quicktemplates2/qquickcontainer.cpp b/src/quicktemplates2/qquickcontainer.cpp index 7cf73841..ffed86b7 100644 --- a/src/quicktemplates2/qquickcontainer.cpp +++ b/src/quicktemplates2/qquickcontainer.cpp @@ -578,6 +578,8 @@ QVariant QQuickContainer::contentModel() const QQmlListProperty<QObject> QQuickContainer::contentData() { Q_D(QQuickContainer); + if (!d->contentItem) + d->executeContentItem(); return QQmlListProperty<QObject>(this, d, QQuickContainerPrivate::contentData_append, QQuickContainerPrivate::contentData_count, diff --git a/src/quicktemplates2/qquickcontrol.cpp b/src/quicktemplates2/qquickcontrol.cpp index 26f1f7e8..cfecc67c 100644 --- a/src/quicktemplates2/qquickcontrol.cpp +++ b/src/quicktemplates2/qquickcontrol.cpp @@ -281,6 +281,8 @@ void QQuickControlPrivate::resizeContent() QQuickItem *QQuickControlPrivate::getContentItem() { + if (!contentItem) + executeContentItem(); return contentItem; } @@ -1321,6 +1323,7 @@ void QQuickControl::componentComplete() { Q_D(QQuickControl); d->executeBackground(true); + d->executeContentItem(true); QQuickItem::componentComplete(); d->resizeContent(); if (!d->hasLocale) diff --git a/src/quicktemplates2/qquickcontrol_p.h b/src/quicktemplates2/qquickcontrol_p.h index 4cc4a205..6ccc5b71 100644 --- a/src/quicktemplates2/qquickcontrol_p.h +++ b/src/quicktemplates2/qquickcontrol_p.h @@ -78,7 +78,7 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickControl : public QQuickItem Q_PROPERTY(bool wheelEnabled READ isWheelEnabled WRITE setWheelEnabled NOTIFY wheelEnabledChanged FINAL) Q_PROPERTY(QQuickItem *background READ background WRITE setBackground NOTIFY backgroundChanged FINAL) Q_PROPERTY(QQuickItem *contentItem READ contentItem WRITE setContentItem NOTIFY contentItemChanged FINAL) - Q_CLASSINFO("DeferredPropertyNames", "background") + Q_CLASSINFO("DeferredPropertyNames", "background,contentItem") public: explicit QQuickControl(QQuickItem *parent = nullptr); diff --git a/src/quicktemplates2/qquickpage.cpp b/src/quicktemplates2/qquickpage.cpp index 98ce75e9..907b01e9 100644 --- a/src/quicktemplates2/qquickpage.cpp +++ b/src/quicktemplates2/qquickpage.cpp @@ -106,11 +106,9 @@ QQuickPagePrivate::QQuickPagePrivate() QQuickItem *QQuickPagePrivate::getContentItem() { Q_Q(QQuickPage); - if (!contentItem) - executeContentItem(); - if (!contentItem) - return new QQuickItem(q); - return contentItem; + if (QQuickItem *item = QQuickControlPrivate::getContentItem()) + return item; + return new QQuickItem(q); } QQuickPage::QQuickPage(QQuickItem *parent) @@ -332,7 +330,6 @@ void QQuickPage::setContentHeight(qreal height) void QQuickPage::componentComplete() { Q_D(QQuickPage); - d->executeContentItem(true); QQuickControl::componentComplete(); d->layout->update(); } diff --git a/src/quicktemplates2/qquickpage_p.h b/src/quicktemplates2/qquickpage_p.h index a2161ab5..0789e996 100644 --- a/src/quicktemplates2/qquickpage_p.h +++ b/src/quicktemplates2/qquickpage_p.h @@ -66,7 +66,6 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPage : public QQuickControl // 2.1 (Qt 5.8) Q_PROPERTY(qreal contentWidth READ contentWidth WRITE setContentWidth NOTIFY contentWidthChanged FINAL REVISION 1) Q_PROPERTY(qreal contentHeight READ contentHeight WRITE setContentHeight NOTIFY contentHeightChanged FINAL REVISION 1) - Q_CLASSINFO("DeferredPropertyNames", "background,contentItem") Q_CLASSINFO("DefaultProperty", "contentData") public: diff --git a/src/quicktemplates2/qquickpane.cpp b/src/quicktemplates2/qquickpane.cpp index b1175302..4c3e1422 100644 --- a/src/quicktemplates2/qquickpane.cpp +++ b/src/quicktemplates2/qquickpane.cpp @@ -113,11 +113,9 @@ QQuickPanePrivate::QQuickPanePrivate() QQuickItem *QQuickPanePrivate::getContentItem() { Q_Q(QQuickPane); - if (!contentItem) - executeContentItem(); - if (!contentItem) - return new QQuickItem(q); - return contentItem; + if (QQuickItem *item = QQuickControlPrivate::getContentItem()) + return item; + return new QQuickItem(q); } QQuickPane::QQuickPane(QQuickItem *parent) @@ -237,13 +235,6 @@ QQmlListProperty<QQuickItem> QQuickPane::contentChildren() QQuickItemPrivate::children_clear); } -void QQuickPane::componentComplete() -{ - Q_D(QQuickPane); - d->executeContentItem(true); - QQuickControl::componentComplete(); -} - void QQuickPane::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) { QQuickControl::contentItemChange(newItem, oldItem); diff --git a/src/quicktemplates2/qquickpane_p.h b/src/quicktemplates2/qquickpane_p.h index 651a8589..759c59d8 100644 --- a/src/quicktemplates2/qquickpane_p.h +++ b/src/quicktemplates2/qquickpane_p.h @@ -62,7 +62,6 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPane : public QQuickControl Q_PROPERTY(qreal contentHeight READ contentHeight WRITE setContentHeight NOTIFY contentHeightChanged FINAL) Q_PROPERTY(QQmlListProperty<QObject> contentData READ contentData FINAL) Q_PROPERTY(QQmlListProperty<QQuickItem> contentChildren READ contentChildren NOTIFY contentChildrenChanged FINAL) - Q_CLASSINFO("DeferredPropertyNames", "background,contentItem") Q_CLASSINFO("DefaultProperty", "contentData") public: @@ -85,8 +84,6 @@ Q_SIGNALS: protected: QQuickPane(QQuickPanePrivate &dd, QQuickItem *parent); - void componentComplete() override; - void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override; #if QT_CONFIG(accessibility) diff --git a/src/quicktemplates2/qquickpopupitem.cpp b/src/quicktemplates2/qquickpopupitem.cpp index 6f9d7697..bd667835 100644 --- a/src/quicktemplates2/qquickpopupitem.cpp +++ b/src/quicktemplates2/qquickpopupitem.cpp @@ -95,9 +95,9 @@ void QQuickPopupItemPrivate::resolveFont() QQuickItem *QQuickPopupItemPrivate::getContentItem() { Q_Q(QQuickPopupItem); - if (!contentItem) - return new QQuickItem(q); - return contentItem; + if (QQuickItem *item = QQuickControlPrivate::getContentItem()) + return item; + return new QQuickItem(q); } QQuickPopupItem::QQuickPopupItem(QQuickPopup *popup) diff --git a/src/quicktemplates2/qquickscrollview.cpp b/src/quicktemplates2/qquickscrollview.cpp index fa9a6c3b..254a90d7 100644 --- a/src/quicktemplates2/qquickscrollview.cpp +++ b/src/quicktemplates2/qquickscrollview.cpp @@ -146,6 +146,8 @@ QQuickScrollViewPrivate::QQuickScrollViewPrivate() QQuickItem *QQuickScrollViewPrivate::getContentItem() { + if (!contentItem) + executeContentItem(); return ensureFlickable(false); } diff --git a/src/quicktemplates2/qquickspinbox.cpp b/src/quicktemplates2/qquickspinbox.cpp index 1f821ac6..80bef2db 100644 --- a/src/quicktemplates2/qquickspinbox.cpp +++ b/src/quicktemplates2/qquickspinbox.cpp @@ -145,8 +145,6 @@ public: void handleRelease(const QPointF &point) override; void handleUngrab() override; - QQuickItem *getContentItem() override; - bool editable; int from; int to; @@ -374,13 +372,6 @@ void QQuickSpinBoxPrivate::handleUngrab() stopPressRepeat(); } -QQuickItem *QQuickSpinBoxPrivate::getContentItem() -{ - if (!contentItem) - executeContentItem(); - return contentItem; -} - QQuickSpinBox::QQuickSpinBox(QQuickItem *parent) : QQuickControl(*(new QQuickSpinBoxPrivate), parent) { @@ -884,7 +875,6 @@ void QQuickSpinBox::componentComplete() Q_D(QQuickSpinBox); QQuickSpinButtonPrivate::get(d->up)->executeIndicator(true); QQuickSpinButtonPrivate::get(d->down)->executeIndicator(true); - d->executeContentItem(true); QQuickControl::componentComplete(); if (!d->setValue(d->value, false)) { diff --git a/src/quicktemplates2/qquickspinbox_p.h b/src/quicktemplates2/qquickspinbox_p.h index 7bb23e05..1ba21386 100644 --- a/src/quicktemplates2/qquickspinbox_p.h +++ b/src/quicktemplates2/qquickspinbox_p.h @@ -74,7 +74,6 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSpinBox : public QQuickControl // 2.2 (Qt 5.9) Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ inputMethodHints WRITE setInputMethodHints NOTIFY inputMethodHintsChanged FINAL REVISION 2) Q_PROPERTY(bool inputMethodComposing READ isInputMethodComposing NOTIFY inputMethodComposingChanged FINAL REVISION 2) - Q_CLASSINFO("DeferredPropertyNames", "background,contentItem") public: explicit QQuickSpinBox(QQuickItem *parent = nullptr); diff --git a/src/quicktemplates2/qquicktumbler_p.h b/src/quicktemplates2/qquicktumbler_p.h index de7de595..480ebb23 100644 --- a/src/quicktemplates2/qquicktumbler_p.h +++ b/src/quicktemplates2/qquicktumbler_p.h @@ -70,6 +70,7 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTumbler : public QQuickControl Q_PROPERTY(bool wrap READ wrap WRITE setWrap RESET resetWrap NOTIFY wrapChanged FINAL REVISION 1) // 2.2 (Qt 5.9) Q_PROPERTY(bool moving READ isMoving NOTIFY movingChanged FINAL REVISION 2) + Q_CLASSINFO("DeferredPropertyNames", "background") public: explicit QQuickTumbler(QQuickItem *parent = nullptr); |