tidy up toolbar event handlers

add a client connection check and act accordingly when its disconnected
This commit is contained in:
Damien Churchill 2009-02-19 21:36:35 +00:00
parent eae92d78eb
commit 376b0daa11
3 changed files with 29 additions and 23 deletions

View File

@ -26,6 +26,10 @@ Deluge.ToolBar = {
Deluge.Login.Window.show();
},
onConnectionManagerClick: function(item) {
Deluge.Connections.Window.show();
},
onTorrentAction: function(item) {
var selection = Deluge.Torrents.getSelectionModel().getSelections();
var ids = new Array();
@ -42,36 +46,21 @@ Deluge.ToolBar = {
});
break;
case 'pause':
Deluge.Client.core.pause_torrent(ids, {
onSuccess: function() {
Deluge.Ui.update();
}
});
break;
case 'resume':
Deluge.Client.core.resume_torrent(ids, {
Deluge.Client.core[item.id + '_torrent'](ids, {
onSuccess: function() {
Deluge.Ui.update();
}
});
break;
case 'up':
Deluge.Client.core.queue_up(ids, {
onSuccess: function() {
Deluge.Ui.update();
}
});
break;
case 'down':
Deluge.Client.core.queue_down(ids, {
Deluge.Client.core['queue_' + item.id](ids, {
onSuccess: function() {
Deluge.Ui.update();
}
});
break;
case 'connectionman':
Deluge.Connections.Window.show();
break;
}
},
@ -143,13 +132,16 @@ Deluge.ToolBar.Bar = new Ext.Toolbar({
cls: 'x-btn-text-icon',
text: _('Connection Manager'),
icon: '/icons/16/connection_manager.png',
handler: Deluge.ToolBar.onTorrentAction
handler: Deluge.ToolBar.onConnectionManagerClick,
scope: Deluge.ToolBar
},'->',{
id: 'help',
cls: 'x-btn-text-icon',
disabled: true,
icon: '/icons/16/help.png',
text: _('Help')
text: _('Help'),
handler: Deluge.ToolBar.onHelpClick,
scope: Deluge.ToolBar
},{
id: 'logout',
cls: 'x-btn-text-icon',

View File

@ -29,6 +29,15 @@ Deluge.Ui = {
onSuccess: this.onUpdate.bindWithEvent(this),
onFailure: this.onUpdateError.bindWithEvent(this)
});
Deluge.Client.web.connected({
onSuccess: this.onConnectedCheck.bindWithEvent(this)
});
},
onConnectedCheck: function(connected) {
if (!connected) {
Deluge.Events.fire('disconnect');
}
},
onUpdateError: function(error) {

View File

@ -142,7 +142,8 @@ class JSON(resource.Resource):
"web.add_torrents": self.add_torrents,
"web.login": self.login,
"web.get_hosts": self.get_hosts,
"web.connect": self.connect
"web.connect": self.connect,
"web.connected": self.connected
}
for entry in open(common.get_default_config_dir("auth")):
parts = entry.split(":")
@ -307,13 +308,17 @@ class JSON(resource.Resource):
self._connect(*host[1:]).addCallback(on_connected)
return d
def update_ui(self, keys, filter_dict, cache_id=None):
def connected(self):
d = Deferred()
d.callback(client.connected())
return d
def update_ui(self, keys, filter_dict):
ui_info = {
"torrents": None,
"filters": None,
"stats": None,
"cache_id": -1
"stats": None
}
d = Deferred()