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 {
|
Kirigami.Action {
|
||||||
text: i18nc("@action:inmenu", "Verify This Device")
|
text: i18nc("@action:inmenu", "Verify This Device")
|
||||||
icon.name: "security-low"
|
icon.name: "security-low"
|
||||||
visible: !root.connection.isVerifiedSession()
|
visible: !root.connection.isVerifiedSession
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
root.connection.startSelfVerification();
|
root.connection.startSelfVerification();
|
||||||
const dialog = Qt.createComponent("org.kde.kirigami", "PromptDialog").createObject(QQC2.Overlay.overlay, {
|
const dialog = Qt.createComponent("org.kde.kirigami", "PromptDialog").createObject(QQC2.Overlay.overlay, {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Controls as QQC2
|
import QtQuick.Controls as QQC2
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
|
import QtQuick.Window
|
||||||
import QtQml
|
import QtQml
|
||||||
|
|
||||||
import org.kde.kirigami as Kirigami
|
import org.kde.kirigami as Kirigami
|
||||||
@@ -170,6 +171,7 @@ Kirigami.Page {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
onDone: root.QQC2.Window.window.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -141,6 +141,12 @@ void NeoChatConnection::connectSignals()
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
Qt::SingleShotConnection);
|
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
|
int NeoChatConnection::badgeNotificationCount() const
|
||||||
|
|||||||
@@ -90,6 +90,11 @@ class NeoChatConnection : public Quotient::Connection
|
|||||||
*/
|
*/
|
||||||
Q_PROPERTY(bool enablePushNotifications READ enablePushNotifications NOTIFY enablePushNotificationsChanged)
|
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:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief Defines the status after an attempt to change the password on an account.
|
* @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.
|
* @return True if this connection is a verified session.
|
||||||
*/
|
*/
|
||||||
Q_INVOKABLE bool isVerifiedSession() const;
|
bool isVerifiedSession() const;
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void globalUrlPreviewEnabledChanged();
|
void globalUrlPreviewEnabledChanged();
|
||||||
@@ -242,6 +247,11 @@ Q_SIGNALS:
|
|||||||
*/
|
*/
|
||||||
void roomAboutToBeLeft(const QString &id);
|
void roomAboutToBeLeft(const QString &id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief When the connection's own verification state changes.
|
||||||
|
*/
|
||||||
|
void ownSessionVerified();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static bool m_globalUrlPreviewDefault;
|
static bool m_globalUrlPreviewDefault;
|
||||||
static PushRuleAction::Action m_defaultAction;
|
static PushRuleAction::Action m_defaultAction;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ FormCard.FormCardPage {
|
|||||||
icon.name: "security-low"
|
icon.name: "security-low"
|
||||||
text: i18nc("@action:button", "Verify This Device")
|
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.")
|
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: {
|
onClicked: {
|
||||||
root.connection.startSelfVerification();
|
root.connection.startSelfVerification();
|
||||||
const dialog = Qt.createComponent("org.kde.kirigami", "PromptDialog").createObject(QQC2.Overlay.overlay, {
|
const dialog = Qt.createComponent("org.kde.kirigami", "PromptDialog").createObject(QQC2.Overlay.overlay, {
|
||||||
@@ -94,6 +94,9 @@ FormCard.FormCardPage {
|
|||||||
title: i18n("Remove device")
|
title: i18n("Remove device")
|
||||||
|
|
||||||
standardButtons: QQC2.Dialog.Cancel
|
standardButtons: QQC2.Dialog.Cancel
|
||||||
|
|
||||||
|
Component.onCompleted: passwordField.forceActiveFocus()
|
||||||
|
|
||||||
FormCard.FormCard {
|
FormCard.FormCard {
|
||||||
FormCard.FormTextFieldDelegate {
|
FormCard.FormTextFieldDelegate {
|
||||||
id: passwordField
|
id: passwordField
|
||||||
|
|||||||
Reference in New Issue
Block a user