Module: deluge Branch: master Commit: 28a313e74e5ca813d89096ba3fb6615b72a6708b
Author: Damien Churchill <[email protected]> Date: Wed Apr 28 15:43:06 2010 +0100 fix up the label plugin making it more stable and work with the new filter panel api --- deluge/plugins/label/label/data/label.js | 38 ++++++++++++++++++----------- 1 files changed, 23 insertions(+), 15 deletions(-) diff --git a/deluge/plugins/label/label/data/label.js b/deluge/plugins/label/label/data/label.js index b897cbf..827053a 100644 --- a/deluge/plugins/label/label/data/label.js +++ b/deluge/plugins/label/label/data/label.js @@ -334,15 +334,15 @@ Deluge.plugins.LabelPlugin = Ext.extend(Deluge.Plugin, { }, updateTorrentMenu: function(filter) { - Ext.each(filter.getStates(), function(state) { - if (!state) return; + for (var state in filter.getStates()) { + if (!state) continue; this.torrentMenu.addMenuItem({ text: state, label: state, handler: this.onTorrentMenuClick, scope: this }); - }, this); + } }, onDisable: function() { @@ -355,17 +355,6 @@ Deluge.plugins.LabelPlugin = Ext.extend(Deluge.Plugin, { }, onEnable: function() { - if (deluge.sidebar.hasFilter('label')) { - var filter = deluge.sidebar.getFilter('label'); - this.setFilter(filter); - this.updateTorrentMenu(filter); - } else { - deluge.sidebar.on('filtercreate', this.onFilterCreate, this); - deluge.sidebar.on('afterfiltercreate', this.onAfterFilterCreate, this); - Deluge.FilterPanel.templates.label = '<div class="x-deluge-filter x-deluge-{filter:lowercase}"><tpl if="filter">{filter}</tpl><tpl if="!filter">no label</tpl> ({count})</div>'; - } - this.registerTorrentStatus('label', _('Label')); - this.torrentMenu = new Ext.menu.Menu({ items: [{ text: _('No Label'), @@ -382,7 +371,26 @@ Deluge.plugins.LabelPlugin = Ext.extend(Deluge.Plugin, { this.tm = deluge.menus.torrent.add({ text: _('Label'), menu: this.torrentMenu - }) + }); + + var lbltpl = '<div class="x-deluge-filter">' + + '<tpl if="filter">{filter}</tpl>' + + '<tpl if="!filter">no label</tpl>' + + ' ({count})' + + '</div>'; + + if (deluge.sidebar.hasFilter('label')) { + var filter = deluge.sidebar.getFilter('label'); + filter.list.columns[0].tpl = new Ext.XTemplate(lbltpl); + this.setFilter(filter); + this.updateTorrentMenu(filter); + filter.list.refresh(); + } else { + deluge.sidebar.on('filtercreate', this.onFilterCreate, this); + deluge.sidebar.on('afterfiltercreate', this.onAfterFilterCreate, this); + Deluge.FilterPanel.templates.label = lbltpl; + } + this.registerTorrentStatus('label', _('Label')); }, onAfterFilterCreate: function(sidebar, filter) { -- You received this message because you are subscribed to the Google Groups "deluge-commit" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/deluge-commit?hl=en.
