diff --git a/flutter/assets/screen.svg b/flutter/assets/screen.svg new file mode 100644 index 000000000..c1d560b29 --- /dev/null +++ b/flutter/assets/screen.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/flutter/lib/desktop/pages/desktop_setting_page.dart b/flutter/lib/desktop/pages/desktop_setting_page.dart index 4609d4f47..af7f7f968 100644 --- a/flutter/lib/desktop/pages/desktop_setting_page.dart +++ b/flutter/lib/desktop/pages/desktop_setting_page.dart @@ -1318,6 +1318,7 @@ class _DisplayState extends State<_Display> { Widget other(BuildContext context) { return _Card(title: 'Other Default Options', children: [ + otherRow('Show monitors in menu bar', 'show_monitors_menubar'), otherRow('Show remote cursor', 'show_remote_cursor'), otherRow('Zoom cursor', 'zoom-cursor'), otherRow('Show quality monitor', 'show_quality_monitor'), diff --git a/flutter/lib/desktop/pages/remote_page.dart b/flutter/lib/desktop/pages/remote_page.dart index 2099f2e95..2b1999b42 100644 --- a/flutter/lib/desktop/pages/remote_page.dart +++ b/flutter/lib/desktop/pages/remote_page.dart @@ -22,7 +22,7 @@ import '../../models/model.dart'; import '../../models/platform_model.dart'; import '../../common/shared_state.dart'; import '../../utils/image.dart'; -import '../widgets/remote_menubar.dart'; +import '../widgets/remote_toolbar.dart'; import '../widgets/kb_layout_type_chooser.dart'; bool _isCustomCursorInited = false; diff --git a/flutter/lib/desktop/pages/remote_tab_page.dart b/flutter/lib/desktop/pages/remote_tab_page.dart index d810650fd..f9c30e8c1 100644 --- a/flutter/lib/desktop/pages/remote_tab_page.dart +++ b/flutter/lib/desktop/pages/remote_tab_page.dart @@ -9,7 +9,7 @@ import 'package:flutter_hbb/common/shared_state.dart'; import 'package:flutter_hbb/consts.dart'; import 'package:flutter_hbb/models/state_model.dart'; import 'package:flutter_hbb/desktop/pages/remote_page.dart'; -import 'package:flutter_hbb/desktop/widgets/remote_menubar.dart'; +import 'package:flutter_hbb/desktop/widgets/remote_toolbar.dart'; import 'package:flutter_hbb/desktop/widgets/tabbar_widget.dart'; import 'package:flutter_hbb/desktop/widgets/material_mod_popup_menu.dart' as mod_menu; diff --git a/flutter/lib/desktop/widgets/remote_menubar.dart b/flutter/lib/desktop/widgets/remote_toolbar.dart similarity index 94% rename from flutter/lib/desktop/widgets/remote_menubar.dart rename to flutter/lib/desktop/widgets/remote_toolbar.dart index 01e41609b..41c2ef21f 100644 --- a/flutter/lib/desktop/widgets/remote_menubar.dart +++ b/flutter/lib/desktop/widgets/remote_toolbar.dart @@ -356,7 +356,7 @@ class _RemoteMenubarState extends State { return Align( alignment: Alignment.topCenter, child: Obx(() => show.value - ? _buildMenubar(context) + ? _buildToolbar(context) : _buildDraggableShowHide(context)), ); } @@ -384,30 +384,39 @@ class _RemoteMenubarState extends State { }); } - Widget _buildMenubar(BuildContext context) { - final List menubarItems = []; + Widget _buildToolbar(BuildContext context) { + final List toolbarItems = []; if (!isWebDesktop) { - menubarItems.add(_PinMenu(state: widget.state)); - menubarItems.add( + toolbarItems.add(_PinMenu(state: widget.state)); + toolbarItems.add( _FullscreenMenu(state: widget.state, setFullscreen: _setFullscreen)); - menubarItems.add(_MobileActionMenu(ffi: widget.ffi)); + toolbarItems.add(_MobileActionMenu(ffi: widget.ffi)); } - menubarItems.add(_MonitorMenu(id: widget.id, ffi: widget.ffi)); - menubarItems + + if (PrivacyModeState.find(widget.id).isFalse && + stateGlobal.displaysCount.value > 1) { + toolbarItems.add( + bind.mainGetUserDefaultOption(key: 'show_monitors_menubar') == 'Y' + ? _MultiMonitorMenu(id: widget.id, ffi: widget.ffi) + : _MonitorMenu(id: widget.id, ffi: widget.ffi), + ); + } + + toolbarItems .add(_ControlMenu(id: widget.id, ffi: widget.ffi, state: widget.state)); - menubarItems.add(_DisplayMenu( + toolbarItems.add(_DisplayMenu( id: widget.id, ffi: widget.ffi, state: widget.state, setFullscreen: _setFullscreen, )); - menubarItems.add(_KeyboardMenu(id: widget.id, ffi: widget.ffi)); + toolbarItems.add(_KeyboardMenu(id: widget.id, ffi: widget.ffi)); if (!isWeb) { - menubarItems.add(_ChatMenu(id: widget.id, ffi: widget.ffi)); - menubarItems.add(_VoiceCallMenu(id: widget.id, ffi: widget.ffi)); + toolbarItems.add(_ChatMenu(id: widget.id, ffi: widget.ffi)); + toolbarItems.add(_VoiceCallMenu(id: widget.id, ffi: widget.ffi)); } - menubarItems.add(_RecordMenu()); - menubarItems.add(_CloseMenu(id: widget.id, ffi: widget.ffi)); + toolbarItems.add(_RecordMenu()); + toolbarItems.add(_CloseMenu(id: widget.id, ffi: widget.ffi)); return Column( mainAxisSize: MainAxisSize.min, children: [ @@ -427,7 +436,7 @@ class _RemoteMenubarState extends State { child: Row( children: [ SizedBox(width: _MenubarTheme.buttonHMargin * 2), - ...menubarItems, + ...toolbarItems, SizedBox(width: _MenubarTheme.buttonHMargin * 2) ], ), @@ -527,10 +536,6 @@ class _MonitorMenu extends StatelessWidget { @override Widget build(BuildContext context) { - if (PrivacyModeState.find(id).isTrue || - stateGlobal.displaysCount.value < 2) { - return Offstage(); - } return _IconSubmenuButton( tooltip: 'Select Monitor', icon: icon(), @@ -549,19 +554,20 @@ class _MonitorMenu extends StatelessWidget { alignment: Alignment.center, children: [ SvgPicture.asset( - "assets/display.svg", + "assets/screen.svg", color: Colors.white, ), - Padding( - padding: const EdgeInsets.only(bottom: 3.9), - child: Obx(() { - RxInt display = CurrentDisplayState.find(id); - return Text( - '${display.value + 1}/${pi.displays.length}', - style: const TextStyle(color: Colors.white, fontSize: 8), - ); - }), - ) + Obx(() { + RxInt display = CurrentDisplayState.find(id); + return Text( + '${display.value + 1}/${pi.displays.length}', + style: const TextStyle( + color: _MenubarTheme.blueColor, + fontSize: 8, + fontWeight: FontWeight.bold, + ), + ); + }), ], ); } @@ -584,19 +590,17 @@ class _MonitorMenu extends StatelessWidget { alignment: Alignment.center, children: [ SvgPicture.asset( - "assets/display.svg", + "assets/screen.svg", color: Colors.white, ), - Padding( - padding: const EdgeInsets.only(bottom: 3.5 /*2.5*/), - child: Text( - (i + 1).toString(), - style: TextStyle( - color: Colors.white, - fontSize: 12, - ), + Text( + (i + 1).toString(), + style: TextStyle( + color: _MenubarTheme.blueColor, + fontSize: 12, + fontWeight: FontWeight.bold, ), - ) + ), ], ), ), @@ -2206,3 +2210,69 @@ Widget _buildPointerTrackWidget(Widget child, FFI ffi) { ), ); } + +class _MultiMonitorMenu extends StatelessWidget { + final String id; + final FFI ffi; + + const _MultiMonitorMenu({ + super.key, + required this.id, + required this.ffi, + }); + + @override + Widget build(BuildContext context) { + final List rowChildren = []; + final pi = ffi.ffiModel.pi; + + for (int i = 0; i < pi.displays.length; i++) { + rowChildren.add( + Obx(() { + RxInt display = CurrentDisplayState.find(id); + return _IconMenuButton( + topLevel: false, + color: i == display.value + ? _MenubarTheme.blueColor + : Colors.grey[800]!, + hoverColor: i == display.value + ? _MenubarTheme.hoverBlueColor + : Colors.grey[850]!, + icon: Container( + alignment: AlignmentDirectional.center, + constraints: + const BoxConstraints(minHeight: _MenubarTheme.height), + child: Stack( + alignment: Alignment.center, + children: [ + SvgPicture.asset( + "assets/screen.svg", + color: Colors.white, + ), + Obx( + () => Text( + (i + 1).toString(), + style: TextStyle( + color: i == display.value + ? _MenubarTheme.blueColor + : Colors.grey[800]!, + fontSize: 12, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + ), + onPressed: () { + if (display.value != i) { + bind.sessionSwitchDisplay(id: id, value: i); + } + }, + ); + }), + ); + } + return Row(children: rowChildren); + } +} diff --git a/src/lang/ca.rs b/src/lang/ca.rs index 34671474f..7a8e5e437 100644 --- a/src/lang/ca.rs +++ b/src/lang/ca.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/cn.rs b/src/lang/cn.rs index 6778a8818..0781a2a97 100644 --- a/src/lang/cn.rs +++ b/src/lang/cn.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "此文件与对方的一致") + ("identical_file_tip", "此文件与对方的一致"), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/cs.rs b/src/lang/cs.rs index b60b927f0..03f8d6240 100644 --- a/src/lang/cs.rs +++ b/src/lang/cs.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/da.rs b/src/lang/da.rs index 9b6ac2be5..cfb66528d 100644 --- a/src/lang/da.rs +++ b/src/lang/da.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", "Tom brugernavn"), ("Empty Password", "Tom adgangskode"), ("Me", "Mig"), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/de.rs b/src/lang/de.rs index 042756885..ab1e2976b 100644 --- a/src/lang/de.rs +++ b/src/lang/de.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", "Leerer Benutzername"), ("Empty Password", "Leeres Passwort"), ("Me", "Ich"), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/el.rs b/src/lang/el.rs index 771fa8797..e7defa943 100644 --- a/src/lang/el.rs +++ b/src/lang/el.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", "Κενό όνομα χρήστη"), ("Empty Password", "Κενός κωδικός πρόσβασης"), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/en.rs b/src/lang/en.rs index c44c9c9f9..eb09dacd2 100644 --- a/src/lang/en.rs +++ b/src/lang/en.rs @@ -52,6 +52,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("empty_favorite_tip", "No favorite peers yet?\nLet's find someone to connect with and add it to your favorites!"), ("empty_lan_tip", "Oh no, it looks like we haven't discovered any peers yet."), ("empty_address_book_tip", "Oh dear, it appears that there are currently no peers listed in your address book."), - ("identical_file_tip", "This file is identical with the peer's one.") + ("identical_file_tip", "This file is identical with the peer's one."), + ("show_monitors_tip", "Show monitors in toolbar") ].iter().cloned().collect(); } diff --git a/src/lang/eo.rs b/src/lang/eo.rs index 3219e3b42..2eb430d32 100644 --- a/src/lang/eo.rs +++ b/src/lang/eo.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/es.rs b/src/lang/es.rs index 58f331d01..12a537216 100644 --- a/src/lang/es.rs +++ b/src/lang/es.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", "Nombre de usuario vacío"), ("Empty Password", "Contraseña vacía"), ("Me", "Yo"), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/fa.rs b/src/lang/fa.rs index b57f0dbe9..c6aa36d58 100644 --- a/src/lang/fa.rs +++ b/src/lang/fa.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/fr.rs b/src/lang/fr.rs index ed8089774..b327972b7 100644 --- a/src/lang/fr.rs +++ b/src/lang/fr.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/hu.rs b/src/lang/hu.rs index 3b281a25f..b4df936bb 100644 --- a/src/lang/hu.rs +++ b/src/lang/hu.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/id.rs b/src/lang/id.rs index 7e6095715..465f2082c 100644 --- a/src/lang/id.rs +++ b/src/lang/id.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/it.rs b/src/lang/it.rs index f860dbc88..94fea4e03 100644 --- a/src/lang/it.rs +++ b/src/lang/it.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", "Nome Utente Vuoto"), ("Empty Password", "Password Vuota"), ("Me", "Io"), - ("identical_file_tip", "") + ("identical_file_tip", "Questo file è identico a quello del peer."), + ("show_monitors_tip", "Mostra schermi nella barra degli strumenti"), ].iter().cloned().collect(); } diff --git a/src/lang/ja.rs b/src/lang/ja.rs index 366082cc4..d5bd2e973 100644 --- a/src/lang/ja.rs +++ b/src/lang/ja.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ko.rs b/src/lang/ko.rs index 5244704bb..83ba01915 100644 --- a/src/lang/ko.rs +++ b/src/lang/ko.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/kz.rs b/src/lang/kz.rs index 120bcb81e..de33f7e57 100644 --- a/src/lang/kz.rs +++ b/src/lang/kz.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/nl.rs b/src/lang/nl.rs index dadc27705..05fc9a65c 100644 --- a/src/lang/nl.rs +++ b/src/lang/nl.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", "Gebruikersnaam Leeg"), ("Empty Password", "Wachtwoord Leeg"), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/pl.rs b/src/lang/pl.rs index c75b392da..e93635ca5 100644 --- a/src/lang/pl.rs +++ b/src/lang/pl.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/pt_PT.rs b/src/lang/pt_PT.rs index 0ed7642f3..a2189a7b0 100644 --- a/src/lang/pt_PT.rs +++ b/src/lang/pt_PT.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ptbr.rs b/src/lang/ptbr.rs index 66dbcd6b7..19db9e989 100644 --- a/src/lang/ptbr.rs +++ b/src/lang/ptbr.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ro.rs b/src/lang/ro.rs index 3efbcc281..382844fba 100644 --- a/src/lang/ro.rs +++ b/src/lang/ro.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ru.rs b/src/lang/ru.rs index 91ef210c8..ee35e598a 100644 --- a/src/lang/ru.rs +++ b/src/lang/ru.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sk.rs b/src/lang/sk.rs index 0b891ff03..43d1539a9 100644 --- a/src/lang/sk.rs +++ b/src/lang/sk.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sl.rs b/src/lang/sl.rs index 29fb6be3c..56539fa74 100755 --- a/src/lang/sl.rs +++ b/src/lang/sl.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sq.rs b/src/lang/sq.rs index 3a923d742..65e18b517 100644 --- a/src/lang/sq.rs +++ b/src/lang/sq.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sr.rs b/src/lang/sr.rs index cf077ac58..c16a0c039 100644 --- a/src/lang/sr.rs +++ b/src/lang/sr.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sv.rs b/src/lang/sv.rs index 66f140e99..b5529c05b 100644 --- a/src/lang/sv.rs +++ b/src/lang/sv.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/template.rs b/src/lang/template.rs index 9f4ad1835..4f29f7dc3 100644 --- a/src/lang/template.rs +++ b/src/lang/template.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/th.rs b/src/lang/th.rs index 1ada40612..72355ee5d 100644 --- a/src/lang/th.rs +++ b/src/lang/th.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/tr.rs b/src/lang/tr.rs index 9215464ea..ba4c33bea 100644 --- a/src/lang/tr.rs +++ b/src/lang/tr.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/tw.rs b/src/lang/tw.rs index b18488b26..90cb0bf61 100644 --- a/src/lang/tw.rs +++ b/src/lang/tw.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ua.rs b/src/lang/ua.rs index f5c0c22f7..68b46e700 100644 --- a/src/lang/ua.rs +++ b/src/lang/ua.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/vn.rs b/src/lang/vn.rs index e8bc76c8e..43e339331 100644 --- a/src/lang/vn.rs +++ b/src/lang/vn.rs @@ -477,6 +477,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Empty Username", ""), ("Empty Password", ""), ("Me", ""), - ("identical_file_tip", "") + ("identical_file_tip", ""), + ("show_monitors_tip", ""), ].iter().cloned().collect(); }