diff --git a/deluge/ui/web/icons/expand_all.png b/deluge/ui/web/icons/expand_all.png new file mode 100644 index 000000000..37f4ef9b5 Binary files /dev/null and b/deluge/ui/web/icons/expand_all.png differ diff --git a/deluge/ui/web/js/deluge-details.js b/deluge/ui/web/js/deluge-details.js index ef67cbe3d..142484291 100644 --- a/deluge/ui/web/js/deluge-details.js +++ b/deluge/ui/web/js/deluge-details.js @@ -207,6 +207,12 @@ Deluge.Details.Files = { }); }, + onContextMenu: function(node, e) { + e.stopEvent(); + node.select(); + Deluge.Menus.FilePriorities.showAt(e.getPoint()); + }, + onRequestComplete: function(files, torrentId) { if (this.torrentId != torrentId) { this.clear(); @@ -390,7 +396,16 @@ Deluge.Details.Panel = new Ext.TabPanel({ root: new Ext.tree.TreeNode({ text: 'Files' }), - listeners: {'render': {fn: Deluge.Details.Files.onRender, scope: Deluge.Details.Files}} + listeners: { + 'render': { + fn: Deluge.Details.Files.onRender, + scope: Deluge.Details.Files + }, + 'contextmenu': { + fn: Deluge.Details.Files.onContextMenu, + scope: Deluge.Details.Files + } + } }), new Ext.grid.GridPanel({ id: 'peers', title: _('Peers'), diff --git a/deluge/ui/web/js/deluge-menus.js b/deluge/ui/web/js/deluge-menus.js index 1c84c8dbd..007d064db 100644 --- a/deluge/ui/web/js/deluge-menus.js +++ b/deluge/ui/web/js/deluge-menus.js @@ -374,6 +374,31 @@ Deluge.Menus.Upload = new Ext.menu.Menu({ }] }); +Deluge.Menus.FilePriorities = new Ext.menu.Menu({ + id: 'filePrioritiesMenu', + items: [{ + id: 'expandAll', + text: _('Expand All'), + icon: '/icons/expand_all.png' + }, '-', { + id: 'no_download', + text: _('Do Not Download'), + icon: '/icons/no_download.png' + }, { + id: 'normal', + text: _('Normal Priority'), + icon: '/icons/normal.png' + }, { + id: 'high', + text: _('High Priority'), + icon: '/icons/high.png' + }, { + id: 'highest', + text: _('Highest Priority'), + icon: '/icons/highest.png' + }] +}); + function onLimitChanged(item, checked) { if (item.id == "other") { } else {