From 287fae858ebdd7d5ba24acc1a512cc4233e64344 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 2 Jun 2022 13:47:57 +0300 Subject: [PATCH] Moved Settings::OrderedAccounts() to Main::Domain::orderedAccounts(). --- .../SourceFiles/boxes/premium_limits_box.cpp | 3 +-- Telegram/SourceFiles/main/main_domain.cpp | 21 ++++++++++++++++ Telegram/SourceFiles/main/main_domain.h | 1 + .../settings/settings_information.cpp | 25 +------------------ .../settings/settings_information.h | 1 - 5 files changed, 24 insertions(+), 27 deletions(-) diff --git a/Telegram/SourceFiles/boxes/premium_limits_box.cpp b/Telegram/SourceFiles/boxes/premium_limits_box.cpp index c1d904006f..9f5626922b 100644 --- a/Telegram/SourceFiles/boxes/premium_limits_box.cpp +++ b/Telegram/SourceFiles/boxes/premium_limits_box.cpp @@ -27,7 +27,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "lang/lang_keys.h" #include "settings/settings_common.h" -#include "settings/settings_information.h" // Settings::OrderedAccounts(). #include "settings/settings_premium.h" #include "base/unixtime.h" #include "apiwrap.h" @@ -893,7 +892,7 @@ void AccountsLimitBox( const auto defaultLimit = Main::Domain::kMaxAccounts; const auto premiumLimit = Main::Domain::kPremiumMaxAccounts; - const auto accounts = Settings::OrderedAccounts(); + const auto accounts = session->domain().orderedAccounts(); const auto current = int(accounts.size()); auto text = tr::lng_accounts_limit1( diff --git a/Telegram/SourceFiles/main/main_domain.cpp b/Telegram/SourceFiles/main/main_domain.cpp index ea9f3a5c4a..2b539b1407 100644 --- a/Telegram/SourceFiles/main/main_domain.cpp +++ b/Telegram/SourceFiles/main/main_domain.cpp @@ -140,6 +140,27 @@ const std::vector &Domain::accounts() const { return _accounts; } +std::vector> Domain::orderedAccounts() const { + const auto order = Core::App().settings().accountsOrder(); + auto accounts = ranges::views::all( + _accounts + ) | ranges::views::transform([](const Domain::AccountWithIndex &a) { + return not_null{ a.account.get() }; + }) | ranges::to_vector; + ranges::stable_sort(accounts, [&]( + not_null a, + not_null b) { + const auto aIt = a->sessionExists() + ? ranges::find(order, a->session().uniqueId()) + : end(order); + const auto bIt = b->sessionExists() + ? ranges::find(order, b->session().uniqueId()) + : end(order); + return aIt < bIt; + }); + return accounts; +} + rpl::producer<> Domain::accountsChanges() const { return _accountsChanges.events(); } diff --git a/Telegram/SourceFiles/main/main_domain.h b/Telegram/SourceFiles/main/main_domain.h index 18fde08142..59f2c7d066 100644 --- a/Telegram/SourceFiles/main/main_domain.h +++ b/Telegram/SourceFiles/main/main_domain.h @@ -49,6 +49,7 @@ public: [[nodiscard]] auto accounts() const -> const std::vector &; + [[nodiscard]] std::vector> orderedAccounts() const; [[nodiscard]] rpl::producer activeValue() const; [[nodiscard]] rpl::producer<> accountsChanges() const; [[nodiscard]] Account *maybeLastOrSomeAuthedAccount(); diff --git a/Telegram/SourceFiles/settings/settings_information.cpp b/Telegram/SourceFiles/settings/settings_information.cpp index a878f05e8d..f81c0d4164 100644 --- a/Telegram/SourceFiles/settings/settings_information.cpp +++ b/Telegram/SourceFiles/settings/settings_information.cpp @@ -749,7 +749,7 @@ void AccountsList::rebuild() { } }, inner->lifetime()); - const auto list = OrderedAccounts(); + const auto list = _controller->session().domain().orderedAccounts(); for (const auto &account : list) { auto i = _watched.find(account); Assert(i != _watched.end()); @@ -830,29 +830,6 @@ AccountsEvents SetupAccounts( }; } -std::vector> OrderedAccounts() { - using namespace Main; - - const auto order = Core::App().settings().accountsOrder(); - auto accounts = ranges::views::all( - Core::App().domain().accounts() - ) | ranges::views::transform([](const Domain::AccountWithIndex &a) { - return not_null{ a.account.get() }; - }) | ranges::to_vector; - ranges::stable_sort(accounts, [&]( - not_null a, - not_null b) { - const auto aIt = a->sessionExists() - ? ranges::find(order, a->session().uniqueId()) - : end(order); - const auto bIt = b->sessionExists() - ? ranges::find(order, b->session().uniqueId()) - : end(order); - return aIt < bIt; - }); - return accounts; -} - Dialogs::Ui::UnreadBadgeStyle BadgeStyle() { auto result = Dialogs::Ui::UnreadBadgeStyle(); result.font = st::mainMenuBadgeFont; diff --git a/Telegram/SourceFiles/settings/settings_information.h b/Telegram/SourceFiles/settings/settings_information.h index 39f4de08ad..c30cfc02db 100644 --- a/Telegram/SourceFiles/settings/settings_information.h +++ b/Telegram/SourceFiles/settings/settings_information.h @@ -39,7 +39,6 @@ AccountsEvents SetupAccounts( not_null container, not_null controller); -[[nodiscard]] std::vector> OrderedAccounts(); [[nodiscard]] Dialogs::Ui::UnreadBadgeStyle BadgeStyle(); struct UnreadBadge {