status-desktop/ui/shared/ConfirmationDialog.qml

107 lines
2.9 KiB
QML
Raw Normal View History

import QtQuick 2.13
import QtQuick.Controls 2.13
import QtQuick.Layouts 1.13
import "../imports"
import "../shared/status"
import "./"
ModalPopup {
id: confirmationDialog
2020-10-02 13:02:56 +00:00
property Popup parentPopup
property string btnType: "warn"
property bool showCancelButton: false
property alias checkbox: checkbox
2020-10-02 13:02:56 +00:00
height: 186
width: 400
2020-08-26 15:52:26 +00:00
//% "Confirm your action"
title: qsTrId("confirm-your-action")
focus: visible
2020-08-26 15:52:26 +00:00
//% "Confirm"
property string confirmButtonLabel: qsTrId("close-app-button")
//% "Cancel"
//% "Cancel"
property string cancelButtonLabel: qsTrId("browsing-cancel")
2020-08-26 15:52:26 +00:00
//% "Are you sure you want to this?"
property string confirmationText: qsTrId("are-you-sure-you-want-to-this-")
2020-10-02 13:02:56 +00:00
2020-10-02 14:37:51 +00:00
property var value
signal confirmButtonClicked()
signal cancelButtonClicked()
property var executeConfirm
property var executeCancel
Item {
anchors.fill: parent
StyledText {
id: innerText
text: confirmationDialog.confirmationText
font.pixelSize: 15
anchors.left: parent.left
anchors.right: parent.right
wrapMode: Text.WordWrap
}
StatusCheckBox {
id: checkbox
visible: false
anchors.top: innerText.bottom
anchors.topMargin: Style.current.halfPadding
Layout.preferredWidth: parent.width
2021-07-30 16:02:22 +00:00
//% "Do not show this again"
text: qsTrId("do-not-show-this-again")
}
}
footer: Item {
id: footerContainer
width: parent.width
height: confirmButton.height//children[0].height
StatusButton {
id: confirmButton
type: confirmationDialog.btnType
anchors.right: cancelButton.visible ? cancelButton.left : parent.right
anchors.rightMargin: cancelButton.visible ? Style.current.smallPadding : 0
text: confirmationDialog.confirmButtonLabel
anchors.bottom: parent.bottom
focus: true
Keys.onReturnPressed: function(event) {
confirmButton.clicked()
}
onClicked: {
if (executeConfirm && typeof executeConfirm === "function") {
executeConfirm()
}
confirmationDialog.confirmButtonClicked()
}
}
StatusButton {
id: cancelButton
anchors.right: parent.right
visible: showCancelButton
anchors.rightMargin: Style.current.smallPadding
text: confirmationDialog.cancelButtonLabel
anchors.bottom: parent.bottom
onClicked: {
if (executeCancel && typeof executeCancel === "function") {
executeCancel()
}
confirmationDialog.cancelButtonClicked()
}
}
}
}