fix(CommunityIntroDialog): Improved layout resizing

Improved layout resizing.
This commit is contained in:
Noelia 2023-02-03 13:27:42 +01:00 committed by Alexandra Betouni
parent 37c88cbaac
commit 3fcf6518d2
1 changed files with 49 additions and 27 deletions

View File

@ -23,6 +23,26 @@ StatusDialog {
signal joined signal joined
signal cancelMembershipRequest signal cancelMembershipRequest
QtObject {
id: d
readonly property int maxWidth: 640
readonly property int minWidth: 300
readonly property int maxHeight: 640
function getHorizontalPaddings() {
return root.leftPadding + root.rightPadding
}
function getVerticalPaddings() {
return root.topPadding + root.bottomPadding
}
function getMaxMinWidth() {
return Math.max(introText.implicitWidth, d.minWidth - d.getHorizontalPaddings())
}
}
title: qsTr("Welcome to %1").arg(name) title: qsTr("Welcome to %1").arg(name)
footer: StatusDialogFooter { footer: StatusDialogFooter {
@ -35,12 +55,11 @@ StatusDialog {
type: root.isInvitationPending ? StatusBaseButton.Type.Danger type: root.isInvitationPending ? StatusBaseButton.Type.Danger
: StatusBaseButton.Type.Normal : StatusBaseButton.Type.Normal
enabled: checkBox.checked || root.isInvitationPending enabled: checkBox.checked || root.isInvitationPending
onClicked: { onClicked: {
if (root.isInvitationPending) { if (root.isInvitationPending) {
root.cancelMembershipRequest() root.cancelMembershipRequest()
} else { } else {
root.joined() root.joined()
} }
root.close() root.close()
@ -49,44 +68,47 @@ StatusDialog {
} }
} }
ColumnLayout { implicitWidth: Math.min(d.getMaxMinWidth(), d.maxWidth - d.getHorizontalPaddings())
implicitHeight: Math.min(columnContent.height + footer.height + header.height + d.getVerticalPaddings(), d.maxHeight)
StatusScrollView {
anchors.fill: parent anchors.fill: parent
contentHeight: columnContent.height
contentWidth: columnContent.width
padding: 0
spacing: 24 ColumnLayout {
id: columnContent
StatusRoundedImage { spacing: 24
Layout.alignment: Qt.AlignCenter width: Math.max(root.width - d.getHorizontalPaddings(), d.minWidth - d.getHorizontalPaddings())
Layout.preferredHeight: 64
Layout.preferredWidth: 64
visible: image.status == Image.Loading || image.status == Image.Ready StatusRoundedImage {
image.source: root.imageSrc id: roundImage
}
StatusScrollView { Layout.alignment: Qt.AlignCenter
Layout.minimumWidth: 300 Layout.preferredHeight: 64
Layout.preferredWidth: contentWidth + 2 * padding Layout.preferredWidth: Layout.preferredHeight
visible: image.status == Image.Loading || image.status == Image.Ready
Layout.fillHeight: true image.source: root.imageSrc
Layout.preferredHeight: contentHeight + 2 * padding }
Layout.maximumHeight: 400
StatusBaseText { StatusBaseText {
id: messageContent id: introText
width: Math.min(implicitWidth, 640)
Layout.fillWidth: true
text: root.introMessage !== "" ? root.introMessage : qsTr("Community <b>%1</b> has no intro message...").arg(root.name) text: root.introMessage !== "" ? root.introMessage : qsTr("Community <b>%1</b> has no intro message...").arg(root.name)
color: Theme.palette.directColor1 color: Theme.palette.directColor1
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
} }
}
StatusCheckBox { StatusCheckBox {
id: checkBox id: checkBox
Layout.alignment: Qt.AlignCenter
visible: !root.isInvitationPending Layout.alignment: Qt.AlignCenter
text: qsTr("I agree with the above") visible: !root.isInvitationPending
text: qsTr("I agree with the above")
}
} }
} }
} }