Merge remote-tracking branch 'nheko-im/master' into privacy_screen

This commit is contained in:
Joseph Donofry 2021-02-01 18:42:38 -05:00
commit 53c653a228
No known key found for this signature in database
GPG key ID: E8A1D78EF044B0CB
74 changed files with 14313 additions and 8493 deletions

View file

@ -111,7 +111,11 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
connect(sidebarActions_, &SideBarActions::joinRoom, this, &ChatPage::joinRoom);
connect(sidebarActions_, &SideBarActions::createRoom, this, &ChatPage::createRoom);
user_info_widget_ = new UserInfoWidget(sideBar_);
user_info_widget_ = new UserInfoWidget(sideBar_);
connect(user_info_widget_, &UserInfoWidget::openGlobalUserProfile, this, [this]() {
view_manager_->activeTimeline()->openUserProfile(utils::localUser(), true);
});
user_mentions_popup_ = new popups::UserMentions();
room_list_ = new RoomList(userSettings, sideBar_);
connect(room_list_, &RoomList::joinRoom, this, &ChatPage::joinRoom);
@ -267,10 +271,27 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
[this](const QString &groupId) {
current_community_ = groupId;
if (groupId == "world")
room_list_->removeFilter();
else
room_list_->applyFilter(communitiesList_->roomList(groupId));
if (groupId == "world") {
auto hidden = communitiesList_->hiddenTagsAndCommunities();
std::set<QString> roomsToHide = communitiesList_->roomList(groupId);
for (const auto &hiddenTag : hidden) {
auto temp = communitiesList_->roomList(hiddenTag);
roomsToHide.insert(temp.begin(), temp.end());
}
room_list_->removeFilter(roomsToHide);
} else {
auto hidden = communitiesList_->hiddenTagsAndCommunities();
hidden.erase(current_community_);
auto roomsToShow = communitiesList_->roomList(groupId);
for (const auto &hiddenTag : hidden) {
for (const auto &r : communitiesList_->roomList(hiddenTag))
roomsToShow.erase(r);
}
room_list_->applyFilter(roomsToShow);
}
});
connect(&notificationsManager,
@ -1299,8 +1320,10 @@ ChatPage::startChat(QString userid)
mtx::requests::CreateRoom req;
req.preset = mtx::requests::Preset::PrivateChat;
req.visibility = mtx::common::RoomVisibility::Private;
if (utils::localUser() != userid)
req.invite = {userid.toStdString()};
if (utils::localUser() != userid) {
req.invite = {userid.toStdString()};
req.is_direct = true;
}
emit ChatPage::instance()->createRoom(req);
}