Turn NeoChatConnection::isVerifiedSession into a notifiable property
This should allow the devices page to hide the "Verify this Device" warning, once you actually complete verification. I also made sure to update the other consumer - the menu item under the user menu. Additionally, I also fixed the password field not being automatically focused when trying to remove a device.
This commit is contained in:
@@ -88,7 +88,7 @@ KirigamiComponents.ConvergentContextMenu {
|
||||
Kirigami.Action {
|
||||
text: i18nc("@action:inmenu", "Verify This Device")
|
||||
icon.name: "security-low"
|
||||
visible: !root.connection.isVerifiedSession()
|
||||
visible: !root.connection.isVerifiedSession
|
||||
onTriggered: {
|
||||
root.connection.startSelfVerification();
|
||||
const dialog = Qt.createComponent("org.kde.kirigami", "PromptDialog").createObject(QQC2.Overlay.overlay, {
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls as QQC2
|
||||
import QtQuick.Layouts
|
||||
import QtQuick.Window
|
||||
import QtQml
|
||||
|
||||
import org.kde.kirigami as Kirigami
|
||||
@@ -170,6 +171,7 @@ Kirigami.Page {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
onDone: root.QQC2.Window.window.close()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -141,6 +141,12 @@ void NeoChatConnection::connectSignals()
|
||||
});
|
||||
},
|
||||
Qt::SingleShotConnection);
|
||||
|
||||
connect(this, &Connection::sessionVerified, this, [this](const QString &userId, const QString &deviceId) {
|
||||
if (userId == this->userId() && deviceId == this->deviceId()) {
|
||||
Q_EMIT ownSessionVerified();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
int NeoChatConnection::badgeNotificationCount() const
|
||||
|
||||
@@ -90,6 +90,11 @@ class NeoChatConnection : public Quotient::Connection
|
||||
*/
|
||||
Q_PROPERTY(bool enablePushNotifications READ enablePushNotifications NOTIFY enablePushNotificationsChanged)
|
||||
|
||||
/**
|
||||
* @brief True if this connection is a verified session.
|
||||
*/
|
||||
Q_PROPERTY(bool isVerifiedSession READ isVerifiedSession NOTIFY ownSessionVerified)
|
||||
|
||||
public:
|
||||
/**
|
||||
* @brief Defines the status after an attempt to change the password on an account.
|
||||
@@ -209,7 +214,7 @@ public:
|
||||
/**
|
||||
* @return True if this connection is a verified session.
|
||||
*/
|
||||
Q_INVOKABLE bool isVerifiedSession() const;
|
||||
bool isVerifiedSession() const;
|
||||
|
||||
Q_SIGNALS:
|
||||
void globalUrlPreviewEnabledChanged();
|
||||
@@ -242,6 +247,11 @@ Q_SIGNALS:
|
||||
*/
|
||||
void roomAboutToBeLeft(const QString &id);
|
||||
|
||||
/**
|
||||
* @brief When the connection's own verification state changes.
|
||||
*/
|
||||
void ownSessionVerified();
|
||||
|
||||
private:
|
||||
static bool m_globalUrlPreviewDefault;
|
||||
static PushRuleAction::Action m_defaultAction;
|
||||
|
||||
@@ -38,7 +38,7 @@ FormCard.FormCardPage {
|
||||
icon.name: "security-low"
|
||||
text: i18nc("@action:button", "Verify This Device")
|
||||
description: i18nc("@info:description", "This device is marked as insecure until it's verified by another device. It's recommended to verify as soon as possible.")
|
||||
visible: !root.connection.isVerifiedSession()
|
||||
visible: !root.connection.isVerifiedSession
|
||||
onClicked: {
|
||||
root.connection.startSelfVerification();
|
||||
const dialog = Qt.createComponent("org.kde.kirigami", "PromptDialog").createObject(QQC2.Overlay.overlay, {
|
||||
@@ -94,6 +94,9 @@ FormCard.FormCardPage {
|
||||
title: i18n("Remove device")
|
||||
|
||||
standardButtons: QQC2.Dialog.Cancel
|
||||
|
||||
Component.onCompleted: passwordField.forceActiveFocus()
|
||||
|
||||
FormCard.FormCard {
|
||||
FormCard.FormTextFieldDelegate {
|
||||
id: passwordField
|
||||
|
||||
Reference in New Issue
Block a user