From 1705a1aa4ad608deb8b84fa53591261708d15c99 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 22 Jun 2020 11:30:32 +0400 Subject: [PATCH] Fix filters in non-active accounts. --- Telegram/SourceFiles/data/data_chat_filters.cpp | 11 ----------- Telegram/SourceFiles/data/data_session.cpp | 13 ++++++++++++- .../window/window_session_controller.cpp | 9 ++------- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/Telegram/SourceFiles/data/data_chat_filters.cpp b/Telegram/SourceFiles/data/data_chat_filters.cpp index 202b18a213..00f56ed1cd 100644 --- a/Telegram/SourceFiles/data/data_chat_filters.cpp +++ b/Telegram/SourceFiles/data/data_chat_filters.cpp @@ -216,17 +216,6 @@ bool ChatFilter::contains(not_null history) const { } ChatFilters::ChatFilters(not_null owner) : _owner(owner) { - //using Flag = ChatFilter::Flag; - //const auto all = Flag::Contacts - // | Flag::NonContacts - // | Flag::Groups - // | Flag::Channels - // | Flag::Bots - // | Flag::NoArchived; - //_list.push_back( - // ChatFilter(1, "Unmuted", all | Flag::NoMuted, {}, {})); - //_list.push_back( - // ChatFilter(2, "Unread", all | Flag::NoRead, {}, {})); load(); } diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp index 59e46d5233..95edbaa8b1 100644 --- a/Telegram/SourceFiles/data/data_session.cpp +++ b/Telegram/SourceFiles/data/data_session.cpp @@ -8,6 +8,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "main/main_session.h" +#include "main/main_session_settings.h" +#include "main/main_account.h" #include "apiwrap.h" #include "mainwidget.h" #include "api/api_text_entities.h" @@ -27,7 +29,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "inline_bots/inline_bot_layout_item.h" #include "storage/storage_account.h" #include "storage/storage_encrypted_file.h" -#include "main/main_account.h" #include "media/player/media_player_instance.h" // instance()->play() #include "boxes/abstract_box.h" #include "passport/passport_form_controller.h" @@ -239,6 +240,16 @@ Session::Session(not_null session) ) | rpl::start_with_next([=] { notifyUnreadBadgeChanged(); }, _lifetime); + + _chatsFilters->changed( + ) | rpl::start_with_next([=] { + const auto enabled = !_chatsFilters->list().empty(); + if (enabled != session->settings().dialogsFiltersEnabled()) { + session->settings().setDialogsFiltersEnabled(enabled); + session->saveSettingsDelayed(); + } + }, _lifetime); + } void Session::clear() { diff --git a/Telegram/SourceFiles/window/window_session_controller.cpp b/Telegram/SourceFiles/window/window_session_controller.cpp index c1a7a2e0fe..04a9d1e393 100644 --- a/Telegram/SourceFiles/window/window_session_controller.cpp +++ b/Telegram/SourceFiles/window/window_session_controller.cpp @@ -141,7 +141,7 @@ SessionController::SessionController( session->data().chatsFilters().changed( ) | rpl::start_with_next([=] { checkOpenedFilter(); - crl::on_main(session, [=] { + crl::on_main(this, [=] { refreshFiltersMenu(); }); }, session->lifetime()); @@ -216,12 +216,7 @@ void SessionController::toggleFiltersMenu(bool enabled) { } void SessionController::refreshFiltersMenu() { - const auto enabled = !session().data().chatsFilters().list().empty(); - if (enabled != session().settings().dialogsFiltersEnabled()) { - session().settings().setDialogsFiltersEnabled(enabled); - session().saveSettingsDelayed(); - toggleFiltersMenu(enabled); - } + toggleFiltersMenu(!session().data().chatsFilters().list().empty()); } rpl::producer<> SessionController::filtersMenuChanged() const {