diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2014-09-08 15:04:59 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@digia.com> | 2014-09-10 19:24:00 +0200 |
commit | 533b677351064177e1ba2d3082bb010e9f0ec473 (patch) | |
tree | 0e7b09745bc8f08374fe1d3044d936fa90dbcb95 /src/controls/ApplicationWindow.qml | |
parent | 378748b824887a45160219a9345e94e157ed5f89 (diff) | |
download | qtquickcontrols-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.qml | 94 |
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 } } } |