Show verification status next to messages
3 files changed, 30 insertions, 8 deletions
diff --git a/resources/qml/EncryptionIndicator.qml b/resources/qml/EncryptionIndicator.qml
index 58805f48..1e5d4d38 100644
--- a/resources/qml/EncryptionIndicator.qml
+++ b/resources/qml/EncryptionIndicator.qml
@@ -10,17 +10,38 @@ Image {
id: stateImg
property bool encrypted: false
+ property int trust: Crypto.Unverified
width: 16
height: 16
source: {
- if (encrypted)
- return "image://colorimage/:/icons/icons/ui/lock.png?" + colors.buttonText;
- else
+ if (encrypted) {
+ switch (trust) {
+ case Crypto.Verified:
+ return "image://colorimage/:/icons/icons/ui/lock.png?green";
+ case Crypto.TOFU:
+ return "image://colorimage/:/icons/icons/ui/lock.png?" + colors.buttonText;
+ default:
+ return "image://colorimage/:/icons/icons/ui/lock.png?#dd3d3d";
+ }
+ } else {
return "image://colorimage/:/icons/icons/ui/unlock.png?#dd3d3d";
+ }
}
ToolTip.visible: ma.hovered
- ToolTip.text: encrypted ? qsTr("Encrypted") : qsTr("This message is not encrypted!")
+ ToolTip.text: {
+ if (!encrypted)
+ return qsTr("This message is not encrypted!");
+
+ switch (trust) {
+ case Crypto.Verified:
+ return qsTr("Encrypted by a verified device");
+ case Crypto.TOFU:
+ return qsTr("Encrypted by an unverified device, but you have trusted that user so far.");
+ default:
+ return qsTr("Encrypted by an unverified device");
+ }
+ }
HoverHandler {
id: ma
diff --git a/resources/qml/TimelineRow.qml b/resources/qml/TimelineRow.qml
index 715e8bd1..09a55e60 100644
--- a/resources/qml/TimelineRow.qml
+++ b/resources/qml/TimelineRow.qml
@@ -86,6 +86,7 @@ Item {
EncryptionIndicator {
visible: model.isRoomEncrypted
encrypted: model.isEncrypted
+ trust: model.trustlevel
Layout.alignment: Qt.AlignRight | Qt.AlignTop
Layout.preferredHeight: 16
Layout.preferredWidth: 16
diff --git a/resources/qml/UserProfile.qml b/resources/qml/UserProfile.qml
index bd25b74e..21c44793 100644
--- a/resources/qml/UserProfile.qml
+++ b/resources/qml/UserProfile.qml
@@ -137,16 +137,16 @@ ApplicationWindow {
text: qsTr("Verify")
Layout.alignment: Qt.AlignHCenter
- enabled: !profile.isUserVerified
- visible: !profile.isUserVerified && !profile.isSelf && profile.userVerificationEnabled
+ enabled: profile.userVerified != Crypto.Verified
+ visible: profile.userVerified != Crypto.Verified && !profile.isSelf && profile.userVerificationEnabled
onClicked: profile.verify()
}
Image {
Layout.preferredHeight: 16
Layout.preferredWidth: 16
- source: "image://colorimage/:/icons/icons/ui/lock.png?green"
- visible: profile.isUserVerified
+ source: "image://colorimage/:/icons/icons/ui/lock.png?" + ((profile.userVerified == Crypto.Verified) ? "green" : colors.buttonText)
+ visible: profile.userVerified != Crypto.Unverified
Layout.alignment: Qt.AlignHCenter
}
|