Changeset 12807


Ignore:
Timestamp:
Aug 30, 2011, 9:40:18 PM (10 years ago)
Author:
jordan
Message:

(trunk web) decouple the inspector's dataChanged listener from the torrent list's dataChanged listener.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/web/javascript/transmission.js

    r12806 r12807  
    445445        selectionChanged: function()
    446446        {
    447                 if (this.inspectorIsVisible())
    448                         this.refreshInspectorTorrents();
    449 
    450447                this.updateButtonStates();
    451                 this.updateInspector();
     448                this.inspectorSelectionChanged();
    452449
    453450                clearTimeout(this.selectionChangedTimer);
    454451                delete this.selectionChangedTimer;
     452
    455453        },
    456454
     
    10151013                this.refilterSoon();
    10161014                this.updateButtonsSoon();
    1017        
    1018                 // if this torrent is in the inspector, refresh the inspector
    1019                 if (this.getSelectedTorrentIds().indexOf(id) !== -1)
    1020                         this.updateInspector();
    10211015        },
    10221016
     
    18311825        },
    18321826
     1827        inspectorSelectionChanged: function()
     1828        {
     1829                var i;
     1830
     1831                // if the inspector's hidden, don't create new ones
     1832                if (this.inspectorIsVisible())
     1833                {
     1834                        // update the inspector when a selected torrent's data changes.
     1835                        $(this.getAllTorrents()).unbind('dataChanged.inspector');
     1836                        $(this.getSelectedTorrents()).bind('dataChanged.inspector', $.proxy(this.updateInspector,this));
     1837
     1838                        // periodically ask for updates to the inspector's torrents
     1839                        i = this._inspector;
     1840                        clearInterval(i.refreshInterval);
     1841                        i.refreshInterval = setInterval($.proxy(this.refreshInspectorTorrents,this), 2000);
     1842                        this.refreshInspectorTorrents();
     1843
     1844                        // refresh the inspector's UI
     1845                        this.updateInspector();
     1846                }
     1847        },
     1848
    18331849        toggleInspector: function()
    18341850        {
     
    18371853        setInspectorVisible: function(visible)
    18381854        {
    1839                 // we collect extra stats on torrents when they're in the inspector...
    1840                 clearInterval(this._periodic_inspector_refresh);
    1841                 delete this._periodic_inspector_refresh;
    1842                 if (visible) {
    1843                         var tr = this;
    1844                         this._periodic_inspector_refresh = setInterval(function() {tr.refreshInspectorTorrents();},2000);
    1845                         this.refreshInspectorTorrents();
    1846                 }
    1847 
    18481855                // update the ui widgetry
    18491856                $('#torrent_inspector').toggle(visible);
     
    18561863                        $('#torrent_container')[0].style.right = w;
    18571864                }
    1858 
    18591865                setInnerHTML($('ul li#context_toggle_inspector')[0], (visible?'Hide':'Show')+' Inspector');
    1860                 this.updateInspector();
     1866
     1867                this.inspectorSelectionChanged();
    18611868        },
    18621869
Note: See TracChangeset for help on using the changeset viewer.