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:
Joshua Goins
2025-09-05 13:02:41 -04:00
parent fbcb2379fb
commit b3781e0db4
5 changed files with 24 additions and 3 deletions

View File

@@ -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

View File

@@ -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;