diff options
Diffstat (limited to 'src/quicktemplates2')
-rw-r--r-- | src/quicktemplates2/qquickcontrol.cpp | 9 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcontrol_p_p.h | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpage.cpp | 14 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpane.cpp | 12 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpane_p_p.h | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 10 |
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) { |