diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n.dart b/.dart_tool/flutter_gen/gen_l10n/l10n.dart index a8b5ee05..6526deb2 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n.dart @@ -404,6 +404,12 @@ abstract class S { /// **'Ignore path for disk'** String get diskIgnorePath; + /// No description provided for @displayName. + /// + /// In en, this message translates to: + /// **'Display name'** + String get displayName; + /// No description provided for @dl2Local. /// /// In en, this message translates to: @@ -800,6 +806,12 @@ abstract class S { /// **'Loading files...'** String get loadingFiles; + /// No description provided for @location. + /// + /// In en, this message translates to: + /// **'Location'** + String get location; + /// No description provided for @log. /// /// In en, this message translates to: @@ -854,12 +866,6 @@ abstract class S { /// **'Mission'** String get mission; - /// No description provided for @moveOutServerFuncBtns. - /// - /// In en, this message translates to: - /// **'Server function button location'** - String get moveOutServerFuncBtns; - /// No description provided for @moveOutServerFuncBtnsHelp. /// /// In en, this message translates to: @@ -1208,6 +1214,12 @@ abstract class S { /// **'Detail page widget order'** String get serverDetailOrder; + /// No description provided for @serverFuncBtns. + /// + /// In en, this message translates to: + /// **'Server func buttons'** + String get serverFuncBtns; + /// No description provided for @serverOrder. /// /// In en, this message translates to: diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart index d93f022e..8f6e5259 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart @@ -159,6 +159,9 @@ class SDe extends S { @override String get diskIgnorePath => 'Pfad für Datenträger ignorieren'; + @override + String get displayName => 'Name anzeigen'; + @override String dl2Local(Object fileName) { return 'Datei \"$fileName\" herunterladen?'; @@ -375,6 +378,9 @@ class SDe extends S { @override String get loadingFiles => 'Lädt Dateien...'; + @override + String get location => 'Standort'; + @override String get log => 'Log'; @@ -404,9 +410,6 @@ class SDe extends S { @override String get mission => 'Mission'; - @override - String get moveOutServerFuncBtns => 'Position der Server-Funktionsschaltfläche'; - @override String get moveOutServerFuncBtnsHelp => 'Ein: kann unter jeder Karte auf der Registerkarte \"Server\" angezeigt werden. Aus: kann oben auf der Seite \"Serverdetails\" angezeigt werden.'; @@ -585,6 +588,9 @@ class SDe extends S { @override String get serverDetailOrder => 'Reihenfolge der Widgets auf der Detailseite'; + @override + String get serverFuncBtns => 'Server-Funktionsschaltflächen'; + @override String get serverOrder => 'Server-Bestellung'; diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart index a1212674..421844d4 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart @@ -159,6 +159,9 @@ class SEn extends S { @override String get diskIgnorePath => 'Ignore path for disk'; + @override + String get displayName => 'Display name'; + @override String dl2Local(Object fileName) { return 'Download $fileName to local?'; @@ -375,6 +378,9 @@ class SEn extends S { @override String get loadingFiles => 'Loading files...'; + @override + String get location => 'Location'; + @override String get log => 'Log'; @@ -404,9 +410,6 @@ class SEn extends S { @override String get mission => 'Mission'; - @override - String get moveOutServerFuncBtns => 'Server function button location'; - @override String get moveOutServerFuncBtnsHelp => 'On: can be displayed below each card on the Server Tab page. Off: can be displayed at the top of the Server Details page.'; @@ -585,6 +588,9 @@ class SEn extends S { @override String get serverDetailOrder => 'Detail page widget order'; + @override + String get serverFuncBtns => 'Server func buttons'; + @override String get serverOrder => 'Server order'; diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart index 40c9e2ec..7518da6f 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart @@ -159,6 +159,9 @@ class SId extends S { @override String get diskIgnorePath => 'Abaikan jalan untuk disk'; + @override + String get displayName => 'Nama tampilan'; + @override String dl2Local(Object fileName) { return 'Unduh $fileName ke lokal?'; @@ -375,6 +378,9 @@ class SId extends S { @override String get loadingFiles => 'Memuat file ...'; + @override + String get location => 'Lokasi'; + @override String get log => 'Catatan'; @@ -404,9 +410,6 @@ class SId extends S { @override String get mission => 'Misi'; - @override - String get moveOutServerFuncBtns => 'Lokasi tombol fungsi server'; - @override String get moveOutServerFuncBtnsHelp => 'Aktif: dapat ditampilkan di bawah setiap kartu pada halaman Tab Server. Nonaktif: dapat ditampilkan di bagian atas halaman Rincian Server.'; @@ -585,6 +588,9 @@ class SId extends S { @override String get serverDetailOrder => 'Detail pesanan widget halaman'; + @override + String get serverFuncBtns => 'Tombol fungsi server'; + @override String get serverOrder => 'Pesanan server'; diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart index 87f74921..c602c9ec 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart @@ -159,6 +159,9 @@ class SZh extends S { @override String get diskIgnorePath => '忽略的磁盘路径'; + @override + String get displayName => '显示名称'; + @override String dl2Local(Object fileName) { return '下载 $fileName 到本地?'; @@ -375,6 +378,9 @@ class SZh extends S { @override String get loadingFiles => '正在加载目录。。。'; + @override + String get location => '位置'; + @override String get log => '日志'; @@ -404,9 +410,6 @@ class SZh extends S { @override String get mission => '任务'; - @override - String get moveOutServerFuncBtns => '服务器功能按钮位置'; - @override String get moveOutServerFuncBtnsHelp => '开启:可以在服务器 Tab 页的每个卡片下方显示。关闭:在服务器详情页顶部显示。'; @@ -585,6 +588,9 @@ class SZh extends S { @override String get serverDetailOrder => '详情页部件顺序'; + @override + String get serverFuncBtns => '服务器功能按钮'; + @override String get serverOrder => '服务器顺序'; @@ -933,6 +939,9 @@ class SZhTw extends SZh { @override String get diskIgnorePath => '忽略的磁盤路徑'; + @override + String get displayName => '顯示名稱'; + @override String dl2Local(Object fileName) { return '下載 $fileName 到本地?'; @@ -1149,6 +1158,9 @@ class SZhTw extends SZh { @override String get loadingFiles => '正在加載目錄。。。'; + @override + String get location => '位置'; + @override String get log => '日誌'; @@ -1178,9 +1190,6 @@ class SZhTw extends SZh { @override String get mission => '任務'; - @override - String get moveOutServerFuncBtns => '服務器功能按鈕位置'; - @override String get moveOutServerFuncBtnsHelp => '開啟:可以在服務器 Tab 頁的每個卡片下方顯示。關閉:在服務器詳情頁頂部顯示。'; @@ -1359,6 +1368,9 @@ class SZhTw extends SZh { @override String get serverDetailOrder => '詳情頁部件順序'; + @override + String get serverFuncBtns => '服務器功能按鈕'; + @override String get serverOrder => '服務器順序'; diff --git a/lib/data/store/setting.dart b/lib/data/store/setting.dart index 2725e5cb..ab53ea5a 100644 --- a/lib/data/store/setting.dart +++ b/lib/data/store/setting.dart @@ -220,6 +220,10 @@ class SettingStore extends PersistentStore { /// Show tip of suspend late final showSuspendTip = StoreProperty(box, 'showSuspendTip', true); + /// Server func btns display name + late final serverFuncBtnsDisplayName = + StoreProperty(box, 'serverFuncBtnsDisplayName', true); + // Never show these settings for users // // ------BEGIN------ diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index a0c9bf07..11c8b6df 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -51,6 +51,7 @@ "disconnected": "Disconnected", "disk": "Festplatte", "diskIgnorePath": "Pfad für Datenträger ignorieren", + "displayName": "Name anzeigen", "dl2Local": "Datei \"{fileName}\" herunterladen?", "dockerEditHost": "DOCKER_HOST bearbeiten", "dockerEmptyRunningItems": "Keine aktiven Container.\n\nWomöglich wird die Umgebungsvariable DOCKER_HOST nicht richtig erkannt. Du kannst sie finden, indem du `echo $DOCKER_HOST` im Terminal ausführst.", @@ -117,6 +118,7 @@ "license": "Lizenzen", "light": "Hell", "loadingFiles": "Lädt Dateien...", + "location": "Standort", "log": "Log", "loss": "loss", "madeWithLove": "Erstellt mit ❤️ von {myGithub}", @@ -126,7 +128,6 @@ "maxRetryCountEqual0": "Unbegrenzte Verbindungsversuche zum Server", "min": "min", "mission": "Mission", - "moveOutServerFuncBtns": "Position der Server-Funktionsschaltfläche", "moveOutServerFuncBtnsHelp": "Ein: kann unter jeder Karte auf der Registerkarte \"Server\" angezeigt werden. Aus: kann oben auf der Seite \"Serverdetails\" angezeigt werden.", "ms": "ms", "name": "Name", @@ -185,6 +186,7 @@ "sequence": "Sequenz", "server": "Server", "serverDetailOrder": "Reihenfolge der Widgets auf der Detailseite", + "serverFuncBtns": "Server-Funktionsschaltflächen", "serverOrder": "Server-Bestellung", "serverTabConnecting": "Verbinden...", "serverTabEmpty": "Keine Server vorhanden.", diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index a1cd9179..5cd5a48d 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -51,6 +51,7 @@ "disconnected": "Disconnected", "disk": "Disk", "diskIgnorePath": "Ignore path for disk", + "displayName": "Display name", "dl2Local": "Download {fileName} to local?", "dockerEditHost": "Edit DOCKER_HOST", "dockerEmptyRunningItems": "No running container. \nIt may be that the env DOCKER_HOST is not read correctly. You can found it by running `echo $DOCKER_HOST` in terminal.", @@ -117,6 +118,7 @@ "license": "License", "light": "Light", "loadingFiles": "Loading files...", + "location": "Location", "log": "Log", "loss": "loss", "madeWithLove": "Made with ❤️ by {myGithub}", @@ -126,7 +128,6 @@ "maxRetryCountEqual0": "Will retry again and again.", "min": "min", "mission": "Mission", - "moveOutServerFuncBtns": "Server function button location", "moveOutServerFuncBtnsHelp": "On: can be displayed below each card on the Server Tab page. Off: can be displayed at the top of the Server Details page.", "ms": "ms", "name": "Name", @@ -185,6 +186,7 @@ "sequence": "Sequence", "server": "Server", "serverDetailOrder": "Detail page widget order", + "serverFuncBtns": "Server func buttons", "serverOrder": "Server order", "serverTabConnecting": "Connecting...", "serverTabEmpty": "There is no server.\nClick the fab to add one.", diff --git a/lib/l10n/app_id.arb b/lib/l10n/app_id.arb index 3bbe4c4f..560d82d8 100644 --- a/lib/l10n/app_id.arb +++ b/lib/l10n/app_id.arb @@ -51,6 +51,7 @@ "disconnected": "Terputus", "disk": "Disk", "diskIgnorePath": "Abaikan jalan untuk disk", + "displayName": "Nama tampilan", "dl2Local": "Unduh {fileName} ke lokal?", "dockerEditHost": "Edit Docker_host", "dockerEmptyRunningItems": "Tidak ada wadah yang berjalan.\nMungkin saja env DOCKER_HOST tidak dibaca dengan benar. Anda dapat menemukannya dengan menjalankan `echo $DOCKER_HOST` di terminal.", @@ -117,6 +118,7 @@ "license": "Lisensi", "light": "Terang", "loadingFiles": "Memuat file ...", + "location": "Lokasi", "log": "Catatan", "loss": "kehilangan", "madeWithLove": "Dibuat dengan ❤️ oleh {myGithub}", @@ -126,7 +128,6 @@ "maxRetryCountEqual0": "Akan mencoba lagi lagi dan lagi.", "min": "Min", "mission": "Misi", - "moveOutServerFuncBtns": "Lokasi tombol fungsi server", "moveOutServerFuncBtnsHelp": "Aktif: dapat ditampilkan di bawah setiap kartu pada halaman Tab Server. Nonaktif: dapat ditampilkan di bagian atas halaman Rincian Server.", "ms": "MS", "name": "Nama", @@ -185,6 +186,7 @@ "sequence": "Urutan", "server": "Server", "serverDetailOrder": "Detail pesanan widget halaman", + "serverFuncBtns": "Tombol fungsi server", "serverOrder": "Pesanan server", "serverTabConnecting": "Menghubungkan ...", "serverTabEmpty": "Tidak ada server.\nKlik fab untuk menambahkan satu.", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 5948caab..6f750da5 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -51,6 +51,7 @@ "disconnected": "连接断开", "disk": "硬盘", "diskIgnorePath": "忽略的磁盘路径", + "displayName": "显示名称", "dl2Local": "下载 {fileName} 到本地?", "dockerEditHost": "编辑 DOCKER_HOST", "dockerEmptyRunningItems": "没有正在运行的容器。\n这可能是因为环境变量 DOCKER_HOST 没有被正确读取。你可以通过在终端内运行 `echo $DOCKER_HOST` 来获取。", @@ -117,6 +118,7 @@ "license": "开源证书", "light": "亮", "loadingFiles": "正在加载目录。。。", + "location": "位置", "log": "日志", "loss": "丢包率", "madeWithLove": "用❤️制作 by {myGithub}", @@ -126,7 +128,6 @@ "maxRetryCountEqual0": "会无限重试", "min": "最小", "mission": "任务", - "moveOutServerFuncBtns": "服务器功能按钮位置", "moveOutServerFuncBtnsHelp": "开启:可以在服务器 Tab 页的每个卡片下方显示。关闭:在服务器详情页顶部显示。", "ms": "毫秒", "name": "名称", @@ -185,6 +186,7 @@ "sequence": "顺序", "server": "服务器", "serverDetailOrder": "详情页部件顺序", + "serverFuncBtns": "服务器功能按钮", "serverOrder": "服务器顺序", "serverTabConnecting": "连接中...", "serverTabEmpty": "现在没有服务器。\n点击右下方按钮来添加。", diff --git a/lib/l10n/app_zh_tw.arb b/lib/l10n/app_zh_tw.arb index 921cb097..b7054a59 100644 --- a/lib/l10n/app_zh_tw.arb +++ b/lib/l10n/app_zh_tw.arb @@ -51,6 +51,7 @@ "disconnected": "連接斷開", "disk": "硬盤", "diskIgnorePath": "忽略的磁盤路徑", + "displayName": "顯示名稱", "dl2Local": "下載 {fileName} 到本地?", "dockerEditHost": "編輯 DOCKER_HOST", "dockerEmptyRunningItems": "沒有正在運行的容器。\n這可能是因為環境變量 DOCKER_HOST 沒有被正確讀取。你可以通過在終端內運行 `echo $DOCKER_HOST` 來獲取。", @@ -117,6 +118,7 @@ "license": "開源證書", "light": "亮", "loadingFiles": "正在加載目錄。。。", + "location": "位置", "log": "日誌", "loss": "丟包率", "madeWithLove": "用❤️製作 by {myGithub}", @@ -126,7 +128,6 @@ "maxRetryCountEqual0": "會無限重試", "min": "最小", "mission": "任務", - "moveOutServerFuncBtns": "服務器功能按鈕位置", "moveOutServerFuncBtnsHelp": "開啟:可以在服務器 Tab 頁的每個卡片下方顯示。關閉:在服務器詳情頁頂部顯示。", "ms": "毫秒", "name": "名稱", @@ -185,6 +186,7 @@ "sequence": "順序", "server": "服務器", "serverDetailOrder": "詳情頁部件順序", + "serverFuncBtns": "服務器功能按鈕", "serverOrder": "服務器順序", "serverTabConnecting": "連接中...", "serverTabEmpty": "現在沒有服務器。\n點擊右下方按鈕來新增。", diff --git a/lib/view/page/setting/entry.dart b/lib/view/page/setting/entry.dart index faed7e00..d6bb1066 100644 --- a/lib/view/page/setting/entry.dart +++ b/lib/view/page/setting/entry.dart @@ -927,10 +927,20 @@ class _SettingPageState extends State { } Widget _buildMoveOutServerFuncBtns() { - return ListTile( - title: Text(l10n.moveOutServerFuncBtns), - subtitle: Text(l10n.moveOutServerFuncBtnsHelp, style: UIs.textSize13Grey), - trailing: StoreSwitch(prop: _setting.moveOutServerTabFuncBtns), + return ExpandTile( + title: Text(l10n.serverFuncBtns), + children: [ + ListTile( + title: Text(l10n.location), + subtitle: + Text(l10n.moveOutServerFuncBtnsHelp, style: UIs.textSize13Grey), + trailing: StoreSwitch(prop: _setting.moveOutServerTabFuncBtns), + ), + ListTile( + title: Text(l10n.displayName), + trailing: StoreSwitch(prop: _setting.serverFuncBtnsDisplayName), + ), + ], ); } diff --git a/lib/view/widget/server_func_btns.dart b/lib/view/widget/server_func_btns.dart index 7ce29a1c..25733d0a 100644 --- a/lib/view/widget/server_func_btns.dart +++ b/lib/view/widget/server_func_btns.dart @@ -13,6 +13,7 @@ import 'package:toolbox/data/model/pkg/manager.dart'; import 'package:toolbox/data/model/server/dist.dart'; import 'package:toolbox/data/res/path.dart'; import 'package:toolbox/data/res/provider.dart'; +import 'package:toolbox/data/res/store.dart'; import '../../core/route.dart'; import '../../core/utils/server.dart'; @@ -64,15 +65,50 @@ class ServerFuncBtns extends StatelessWidget { @override Widget build(BuildContext context) { + // return Row( + // mainAxisAlignment: MainAxisAlignment.spaceAround, + // children: ServerTabMenuType.values + // .map( + // (e) => Stores.setting.serverFuncBtnsDisplayName.fetch() + // ? Column( + // mainAxisSize: MainAxisSize.min, + // children: [ + // IconButton( + // onPressed: () => _onTapMoreBtns(e, spi, context), + // padding: EdgeInsets.zero, + // tooltip: e.name, + // icon: Icon(e.icon, size: iconSize ?? 15), + // ), + // Text(e.toStr, style: UIs.textSize9Grey) + // ], + // ) + // : IconButton( + // onPressed: () => _onTapMoreBtns(e, spi, context), + // padding: EdgeInsets.zero, + // tooltip: e.name, + // icon: Icon(e.icon, size: iconSize ?? 15), + // ), + // ) + // .toList(), + // ); return Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: ServerTabMenuType.values - .map((e) => IconButton( - onPressed: () => _onTapMoreBtns(e, spi, context), - padding: EdgeInsets.zero, - tooltip: e.name, - icon: Icon(e.icon, size: iconSize ?? 15), - )) + .map( + (e) => IconButton( + onPressed: () => _onTapMoreBtns(e, spi, context), + padding: EdgeInsets.zero, + tooltip: e.name, + icon: Stores.setting.serverFuncBtnsDisplayName.fetch() + ? Column( + children: [ + Icon(e.icon, size: iconSize ?? 15), + Text(e.toStr, style: const TextStyle(fontSize: 7, color: Colors.grey)) + ], + ) + : Icon(e.icon, size: iconSize ?? 15), + ), + ) .toList(), ); }