summary refs log tree commit diff
path: root/src/ui/UserProfile.h
diff options
context:
space:
mode:
authorCH Chethan Reddy <40890937+Chethan2k1@users.noreply.github.com>2020-07-01 17:47:10 +0530
committerCH Chethan Reddy <40890937+Chethan2k1@users.noreply.github.com>2020-07-30 22:10:27 +0530
commitac1fbbb69fdd4e313072cbf95eb9288db1257a9d (patch)
tree6050f215caf7104d4e1cea5c6ba1ff53c0b477e2 /src/ui/UserProfile.h
parent[WIP] Add Caching for users (diff)
downloadnheko-ac1fbbb69fdd4e313072cbf95eb9288db1257a9d.tar.xz
Some issue with UserProfile
Diffstat (limited to 'src/ui/UserProfile.h')
-rw-r--r--src/ui/UserProfile.h54
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