diff options
30 files changed, 43 insertions, 66 deletions
diff --git a/src/imports/controls/Dialog.qml b/src/imports/controls/Dialog.qml index 18760d3f..c90ae6fc 100644 --- a/src/imports/controls/Dialog.qml +++ b/src/imports/controls/Dialog.qml @@ -55,8 +55,6 @@ T.Dialog { padding: 12 - contentItem: Item { } - background: Rectangle { border.color: Default.frameDarkColor } diff --git a/src/imports/controls/Drawer.qml b/src/imports/controls/Drawer.qml index eca9b949..689b6240 100644 --- a/src/imports/controls/Drawer.qml +++ b/src/imports/controls/Drawer.qml @@ -63,10 +63,6 @@ T.Drawer { exit: Transition { SmoothedAnimation { velocity: 5 } } //! [exit] - //! [contentItem] - contentItem: Item { } - //! [contentItem] - //! [background] background: Rectangle { Rectangle { diff --git a/src/imports/controls/Frame.qml b/src/imports/controls/Frame.qml index e1148496..ef716f72 100644 --- a/src/imports/controls/Frame.qml +++ b/src/imports/controls/Frame.qml @@ -50,10 +50,6 @@ T.Frame { padding: 12 - //! [contentItem] - contentItem: Item { } - //! [contentItem] - //! [background] background: Rectangle { color: "transparent" diff --git a/src/imports/controls/GroupBox.qml b/src/imports/controls/GroupBox.qml index 7a20225d..1b3afd66 100644 --- a/src/imports/controls/GroupBox.qml +++ b/src/imports/controls/GroupBox.qml @@ -54,10 +54,6 @@ T.GroupBox { padding: 12 topPadding: padding + (label && label.implicitWidth > 0 ? label.implicitHeight + spacing : 0) - //! [contentItem] - contentItem: Item { } - //! [contentItem] - //! [label] label: Text { x: control.leftPadding diff --git a/src/imports/controls/Page.qml b/src/imports/controls/Page.qml index 1abb06a3..39080de7 100644 --- a/src/imports/controls/Page.qml +++ b/src/imports/controls/Page.qml @@ -42,10 +42,6 @@ import QtQuick.Templates 2.1 as T T.Page { id: control - //! [contentItem] - contentItem: Item { } - //! [contentItem] - //! [background] background: Rectangle { color: Default.backgroundColor diff --git a/src/imports/controls/Pane.qml b/src/imports/controls/Pane.qml index 7066560a..3f6e43a9 100644 --- a/src/imports/controls/Pane.qml +++ b/src/imports/controls/Pane.qml @@ -50,10 +50,6 @@ T.Pane { padding: 12 - //! [contentItem] - contentItem: Item { } - //! [contentItem] - //! [background] background: Rectangle { color: Default.backgroundColor diff --git a/src/imports/controls/Popup.qml b/src/imports/controls/Popup.qml index c9e9d60e..92ac19ed 100644 --- a/src/imports/controls/Popup.qml +++ b/src/imports/controls/Popup.qml @@ -52,8 +52,6 @@ T.Popup { padding: 12 - contentItem: Item { } - background: Rectangle { border.color: Default.frameDarkColor } diff --git a/src/imports/controls/ToolBar.qml b/src/imports/controls/ToolBar.qml index 70c61c78..cc61a95b 100644 --- a/src/imports/controls/ToolBar.qml +++ b/src/imports/controls/ToolBar.qml @@ -48,10 +48,6 @@ T.ToolBar { contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) - //! [contentItem] - contentItem: Item { } - //! [contentItem] - //! [background] background: Rectangle { implicitHeight: 40 diff --git a/src/imports/controls/material/Dialog.qml b/src/imports/controls/material/Dialog.qml index 55ff671b..8141eb8c 100644 --- a/src/imports/controls/material/Dialog.qml +++ b/src/imports/controls/material/Dialog.qml @@ -70,8 +70,6 @@ T.Dialog { NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; easing.type: Easing.OutCubic; duration: 150 } } - contentItem: Item { } - background: Rectangle { radius: 2 color: control.Material.dialogColor diff --git a/src/imports/controls/material/Drawer.qml b/src/imports/controls/material/Drawer.qml index efb394d1..d6603b04 100644 --- a/src/imports/controls/material/Drawer.qml +++ b/src/imports/controls/material/Drawer.qml @@ -53,8 +53,6 @@ T.Drawer { enter: Transition { SmoothedAnimation { velocity: 5 } } exit: Transition { SmoothedAnimation { velocity: 5 } } - contentItem: Item { } - background: Rectangle { color: control.Material.dialogColor diff --git a/src/imports/controls/material/Frame.qml b/src/imports/controls/material/Frame.qml index 4c8b7f01..45b8b263 100644 --- a/src/imports/controls/material/Frame.qml +++ b/src/imports/controls/material/Frame.qml @@ -50,8 +50,6 @@ T.Frame { padding: 12 - contentItem: Item { } - background: Rectangle { radius: 2 color: control.Material.elevation > 0 ? control.Material.backgroundColor : "transparent" diff --git a/src/imports/controls/material/GroupBox.qml b/src/imports/controls/material/GroupBox.qml index 48827792..945c5a8c 100644 --- a/src/imports/controls/material/GroupBox.qml +++ b/src/imports/controls/material/GroupBox.qml @@ -54,8 +54,6 @@ T.GroupBox { padding: 12 topPadding: padding + (label && label.implicitWidth > 0 ? label.implicitHeight + spacing : 0) - contentItem: Item {} - label: Text { x: control.leftPadding width: control.availableWidth diff --git a/src/imports/controls/material/Page.qml b/src/imports/controls/material/Page.qml index f829788e..887a139d 100644 --- a/src/imports/controls/material/Page.qml +++ b/src/imports/controls/material/Page.qml @@ -41,8 +41,6 @@ import QtQuick.Controls.Material 2.1 T.Page { id: control - contentItem: Item { } - background: Rectangle { color: control.Material.backgroundColor } diff --git a/src/imports/controls/material/Pane.qml b/src/imports/controls/material/Pane.qml index d9828a2a..95e0a8c2 100644 --- a/src/imports/controls/material/Pane.qml +++ b/src/imports/controls/material/Pane.qml @@ -50,8 +50,6 @@ T.Pane { padding: 12 - contentItem: Item { } - background: Rectangle { color: control.Material.backgroundColor radius: control.Material.elevation > 0 ? 2 : 0 diff --git a/src/imports/controls/material/Popup.qml b/src/imports/controls/material/Popup.qml index 2cd85846..2654aaf4 100644 --- a/src/imports/controls/material/Popup.qml +++ b/src/imports/controls/material/Popup.qml @@ -66,8 +66,6 @@ T.Popup { NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; easing.type: Easing.OutCubic; duration: 150 } } - contentItem: Item { } - background: Rectangle { radius: 2 color: control.Material.dialogColor diff --git a/src/imports/controls/material/ToolBar.qml b/src/imports/controls/material/ToolBar.qml index 0da814f1..ac6e8bf3 100644 --- a/src/imports/controls/material/ToolBar.qml +++ b/src/imports/controls/material/ToolBar.qml @@ -52,8 +52,6 @@ T.ToolBar { Material.foreground: Material.toolTextColor - contentItem: Item { } - background: Rectangle { implicitHeight: 48 color: control.Material.toolBarColor diff --git a/src/imports/controls/universal/Dialog.qml b/src/imports/controls/universal/Dialog.qml index 1a2d6839..bda9bbb1 100644 --- a/src/imports/controls/universal/Dialog.qml +++ b/src/imports/controls/universal/Dialog.qml @@ -57,8 +57,6 @@ T.Dialog { topPadding: 18 bottomPadding: 0 - contentItem: Item { } - background: Rectangle { color: control.Universal.chromeMediumLowColor border.color: control.Universal.chromeHighColor diff --git a/src/imports/controls/universal/Drawer.qml b/src/imports/controls/universal/Drawer.qml index c3dece6e..846d7031 100644 --- a/src/imports/controls/universal/Drawer.qml +++ b/src/imports/controls/universal/Drawer.qml @@ -57,8 +57,6 @@ T.Drawer { enter: Transition { SmoothedAnimation { velocity: 5 } } exit: Transition { SmoothedAnimation { velocity: 5 } } - contentItem: Item { } - background: Rectangle { color: control.Universal.chromeMediumLowColor Rectangle { diff --git a/src/imports/controls/universal/Frame.qml b/src/imports/controls/universal/Frame.qml index 8c0118b0..9bd34292 100644 --- a/src/imports/controls/universal/Frame.qml +++ b/src/imports/controls/universal/Frame.qml @@ -49,8 +49,6 @@ T.Frame { padding: 12 - contentItem: Item { } - background: Rectangle { color: "transparent" border.color: control.Universal.chromeDisabledLowColor diff --git a/src/imports/controls/universal/GroupBox.qml b/src/imports/controls/universal/GroupBox.qml index fea4efae..d45505c7 100644 --- a/src/imports/controls/universal/GroupBox.qml +++ b/src/imports/controls/universal/GroupBox.qml @@ -53,8 +53,6 @@ T.GroupBox { padding: 12 topPadding: padding + (label && label.implicitWidth > 0 ? label.implicitHeight + spacing : 0) - contentItem: Item { } - label: Text { x: control.leftPadding width: control.availableWidth diff --git a/src/imports/controls/universal/Page.qml b/src/imports/controls/universal/Page.qml index eca623f1..4f2d6ff7 100644 --- a/src/imports/controls/universal/Page.qml +++ b/src/imports/controls/universal/Page.qml @@ -41,8 +41,6 @@ import QtQuick.Controls.Universal 2.1 T.Page { id: control - contentItem: Item { } - background: Rectangle { color: control.Universal.background } diff --git a/src/imports/controls/universal/Pane.qml b/src/imports/controls/universal/Pane.qml index 183f278c..2a459630 100644 --- a/src/imports/controls/universal/Pane.qml +++ b/src/imports/controls/universal/Pane.qml @@ -49,8 +49,6 @@ T.Pane { padding: 12 - contentItem: Item { } - background: Rectangle { color: control.Universal.background } diff --git a/src/imports/controls/universal/Popup.qml b/src/imports/controls/universal/Popup.qml index 36e87449..67dfa45c 100644 --- a/src/imports/controls/universal/Popup.qml +++ b/src/imports/controls/universal/Popup.qml @@ -51,8 +51,6 @@ T.Popup { padding: 12 - contentItem: Item { } - background: Rectangle { color: control.Universal.chromeMediumLowColor border.color: control.Universal.chromeHighColor diff --git a/src/imports/controls/universal/ToolBar.qml b/src/imports/controls/universal/ToolBar.qml index 49889e19..5535a337 100644 --- a/src/imports/controls/universal/ToolBar.qml +++ b/src/imports/controls/universal/ToolBar.qml @@ -47,8 +47,6 @@ T.ToolBar { contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) - contentItem: Item { } - background: Rectangle { implicitHeight: 48 // AppBarThemeCompactHeight color: control.Universal.chromeMediumColor 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) { |