aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2
diff options
context:
space:
mode:
Diffstat (limited to 'src/quicktemplates2')
-rw-r--r--src/quicktemplates2/qquickcontrol.cpp9
-rw-r--r--src/quicktemplates2/qquickcontrol_p_p.h2
-rw-r--r--src/quicktemplates2/qquickpage.cpp14
-rw-r--r--src/quicktemplates2/qquickpane.cpp12
-rw-r--r--src/quicktemplates2/qquickpane_p_p.h2
-rw-r--r--src/quicktemplates2/qquickpopup.cpp10
6 files changed, 43 insertions, 6 deletions
diff --git a/src/quicktemplates2/qquickcontrol.cpp b/src/quicktemplates2/qquickcontrol.cpp
index 518255dd..6e35e64e 100644
--- a/src/quicktemplates2/qquickcontrol.cpp
+++ b/src/quicktemplates2/qquickcontrol.cpp
@@ -214,6 +214,11 @@ void QQuickControlPrivate::resizeContent()
}
}
+QQuickItem *QQuickControlPrivate::getContentItem()
+{
+ return contentItem;
+}
+
#ifndef QT_NO_ACCESSIBILITY
void QQuickControlPrivate::accessibilityActiveChanged(bool active)
{
@@ -1082,8 +1087,8 @@ void QQuickControl::setBackground(QQuickItem *background)
*/
QQuickItem *QQuickControl::contentItem() const
{
- Q_D(const QQuickControl);
- return d->contentItem;
+ QQuickControlPrivate *d = const_cast<QQuickControlPrivate *>(d_func());
+ return d->getContentItem();
}
void QQuickControl::setContentItem(QQuickItem *item)
diff --git a/src/quicktemplates2/qquickcontrol_p_p.h b/src/quicktemplates2/qquickcontrol_p_p.h
index 64f29986..26760510 100644
--- a/src/quicktemplates2/qquickcontrol_p_p.h
+++ b/src/quicktemplates2/qquickcontrol_p_p.h
@@ -88,6 +88,8 @@ public:
void resizeBackground();
virtual void resizeContent();
+ virtual QQuickItem *getContentItem();
+
#ifndef QT_NO_ACCESSIBILITY
void accessibilityActiveChanged(bool active) override;
QAccessible::Role accessibleRole() const override;
diff --git a/src/quicktemplates2/qquickpage.cpp b/src/quicktemplates2/qquickpage.cpp
index 54e79fbe..88eb03bf 100644
--- a/src/quicktemplates2/qquickpage.cpp
+++ b/src/quicktemplates2/qquickpage.cpp
@@ -87,10 +87,20 @@ class QQuickPagePrivate : public QQuickControlPrivate
Q_DECLARE_PUBLIC(QQuickPage)
public:
+ QQuickItem *getContentItem() override;
+
QString title;
QScopedPointer<QQuickPageLayout> layout;
};
+QQuickItem *QQuickPagePrivate::getContentItem()
+{
+ Q_Q(QQuickPage);
+ if (!contentItem)
+ contentItem = new QQuickItem(q);
+ return contentItem;
+}
+
QQuickPage::QQuickPage(QQuickItem *parent) :
QQuickControl(*(new QQuickPagePrivate), parent)
{
@@ -225,7 +235,7 @@ void QQuickPage::setFooter(QQuickItem *footer)
QQmlListProperty<QObject> QQuickPage::contentData()
{
Q_D(QQuickPage);
- return QQmlListProperty<QObject>(d->contentItem, nullptr,
+ return QQmlListProperty<QObject>(d->getContentItem(), nullptr,
QQuickItemPrivate::data_append,
QQuickItemPrivate::data_count,
QQuickItemPrivate::data_at,
@@ -248,7 +258,7 @@ QQmlListProperty<QObject> QQuickPage::contentData()
QQmlListProperty<QQuickItem> QQuickPage::contentChildren()
{
Q_D(QQuickPage);
- return QQmlListProperty<QQuickItem>(d->contentItem, nullptr,
+ return QQmlListProperty<QQuickItem>(d->getContentItem(), nullptr,
QQuickItemPrivate::children_append,
QQuickItemPrivate::children_count,
QQuickItemPrivate::children_at,
diff --git a/src/quicktemplates2/qquickpane.cpp b/src/quicktemplates2/qquickpane.cpp
index 9f9c139b..ea296eb6 100644
--- a/src/quicktemplates2/qquickpane.cpp
+++ b/src/quicktemplates2/qquickpane.cpp
@@ -108,6 +108,14 @@ QQuickPanePrivate::QQuickPanePrivate() : contentWidth(0), contentHeight(0)
{
}
+QQuickItem *QQuickPanePrivate::getContentItem()
+{
+ Q_Q(QQuickPane);
+ if (!contentItem)
+ contentItem = new QQuickItem(q);
+ return contentItem;
+}
+
QQuickPane::QQuickPane(QQuickItem *parent) :
QQuickControl(*(new QQuickPanePrivate), parent)
{
@@ -191,7 +199,7 @@ void QQuickPane::setContentHeight(qreal height)
QQmlListProperty<QObject> QQuickPane::contentData()
{
Q_D(QQuickPane);
- return QQmlListProperty<QObject>(d->contentItem, nullptr,
+ return QQmlListProperty<QObject>(d->getContentItem(), nullptr,
QQuickItemPrivate::data_append,
QQuickItemPrivate::data_count,
QQuickItemPrivate::data_at,
@@ -214,7 +222,7 @@ QQmlListProperty<QObject> QQuickPane::contentData()
QQmlListProperty<QQuickItem> QQuickPane::contentChildren()
{
Q_D(QQuickPane);
- return QQmlListProperty<QQuickItem>(d->contentItem, nullptr,
+ return QQmlListProperty<QQuickItem>(d->getContentItem(), nullptr,
QQuickItemPrivate::children_append,
QQuickItemPrivate::children_count,
QQuickItemPrivate::children_at,
diff --git a/src/quicktemplates2/qquickpane_p_p.h b/src/quicktemplates2/qquickpane_p_p.h
index acc0d0ab..62789664 100644
--- a/src/quicktemplates2/qquickpane_p_p.h
+++ b/src/quicktemplates2/qquickpane_p_p.h
@@ -61,6 +61,8 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPanePrivate : public QQuickControlP
public:
QQuickPanePrivate();
+ QQuickItem *getContentItem() override;
+
qreal contentWidth;
qreal contentHeight;
};
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp
index d2625c3e..a8e07533 100644
--- a/src/quicktemplates2/qquickpopup.cpp
+++ b/src/quicktemplates2/qquickpopup.cpp
@@ -352,6 +352,8 @@ public:
void resolveFont() override;
+ QQuickItem *getContentItem() override;
+
QQuickPopup *popup;
};
@@ -378,6 +380,14 @@ void QQuickPopupItemPrivate::resolveFont()
inheritFont(window->font());
}
+QQuickItem *QQuickPopupItemPrivate::getContentItem()
+{
+ Q_Q(QQuickPopupItem);
+ if (!contentItem)
+ contentItem = new QQuickItem(q);
+ return contentItem;
+}
+
QQuickPopupItem::QQuickPopupItem(QQuickPopup *popup) :
QQuickControl(*(new QQuickPopupItemPrivate(popup)), nullptr)
{