From 207366038543adf5ee6384ff2577410f48df7a13 Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig <jens.bache-wiig@digia.com> Date: Mon, 3 Jun 2013 13:37:25 +0200 Subject: [PATCH] Fix incorrect size hint for ToolBar and StatusBar We only cared about reserving space for the height but while trying to actually get the minimumSize for a window based on the toolbar content I realized that we really need to calculate the width as well. Change-Id: I7b55b66a2475a2355d30614095f173a39f47f2f1 Reviewed-by: Caroline Chao <caroline.chao@digia.com> --- src/controls/StatusBar.qml | 6 +++++- src/controls/ToolBar.qml | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/controls/StatusBar.qml b/src/controls/StatusBar.qml index 068b6b200..85cc6681c 100644 --- a/src/controls/StatusBar.qml +++ b/src/controls/StatusBar.qml @@ -79,7 +79,7 @@ Item { Accessible.role: Accessible.StatusBar width: parent ? parent.width : implicitWidth - implicitWidth: loader.item ? loader.item.implicitWidth : 200 + implicitWidth: container.leftMargin + container.rightMargin + container.calcWidth() implicitHeight: Math.max(container.topMargin + container.bottomMargin + container.calcHeight(), loader.item ? loader.item.implicitHeight : 19) @@ -134,6 +134,10 @@ Item { property int rightMargin: __style ? __style.padding.right : 0 property Item layoutItem: container.children.length === 1 ? container.children[0] : null + function calcWidth() { return (layoutItem ? (layoutItem.implicitWidth || layoutItem.width) + + (layoutItem.anchors.fill ? layoutItem.anchors.leftMargin + + layoutItem.anchors.rightMargin : 0) : + loader.item ? loader.item.implicitWidth: 0) } function calcHeight () { return (layoutItem ? (layoutItem.implicitHeight || layoutItem.height) + (layoutItem.anchors.fill ? layoutItem.anchors.topMargin + layoutItem.anchors.bottomMargin : 0) : loader.item ? loader.item.implicitHeight : 0) } diff --git a/src/controls/ToolBar.qml b/src/controls/ToolBar.qml index e5cc84191..b73a6f3eb 100644 --- a/src/controls/ToolBar.qml +++ b/src/controls/ToolBar.qml @@ -83,7 +83,7 @@ Item { Accessible.role: Accessible.ToolBar width: parent ? parent.width : implicitWidth - implicitWidth: loader.item ? loader.item.implicitWidth : 200 + implicitWidth: container.leftMargin + container.rightMargin + container.calcWidth() implicitHeight: container.topMargin + container.bottomMargin + container.calcHeight() /*! \internal */ @@ -137,6 +137,10 @@ Item { property int rightMargin: __style ? __style.padding.right : 0 property Item layoutItem: container.children.length === 1 ? container.children[0] : null + function calcWidth() { return (layoutItem ? (layoutItem.implicitWidth || layoutItem.width) + + (layoutItem.anchors.fill ? layoutItem.anchors.leftMargin + + layoutItem.anchors.rightMargin : 0) : + loader.item ? loader.item.implicitWidth : 0) } function calcHeight () { return (layoutItem ? (layoutItem.implicitHeight || layoutItem.height) + (layoutItem.anchors.fill ? layoutItem.anchors.topMargin + layoutItem.anchors.bottomMargin : 0) : -- GitLab