diff --git a/qutebrowser/browser/downloads.py b/qutebrowser/browser/downloads.py index d05202e82..bcaab81a7 100644 --- a/qutebrowser/browser/downloads.py +++ b/qutebrowser/browser/downloads.py @@ -327,6 +327,10 @@ class AbstractDownloadItem(QObject): remaining=remaining, perc=perc, down=down, total=total, errmsg=errmsg)) + def _do_die(self): + """Do cleanup steps after a download has died.""" + raise NotImplementedError + def _die(self, msg): """Abort the download and emit an error.""" assert not self.successful @@ -350,6 +354,7 @@ class AbstractDownloadItem(QObject): if self._dead: return self._dead = True + self._do_die() self.error_msg = msg self.stats.finish() self.error.emit(msg) diff --git a/qutebrowser/browser/qtnetworkdownloads.py b/qutebrowser/browser/qtnetworkdownloads.py index 9fd7165df..6696a06c6 100644 --- a/qutebrowser/browser/qtnetworkdownloads.py +++ b/qutebrowser/browser/qtnetworkdownloads.py @@ -118,9 +118,8 @@ class DownloadItem(downloads.AbstractDownloadItem): no_action=no_action, cancel_action=no_action, abort_on=[self.cancelled, self.error]) - def _die(self, msg): + def _do_die(self): """Abort the download and emit an error.""" - super()._die(msg) self._read_timer.stop() self._reply.downloadProgress.disconnect() self._reply.finished.disconnect()