Ticket #142: ps_reconnect.patch

File ps_reconnect.patch, 2.1 KB (added by erikos, 15 years ago)

auto apply the new jabber server and reconnect directly

  • extensions/cpsection/network/model.py

    diff --git a/extensions/cpsection/network/model.py b/extensions/cpsection/network/model.py
    index bfd008a..ee19995 100644
    a b def set_publish_information(value): 
    121121    client = gconf.client_get_default()
    122122    client.set_bool('/desktop/sugar/collaboration/publish_gadget', value)
    123123    return 0
     124
     125def restart_jabber():
     126    """Call Sugar Presence Service to restart Telepathy CMs.
     127
     128    This allows restarting the jabber server connection when we change it.
     129    """
     130    _PS_SERVICE = "org.laptop.Sugar.Presence"
     131    _PS_INTERFACE = "org.laptop.Sugar.Presence"
     132    _PS_PATH = "/org/laptop/Sugar/Presence"
     133    bus = dbus.SessionBus()
     134    try:
     135        ps = dbus.Interface(bus.get_object(_PS_SERVICE, _PS_PATH), _PS_INTERFACE)
     136    except dbus.DBusException:
     137        raise ReadError('%s service not available', _PS_SERVICE)
     138    ps.RestartServerConnection()
  • extensions/cpsection/network/view.py

    diff --git a/extensions/cpsection/network/view.py b/extensions/cpsection/network/view.py
    index 9a7f387..cc6ced4 100644
    a b class Network(SectionView): 
    221221        self._jabber_sid = 0
    222222        if widget.get_text() == self._model.get_jabber:
    223223            return
     224        self._model.set_jabber(widget.get_text())
    224225        try:
    225             self._model.set_jabber(widget.get_text())
    226         except ValueError, detail:
     226            self._model.restart_jabber()
     227        except ReadError, detail:
    227228            self._jabber_alert.props.msg = detail
    228229            self._jabber_valid = False
     230            self._jabber_alert.show()
     231            self.restart_alerts.append('jabber')
    229232        else:
    230             self._jabber_alert.props.msg = self.restart_msg
    231233            self._jabber_valid = True           
    232             self.needs_restart = True
    233             self.restart_alerts.append('jabber')           
     234            self._jabber_alert.hide()
    234235
    235236        self._validate()
    236         self._jabber_alert.show()       
    237237        return False
    238238
    239239    def __network_configuration_reset_cb(self, widget):