From e036197d6e8c196d1ea6a24fb97c789a953690c3 Mon Sep 17 00:00:00 2001 From: c0re100 Date: Wed, 27 Nov 2024 20:37:14 +0800 Subject: [PATCH] Revert "Use forkgram's hide all chats" --- Telegram/SourceFiles/apiwrap.cpp | 2 +- .../SourceFiles/data/data_chat_filters.cpp | 17 ++++++++++---- .../view/history_view_top_bar_widget.cpp | 2 +- .../window/window_filters_menu.cpp | 23 ++++++------------- .../window/window_session_controller.cpp | 6 +++-- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Telegram/SourceFiles/apiwrap.cpp b/Telegram/SourceFiles/apiwrap.cpp index 66d8a26c30..496d084d97 100644 --- a/Telegram/SourceFiles/apiwrap.cpp +++ b/Telegram/SourceFiles/apiwrap.cpp @@ -489,7 +489,7 @@ void ApiWrap::toggleHistoryArchived( if (const auto window = Core::App().activeWindow()) { if (const auto controller = window->sessionController()) { const auto filters = &_session->data().chatsFilters(); - const auto lookup_id = filters->lookupId(1); + const auto lookup_id = filters->lookupId(controller->session().premium() ? 0 : 1); controller->setActiveChatsFilter(lookup_id); } } diff --git a/Telegram/SourceFiles/data/data_chat_filters.cpp b/Telegram/SourceFiles/data/data_chat_filters.cpp index 7a6f63a743..8432700d44 100644 --- a/Telegram/SourceFiles/data/data_chat_filters.cpp +++ b/Telegram/SourceFiles/data/data_chat_filters.cpp @@ -393,6 +393,9 @@ void ChatFilters::received(const QVector &list) { auto changed = false; for (const auto &filter : list) { auto parsed = ChatFilter::FromTL(filter, _owner); + if (GetEnhancedBool("hide_all_chats") && parsed.id() == 0 && list.size() > 1) { + continue; + } const auto b = begin(_list) + position, e = end(_list); const auto i = ranges::find(b, e, parsed.id(), &ChatFilter::id); if (i == e) { @@ -413,9 +416,9 @@ void ChatFilters::received(const QVector &list) { applyRemove(position); changed = true; } - if (!ranges::contains(begin(_list), end(_list), 0, &ChatFilter::id)) { - _list.insert(begin(_list), ChatFilter()); - } + //if (!ranges::contains(begin(_list), end(_list), 0, &ChatFilter::id)) { + // _list.insert(begin(_list), ChatFilter()); + //} if (changed || !_loaded || _reloading) { _loaded = true; _reloading = false; @@ -426,7 +429,11 @@ void ChatFilters::received(const QVector &list) { void ChatFilters::apply(const MTPUpdate &update) { update.match([&](const MTPDupdateDialogFilter &data) { if (const auto filter = data.vfilter()) { - set(ChatFilter::FromTL(*filter, _owner)); + auto parsed = ChatFilter::FromTL(*filter, _owner); + if (GetEnhancedBool("hide_all_chats") && parsed.id() == 0) { + return; + } + set(parsed); } else { remove(data.vid().v); } @@ -775,7 +782,7 @@ FilterId ChatFilters::defaultId() const { FilterId ChatFilters::lookupId(int index) const { Expects(index >= 0 && index < _list.size()); - if (_owner->session().user()->isPremium() || !_list.front().id()) { + if (_owner->session().user()->isPremium() || !_list.front().id() || GetEnhancedBool("hide_all_chats")) { return _list[index].id(); } const auto i = ranges::find(_list, FilterId(0), &ChatFilter::id); diff --git a/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp b/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp index f8ee3567f1..f82343523b 100644 --- a/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp @@ -765,7 +765,7 @@ void TopBarWidget::backClicked() { if (_activeChat.key.folder()) { if (GetEnhancedBool("hide_all_chats")) { const auto filters = &_controller->session().data().chatsFilters(); - const auto lookup_id = filters->lookupId(1); + const auto lookup_id = filters->lookupId(_controller->session().premium() ? 0 : 1); _controller->setActiveChatsFilter(lookup_id); } else { _controller->closeFolder(); diff --git a/Telegram/SourceFiles/window/window_filters_menu.cpp b/Telegram/SourceFiles/window/window_filters_menu.cpp index 9fb3729916..d3f17e5db2 100644 --- a/Telegram/SourceFiles/window/window_filters_menu.cpp +++ b/Telegram/SourceFiles/window/window_filters_menu.cpp @@ -181,7 +181,7 @@ void FiltersMenu::refresh() { const auto maxLimit = (reorderAll ? 1 : 0) + Data::PremiumLimits(&_session->session()).dialogFiltersCurrent(); const auto premiumFrom = (reorderAll ? 0 : 1) + maxLimit; - if (!reorderAll) { + if (!reorderAll && !GetEnhancedBool("hide_all_chats")) { _reorder->addPinnedInterval(0, 1); } _reorder->addPinnedInterval( @@ -214,7 +214,7 @@ void FiltersMenu::refresh() { // Fix active chat folder when hide all chats is enabled. if (GetEnhancedBool("hide_all_chats") && filters->isEarlyStart()) { - const auto lookup_id = filters->lookupId(1); + const auto lookup_id = filters->lookupId(0); _session->setActiveChatsFilter(lookup_id); } } @@ -272,15 +272,6 @@ base::unique_qptr FiltersMenu::prepareButton( container, id ? title : tr::lng_filters_all(tr::now), st::windowFiltersButton); - if (!id && GetEnhancedBool("hide_all_chats")) { - const auto raw = prepared.data(); - raw->sizeValue( - ) | rpl::filter([](const QSize& s) { - return s.height() > 0; - }) | rpl::start_with_next([=] { - raw->resize(raw->width(), 0); - }, raw->lifetime()); - } auto added = toBeginning ? container->insert(0, std::move(prepared)) : container->add(std::move(prepared)); @@ -530,11 +521,11 @@ void FiltersMenu::applyReorder( const auto filters = &_session->session().data().chatsFilters(); const auto &list = filters->list(); - if (!premium()) { - if (list[0].id() != FilterId()) { - filters->moveAllToFront(); - } - } + //if (!premium()) { + // if (list[0].id() != FilterId()) { + // filters->moveAllToFront(); + // } + //} Assert(oldPosition >= 0 && oldPosition < list.size()); Assert(newPosition >= 0 && newPosition < list.size()); const auto id = list[oldPosition].id(); diff --git a/Telegram/SourceFiles/window/window_session_controller.cpp b/Telegram/SourceFiles/window/window_session_controller.cpp index ab33efbc26..4a68ff994b 100644 --- a/Telegram/SourceFiles/window/window_session_controller.cpp +++ b/Telegram/SourceFiles/window/window_session_controller.cpp @@ -1621,7 +1621,9 @@ void SessionController::activateFirstChatsFilter() { return; } _filtersActivated = true; - setActiveChatsFilter(session().data().chatsFilters().defaultId()); + if (!GetEnhancedBool("hide_all_chats")) { + setActiveChatsFilter(session().data().chatsFilters().defaultId()); + } } bool SessionController::uniqueChatsInSearchResults() const { @@ -2663,7 +2665,7 @@ void SessionController::setActiveChatsFilter( closeForum(); closeFolder(); } - if (adaptive().isOneColumn()) { + if (!GetEnhancedBool("hide_all_chats") && adaptive().isOneColumn()) { clearSectionStack(params); } }