summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorLoren Burkholder <computersemiexpert@outlook.com>2021-08-30 20:08:47 -0400
committerLoren Burkholder <computersemiexpert@outlook.com>2021-09-11 19:35:31 -0400
commit350fc593ed0a6b36f63a2fabc3918d346597c7c5 (patch)
treef1a8861f2346f4a5df2b6c558c79fe2964fb737f /src
parentRemove unused struct (diff)
downloadnheko-350fc593ed0a6b36f63a2fabc3918d346597c7c5.tar.xz
Use better id loading methodology
Diffstat (limited to 'src')
-rw-r--r--src/timeline/RoomlistModel.cpp6
-rw-r--r--src/timeline/RoomlistModel.h2
-rw-r--r--src/timeline/TimelineModel.cpp6
-rw-r--r--src/timeline/TimelineModel.h3
4 files changed, 13 insertions, 4 deletions
diff --git a/src/timeline/RoomlistModel.cpp b/src/timeline/RoomlistModel.cpp

index 88411236..d12fb426 100644 --- a/src/timeline/RoomlistModel.cpp +++ b/src/timeline/RoomlistModel.cpp
@@ -76,7 +76,7 @@ RoomlistModel::roleNames() const {IsSpace, "isSpace"}, {Tags, "tags"}, {ParentSpaces, "parentSpaces"}, - {RoomMemberCount, "roomMemberCount"}, + {IsDirect, "isDirect"}, {DirectChatAvatarMxid, "directChatAvatarMxid"}, }; } @@ -131,8 +131,8 @@ RoomlistModel::data(const QModelIndex &index, int role) const list.push_back(QString::fromStdString(t)); return list; } - case Roles::RoomMemberCount: - return room->roomMemberCount(); + case Roles::IsDirect: + return room->isDirect(); case Roles::DirectChatAvatarMxid: return room->directChatAvatarMxid(); default: diff --git a/src/timeline/RoomlistModel.h b/src/timeline/RoomlistModel.h
index aca74ea1..57669087 100644 --- a/src/timeline/RoomlistModel.h +++ b/src/timeline/RoomlistModel.h
@@ -65,7 +65,7 @@ public: IsPreviewFetched, Tags, ParentSpaces, - RoomMemberCount, + IsDirect, DirectChatAvatarMxid, }; diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index 4daf44f3..0e1e8f5d 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp
@@ -817,6 +817,12 @@ TimelineModel::syncState(const mtx::responses::State &s) emit roomAvatarUrlChanged(); emit roomNameChanged(); emit roomMemberCountChanged(); + + if (roomMemberCount() <= 2) + { + emit isDirectChanged(); + emit directChatAvatarMxidChanged(); + } } else if (std::holds_alternative<StateEvent<state::Encryption>>(e)) { this->isEncrypted_ = cache::isRoomEncrypted(room_id_.toStdString()); emit encryptionChanged(); diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h
index 8c34fc1d..03e33066 100644 --- a/src/timeline/TimelineModel.h +++ b/src/timeline/TimelineModel.h
@@ -176,6 +176,7 @@ class TimelineModel : public QAbstractListModel Q_PROPERTY(bool isEncrypted READ isEncrypted NOTIFY encryptionChanged) Q_PROPERTY(bool isSpace READ isSpace CONSTANT) Q_PROPERTY(int trustlevel READ trustlevel NOTIFY trustlevelChanged) + Q_PROPERTY(bool isDirect READ isDirect NOTIFY isDirectChanged) Q_PROPERTY( QString directChatAvatarMxid READ directChatAvatarMxid NOTIFY directChatAvatarMxidChanged) Q_PROPERTY(InputBar *input READ input CONSTANT) @@ -294,6 +295,7 @@ public: bool isEncrypted() const { return isEncrypted_; } crypto::Trust trustlevel() const; int roomMemberCount() const; + bool isDirect() const { return roomMemberCount() <= 2; } // TODO: handle invites QString directChatAvatarMxid() const; std::optional<mtx::events::collections::TimelineEvents> eventById(const QString &id) @@ -394,6 +396,7 @@ signals: void roomTopicChanged(); void roomAvatarUrlChanged(); void roomMemberCountChanged(); + void isDirectChanged(); void directChatAvatarMxidChanged(); void permissionsChanged(); void forwardToRoom(mtx::events::collections::TimelineEvents *e, QString roomId);