summaryrefslogtreecommitdiff
path: root/src/controls/ApplicationWindow.qml
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2014-09-08 15:04:59 +0200
committerJ-P Nurmi <jpnurmi@digia.com>2014-09-10 19:24:00 +0200
commit533b677351064177e1ba2d3082bb010e9f0ec473 (patch)
tree0e7b09745bc8f08374fe1d3044d936fa90dbcb95 /src/controls/ApplicationWindow.qml
parent378748b824887a45160219a9345e94e157ed5f89 (diff)
downloadqtquickcontrols-533b677351064177e1ba2d3082bb010e9f0ec473.tar.gz
Let ApplicationWindowStyle provide the layout
Change-Id: Ic14c153d57857efb5ad26e01f58ff3363b189b85 Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Diffstat (limited to 'src/controls/ApplicationWindow.qml')
-rw-r--r--src/controls/ApplicationWindow.qml94
1 files changed, 27 insertions, 67 deletions
diff --git a/src/controls/ApplicationWindow.qml b/src/controls/ApplicationWindow.qml
index 0edfe5ea..f73c4fa7 100644
--- a/src/controls/ApplicationWindow.qml
+++ b/src/controls/ApplicationWindow.qml
@@ -155,7 +155,10 @@ Window {
property alias __style: styleLoader.item
/*! \internal */
- property real __topBottomMargins: contentArea.y + statusBarArea.height
+ property alias __panel: panelLoader.item
+
+ /*! \internal */
+ property real __topBottomMargins: contentArea.y + __panel.statusBarArea.height
/*! \internal
There is a similar macro QWINDOWSIZE_MAX in qwindow_p.h that is used to limit the
range of QWindow::maximum{Width,Height}
@@ -190,11 +193,6 @@ Window {
maximumWidth: Math.min(__qwindowsize_max, contentArea.maximumWidth)
maximumHeight: Math.min(__qwindowsize_max, contentArea.maximumHeight + __topBottomMargins)
- onToolBarChanged: { if (toolBar) { toolBar.parent = toolBarArea } }
-
- onStatusBarChanged: { if (statusBar) { statusBar.parent = statusBarArea } }
-
- onVisibleChanged: { if (visible && menuBar) { menuBar.__parentWindow = root } }
/*! \internal */
default property alias data: contentArea.data
@@ -205,76 +203,38 @@ Window {
// QTBUG-35049: Windows is removing features we didn't ask for, even though Qt::CustomizeWindowHint is not set
// Otherwise Qt.Window | Qt.WindowFullscreenButtonHint would be enough
- Item {
- id: backgroundItem
+ Loader {
+ id: panelLoader
anchors.fill: parent
-
- Keys.forwardTo: menuBar ? [menuBar.__contentItem] : []
-
+ sourceComponent: __style ? __style.panel : null
+ onStatusChanged: if (status === Loader.Error) console.error("Failed to load Style for", root)
Loader {
- id: backgroundLoader
- anchors.fill: parent
- sourceComponent: __style ? __style.background : null
- onStatusChanged: if (status === Loader.Error) console.error("Failed to load Style for", root)
- Loader {
- id: styleLoader
- sourceComponent: style
- property var __control: root
- property QtObject styleData: QtObject {
- readonly property bool hasColor: root.color != "#ffffff"
- }
- onStatusChanged: if (status === Loader.Error) console.error("Failed to load Style for", root)
+ id: styleLoader
+ sourceComponent: style
+ property var __control: root
+ property QtObject styleData: QtObject {
+ readonly property bool hasColor: root.color != "#ffffff"
}
+ onStatusChanged: if (status === Loader.Error) console.error("Failed to load Style for", root)
}
- ContentItem {
- id: contentArea
- anchors.top: toolBarArea.bottom
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.bottom: statusBarArea.top
- }
-
- Item {
- id: toolBarArea
- anchors.top: parent.top
- anchors.left: parent.left
- anchors.right: parent.right
- implicitHeight: childrenRect.height
- height: visibleChildren.length > 0 ? implicitHeight: 0
- }
-
- Item {
- id: statusBarArea
- anchors.bottom: parent.bottom
- anchors.left: parent.left
- anchors.right: parent.right
- implicitHeight: childrenRect.height
- height: visibleChildren.length > 0 ? implicitHeight: 0
- }
-
- onVisibleChanged: if (visible && menuBar) menuBar.__parentWindow = root
+ Binding { target: toolBar; property: "parent"; value: __panel.toolBarArea }
+ Binding { target: statusBar; property: "parent"; value: __panel.statusBarArea }
- states: State {
- name: "hasMenuBar"
+ Binding {
+ property: "parent"
+ target: menuBar ? menuBar.__contentItem : null
when: menuBar && !menuBar.__isNative
+ value: __panel.menuBarArea
+ }
+ Binding { target: menuBar; property: "__parentWindow"; value: root }
- ParentChange {
- target: menuBar.__contentItem
- parent: backgroundItem
- }
-
- PropertyChanges {
- target: menuBar.__contentItem
- x: 0
- y: 0
- width: backgroundItem.width
- }
+ Keys.forwardTo: menuBar ? [menuBar.__contentItem] : []
- AnchorChanges {
- target: toolBarArea
- anchors.top: menuBar.__contentItem.bottom
- }
+ ContentItem {
+ id: contentArea
+ anchors.fill: parent
+ parent: __panel.contentArea
}
}
}