From 583d76ca186b02b8bd7f8b60133c31cae740d78f Mon Sep 17 00:00:00 2001 From: Damien Churchill Date: Wed, 1 Apr 2009 21:51:04 +0000 Subject: [PATCH] change it so multiple files can be changed at a time --- deluge/ui/web/js/deluge-details.js | 26 +++++++++++++++++++++----- deluge/ui/web/js/deluge-ext.js | 2 ++ 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/deluge/ui/web/js/deluge-details.js b/deluge/ui/web/js/deluge-details.js index a047f2016..c325a02b2 100644 --- a/deluge/ui/web/js/deluge-details.js +++ b/deluge/ui/web/js/deluge-details.js @@ -210,7 +210,11 @@ Deluge.Details.Files = { onContextMenu: function(node, e) { e.stopEvent(); - node.select(); + var selModel = this.panel.getSelectionModel(); + if (selModel.getSelectedNodes().length < 2) { + selModel.clearSelections(); + node.select(); + } Deluge.Menus.FilePriorities.showAt(e.getPoint()); }, @@ -222,13 +226,24 @@ Deluge.Details.Files = { default: var indexes = new Hash(); function walk(node) { - if (!node.attributes.fileIndex) return; + if (!$defined(node.attributes.fileIndex)) return; indexes[node.attributes.fileIndex] = node.attributes.priority; } this.panel.getRootNode().cascade(walk); - var node = this.panel.getSelectionModel().getSelectedNode(); - indexes[node.attributes.fileIndex] = baseItem.filePriority; + alert(JSON.encode(indexes)); + var nodes = this.panel.getSelectionModel().getSelectedNodes(); + $each(nodes, function(node) { + if (!$defined(node.attributes.fileIndex)) return; + indexes[node.attributes.fileIndex] = baseItem.filePriority; + }); + + alert(JSON.encode(indexes)); + + /*var keys = indexes.getKeys(); + alert(keys); + keys.sort(function(a, b) { return a - b; }); + alert(keys);*/ priorities = new Array(indexes.getLength()); indexes.each(function(priority, index) { @@ -238,7 +253,7 @@ Deluge.Details.Files = { Deluge.Client.core.set_torrent_file_priorities(this.torrentId, priorities, { onSuccess: function() { this.update(this.torrentId); - } + }.bind(this) }); break; } @@ -403,6 +418,7 @@ Deluge.Details.Panel = new Ext.TabPanel({ title: _('Files'), rootVisible: false, autoScroll: true, + selModel: new Ext.tree.MultiSelectionModel(), columns: [{ header: _('Filename'), diff --git a/deluge/ui/web/js/deluge-ext.js b/deluge/ui/web/js/deluge-ext.js index 74d94367b..60e6c2654 100644 --- a/deluge/ui/web/js/deluge-ext.js +++ b/deluge/ui/web/js/deluge-ext.js @@ -89,6 +89,8 @@ Ext.tree.ColumnTreeNode = Ext.extend(Ext.tree.TreeNode, { setColumnValue: function(index, value) { var t = this.getOwnerTree(); var oldValue = this[t.columns[index].dataIndex]; + this[t.columns[index].dataIndex] = value; + this.attributes[[t.columns[index].dataIndex]] = value; if (this.rendered) { this.ui.onColumnValueChange(this, index, value, oldValue); }