diff options
Diffstat (limited to 'resources/qml/dialogs/RoomSettingsDialog.qml')
-rw-r--r-- | resources/qml/dialogs/RoomSettingsDialog.qml | 113 |
1 files changed, 71 insertions, 42 deletions
diff --git a/resources/qml/dialogs/RoomSettingsDialog.qml b/resources/qml/dialogs/RoomSettingsDialog.qml index 941d4f90..283ad129 100644 --- a/resources/qml/dialogs/RoomSettingsDialog.qml +++ b/resources/qml/dialogs/RoomSettingsDialog.qml @@ -4,11 +4,11 @@ import ".." import "../ui" -import Qt.labs.platform 1.1 as Platform import QtQuick 2.15 import QtQuick.Controls 2.3 import QtQuick.Layouts 1.2 import QtQuick.Window 2.13 +import QtQuick.Dialogs import im.nheko 1.0 ApplicationWindow { @@ -130,7 +130,7 @@ ApplicationWindow { color: palette.text Layout.alignment: Qt.AlignHCenter - Layout.maximumWidth: parent.width - (Nheko.paddingSmall * 2) - nameChangeButton.anchors.leftMargin - (nameChangeButton.width * 2) + Layout.maximumWidth: parent.width - (Nheko.paddingSmall + roomNameButtons.anchors.leftMargin + roomNameButtons.implicitWidth) * 2 horizontalAlignment: TextEdit.AlignHCenter wrapMode: TextEdit.Wrap selectByMouse: true @@ -144,27 +144,43 @@ ApplicationWindow { } } - ImageButton { - id: nameChangeButton - visible: roomSettings.canChangeName + RowLayout { + id: roomNameButtons + anchors.leftMargin: Nheko.paddingSmall anchors.left: roomName.right anchors.verticalCenter: roomName.verticalCenter - hoverEnabled: true - ToolTip.visible: hovered - ToolTip.text: qsTr("Change name of this room") - ToolTip.delay: Nheko.tooltipDelay - image: roomName.isNameEditingAllowed ? ":/icons/icons/ui/checkmark.svg" : ":/icons/icons/ui/edit.svg" - onClicked: { - if (roomName.isNameEditingAllowed) { - roomSettings.changeName(roomName.text); - roomName.isNameEditingAllowed = false; - } else { - roomName.isNameEditingAllowed = true; - roomName.focus = true; - roomName.selectAll(); + + ImageButton { + id: nameChangeButton + visible: roomSettings.canChangeName + hoverEnabled: true + ToolTip.visible: hovered + ToolTip.text: qsTr("Change name of this room") + ToolTip.delay: Nheko.tooltipDelay + image: roomName.isNameEditingAllowed ? ":/icons/icons/ui/checkmark.svg" : ":/icons/icons/ui/edit.svg" + onClicked: { + if (roomName.isNameEditingAllowed) { + roomSettings.changeName(roomName.text); + roomName.isNameEditingAllowed = false; + } else { + roomName.isNameEditingAllowed = true; + roomName.focus = true; + roomName.selectAll(); + } } } + + EncryptionIndicator { + Layout.preferredHeight: 16 + Layout.preferredWidth: 16 + sourceSize.width: width + sourceSize.height: height + encrypted: true + visible: roomSettings.isEncryptionEnabled && (roomSettings.isRoomNameSet || !roomName.readOnly) + trust: Crypto.Unverified + ToolTip.text: qsTr("Since room state can't be encrypted, make sure no confidential information is stored in the room name!") + } } } @@ -220,26 +236,42 @@ ApplicationWindow { } - ImageButton { - id: topicChangeButton + RowLayout { + spacing: Nheko.paddingMedium Layout.alignment: Qt.AlignHCenter - visible: roomSettings.canChangeTopic - hoverEnabled: true - ToolTip.visible: hovered - ToolTip.text: qsTr("Change topic of this room") - ToolTip.delay: Nheko.tooltipDelay - image: roomTopic.isTopicEditingAllowed ? ":/icons/icons/ui/checkmark.svg" : ":/icons/icons/ui/edit.svg" - onClicked: { - if (roomTopic.isTopicEditingAllowed) { - roomSettings.changeTopic(roomTopic.text); - roomTopic.isTopicEditingAllowed = false; - } else { - roomTopic.isTopicEditingAllowed = true; - roomTopic.showMore = true; - roomTopic.focus = true; - //roomTopic.selectAll(); + + ImageButton { + id: topicChangeButton + + visible: roomSettings.canChangeTopic + hoverEnabled: true + ToolTip.visible: hovered + ToolTip.text: qsTr("Change topic of this room") + ToolTip.delay: Nheko.tooltipDelay + image: roomTopic.isTopicEditingAllowed ? ":/icons/icons/ui/checkmark.svg" : ":/icons/icons/ui/edit.svg" + onClicked: { + if (roomTopic.isTopicEditingAllowed) { + roomSettings.changeTopic(roomTopic.text); + roomTopic.isTopicEditingAllowed = false; + } else { + roomTopic.isTopicEditingAllowed = true; + roomTopic.showMore = true; + roomTopic.focus = true; + //roomTopic.selectAll(); + } } } + + EncryptionIndicator { + Layout.preferredHeight: 16 + Layout.preferredWidth: 16 + sourceSize.width: width + sourceSize.height: height + encrypted: true + visible: roomSettings.isEncryptionEnabled && (roomSettings.plainRoomTopic != "" || !roomTopic.readOnly) + trust: Crypto.Unverified + ToolTip.text: qsTr("Since room state can't be encrypted, make sure no confidential information is stored in the room topic!") + } } Item { @@ -548,26 +580,23 @@ ApplicationWindow { Layout.alignment: Qt.AlignRight } - Platform.MessageDialog { + MessageDialog { id: confirmEncryptionDialog title: qsTr("End-to-End Encryption") text: qsTr(`Encryption is currently experimental and things might break unexpectedly. <br> Please take note that it can't be disabled afterwards.`) modality: Qt.NonModal - // Broken on macos, see https://bugreports.qt.io/browse/QTBUG-102078 - //onAccepted: { - onOkClicked: { + onAccepted: { if (roomSettings.isEncryptionEnabled) return ; roomSettings.enableEncryption(); } - //onRejected: { - onCancelClicked: { + onRejected: { encryptionToggle.checked = false; } - buttons: Platform.MessageDialog.Ok | Platform.MessageDialog.Cancel + buttons: MessageDialog.Ok | MessageDialog.Cancel } Label { |