summary refs log tree commit diff
path: root/resources/qml/dialogs/ReportMessage.qml
diff options
context:
space:
mode:
authorLoren Burkholder <computersemiexpert@outlook.com>2023-07-24 19:07:45 -0400
committerLoren Burkholder <computersemiexpert@outlook.com>2023-10-25 22:24:40 -0400
commitbb971b057526c77af47181e2c956cb415c4e4bbc (patch)
tree7e282f765bc00df27a397c1404f7b67d397e8b00 /resources/qml/dialogs/ReportMessage.qml
parentAllow setting presence state again (diff)
downloadnheko-bb971b057526c77af47181e2c956cb415c4e4bbc.tar.xz
Add report message functionality
Diffstat (limited to 'resources/qml/dialogs/ReportMessage.qml')
-rw-r--r--resources/qml/dialogs/ReportMessage.qml85
1 files changed, 85 insertions, 0 deletions
diff --git a/resources/qml/dialogs/ReportMessage.qml b/resources/qml/dialogs/ReportMessage.qml
new file mode 100644

index 00000000..a0b6325c --- /dev/null +++ b/resources/qml/dialogs/ReportMessage.qml
@@ -0,0 +1,85 @@ +// SPDX-FileCopyrightText: Nheko Contributors +// +// SPDX-License-Identifier: GPL-3.0-or-later + +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import im.nheko + +ApplicationWindow { + required property string eventId + + width: 400 + height: gl.implicitHeight + 2 * Nheko.paddingMedium + title: qsTr("Report message") + + GridLayout { + id: gl + + columnSpacing: Nheko.paddingMedium + rowSpacing: Nheko.paddingMedium + columns: 2 + anchors.fill: parent + anchors.margins: Nheko.paddingMedium + + Label { + Layout.columnSpan: 2 + Layout.fillWidth: true + wrapMode: Label.WordWrap + text: qsTr("This message you are reporting will be sent to your server administrator for review. Please note that not all server administrators review reported content. You should also ask a room moderator to remove the content if necessary.") + } + + Label { + text: qsTr("Enter your reason for reporting:") + } + + TextField { + id: reason + + Layout.fillWidth: true + } + + Label { + text: qsTr("How bad is the message?") + } + + Slider { + id: score + + from: 0 + to: -100 + stepSize: 25 + snapMode: Slider.SnapAlways + Layout.fillWidth: true + } + + Item {} + + Label { + text: { + if (score.value === 0) + return qsTr("Not bad") + else if (score.value === -25) + return qsTr("Mild") + else if (score.value === -50) + return qsTr("Bad") + else if (score.value === -75) + return qsTr("Serious") + else if (score.value === -100) + return qsTr("Extremely serious") + } + } + + DialogButtonBox { + Layout.columnSpan: 2 + Layout.alignment: Qt.AlignRight + standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel + onAccepted: { + room.reportEvent(eventId, reason.text, score.value); + close(); + } + onRejected: close() + } + } +}