diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index d039bc291..d2f157c78 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -1184,24 +1184,21 @@ class CommandDispatcher: Args: dest: The file path to write the download to. """ - tab_id = self._current_widget().tab_id + web_view = self._current_widget() if dest is None: suggested_fn = self._current_title() + ".mht" suggested_fn = utils.sanitize_filename(suggested_fn) filename, q = downloads.ask_for_filename( - suggested_fn, self._win_id, parent=self, + suggested_fn, self._win_id, parent=web_view, ) if filename is not None: - mhtml.start_download_checked(filename, win_id=self._win_id, - tab_id=tab_id) + mhtml.start_download_checked(filename, web_view=web_view) else: q.answered.connect(functools.partial( - mhtml.start_download_checked, win_id=self._win_id, - tab_id=tab_id)) + mhtml.start_download_checked, web_view=web_view)) q.ask() else: - mhtml.start_download_checked(dest, win_id=self._win_id, - tab_id=tab_id) + mhtml.start_download_checked(dest, web_view=web_view) @cmdutils.register(instance='command-dispatcher', scope='window', deprecated="Use :download instead.") diff --git a/qutebrowser/browser/downloads.py b/qutebrowser/browser/downloads.py index 8e88f0826..7d2202301 100644 --- a/qutebrowser/browser/downloads.py +++ b/qutebrowser/browser/downloads.py @@ -139,7 +139,7 @@ def ask_for_filename(suggested_filename, win_id, *, parent=None, 'prompt-download-directory') if not prompt_download_directory: - return DownloadPath(download_dir(), None) + return DownloadPath(filename=download_dir(), question=None) encoding = sys.getfilesystemencoding() suggested_filename = utils.force_encoding(suggested_filename, @@ -154,7 +154,7 @@ def ask_for_filename(suggested_filename, win_id, *, parent=None, message_bridge = objreg.get('message-bridge', scope='window', window=win_id) q.ask = lambda: message_bridge.ask(q, blocking=False) - return DownloadPath(None, q) + return DownloadPath(filename=None, question=q) class DownloadItemStats(QObject): diff --git a/qutebrowser/browser/mhtml.py b/qutebrowser/browser/mhtml.py index 066686614..a202b5639 100644 --- a/qutebrowser/browser/mhtml.py +++ b/qutebrowser/browser/mhtml.py @@ -146,7 +146,7 @@ E_BASE64 = email.encoders.encode_base64 E_QUOPRI = email.encoders.encode_quopri -class MHTMLWriter(): +class MHTMLWriter: """A class for outputting multiple files to a MHTML document. @@ -217,7 +217,7 @@ class MHTMLWriter(): return msg -class _Downloader(): +class _Downloader: """A class to download whole websites. @@ -227,20 +227,21 @@ class _Downloader(): writer: The MHTMLWriter object which is used to save the page. loaded_urls: A set of QUrls of finished asset downloads. pending_downloads: A set of unfinished (url, DownloadItem) tuples. - _finished: A flag indicating if the file has already been written. + _finished_file: A flag indicating if the file has already been + written. _used: A flag indicating if the downloader has already been used. _win_id: The window this downloader belongs to. """ - def __init__(self, web_view, dest, win_id): + def __init__(self, web_view, dest): self.web_view = web_view self.dest = dest self.writer = None self.loaded_urls = {web_view.url()} self.pending_downloads = set() - self._finished = False + self._finished_file = False self._used = False - self._win_id = win_id + self._win_id = web_view.win_id def run(self): """Download and save the page. @@ -280,31 +281,36 @@ class _Downloader(): # Might be a local