From b537c74b21606345819daa61290c80b09558e33a Mon Sep 17 00:00:00 2001 From: Yannick Mauray Date: Wed, 27 Oct 2021 23:58:20 +0200 Subject: [PATCH] Implemented "cancel download" button. Requires PR #165 to be merged in quickemu. --- lib/src/pages/downloader.dart | 8 ++++++++ lib/src/widgets/downloader/cancel_dismiss_button.dart | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/src/pages/downloader.dart b/lib/src/pages/downloader.dart index f1f332f..154801c 100644 --- a/lib/src/pages/downloader.dart +++ b/lib/src/pages/downloader.dart @@ -33,6 +33,7 @@ class _DownloaderState extends State { late final Stream _progressStream; bool _downloadFinished = false; var controller = StreamController(); + Process? _process; @override void initState() { @@ -83,6 +84,10 @@ class _DownloaderState extends State { _downloadFinished = true; }); }); + + setState(() { + _process = process; + }); }); return controller.stream; } @@ -125,6 +130,9 @@ class _DownloaderState extends State { ), ), CancelDismissButton( + onCancel: () { + _process?.kill(); + }, downloadFinished: _downloadFinished, ), ], diff --git a/lib/src/widgets/downloader/cancel_dismiss_button.dart b/lib/src/widgets/downloader/cancel_dismiss_button.dart index c542512..1fb5ada 100644 --- a/lib/src/widgets/downloader/cancel_dismiss_button.dart +++ b/lib/src/widgets/downloader/cancel_dismiss_button.dart @@ -4,9 +4,11 @@ class CancelDismissButton extends StatelessWidget { const CancelDismissButton({ Key? key, required this.downloadFinished, + required this.onCancel, }) : super(key: key); final bool downloadFinished; + final VoidCallback onCancel; @override Widget build(BuildContext context) { @@ -17,7 +19,7 @@ class CancelDismissButton extends StatelessWidget { children: [ ElevatedButton( onPressed: !downloadFinished - ? null + ? onCancel : () { Navigator.of(context).pop(); },