Implemented "cancel download" button.

Requires PR #165 to be merged in quickemu.
This commit is contained in:
Yannick Mauray 2021-10-27 23:58:20 +02:00
parent 035efc5e32
commit b537c74b21
No known key found for this signature in database
GPG Key ID: 67C4AAC5E99CB909
2 changed files with 11 additions and 1 deletions

View File

@ -33,6 +33,7 @@ class _DownloaderState extends State<Downloader> {
late final Stream<double> _progressStream;
bool _downloadFinished = false;
var controller = StreamController<double>();
Process? _process;
@override
void initState() {
@ -83,6 +84,10 @@ class _DownloaderState extends State<Downloader> {
_downloadFinished = true;
});
});
setState(() {
_process = process;
});
});
return controller.stream;
}
@ -125,6 +130,9 @@ class _DownloaderState extends State<Downloader> {
),
),
CancelDismissButton(
onCancel: () {
_process?.kill();
},
downloadFinished: _downloadFinished,
),
],

View File

@ -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();
},