From 4ff1140bf66e5dab610147ed2e7ee9b5402956a0 Mon Sep 17 00:00:00 2001 From: pkuislm <69719051+pkuislm@users.noreply.github.com> Date: Tue, 12 Nov 2024 21:28:07 +0800 Subject: [PATCH] Add cancellation to ehviewer import. --- lib/pages/home_page.dart | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index 427c709..6d36958 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -640,7 +640,9 @@ class _ImportComicsWidgetState extends State<_ImportComicsWidget> { if (dbFile == null || comicSrc == null) { return; } - var controller = showLoadingDialog(context, allowCancel: false); + + bool cancelled = false; + var controller = showLoadingDialog(context, onCancel: () { cancelled = true; }); try { var cache = FilePath.join(App.cachePath, dbFile.name); @@ -649,6 +651,9 @@ class _ImportComicsWidgetState extends State<_ImportComicsWidget> { Future addTagComics(String destFolder, List comics) async { for(var comic in comics) { + if(cancelled) { + return; + } var comicDir = Directory(FilePath.join(comicSrc.path, comic['DIRNAME'] as String)); if(!(await comicDir.exists())) { continue; @@ -731,6 +736,9 @@ class _ImportComicsWidgetState extends State<_ImportComicsWidget> { """); for (var folder in folders) { + if(cancelled) { + break; + } var label = folder["LABEL"] as String; var folderName = '(EhViewer)$label'; if(!LocalFavoritesManager().existsFolder(folderName)) {