aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-12-14 20:00:46 +0100
committerJ-P Nurmi <jpnurmi@qt.io>2017-12-15 10:04:26 +0000
commit6b89293b99e763589181fd1f75470712f52cee3c (patch)
tree028706ec2c8e28da6187c37539f6607887cf51a0 /src/quicktemplates2
parenta03f18e026bb564237702cab477589b6916a0102 (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/quicktemplates2')
-rw-r--r--src/quicktemplates2/qquickabstractbutton.cpp8
-rw-r--r--src/quicktemplates2/qquickabstractbutton_p_p.h2
-rw-r--r--src/quicktemplates2/qquickcombobox.cpp10
-rw-r--r--src/quicktemplates2/qquickcontainer.cpp2
-rw-r--r--src/quicktemplates2/qquickcontrol.cpp3
-rw-r--r--src/quicktemplates2/qquickcontrol_p.h2
-rw-r--r--src/quicktemplates2/qquickpage.cpp9
-rw-r--r--src/quicktemplates2/qquickpage_p.h1
-rw-r--r--src/quicktemplates2/qquickpane.cpp15
-rw-r--r--src/quicktemplates2/qquickpane_p.h3
-rw-r--r--src/quicktemplates2/qquickpopupitem.cpp6
-rw-r--r--src/quicktemplates2/qquickscrollview.cpp2
-rw-r--r--src/quicktemplates2/qquickspinbox.cpp10
-rw-r--r--src/quicktemplates2/qquickspinbox_p.h1
-rw-r--r--src/quicktemplates2/qquicktumbler_p.h1
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);