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.

Reply via email to