]> granicus.if.org Git - transmission/commitdiff
(trunk web) in tr.refilter(), instead of calling the expensive tr.getSelectedRows...
authorJordan Lee <jordan@transmissionbt.com>
Tue, 30 Aug 2011 21:27:30 +0000 (21:27 +0000)
committerJordan Lee <jordan@transmissionbt.com>
Tue, 30 Aug 2011 21:27:30 +0000 (21:27 +0000)
web/javascript/torrent-row.js
web/javascript/transmission.js

index 3acedfb00f9754752601242260454930c6c48c6f..b5e1d0ab285cfae1441ffa8e4e5b769e4b0c3239 100644 (file)
@@ -345,18 +345,16 @@ TorrentRendererCompact.prototype =
 *****
 ****/
 
-function TorrentRow(view, controller, torrent, selected)
+function TorrentRow(view, controller, torrent)
 {
-       this.initialize(view, controller, torrent, selected);
+       this.initialize(view, controller, torrent);
 }
 TorrentRow.prototype =
 {
-       initialize: function(view, controller, torrent, selected) {
+       initialize: function(view, controller, torrent) {
                this._view = view;
                this._element = view.createRow();
                this.setTorrent(controller, torrent);
-               if (selected)
-                       this.setSelected(selected);
                this.render(controller);
 
        },
index 0b2f49e2ebd35373c901057ca695a01717e06069..147ac169c2264683ba551673e8be8d17e20c9cab 100644 (file)
@@ -1949,24 +1949,20 @@ Transmission.prototype =
 
        refilter: function(rebuildEverything)
        {
-               var i, e, id, t, row, tmp, sel, rows, clean_rows, dirty_rows,
+               var i, e, id, t, row, tmp, rows, clean_rows, dirty_rows,
                    sort_mode = this[Prefs._SortMethod],
                    sort_direction = this[Prefs._SortDirection],
                    filter_mode = this[Prefs._FilterMode],
                    filter_text = this.filterText,
                    filter_tracker = this.filterTracker,
                    renderer = this.torrentRenderer,
-                   list = this._torrent_list;
+                   list = this._torrent_list,
+                   old_sel_count = $(list).children('.selected').length;
+
 
                clearTimeout(this.refilterTimer);
                delete this.refilterTimer;
 
-               // build a temporary lookup table of selected torrent ids
-               sel = { };
-               for (i=0; row=this._rows[i]; ++i)
-                       if (row.isSelected())
-                               sel[row.getTorrentId()] = row;
-
                if (rebuildEverything) {
                        $(list).empty();
                        this._rows = [];
@@ -2007,8 +2003,7 @@ Transmission.prototype =
                for (id in this.dirtyTorrents) {
                        t = this._torrents[id];
                        if (t && t.test(filter_mode, filter_text, filter_tracker)) {
-                               var s = t.getId() in sel;
-                               row = new TorrentRow(renderer, this, t, s);
+                               row = new TorrentRow(renderer, this, t);
                                row.getElement().row = row;
                                dirty_rows.push(row);
                        }
@@ -2063,7 +2058,7 @@ Transmission.prototype =
                // sync gui
                this.updateStatusbar();
                this.refreshFilterButton();
-               if (Object.keys(sel).length !== this.getSelectedRows().length)
+               if (old_sel_count !== $(list).children('.selected').length)
                        this.selectionChanged();
        },