Module: deluge
Branch: plugins-namespace
Commit: f28248780647032af66713ede92ec697042a2558

Author: Damien Churchill <[email protected]>
Date:   Sun Dec 12 00:02:41 2010 +0000

fix bug #1355

---

 deluge/ui/web/js/deluge-all/Deluge.js      |    2 +-
 deluge/ui/web/js/deluge-all/TorrentGrid.js |    9 ++++++++-
 deluge/ui/web/js/deluge-all/UI.js          |    9 ++++++++-
 3 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/deluge/ui/web/js/deluge-all/Deluge.js 
b/deluge/ui/web/js/deluge-all/Deluge.js
index de82dd7..382b611 100644
--- a/deluge/ui/web/js/deluge-all/Deluge.js
+++ b/deluge/ui/web/js/deluge-all/Deluge.js
@@ -46,7 +46,7 @@ Ext.apply(Ext, {
                return true;
        },
 
-       isObjectsEqual: function(obj1, obj2) {
+       areObjectsEqual: function(obj1, obj2) {
                var equal = true;
                if (!obj1 || !obj2) return false;
                for (var i in obj1) {
diff --git a/deluge/ui/web/js/deluge-all/TorrentGrid.js 
b/deluge/ui/web/js/deluge-all/TorrentGrid.js
index 04a0204..0455113 100644
--- a/deluge/ui/web/js/deluge-all/TorrentGrid.js
+++ b/deluge/ui/web/js/deluge-all/TorrentGrid.js
@@ -284,8 +284,15 @@
                return ids;
        },
 
-       update: function(torrents) {
+       update: function(torrents, wipe) {
                var store = this.getStore();
+
+               // Need to perform a complete reload of the torrent grid.
+               if (wipe) {
+                       store.removeAll();
+                       this.torrents = {};
+               }
+
                var newTorrents = [];
 
                // Update and add any new torrents.
diff --git a/deluge/ui/web/js/deluge-all/UI.js 
b/deluge/ui/web/js/deluge-all/UI.js
index e8e86a5..4a1b962 100644
--- a/deluge/ui/web/js/deluge-all/UI.js
+++ b/deluge/ui/web/js/deluge-all/UI.js
@@ -114,6 +114,9 @@ deluge.ui = {
 
        update: function() {
                var filters = deluge.sidebar.getFilterStates();
+               this.oldFilters = this.filters;
+               this.filters = filters;
+
                deluge.client.web.update_ui(Deluge.Keys.Grid, filters, {
                        success: this.onUpdate,
                        failure: this.onUpdateError,
@@ -170,7 +173,11 @@ deluge.ui = {
                                ' (Down: ' + 
fspeed(data['stats'].download_rate, true) + 
                                ' Up: ' + fspeed(data['stats'].upload_rate, 
true) + ')';
                }
-               deluge.torrents.update(data['torrents']);
+               if (Ext.areObjectsEqual(this.filters, this.oldFilters)) {
+                       deluge.torrents.update(data['torrents']);
+               } else {
+                       deluge.torrents.update(data['torrents'], true);
+               }
                deluge.statusbar.update(data['stats']);
                deluge.sidebar.update(data['filters']);
                this.errorCount = 0;

-- 
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