From 643d2cc6dd5c1b527c261227d272b1c67b834109 Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Sun, 8 May 2016 03:17:30 +0200 Subject: [PATCH] fix confirm-quit=downloads with finished downloads Issue #846 .rowCount() returns all downloads, even the finished ones that have not yet been removed from the list. For confirming the quit event, we should only consider downloads that are still running. --- qutebrowser/browser/downloads.py | 8 ++++++++ qutebrowser/mainwindow/mainwindow.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/qutebrowser/browser/downloads.py b/qutebrowser/browser/downloads.py index 6cbeff434..6ac4cabb2 100644 --- a/qutebrowser/browser/downloads.py +++ b/qutebrowser/browser/downloads.py @@ -1238,3 +1238,11 @@ class DownloadManager(QAbstractListModel): # We don't have children return 0 return len(self.downloads) + + def running_downloads(self): + """Return the amount of still running downloads. + + Return: + The number of unfinished downloads. + """ + return len([1 for download in self.downloads if not download.done]) diff --git a/qutebrowser/mainwindow/mainwindow.py b/qutebrowser/mainwindow/mainwindow.py index d93e672b4..533280b40 100644 --- a/qutebrowser/mainwindow/mainwindow.py +++ b/qutebrowser/mainwindow/mainwindow.py @@ -413,7 +413,7 @@ class MainWindow(QWidget): tab_count = self.tabbed_browser.count() download_manager = objreg.get('download-manager', scope='window', window=self.win_id) - download_count = download_manager.rowCount() + download_count = download_manager.running_downloads() quit_texts = [] # Ask if multiple-tabs are open if 'multiple-tabs' in confirm_quit and tab_count > 1: