diff --git a/src/CommunitiesList.cpp b/src/CommunitiesList.cpp
index f3af9932..38d27864 100644
--- a/src/CommunitiesList.cpp
+++ b/src/CommunitiesList.cpp
@@ -135,6 +135,14 @@ CommunitiesList::addCommunity(const std::string &group_id)
&CommunitiesListItem::clicked,
this,
&CommunitiesList::highlightSelectedCommunity);
+ connect(list_item, &CommunitiesListItem::isDisabledChanged, this, [this]() {
+ for (const auto &community : communities_) {
+ if (community.second->isPressed()) {
+ emit highlightSelectedCommunity(community.first);
+ break;
+ }
+ }
+ });
if (group_id.empty() || group_id.front() != '+')
return;
@@ -157,7 +165,9 @@ CommunitiesList::addCommunity(const std::string &group_id)
connect(this,
&CommunitiesList::groupRoomsRetrieved,
this,
- [this](const QString &id, const std::map<QString, bool> &rooms) {
+ [this](const QString &id, const std::set<QString> &rooms) {
+ nhlog::ui()->info(
+ "Fetched rooms for {}: {}", id.toStdString(), rooms.size());
if (communities_.find(id) == communities_.end())
return;
@@ -179,9 +189,9 @@ CommunitiesList::addCommunity(const std::string &group_id)
return;
}
- std::map<QString, bool> room_ids;
+ std::set<QString> room_ids;
for (const auto &room : res.at("chunk"))
- room_ids.emplace(QString::fromStdString(room.at("room_id")), true);
+ room_ids.emplace(QString::fromStdString(room.at("room_id")));
emit groupRoomsRetrieved(id, room_ids);
});
@@ -256,7 +266,7 @@ CommunitiesList::fetchCommunityAvatar(const QString &id, const QString &avatarUr
});
}
-std::map<QString, bool>
+std::set<QString>
CommunitiesList::roomList(const QString &id) const
{
if (communityExists(id))
@@ -277,6 +287,18 @@ CommunitiesList::currentTags() const
return tags;
}
+std::set<QString>
+CommunitiesList::hiddenTagsAndCommunities() const
+{
+ std::set<QString> hiddenTags;
+ for (auto &entry : communities_) {
+ if (entry.second->isDisabled())
+ hiddenTags.insert(entry.first);
+ }
+
+ return hiddenTags;
+}
+
void
CommunitiesList::sortEntries()
{
|