summaryrefslogtreecommitdiff
path: root/src/dialogs/DefaultDialogWrapper.qml
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-05-10 21:11:23 +0200
committerLiang Qi <liang.qi@qt.io>2016-05-10 21:11:23 +0200
commitc6713e212ef0b97c45d6466b73220567e94a05f1 (patch)
tree8774d26bf05f2087c510d16da42bfd0dc59a54b1 /src/dialogs/DefaultDialogWrapper.qml
parentce97d9c8ef4e6f8cb2166065b6732cad3cccf604 (diff)
parent0e00f9fa1cbdbdd2128f2ca31172d88f701ecb59 (diff)
downloadqtquickcontrols-c6713e212ef0b97c45d6466b73220567e94a05f1.tar.gz
Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts: examples/quickcontrols/extras/flat/main.cpp src/controls/Private/qquickcontrolsettings.cpp Change-Id: I9eb9342a2ee994611f3cb18daab6dd89eb924ccc
Diffstat (limited to 'src/dialogs/DefaultDialogWrapper.qml')
-rw-r--r--src/dialogs/DefaultDialogWrapper.qml22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/dialogs/DefaultDialogWrapper.qml b/src/dialogs/DefaultDialogWrapper.qml
index 6c2cae06..b446c316 100644
--- a/src/dialogs/DefaultDialogWrapper.qml
+++ b/src/dialogs/DefaultDialogWrapper.qml
@@ -53,13 +53,14 @@ AbstractDialog {
id: content
property real spacing: 6
property real outerSpacing: 12
- property real buttonsRowImplicitWidth: minimumWidth
+ property real buttonsRowImplicitHeight: 0
+ property real buttonsRowImplicitWidth: Screen.pixelDensity * 50
property bool buttonsInSingleRow: defaultContentItem.width >= buttonsRowImplicitWidth
property real minimumHeight: implicitHeight
- property real minimumWidth: Screen.pixelDensity * 50
- implicitHeight: defaultContentItem.implicitHeight + spacing + outerSpacing * 2 + buttonsRight.implicitHeight
+ property real minimumWidth: implicitWidth
+ implicitHeight: defaultContentItem.implicitHeight + spacing + outerSpacing * 2 + Math.max(buttonsRight.implicitHeight, buttonsRowImplicitHeight)
implicitWidth: Math.min(root.__maximumDimension, Math.max(
- defaultContentItem.implicitWidth, buttonsRowImplicitWidth, Screen.pixelDensity * 50) + outerSpacing * 2);
+ defaultContentItem.implicitWidth, buttonsRowImplicitWidth, Screen.pixelDensity * 50) + outerSpacing * 2)
color: palette.window
Keys.onPressed: {
event.accepted = true
@@ -85,9 +86,14 @@ AbstractDialog {
left: parent.left
right: parent.right
top: parent.top
+ bottom: buttonsLeft.implicitHeight ? buttonsLeft.top : buttonsRight.top
margins: content.outerSpacing
+ bottomMargin: buttonsLeft.implicitHeight + buttonsRight.implicitHeight > 0 ? content.spacing : 0
}
- implicitHeight: childrenRect.height
+ implicitHeight: children.length === 1 ? children[0].implicitHeight
+ : (children.length ? childrenRect.height : 0)
+ implicitWidth: children.length === 1 ? children[0].implicitWidth
+ : (children.length ? childrenRect.width : 0)
}
Flow {
@@ -138,7 +144,9 @@ AbstractDialog {
function setupButtons() {
buttonsLeftRepeater.model = root.__standardButtonsLeftModel()
buttonsRightRepeater.model = root.__standardButtonsRightModel()
- if (buttonsLeftRepeater.count + buttonsRightRepeater.count < 2)
+ if (buttonsRightRepeater.model && buttonsRightRepeater.model.length > 0)
+ content.buttonsRowImplicitHeight = buttonsRight.visibleChildren[0].implicitHeight
+ if (buttonsLeftRepeater.count + buttonsRightRepeater.count < 1)
return;
var calcWidth = 0;
@@ -153,7 +161,7 @@ AbstractDialog {
for (var i = 0; i < buttonsRight.visibleChildren.length; ++i)
calculateForButton(i, buttonsRight.visibleChildren[i])
- content.minimumWidth = calcWidth + content.outerSpacing * 2
+ content.minimumWidth = Math.max(calcWidth + content.outerSpacing * 2, content.implicitWidth)
for (i = 0; i < buttonsLeft.visibleChildren.length; ++i)
calculateForButton(i, buttonsLeft.visibleChildren[i])
content.buttonsRowImplicitWidth = calcWidth + content.spacing