diff --git a/lib/ui/home/game_doctor/game_doctor_ui.dart b/lib/ui/home/game_doctor/game_doctor_ui.dart index bfaa1fb..a938397 100644 --- a/lib/ui/home/game_doctor/game_doctor_ui.dart +++ b/lib/ui/home/game_doctor/game_doctor_ui.dart @@ -12,6 +12,31 @@ class GameDoctorUI extends BaseUI { children: [ Column( children: [ + const SizedBox(height: 12), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + for (final item in const { + "rsi_log": "RSI启动器log", + "game_log": "游戏运行log", + }.entries) + Padding( + padding: const EdgeInsets.only(left: 6, right: 6), + child: Button( + child: Padding( + padding: const EdgeInsets.all(4), + child: Row( + children: [ + const Icon(FluentIcons.folder_open), + const SizedBox(width: 6), + Text(item.value), + ], + ), + ), + onPressed: () => model.onTapButton(item.key)), + ), + ], + ), if (model.isChecking) Expanded( child: Center( diff --git a/lib/ui/home/game_doctor/game_doctor_ui_model.dart b/lib/ui/home/game_doctor/game_doctor_ui_model.dart index 52789bc..9bddd39 100644 --- a/lib/ui/home/game_doctor/game_doctor_ui_model.dart +++ b/lib/ui/home/game_doctor/game_doctor_ui_model.dart @@ -239,4 +239,26 @@ class GameDoctorUIModel extends BaseUIModel { return; } } + + onTapButton(String key) async { + switch (key) { + case "rsi_log": + final path = await SCLoggerHelper.getLogFilePath(); + if (path == null) return; + openDir(path); + return; + case "game_log": + if (scInstalledPath == "not_install") { + showToast(context!, "请在首页选择游戏安装目录。"); + return; + } + openDir("$scInstalledPath\\Game.log"); + return; + } + } + + openDir(path) async { + await Process.run( + SystemHelper.powershellPath, ["explorer.exe", "/select,\"$path\""]); + } } diff --git a/lib/ui/tools/tools_ui_model.dart b/lib/ui/tools/tools_ui_model.dart index ea824b9..992c2fe 100644 --- a/lib/ui/tools/tools_ui_model.dart +++ b/lib/ui/tools/tools_ui_model.dart @@ -73,14 +73,6 @@ class ToolsUIModel extends BaseUIModel { const Icon(FluentIcons.admin, size: 28), onTap: _adminRSILauncher, ), - if (scInstalledPath != "") - _ToolsItemData( - "game_log_select", - "游戏 Game.log 查看", - "打开 Game.log 所在文件夹", - const Icon(FontAwesomeIcons.bookBible, size: 28), - onTap: _selectGameLog, - ), ]; isItemLoading = true; items.add(await _addShaderCard()); @@ -109,13 +101,6 @@ class ToolsUIModel extends BaseUIModel { 1024; } catch (_) {} return [ - _ToolsItemData( - "rsilauncher_log_select", - "RSI Launcher Log 查看", - "打开 RSI启动器 Log文件 所在文件夹", - const Icon(FontAwesomeIcons.bookBible, size: 28), - onTap: _selectLog, - ), _ToolsItemData( "rsilauncher_log_fix", "RSI Launcher Log 修复", @@ -309,16 +294,6 @@ class ToolsUIModel extends BaseUIModel { working = false; } - Future _selectGameLog() async { - openDir("$scInstalledPath\\Game.log"); - } - - Future _selectLog() async { - final path = await SCLoggerHelper.getLogFilePath(); - if (path == null) return; - openDir(path); - } - openDir(path) async { await Process.run( SystemHelper.powershellPath, ["explorer.exe", "/select,\"$path\""]);