From 81a9554caa560d3cb75017c7cb1e09c153193791 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 9 Oct 2018 16:32:32 +0300 Subject: [PATCH] Move some settings to the main menu (support). --- Telegram/Resources/icons/menu_fix_order.png | Bin 0 -> 728 bytes .../Resources/icons/menu_fix_order@2x.png | Bin 0 -> 1445 bytes Telegram/Resources/icons/menu_reload.png | Bin 0 -> 661 bytes Telegram/Resources/icons/menu_reload@2x.png | Bin 0 -> 1216 bytes .../SourceFiles/settings/settings_chat.cpp | 32 ------------------ .../support/support_autocomplete.cpp | 3 +- Telegram/SourceFiles/window/window.style | 4 +++ .../SourceFiles/window/window_main_menu.cpp | 26 ++++++++++++-- 8 files changed, 30 insertions(+), 35 deletions(-) create mode 100644 Telegram/Resources/icons/menu_fix_order.png create mode 100644 Telegram/Resources/icons/menu_fix_order@2x.png create mode 100644 Telegram/Resources/icons/menu_reload.png create mode 100644 Telegram/Resources/icons/menu_reload@2x.png diff --git a/Telegram/Resources/icons/menu_fix_order.png b/Telegram/Resources/icons/menu_fix_order.png new file mode 100644 index 0000000000000000000000000000000000000000..ea239dd85dbbfb65da497b53e433e5120f666cab GIT binary patch literal 728 zcmV;}0w?{6P)3H&S&0Zy608*zK@cP$2x(%cLV6K|*w|Pp zet;yBR1497iP|a>h36I*_qt|{o7`(&m}1VHGtbP+%M8(zeSO4YF#r;Y#LodUnG8=)PiB94dD$tnHQ>m|2mlKU z3ubI-X~_w+d003c1|XZw;_-MaV-BFL!A?$2%-G=IAbWdzPNB`iPESuQ@t&R@0PgPY z>Y%Y$%o#8o4wFu&DHIA+t5t4qZvi+yKDN#8?(PPlR4SRVL?Qt|e}BIj`z1C?rBX6K zKQFafO}4kUC7;iW-|rV)*JW{W(XK=u9v;Nya*1IWQY;oF6beZ`pBE7kUDqwSmX+@8 z>;N!6K8{j~P$)z+8YL2mII{ix{G5+kSy^dp>A}GPfZ6}3$;ruvu$!A3YPA|eLqnue zDQ0G7zCScBmy7G`YhGVp>FVk-<4P%%QVn4M!C>$^7wUsbDXP^fFE20OTG-jyNiLTI zAP@*RvHk18tE(#>A0I6{{oMBV_nU#y@bh$WaUp)cUn-S~c)ecRoM130rBX@m@9!H; zWs&Vl=H})A7#$tu@bHjwxs2EAt;@?~GCV&&JKEismU=uM0FuchBEs0%n0Zn^+k19) zMxjvnH{j*vrTKjA?(PDxv9Uoem*eg24WG|vxi)KSYpnyPrltUh$K&Qvk4B^Bc%@PS zK+`m)r>6mIt#$--yWN(Hp3P>_b-nJ&7=~fytgo*(1N#fqG>xO9BLED;U}9pTVPQI* zwtKdm1BZu)0odBwqNAgum5G`I1_A+kdwYKp^vB6}YP;0-KkwfQ`=2mtzS2wp0000< KMNUMnLSTZbT}{jY literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..58faf304a5213e84f8a4f3f7c9bf509a7ce36d57 GIT binary patch literal 1445 zcmV;W1zP%vP)u}HYLp5ly_NXq zsUAec2h)eZ2lYWjQE`HprsAKG4yXI}5FYMzbN}x)r5_wn&)GTWGUz+uJZ2PJMcrR)#CBv$Ic$d zJ-CjJ4hH-4=Z^sDWTfkH_4V}(qtR#(9v%*rN+lN3wYb~2Z!^U7^fZElgIQf+VWAjE z*8-E0k{F<(qQa-@kw3!Gi~4BV7w5A}Ezg0YD;=h>3JPu%V%W zO?-8A72e+7Cfhj)=~`TSdpn!(+S(ez!otk9cLLIVxR8(#t6t|I(sOVe$00X27jbcM z&O~|!j)?H;)hhsi!C=7s`}duN^b8ykAulhFwLLpKgIq3m2GTQd7qfVtNrggT5&7uR zqf7ha&XxAWojZ3ZIy#zUG8x6h#E`GAFX{DqT3lQtg+f8EU%w_IqP4X(lFQ|^zrSx) zzm=7h)ZN`pL_`26IXRhTW@ZF!3JVMA>({SDM09$3O2NUwbaZrNvOk-$5*QeWf`S4} zPEO+N>wW+PGb^H=7DJj9$)|L@Mr_*75eH}|nOVDUE zI6giG04y&r+l8|h85tP~gTVj*c=P6s{lI{L0Q~szLx5UZTEeGKpP*8y5E>dPXfKsY zk&==Ee}8|6*RfiyW@lG}!GNTsBoGl|Vq&njx5wrqlgaD@avX>8@p0DC%E}6gii#Yb zxGhV957Fs#Xl!i6_VzaWTVrFRxjxJf5Fa1UI_mE3Hmc9b$-&#VZ!t15g7NWjjE;_? zwYAmc7H?~bjg4j5yDXZUn=SQYeh`I1!8$81FBjAm6&0Bs+)>=o(GlzG<;$1I$jHFL z!UD8fEtZ#;QC(eaO<(34`1|`~V`GC2R8msH>aw!3aB^~j-Q8Wx&dy?TauTz%vshhS z#plnT9m4V7r)g?x64c+kdDE8uEH_F>ND$l-_(-W#iW@g>ID9!;i?gFx*HEccvMm_^ zUc7kWG?a)q>w#h;FRnQ!;cNqng%l}s_5q0q4<9}hAd8EO?ViBhyLZLJ*#{*0xAE-k z>^Pjs+}vE&hneG+>w!ds&CN~0ea{{w{~+=F`E$#RM>jCMnpv5^7G?%lg*_nMSSrEK?XYin~q(8tGz{m1osJ^cLqK=f~S<)0g^MMgzML9f>X z09smF+z%Wa9At?6{Cq)Oe0;nhll&9UWkn{FvG!$UW$p#?cf8@@VL@G7TparQ`;FG5 zC1hr1CTnZzoivvLy}iBJlltlDDSUl>SzT3Cl>oK4xQN5UL#vRzy}bZ{{r!D0aMlC) z*-@+2?2??Am=NH4dU`-aMjMYQB*$@V{Y^|vxDWW`$rCow&dyE{5z5QUjk1=Jks)~9 z#bez?WNB$Bt5c~|?g4svd9h1#YHA7*5fMiBKvPfp)*#Qbx3RGy7S1xTudk1-yRoq` z{QC8aO?G~M9%*T576(x(m4fHVy1F`i`SOMR{_NQ^_W-lAv)Ls0Spa~KA3xeO&_(2V zeEarIOx)!_j^m8J-f^C_)YMeF29wL>n3LU2VE1_xJ069yIt{0An+m688|jY+}8fy7{f zOBo0XVZyKgiHUqJkLLBYN^6Y6dtY*f-h1x(ot}H{Z6yH259-%X!u}7S@Z+p$8shOd z!r?H45O{um#>2w{Mx&80C^y;B(Ge$;2|v;y1dt?&hGAHK%jI$t z)IM-}dTJ|Iy-9*ItyarBFq6sHfZcAFs;YW|1_A+VT_TZi^>G{vMNw?e z`}_Ma48x_@oO*kELo5~p05lqn5B+Qz6bc0^%VM!eMNzzVpJns;oFu91`sR|Jot?4K zXmD$5%Qt9k<#L%Md3bo}?^t}*WLf6U&W^XH0YF{XDa-P=C*lfRpQ%!*^yQ$TP>7vQ zhuLg)GjMlzmn6AZEPR84!5}X#F07`@=kwl5y1uTW(WqzG$;pZ1j?H8;-hhcj!desv z1Uvy%Rb{)~wgHcij~#xl-^07RJG9$v0Koly7qTq7x!E+E&0w0QZA_9RS6|nRg%DgW zm!2-~KP%Gj_o-$UB_y* v!eB7K5Q$by#3_FMv-3;u|DWW<@ zmkxFBkOb1LOLWOYkPuAW^F4fj8`D`%-7LTOh6kK%&-1+Yc|IRMd!_*Z5dLBP_tOdJ ztvX<>s}5M}ssq-#$f^V(NoZ_rgy!aENTpIh5CnXDd;rh$)d&x$wNVs>4u=DS!5}6Q z3FLVm^TqQ##^Z4eg+e$wI*JrUX`aXbrkyj3#e(5*SOKF};cytOR_pHrBuNs3!C={7 z`HDm$T8?OC4*L81H3Q3+!{PW@z{SNyDVa*ceVvPfN$?bXxixjYg5C>9UidX&Mg?4-5MC`F#2Sk|dcE zNG|!vO-)T{F<%e>(BttGgzW0-(g(1Z+S}VTgA>i^bQZjk1VNPKr|4EKlgU6bnf&$~ zi^WpRP04zAc!2ToaR2}y2m%lh006ePw@dc*?Hw>0jYUTg5%K2cMwi{l(b17&6d8um zu0)Fg$^+|Bss@8W@-MEeJ3Bkt0n#*Gbo5?cUT|=5P;)rZ{C>Y8W(jlg`x6+3`4UVJ z1a!OIx`BySXrUVz7|;gLWHJ?mTUb~qc}1(lqS0th{BSs|4WP|t%W=HEzFyIfdAa6x zyQQi@M0|aH)dr9t2)w<$#q;xXHs8c5@ola{D z$Z?$HT-*=pF&8O{!i$RwMXY@BJg;_|s1Lrkx2Fi|a=COVQ=83(>9q2lhNwg$q1KoB zpz^sWFQ2}?KFtBGR_m8=h=}ocT$P`awrbgI7P`B;0pM>VD3i$m0KntpBTP2mowQ#MWfM@I@i8jAR;a;EtT|8%(86GdyagctE;Qhxg5t~EEdC|p&@+%0RU%bXQde_<3YRKjwX`{8HPcQ0HD*sxi z(^)B8<$wTxf4lbg_sa&$S11(vJug7z*3!~aaL1!o!C(;0X0vAbXbvbJ(c$4C+}+*9 z`}_MZf#UHvuC1-%$jFFpow};@WGIRPnx?^MGy+9YkW3~ao6T0`ZzT1mQ?08GSnH|- e*1GC|wXQ!TfP4@GOqr 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);