diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-09-26 13:35:13 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-09-26 14:38:00 +0000 |
commit | 0e3636a4692c9cf89d994f3fe5c1c110b4c6ee61 (patch) | |
tree | 35a6cce16c40ba0cde663ff8c41086d19b527dc9 /src/imports/controls/universal | |
parent | 11b066beb45e7da084c6f792cf9421d48d4b40bf (diff) |
Create contentItem lazily where possible
The existence of a content item is obligatory for such controls that
alias the contentData and contentChildren properties to the data and
children properties of the content item.
Even though we created empty content items in QML to ensure one always
exists, it did not not guarantee that a content item would exist for
custom styles. Furthermore, the empty content item was unnecessarily
created and destroyed when the property was overridden for a customized
control in QML.
This change creates the content item lazily where required, ensuring
that it always exists even for custom styles, but does not create it
in case a content item is supplied from QML.
Task-number: QTBUG-54347
Task-number: QTBUG-56038
Change-Id: I714ef4f8c366f0f449b922b2c16c0ec653fbd364
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/imports/controls/universal')
-rw-r--r-- | src/imports/controls/universal/Dialog.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/universal/Drawer.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/universal/Frame.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/universal/GroupBox.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/universal/Page.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/universal/Pane.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/universal/Popup.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/universal/ToolBar.qml | 2 |
8 files changed, 0 insertions, 16 deletions
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 |