2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-09-04 08:35:21 +00:00

Option to hide All chats folder

This commit is contained in:
RadRussianRus
2020-04-01 05:34:21 +03:00
parent feb5d8e493
commit 9780b8a252
8 changed files with 48 additions and 13 deletions

View File

@@ -2470,6 +2470,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"ktg_settings_filters_only_unmuted_counter" = "Do not count muted chats"; "ktg_settings_filters_only_unmuted_counter" = "Do not count muted chats";
"ktg_settings_filters_hide_edit" = "Hide Edit button"; "ktg_settings_filters_hide_edit" = "Hide Edit button";
"ktg_settings_filters_hide_folder_names" = "Compact folders"; "ktg_settings_filters_hide_folder_names" = "Compact folders";
"ktg_settings_filters_hide_all" = "Hide \"All chats\" folder";
"ktg_settings_top_bar_mute" = "Mute in profile top bar"; "ktg_settings_top_bar_mute" = "Mute in profile top bar";

View File

@@ -106,5 +106,6 @@
"ktg_settings_filters_hide_edit": "Скрыть кнопку изменения", "ktg_settings_filters_hide_edit": "Скрыть кнопку изменения",
"ktg_settings_filters_hide_folder_names": "Компактные папки", "ktg_settings_filters_hide_folder_names": "Компактные папки",
"ktg_settings_top_bar_mute": "Уведомления вверху профиля", "ktg_settings_top_bar_mute": "Уведомления вверху профиля",
"ktg_settings_messages": "Сообщения" "ktg_settings_messages": "Сообщения",
"ktg_settings_filters_hide_all": "Скрыть папку «Все чаты»"
} }

View File

