diff options
Diffstat (limited to 'kodereviewer/qml/ReviewDialog.qml')
-rw-r--r-- | kodereviewer/qml/ReviewDialog.qml | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/kodereviewer/qml/ReviewDialog.qml b/kodereviewer/qml/ReviewDialog.qml new file mode 100644 index 0000000..7dcaf9c --- /dev/null +++ b/kodereviewer/qml/ReviewDialog.qml @@ -0,0 +1,69 @@ +pragma ComponentBehavior: Bound +import QtQuick +import QtCore +import QtQuick.Controls as QQC2 +import QtQuick.Layouts + +import org.kde.kirigami as Kirigami +import org.kde.kirigamiaddons.formcard as FormCard + +import org.deprecated.kodereviewer 1.0 + + +Kirigami.Dialog { + id: root + standardButtons: Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel + title: i18nc("@title:window", "Review changes") + padding: Kirigami.Units.largeSpacing + preferredWidth: Kirigami.Units.gridUnit * 20 + property string event: '' + property alias reviewBodyText: reviewBody.text + ColumnLayout { + MarkdownTextArea { + id: reviewBody + Layout.fillWidth: true + } + Kirigami.Separator { + Kirigami.FormData.isSection: true + Layout.fillWidth: true + } + QQC2.RadioButton { + id: approveRadioButton + text: "Approve" + onCheckedChanged: if(checked) { + root.event = 'APPROVE' + } + } + QQC2.RadioButton { + id: commentRadioButton + text: "Comment" + onCheckedChanged: if(checked) { + root.event = 'COMMENT' + } + } + QQC2.RadioButton { + id: requestChangesRadioButton + text: "Request changes" + onCheckedChanged: if(checked) { + root.event = 'REQUEST_CHANGES' + } + } + } + + function requiredFieldsFilled() { + return event != '' && reviewBodyText != '' + } + + function clearForm() { + reviewBodyText = '' + approveRadioButton.checked = false + commentRadioButton.checked = false + requestChangesRadioButton = false + event = '' + } + + Component.onCompleted: { + const button = standardButton(Kirigami.Dialog.Ok); + button.enabled = Qt.binding( () => requiredFieldsFilled() ); + } +} |