From d3d7844106a422bd54f899f210e54dcb43a26a4c Mon Sep 17 00:00:00 2001 From: kamathmanu Date: Tue, 3 Aug 2021 18:25:11 -0400 Subject: [PATCH] Made only unjoined rooms joinable --- src/RoomDirectoryModel.cpp | 13 ++++++++++++- src/RoomDirectoryModel.h | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/RoomDirectoryModel.cpp b/src/RoomDirectoryModel.cpp index 2a06e4d4..b206bf9e 100644 --- a/src/RoomDirectoryModel.cpp +++ b/src/RoomDirectoryModel.cpp @@ -4,6 +4,7 @@ #include "RoomDirectoryModel.h" #include "ChatPage.h" +#include "Cache.h" #include @@ -68,6 +69,16 @@ RoomDirectoryModel::setSearchTerm(const QString &f) resetDisplayedData(); } + +bool +RoomDirectoryModel::canJoinRoom(const QByteArray &room) +{ + const auto &cache = cache::roomInfo(); + const QString room_id (room); + const bool validRoom = !room_id.isNull() && !room_id.isEmpty(); + return validRoom && !cache.contains(room_id); +} + std::vector RoomDirectoryModel::getViasForRoom(const std::vector &aliases) { @@ -174,4 +185,4 @@ RoomDirectoryModel::displayRooms(std::vector f } prevBatch_ = std::exchange(nextBatch_, next_batch); -} \ No newline at end of file +} diff --git a/src/RoomDirectoryModel.h b/src/RoomDirectoryModel.h index ff571d93..7099ff00 100644 --- a/src/RoomDirectoryModel.h +++ b/src/RoomDirectoryModel.h @@ -56,6 +56,7 @@ public: } void fetchMore(const QModelIndex &) override; + Q_INVOKABLE bool canJoinRoom(const QByteArray &room); Q_INVOKABLE void joinRoom(const int &index = -1); signals: @@ -84,4 +85,4 @@ private: std::vector getViasForRoom(const std::vector &room); void resetDisplayedData(); -}; \ No newline at end of file +};