Browse Source

set_server: resend subscriptions

283
ThomasV 12 years ago
parent
commit
a22ae33a81
  1. 3
      gui/qt/network_dialog.py
  2. 19
      lib/network.py

3
gui/qt/network_dialog.py

@ -238,7 +238,8 @@ class NetworkDialog(QDialog):
self.config.set_key("proxy", proxy, True)
self.config.set_key("server", server, True)
self.network.set_server(server, proxy)
self.network.set_proxy(proxy)
self.network.set_server(server)
self.config.set_key('auto_cycle', self.autocycle_cb.isChecked(), True)
return True

19
lib/network.py

@ -129,17 +129,26 @@ class Network(threading.Thread):
return self.interface.is_connected
def set_server(self, server, proxy):
def set_proxy(self, proxy):
self.proxy = proxy
def set_server(self, server):
if self.default_server == server:
return
i = self.interface
# stop the interface in order to terminate subscriptions
subscriptions = self.interface.subscriptions
self.interface.stop()
# notify gui
self.trigger_callback('disconnecting')
# start interface
self.default_server = server
self.proxy = proxy
self.start_interface(server)
self.interface = self.interfaces[server]
i.stop_subscriptions() # fixme: it should not stop all subscriptions, and send 'unsubscribe'
self.trigger_callback('disconnecting') # for actively disconnecting
# send subscriptions
for cb, sub in subscriptions.items():
self.interface.send(sub, cb)
def run(self):

Loading…
Cancel
Save