diff --git a/Telegram/Resources/icons/menu_fix_order.png b/Telegram/Resources/icons/menu_fix_order.png new file mode 100644 index 000000000..ea239dd85 Binary files /dev/null and b/Telegram/Resources/icons/menu_fix_order.png differ diff --git a/Telegram/Resources/icons/menu_fix_order@2x.png b/Telegram/Resources/icons/menu_fix_order@2x.png new file mode 100644 index 000000000..58faf304a Binary files /dev/null and b/Telegram/Resources/icons/menu_fix_order@2x.png differ diff --git a/Telegram/Resources/icons/menu_reload.png b/Telegram/Resources/icons/menu_reload.png new file mode 100644 index 000000000..c269d5951 Binary files /dev/null and b/Telegram/Resources/icons/menu_reload.png differ diff --git a/Telegram/Resources/icons/menu_reload@2x.png b/Telegram/Resources/icons/menu_reload@2x.png new file mode 100644 index 000000000..e07751761 Binary files /dev/null and b/Telegram/Resources/icons/menu_reload@2x.png differ diff --git a/Telegram/SourceFiles/settings/settings_chat.cpp b/Telegram/SourceFiles/settings/settings_chat.cpp index e7ae0aedb..ea0aae3fd 100644 --- a/Telegram/SourceFiles/settings/settings_chat.cpp +++ b/Telegram/SourceFiles/settings/settings_chat.cpp @@ -946,38 +946,6 @@ void SetupSupport(not_null container) { }); AddSkip(inner, st::settingsCheckboxesSkip); - - base::ObservableViewer( - inner->add( - object_ptr( - inner, - "Fix chats order", - Auth().settings().supportFixChatsOrder(), - st::settingsSendType), - st::settingsSendTypePadding - )->checkedChanged - ) | rpl::start_with_next([](bool fix) { - Auth().settings().setSupportFixChatsOrder(fix); - Local::writeUserSettings(); - }, inner->lifetime()); - - AddSkip(inner, st::settingsCheckboxesSkip); - - const auto subscription = Ui::AttachAsChild(inner, rpl::lifetime()); - AddButton( - inner, - rpl::single(qsl("Reload templates")), - st::settingsButton - )->addClickHandler([=] { - *subscription = Auth().supportTemplates()->errors( - ) | rpl::start_with_next([=](QStringList errors) { - Ui::Toast::Show(errors.isEmpty() - ? "Templates reloaded!" - : ("Errors:\n\n" + errors.join("\n\n"))); - }); - Auth().supportTemplates()->reload(); - }); - AddSkip(inner); } Chat::Chat(QWidget *parent, not_null self) diff --git a/Telegram/SourceFiles/support/support_autocomplete.cpp b/Telegram/SourceFiles/support/support_autocomplete.cpp index b77813fad..7eacb65f8 100644 --- a/Telegram/SourceFiles/support/support_autocomplete.cpp +++ b/Telegram/SourceFiles/support/support_autocomplete.cpp @@ -93,8 +93,9 @@ void Inner::showRows(std::vector &&rows) { prepareRow(added); } resizeToWidth(width()); - update(); _selected = _pressed = -1; + moveSelection(1); + update(); } std::pair Inner::moveSelection(int delta) { diff --git a/Telegram/SourceFiles/window/window.style b/Telegram/SourceFiles/window/window.style index b3ed814b2..c47932a5b 100644 --- a/Telegram/SourceFiles/window/window.style +++ b/Telegram/SourceFiles/window/window.style @@ -135,6 +135,10 @@ mainMenuSettings: icon {{ "menu_settings", menuIconFg }}; mainMenuSettingsOver: icon {{ "menu_settings", menuIconFgOver }}; mainMenuNightMode: icon {{ "menu_night_mode", menuIconFg }}; mainMenuNightModeOver: icon {{ "menu_night_mode", menuIconFgOver }}; +mainMenuReload: icon {{ "menu_reload", menuIconFg }}; +mainMenuReloadOver: icon {{ "menu_reload", menuIconFgOver }}; +mainMenuFixOrder: icon {{ "menu_fix_order", menuIconFg }}; +mainMenuFixOrderOver: icon {{ "menu_fix_order", menuIconFgOver }}; mainMenuFooterLeft: 30px; mainMenuTelegramLabel: FlatLabel(defaultFlatLabel) { align: align(left); diff --git a/Telegram/SourceFiles/window/window_main_menu.cpp b/Telegram/SourceFiles/window/window_main_menu.cpp index 4aa7cae5e..1df2f5677 100644 --- a/Telegram/SourceFiles/window/window_main_menu.cpp +++ b/Telegram/SourceFiles/window/window_main_menu.cpp @@ -13,10 +13,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/buttons.h" #include "ui/widgets/labels.h" #include "ui/widgets/menu.h" +#include "ui/toast/toast.h" #include "ui/special_buttons.h" #include "ui/empty_userpic.h" #include "mainwindow.h" #include "storage/localstorage.h" +#include "support/support_templates.h" #include "boxes/about_box.h" #include "boxes/peer_list_controllers.h" #include "calls/calls_box_controller.h" @@ -117,13 +119,33 @@ void MainMenu::refreshMenu() { _menu->addAction(lang(lng_profile_add_contact), [] { App::wnd()->onShowAddContact(); }, &st::mainMenuContacts, &st::mainMenuContactsOver); + + const auto fix = std::make_shared>(); + *fix = _menu->addAction(qsl("Fix chats order"), [=] { + (*fix)->setChecked(!(*fix)->isChecked()); + Auth().settings().setSupportFixChatsOrder((*fix)->isChecked()); + Local::writeUserSettings(); + }, &st::mainMenuFixOrder, &st::mainMenuFixOrderOver); + (*fix)->setCheckable(true); + (*fix)->setChecked(Auth().settings().supportFixChatsOrder()); + + const auto subscription = Ui::AttachAsChild(_menu, rpl::lifetime()); + _menu->addAction(qsl("Reload templates"), [=] { + *subscription = Auth().supportTemplates()->errors( + ) | rpl::start_with_next([=](QStringList errors) { + Ui::Toast::Show(errors.isEmpty() + ? "Templates reloaded!" + : ("Errors:\n\n" + errors.join("\n\n"))); + }); + Auth().supportTemplates()->reload(); + }, &st::mainMenuReload, &st::mainMenuReloadOver); } _menu->addAction(lang(lng_menu_settings), [] { App::wnd()->showSettings(); }, &st::mainMenuSettings, &st::mainMenuSettingsOver); - _nightThemeAction = std::make_shared>(nullptr); - auto action = _menu->addAction(lang(lng_menu_night_mode), [this] { + _nightThemeAction = std::make_shared>(); + auto action = _menu->addAction(lang(lng_menu_night_mode), [=] { if (auto action = *_nightThemeAction) { action->setChecked(!action->isChecked()); _nightThemeSwitch.callOnce(st::mainMenu.itemToggle.duration);