From c0232099a9fac03ef0f5287b6a26dbbd46669c06 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Tue, 17 Apr 2018 14:43:11 +0200 Subject: Page: fix implicitWidth bindings Don't add paddings to header and footer width when choosing the max. Padding affects content, not headers and footers. Change-Id: I92381762f97eab384b18510522bf788abecd8338 Reviewed-by: Mitch Curtis --- src/imports/controls/Page.qml | 6 +++--- src/imports/controls/fusion/Page.qml | 6 +++--- src/imports/controls/imagine/Page.qml | 6 +++--- src/imports/controls/material/Page.qml | 6 +++--- src/imports/controls/universal/Page.qml | 6 +++--- tests/auto/controls/data/tst_page.qml | 7 +++++-- 6 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/imports/controls/Page.qml b/src/imports/controls/Page.qml index df56dcbe..23377368 100644 --- a/src/imports/controls/Page.qml +++ b/src/imports/controls/Page.qml @@ -43,9 +43,9 @@ T.Page { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - Math.max(contentWidth, - header && header.visible ? header.implicitWidth : 0, - footer && footer.visible ? footer.implicitWidth : 0) + leftPadding + rightPadding) + contentWidth + leftPadding + rightPadding, + header && header.visible ? header.implicitWidth : 0, + footer && footer.visible ? footer.implicitWidth : 0) implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding + (header && header.visible ? header.implicitHeight + spacing : 0) diff --git a/src/imports/controls/fusion/Page.qml b/src/imports/controls/fusion/Page.qml index 20febd6a..842db2d0 100644 --- a/src/imports/controls/fusion/Page.qml +++ b/src/imports/controls/fusion/Page.qml @@ -45,9 +45,9 @@ T.Page { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - Math.max(contentWidth, - header && header.visible ? header.implicitWidth : 0, - footer && footer.visible ? footer.implicitWidth : 0) + leftPadding + rightPadding) + contentWidth + leftPadding + rightPadding, + header && header.visible ? header.implicitWidth : 0, + footer && footer.visible ? footer.implicitWidth : 0) implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding + (header && header.visible ? header.implicitHeight + spacing : 0) diff --git a/src/imports/controls/imagine/Page.qml b/src/imports/controls/imagine/Page.qml index 72f54830..c3dd355e 100644 --- a/src/imports/controls/imagine/Page.qml +++ b/src/imports/controls/imagine/Page.qml @@ -43,9 +43,9 @@ T.Page { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - Math.max(contentWidth, - header && header.visible ? header.implicitWidth : 0, - footer && footer.visible ? footer.implicitWidth : 0) + leftPadding + rightPadding) + contentWidth + leftPadding + rightPadding, + header && header.visible ? header.implicitWidth : 0, + footer && footer.visible ? footer.implicitWidth : 0) implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding + (header && header.visible ? header.implicitHeight + spacing : 0) diff --git a/src/imports/controls/material/Page.qml b/src/imports/controls/material/Page.qml index 9993aa0f..647d8f0f 100644 --- a/src/imports/controls/material/Page.qml +++ b/src/imports/controls/material/Page.qml @@ -42,9 +42,9 @@ T.Page { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - Math.max(contentWidth, - header && header.visible ? header.implicitWidth : 0, - footer && footer.visible ? footer.implicitWidth : 0) + leftPadding + rightPadding) + contentWidth + leftPadding + rightPadding, + header && header.visible ? header.implicitWidth : 0, + footer && footer.visible ? footer.implicitWidth : 0) implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding + (header && header.visible ? header.implicitHeight + spacing : 0) diff --git a/src/imports/controls/universal/Page.qml b/src/imports/controls/universal/Page.qml index de8482d8..734ea245 100644 --- a/src/imports/controls/universal/Page.qml +++ b/src/imports/controls/universal/Page.qml @@ -42,9 +42,9 @@ T.Page { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - Math.max(contentWidth, - header && header.visible ? header.implicitWidth : 0, - footer && footer.visible ? footer.implicitWidth : 0) + leftPadding + rightPadding) + contentWidth + leftPadding + rightPadding, + header && header.visible ? header.implicitWidth : 0, + footer && footer.visible ? footer.implicitWidth : 0) implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding + (header && header.visible ? header.implicitHeight + spacing : 0) diff --git a/tests/auto/controls/data/tst_page.qml b/tests/auto/controls/data/tst_page.qml index 4fb2d089..8fe4414b 100644 --- a/tests/auto/controls/data/tst_page.qml +++ b/tests/auto/controls/data/tst_page.qml @@ -233,10 +233,13 @@ TestCase { + control.header.implicitHeight + control.footer.implicitHeight + 2 * control.spacing) control.header.implicitWidth = 150 - compare(control.implicitWidth, control.header.implicitWidth + control.leftPadding + control.rightPadding) + compare(control.implicitWidth, control.header.implicitWidth) control.footer.implicitWidth = 160 - compare(control.implicitWidth, control.footer.implicitWidth + control.leftPadding + control.rightPadding) + compare(control.implicitWidth, control.footer.implicitWidth) + + control.contentItem.implicitWidth = 170 + compare(control.implicitWidth, control.contentItem.implicitWidth + control.leftPadding + control.rightPadding) } function test_spacing_data() { -- cgit v1.2.3