Some issue with UserProfile
1 files changed, 36 insertions, 18 deletions
diff --git a/src/ui/UserProfile.h b/src/ui/UserProfile.h
index befd82ec..1725b961 100644
--- a/src/ui/UserProfile.h
+++ b/src/ui/UserProfile.h
@@ -5,36 +5,32 @@
#include <QVector>
#include "MatrixClient.h"
-class DeviceInfo
-{
-public:
- DeviceInfo(const QString deviceID, const QString displayName)
- : device_id(deviceID)
- , display_name(displayName)
- {}
- DeviceInfo() {}
-
- QString device_id;
- QString display_name;
-};
+class DeviceInfo;
class UserProfile : public QObject
{
Q_OBJECT
Q_PROPERTY(QString userId READ getUserId WRITE setUserId NOTIFY userIdChanged)
- Q_PROPERTY(QVector<DeviceInfo> deviceList READ getDeviceList NOTIFY deviceListUpdated)
+ Q_PROPERTY(std::vector<DeviceInfo> deviceList READ getDeviceList NOTIFY deviceListUpdated)
public:
// constructor
explicit UserProfile(QObject *parent = 0);
// getters
- QVector<DeviceInfo> getDeviceList();
+ std::vector<DeviceInfo> getDeviceList();
QString getUserId();
// setters
void setUserId(const QString &userId);
- Q_INVOKABLE void fetchDeviceList(const QString &userID);
- Q_INVOKABLE void updateDeviceList();
+ enum Status
+ {
+ VERIFIED,
+ UNVERIFIED,
+ BLOCKED
+ };
+ Q_ENUM(Status)
+
+ void fetchDeviceList(const QString &userID);
Q_INVOKABLE void banUser();
// Q_INVOKABLE void ignoreUser();
Q_INVOKABLE void kickUser();
@@ -43,12 +39,34 @@ public:
signals:
void userIdChanged();
void deviceListUpdated();
+ void updateDeviceList();
+ void appendDeviceList(const QString device_id,
+ const QString device_naem,
+ const UserProfile::Status verification_status);
private:
- QVector<DeviceInfo> deviceList;
+ std::vector<DeviceInfo> deviceList;
QString userId;
+ std::optional<std::string> cross_verified;
void callback_fn(const mtx::responses::QueryKeys &res,
mtx::http::RequestErr err,
- std::string user_id);
+ std::string user_id,
+ std::optional<std::vector<std::string>> cross_verified);
+};
+
+class DeviceInfo
+{
+public:
+ DeviceInfo(const QString deviceID,
+ const QString displayName,
+ UserProfile::Status verification_status_)
+ : device_id(deviceID)
+ , display_name(displayName)
+ , verification_status(verification_status_)
+ {}
+
+ QString device_id;
+ QString display_name;
+ UserProfile::Status verification_status;
};
\ No newline at end of file
|