@@ -350,6 +350,10 @@ bool Manager::readCustomFile() {
ReadBoolOption(o, "hide_names", [&](auto v) { ReadBoolOption(o, "hide_names", [&](auto v) {
cSetHideFilterNames(v); cSetHideFilterNames(v);
}); });
ReadBoolOption(o, "hide_all_chats", [&](auto v) {
cSetHideFilterAllChats(v);
});
}); });
ReadBoolOption(settings, "profile_top_mute", [&](auto v) { ReadBoolOption(settings, "profile_top_mute", [&](auto v) {
@@ -406,6 +410,7 @@ void Manager::writeDefaultFile() {
settingsFolders.insert(qsl("count_unmuted_only"), cUnmutedFilterCounterOnly()); settingsFolders.insert(qsl("count_unmuted_only"), cUnmutedFilterCounterOnly());
settingsFolders.insert(qsl("hide_edit_button"), cHideFilterEditButton()); settingsFolders.insert(qsl("hide_edit_button"), cHideFilterEditButton());
settingsFolders.insert(qsl("hide_names"), cHideFilterNames()); settingsFolders.insert(qsl("hide_names"), cHideFilterNames());
settingsFolders.insert(qsl("hide_all_chats"), cHideFilterAllChats());
settings.insert(qsl("folders"), settingsFolders); settings.insert(qsl("folders"), settingsFolders);
@@ -480,6 +485,7 @@ void Manager::writeCurrentSettings() {
settingsFolders.insert(qsl("count_unmuted_only"), cUnmutedFilterCounterOnly()); settingsFolders.insert(qsl("count_unmuted_only"), cUnmutedFilterCounterOnly());
settingsFolders.insert(qsl("hide_edit_button"), cHideFilterEditButton()); settingsFolders.insert(qsl("hide_edit_button"), cHideFilterEditButton());
settingsFolders.insert(qsl("hide_names"), cHideFilterNames()); settingsFolders.insert(qsl("hide_names"), cHideFilterNames());
settingsFolders.insert(qsl("hide_all_chats"), cHideFilterAllChats());
settings.insert(qsl("folders"), settingsFolders); settings.insert(qsl("folders"), settingsFolders);

View File

@@ -324,5 +324,6 @@ int gDefaultFilterId = 0;
bool gUnmutedFilterCounterOnly = false; bool gUnmutedFilterCounterOnly = false;
bool gHideFilterEditButton = false; bool gHideFilterEditButton = false;
bool gHideFilterNames = false; bool gHideFilterNames = false;
bool gHideFilterAllChats = false;
bool gProfileTopBarNotifications = false; bool gProfileTopBarNotifications = false;

View File

@@ -254,5 +254,6 @@ DeclareSetting(int, DefaultFilterId);
DeclareSetting(bool, UnmutedFilterCounterOnly); DeclareSetting(bool, UnmutedFilterCounterOnly);
DeclareSetting(bool, HideFilterEditButton); DeclareSetting(bool, HideFilterEditButton);
DeclareSetting(bool, HideFilterNames); DeclareSetting(bool, HideFilterNames);
DeclareSetting(bool, HideFilterAllChats);
DeclareSetting(bool, ProfileTopBarNotifications); DeclareSetting(bool, ProfileTopBarNotifications);

View File

@@ -246,6 +246,22 @@ void SetupKotatoFolders(
App::wnd()->fixOrder(); App::wnd()->fixOrder();
}, container->lifetime()); }, container->lifetime());
AddButton(
container,
tr::ktg_settings_filters_hide_all(),
st::settingsButton
)->toggleOn(
rpl::single(cHideFilterAllChats())
)->toggledValue(
) | rpl::filter([](bool enabled) {
return (enabled != cHideFilterAllChats());
}) | rpl::start_with_next([=](bool enabled) {
cSetHideFilterAllChats(enabled);
KotatoSettings::Write();
controller->reloadFiltersMenu();
App::wnd()->fixOrder();
}, container->lifetime());
AddButton( AddButton(
container, container,
tr::ktg_settings_filters_hide_edit(), tr::ktg_settings_filters_hide_edit(),

View File

@@ -116,7 +116,7 @@ void FiltersMenu::setup() {
const auto i = _filters.find(_activeFilterId); const auto i = _filters.find(_activeFilterId);
if (i != end(_filters)) { if (i != end(_filters)) {
i->second->setActive(false); i->second->setActive(false);
} else if (!_activeFilterId) { } else if (!_activeFilterId && _all) {
_all->setActive(false); _all->setActive(false);
} }
_activeFilterId = id; _activeFilterId = id;
@@ -124,7 +124,7 @@ void FiltersMenu::setup() {
if (j != end(_filters)) { if (j != end(_filters)) {
j->second->setActive(true); j->second->setActive(true);
scrollToButton(j->second); scrollToButton(j->second);
} else if (!_activeFilterId) { } else if (!_activeFilterId && _all) {
_all->setActive(true); _all->setActive(true);
scrollToButton(_all); scrollToButton(_all);
} }
@@ -193,11 +193,13 @@ void FiltersMenu::refresh(bool firstLoad) {
} }
void FiltersMenu::setupList() { void FiltersMenu::setupList() {
_all = prepareButton( if (!cHideFilterAllChats()) {
_container, _all = prepareButton(
0, _container,
tr::lng_filters_all(tr::now), 0,
Ui::FilterIcon::All); tr::lng_filters_all(tr::now),
Ui::FilterIcon::All);
}
_list = _container->add(object_ptr<Ui::VerticalLayout>(_container)); _list = _container->add(object_ptr<Ui::VerticalLayout>(_container));
if (!cHideFilterEditButton()) { if (!cHideFilterEditButton()) {
_setup = prepareButton( _setup = prepareButton(

View File

@@ -215,13 +215,20 @@ void SessionController::toggleFiltersMenu(bool enabled) {
void SessionController::reloadFiltersMenu() { void SessionController::reloadFiltersMenu() {
const auto enabled = !session().data().chatsFilters().list().empty(); const auto enabled = !session().data().chatsFilters().list().empty();
if (enabled) { if (enabled) {
const auto previousFilter = activeChatsFilterCurrent(); auto previousFilter = activeChatsFilterCurrent();
rpl::single(
rpl::empty_value()
) | rpl::then(
filtersMenuChanged()
) | rpl::start_with_next([=] {
toggleFiltersMenu(true);
if (previousFilter) {
setActiveChatsFilter(previousFilter);
}
}, lifetime());
setActiveChatsFilter(0); setActiveChatsFilter(0);
toggleFiltersMenu(false); toggleFiltersMenu(false);
toggleFiltersMenu(true);
if (previousFilter) {
setActiveChatsFilter(previousFilter);
}
} }
} }