bind globally instead of to each individual file
this brings us from 35 down to 8 function calls per file initalization
This commit is contained in:
parent
8c9fb12e82
commit
231110f747
|
@ -663,6 +663,7 @@ TorrentFile.prototype = {
|
||||||
this.readAttributes(file_data);
|
this.readAttributes(file_data);
|
||||||
|
|
||||||
var li = document.createElement('li');
|
var li = document.createElement('li');
|
||||||
|
li.id = 't' + this._torrent.id() + 'f' + this._index;
|
||||||
li.classNameConst = 'inspector_torrent_file_list_entry ' + ((this._index%2)?'odd':'even');
|
li.classNameConst = 'inspector_torrent_file_list_entry ' + ((this._index%2)?'odd':'even');
|
||||||
li.className = li.classNameConst;
|
li.className = li.classNameConst;
|
||||||
|
|
||||||
|
@ -688,9 +689,6 @@ TorrentFile.prototype = {
|
||||||
this._element = li;
|
this._element = li;
|
||||||
this._priority_control = pri_div;
|
this._priority_control = pri_div;
|
||||||
this._progress = $(prog_div);
|
this._progress = $(prog_div);
|
||||||
|
|
||||||
$(wanted_div).bind('click', { file: this }, this.fileWantedControlClicked);
|
|
||||||
$(pri_div).bind('click', { file: this }, this.filePriorityControlClicked);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
update: function(file_data) {
|
update: function(file_data) {
|
||||||
|
@ -803,21 +801,20 @@ TorrentFile.prototype = {
|
||||||
},
|
},
|
||||||
|
|
||||||
fileWantedControlClicked: function(event) {
|
fileWantedControlClicked: function(event) {
|
||||||
event.data.file.toggleWanted();
|
this.toggleWanted();
|
||||||
},
|
},
|
||||||
|
|
||||||
filePriorityControlClicked: function(event) {
|
filePriorityControlClicked: function(event, element) {
|
||||||
var x = event.pageX;
|
var x = event.pageX;
|
||||||
var target = this;
|
while (element !== null) {
|
||||||
while (target !== null) {
|
x = x - element.offsetLeft;
|
||||||
x = x - target.offsetLeft;
|
element = element.offsetParent;
|
||||||
target = target.offsetParent;
|
|
||||||
}
|
}
|
||||||
var file = event.data.file
|
|
||||||
var prio;
|
var prio;
|
||||||
if( x < 12 ) prio = -1;
|
if( x < 12 ) prio = -1;
|
||||||
else if( x < 23 ) prio = 0;
|
else if( x < 23 ) prio = 0;
|
||||||
else prio = 1;
|
else prio = 1;
|
||||||
file.setPriority( prio );
|
this.setPriority( prio );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -58,6 +58,8 @@ Transmission.prototype =
|
||||||
$('#prefs_save_button').bind('click', function(e) { tr.savePrefsClicked(e); return false;});
|
$('#prefs_save_button').bind('click', function(e) { tr.savePrefsClicked(e); return false;});
|
||||||
$('#prefs_cancel_button').bind('click', function(e){ tr.cancelPrefsClicked(e); return false; });
|
$('#prefs_cancel_button').bind('click', function(e){ tr.cancelPrefsClicked(e); return false; });
|
||||||
$('.inspector_tab').bind('click', function(e){ tr.inspectorTabClicked(e, this); });
|
$('.inspector_tab').bind('click', function(e){ tr.inspectorTabClicked(e, this); });
|
||||||
|
$('.file_wanted_control').live('click', function(e){ tr.fileWantedClicked(e, this); });
|
||||||
|
$('.file_priority_control').live('click', function(e){ tr.filePriorityClicked(e, this); });
|
||||||
if (iPhone) {
|
if (iPhone) {
|
||||||
$('#torrent_inspector').bind('click', function(e){ tr.hideInspector(); });
|
$('#torrent_inspector').bind('click', function(e){ tr.hideInspector(); });
|
||||||
$('#preferences_link').bind('click', function(e){ tr.releaseClutchPreferencesButton(e); });
|
$('#preferences_link').bind('click', function(e){ tr.releaseClutchPreferencesButton(e); });
|
||||||
|
@ -649,6 +651,22 @@ Transmission.prototype =
|
||||||
this.updateVisibleFileLists();
|
this.updateVisibleFileLists();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
fileWantedClicked: function(event, element){
|
||||||
|
this.extractFileFromElement(element).fileWantedControlClicked(event);
|
||||||
|
},
|
||||||
|
|
||||||
|
filePriorityClicked: function(event, element){
|
||||||
|
this.extractFileFromElement(element).filePriorityControlClicked(event, element);
|
||||||
|
},
|
||||||
|
|
||||||
|
extractFileFromElement: function(element) {
|
||||||
|
var match = $(element).closest('.inspector_torrent_file_list_entry').attr('id').match(/^t(\d+)f(\d+)$/);
|
||||||
|
var torrent_id = match[1];
|
||||||
|
var file_id = match[2];
|
||||||
|
var torrent = Torrent.lookup( this._torrents, torrent_id );
|
||||||
|
return torrent._file_view[file_id];
|
||||||
|
},
|
||||||
|
|
||||||
toggleFilterClicked: function(event) {
|
toggleFilterClicked: function(event) {
|
||||||
if (this.isButtonEnabled(event))
|
if (this.isButtonEnabled(event))
|
||||||
this.toggleFilter();
|
this.toggleFilter();
|
||||||
|
|
Loading…
Reference in New Issue