*****
****/
-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);
},
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 = [];
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);
}
// sync gui
this.updateStatusbar();
this.refreshFilterButton();
- if (Object.keys(sel).length !== this.getSelectedRows().length)
+ if (old_sel_count !== $(list).children('.selected').length)
this.selectionChanged();
},