diff --git a/lib/bean/appbar/sys_app_bar.dart b/lib/bean/appbar/sys_app_bar.dart index fbf56eba..c0688718 100644 --- a/lib/bean/appbar/sys_app_bar.dart +++ b/lib/bean/appbar/sys_app_bar.dart @@ -41,73 +41,6 @@ class SysAppBar extends StatelessWidget implements PreferredSizeWidget { this.bottom, this.needTopOffset = true}); - void _handleCloseEvent() { - final setting = GStorage.setting; - final exitBehavior = - setting.get(SettingBoxKey.exitBehavior, defaultValue: 2); - - switch (exitBehavior) { - case 0: - exit(0); - case 1: - KazumiDialog.dismiss(); - windowManager.hide(); - break; - default: - KazumiDialog.show(builder: (context) { - bool saveExitBehavior = false; // 下次不再询问? - - return AlertDialog( - title: const Text('退出确认'), - content: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - const Text('您想要退出 Kazumi 吗?'), - const SizedBox(height: 24), - StatefulBuilder(builder: (context, setState) { - onChanged(value) { - saveExitBehavior = value ?? false; - setState(() {}); - } - - return Wrap( - crossAxisAlignment: WrapCrossAlignment.center, - spacing: 8, - children: [ - Checkbox(value: saveExitBehavior, onChanged: onChanged), - const Text('下次不再询问'), - ], - ); - }), - ], - ), - actions: [ - TextButton( - onPressed: () async { - if (saveExitBehavior) { - await setting.put(SettingBoxKey.exitBehavior, 0); - } - exit(0); - }, - child: const Text('退出 Kazumi')), - TextButton( - onPressed: () async { - if (saveExitBehavior) { - await setting.put(SettingBoxKey.exitBehavior, 1); - } - KazumiDialog.dismiss(); - windowManager.hide(); - }, - child: const Text('最小化至托盘')), - const TextButton( - onPressed: KazumiDialog.dismiss, child: Text('取消')), - ], - ); - }); - } - } - bool showWindowButton() { return GStorage.setting .get(SettingBoxKey.showWindowButton, defaultValue: false); @@ -122,7 +55,7 @@ class SysAppBar extends StatelessWidget implements PreferredSizeWidget { if (Utils.isDesktop()) { // acs.add(IconButton(onPressed: () => windowManager.minimize(), icon: const Icon(Icons.minimize))); if (!showWindowButton()) { - acs.add(CloseButton(onPressed: () => _handleCloseEvent())); + acs.add(CloseButton(onPressed: () => windowManager.close())); } acs.add(const SizedBox(width: 8)); }