87 lines
2.2 KiB
QML
87 lines
2.2 KiB
QML
import QtQuick 2.14
|
|
import QtQuick.Controls 2.14
|
|
import QtQuick.Layouts 1.1
|
|
|
|
import StatusQ.Core 0.1
|
|
import StatusQ.Core.Theme 0.1
|
|
import StatusQ.Controls 0.1
|
|
import StatusQ.Components 0.1
|
|
import StatusQ.Popups 0.1
|
|
|
|
StatusModal {
|
|
id: root
|
|
|
|
property string name
|
|
property string introMessage
|
|
property url imageSrc
|
|
|
|
signal joined
|
|
|
|
// Code below is needed because StatusModal content padding is messed up
|
|
// FIXME: when StatusModal is reworked
|
|
width: undefined // popup is able to determine size from its content
|
|
topPadding: 64 + 16 // 64 is header height
|
|
leftPadding: 16
|
|
rightPadding: 16
|
|
bottomPadding: 71 + 16 // 71 is footer height
|
|
|
|
header.title: qsTr("Welcome to %1").arg(name)
|
|
|
|
rightButtons: [
|
|
StatusButton {
|
|
text: qsTr("Join %1").arg(root.name)
|
|
enabled: checkBox.checked
|
|
onClicked: {
|
|
root.joined()
|
|
root.close()
|
|
}
|
|
}
|
|
]
|
|
|
|
ColumnLayout {
|
|
anchors.fill: parent
|
|
|
|
spacing: 24
|
|
|
|
StatusRoundedImage {
|
|
Layout.alignment: Qt.AlignCenter
|
|
Layout.preferredHeight: 64
|
|
Layout.preferredWidth: 64
|
|
|
|
visible: image.status == Image.Loading || image.status == Image.Ready
|
|
image.source: root.imageSrc
|
|
}
|
|
|
|
ScrollView {
|
|
Layout.preferredWidth: contentWidth
|
|
Layout.minimumWidth: 300
|
|
|
|
Layout.fillHeight: true
|
|
Layout.preferredHeight: contentHeight
|
|
Layout.maximumHeight: 400
|
|
|
|
contentWidth: messageContent.width
|
|
contentHeight: messageContent.height
|
|
|
|
clip: true
|
|
|
|
StatusBaseText {
|
|
id: messageContent
|
|
|
|
width: Math.min(implicitWidth, 640)
|
|
|
|
text: root.introMessage !== "" ? root.introMessage : qsTr("Community <b>%1</b> has no intro message...").arg(root.name)
|
|
clip: true
|
|
color: Theme.palette.directColor1
|
|
wrapMode: Text.WordWrap
|
|
}
|
|
}
|
|
|
|
StatusCheckBox {
|
|
id: checkBox
|
|
Layout.alignment: Qt.AlignCenter
|
|
text: qsTr("I agree with the above")
|
|
}
|
|
}
|
|
}
|