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:
@@ -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_hide_edit" = "Hide Edit button";
|
||||
"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";
|
||||
|
||||
|
@@ -106,5 +106,6 @@
|
||||
"ktg_settings_filters_hide_edit": "Скрыть кнопку изменения",
|
||||
"ktg_settings_filters_hide_folder_names": "Компактные папки",
|
||||
"ktg_settings_top_bar_mute": "Уведомления вверху профиля",
|
||||
"ktg_settings_messages": "Сообщения"
|
||||
"ktg_settings_messages": "Сообщения",
|
||||
"ktg_settings_filters_hide_all": "Скрыть папку «Все чаты»"
|
||||
}
|
||||
|
@@ -350,6 +350,10 @@ bool Manager::readCustomFile() {
|
||||
ReadBoolOption(o, "hide_names", [&](auto v) {
|
||||
cSetHideFilterNames(v);
|
||||
});
|
||||
|
||||
ReadBoolOption(o, "hide_all_chats", [&](auto v) {
|
||||
cSetHideFilterAllChats(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("hide_edit_button"), cHideFilterEditButton());
|
||||
settingsFolders.insert(qsl("hide_names"), cHideFilterNames());
|
||||
settingsFolders.insert(qsl("hide_all_chats"), cHideFilterAllChats());
|
||||
|
||||
settings.insert(qsl("folders"), settingsFolders);
|
||||
|
||||
@@ -480,6 +485,7 @@ void Manager::writeCurrentSettings() {
|
||||
settingsFolders.insert(qsl("count_unmuted_only"), cUnmutedFilterCounterOnly());
|
||||
settingsFolders.insert(qsl("hide_edit_button"), cHideFilterEditButton());
|
||||
settingsFolders.insert(qsl("hide_names"), cHideFilterNames());
|
||||
settingsFolders.insert(qsl("hide_all_chats"), cHideFilterAllChats());
|
||||
|
||||
settings.insert(qsl("folders"), settingsFolders);
|
||||
|
||||
|
@@ -324,5 +324,6 @@ int gDefaultFilterId = 0;
|
||||
bool gUnmutedFilterCounterOnly = false;
|
||||
bool gHideFilterEditButton = false;
|
||||
bool gHideFilterNames = false;
|
||||
bool gHideFilterAllChats = false;
|
||||
|
||||
bool gProfileTopBarNotifications = false;
|
||||
|
@@ -254,5 +254,6 @@ DeclareSetting(int, DefaultFilterId);
|
||||
DeclareSetting(bool, UnmutedFilterCounterOnly);
|
||||
DeclareSetting(bool, HideFilterEditButton);
|
||||
DeclareSetting(bool, HideFilterNames);
|
||||
DeclareSetting(bool, HideFilterAllChats);
|
||||
|
||||
DeclareSetting(bool, ProfileTopBarNotifications);
|
||||
|
@@ -246,6 +246,22 @@ void SetupKotatoFolders(
|
||||
App::wnd()->fixOrder();
|
||||
}, 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(
|
||||
container,
|
||||
tr::ktg_settings_filters_hide_edit(),
|
||||
|
@@ -116,7 +116,7 @@ void FiltersMenu::setup() {
|
||||
const auto i = _filters.find(_activeFilterId);
|
||||
if (i != end(_filters)) {
|
||||
i->second->setActive(false);
|
||||
} else if (!_activeFilterId) {
|
||||
} else if (!_activeFilterId && _all) {
|
||||
_all->setActive(false);
|
||||
}
|
||||
_activeFilterId = id;
|
||||
@@ -124,7 +124,7 @@ void FiltersMenu::setup() {
|
||||
if (j != end(_filters)) {
|
||||
j->second->setActive(true);
|
||||
scrollToButton(j->second);
|
||||
} else if (!_activeFilterId) {
|
||||
} else if (!_activeFilterId && _all) {
|
||||
_all->setActive(true);
|
||||
scrollToButton(_all);
|
||||
}
|
||||
@@ -193,11 +193,13 @@ void FiltersMenu::refresh(bool firstLoad) {
|
||||
}
|
||||
|
||||
void FiltersMenu::setupList() {
|
||||
if (!cHideFilterAllChats()) {
|
||||
_all = prepareButton(
|
||||
_container,
|
||||
0,
|
||||
tr::lng_filters_all(tr::now),
|
||||
Ui::FilterIcon::All);
|
||||
}
|
||||
_list = _container->add(object_ptr<Ui::VerticalLayout>(_container));
|
||||
if (!cHideFilterEditButton()) {
|
||||
_setup = prepareButton(
|
||||
|
@@ -215,13 +215,20 @@ void SessionController::toggleFiltersMenu(bool enabled) {
|
||||
void SessionController::reloadFiltersMenu() {
|
||||
const auto enabled = !session().data().chatsFilters().list().empty();
|
||||
if (enabled) {
|
||||
const auto previousFilter = activeChatsFilterCurrent();
|
||||
setActiveChatsFilter(0);
|
||||
toggleFiltersMenu(false);
|
||||
auto previousFilter = activeChatsFilterCurrent();
|
||||
rpl::single(
|
||||
rpl::empty_value()
|
||||
) | rpl::then(
|
||||
filtersMenuChanged()
|
||||
) | rpl::start_with_next([=] {
|
||||
toggleFiltersMenu(true);
|
||||
if (previousFilter) {
|
||||
setActiveChatsFilter(previousFilter);
|
||||
}
|
||||
}, lifetime());
|
||||
|
||||
setActiveChatsFilter(0);
|
||||
toggleFiltersMenu(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user