More command actions on downloads.

This commit is contained in:
Joel Torstensson 2015-02-08 22:03:29 +01:00
parent 31e71ed6d9
commit 6f89ab628b
2 changed files with 18 additions and 5 deletions

View File

@ -745,20 +745,31 @@ class DownloadManager(QAbstractListModel):
return download return download
@cmdutils.register(instance='download-manager', scope='window') @cmdutils.register(instance='download-manager', scope='window')
def cancel_download(self, count: {'special': 'count'}=1): def download_cancel(self, count: {'special': 'count'}=0):
"""Cancel the first/[count]th download. """Cancel the last/[count]th download.
Args: Args:
count: The index of the download to cancel. count: The index of the download to cancel.
""" """
if count == 0:
return
try: try:
download = self.downloads[count - 1] download = self.downloads[count - 1]
except IndexError: except IndexError:
raise cmdexc.CommandError("There's no download {}!".format(count)) raise cmdexc.CommandError("There's no download {}!".format(count))
download.cancel() download.cancel()
@cmdutils.register(instance='download-manager', scope='window')
def download_open(self, count: {'special': 'count'}=0):
"""Open the last/[count]th download.
Args:
count: The index of the download to cancel.
"""
try:
download = self.downloads[count - 1]
except IndexError:
raise cmdexc.CommandError("There's no download {}!".format(count))
download.open_file()
@pyqtSlot(QNetworkRequest, QNetworkReply) @pyqtSlot(QNetworkRequest, QNetworkReply)
def on_redirect(self, download, request, reply): def on_redirect(self, download, request, reply):
"""Handle a HTTP redirect of a download. """Handle a HTTP redirect of a download.
@ -820,6 +831,8 @@ class DownloadManager(QAbstractListModel):
else: else:
return False return False
@cmdutils.register(instance='download-manager', name='downloads-clear',
scope='window')
def clear(self): def clear(self):
"""Remove all finished downloads.""" """Remove all finished downloads."""
self.remove_items(d for d in self.downloads if d.done) self.remove_items(d for d in self.downloads if d.done)

View File

@ -1029,7 +1029,7 @@ KEY_DATA = collections.OrderedDict([
('navigate decrement', ['<Ctrl-X>']), ('navigate decrement', ['<Ctrl-X>']),
('inspector', ['wi']), ('inspector', ['wi']),
('download-page', ['gd']), ('download-page', ['gd']),
('cancel-download', ['ad']), ('download-cancel', ['ad']),
('view-source', ['gf']), ('view-source', ['gf']),
('tab-focus last', ['<Ctrl-Tab>']), ('tab-focus last', ['<Ctrl-Tab>']),
('enter-mode passthrough', ['<Ctrl-V>']), ('enter-mode passthrough', ['<Ctrl-V>']),