Ticket #142: sugar-0001--142-Control-panel-button-to-restart-jabber.2.patch

File sugar-0001--142-Control-panel-button-to-restart-jabber.2.patch, 3.7 KB (added by morgs, 15 years ago)

sugar patch

  • extensions/cpsection/network/model.py

    From e5ece58783c8cb2f91d641d594dd4bc57b647ba9 Mon Sep 17 00:00:00 2001
    From: Morgan Collett <morgan.collett@gmail.com>
    Date: Fri, 19 Dec 2008 14:19:38 +0200
    Subject: [PATCH] #142: Control panel button to restart jabber
    
    ---
     extensions/cpsection/network/model.py |   12 ++++++++++++
     extensions/cpsection/network/view.py  |   28 ++++++++++++++++++++++------
     2 files changed, 34 insertions(+), 6 deletions(-)
    
    diff --git a/extensions/cpsection/network/model.py b/extensions/cpsection/network/model.py
    index bfd008a..2e98100 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    ps = dbus.Interface(bus.get_object(_PS_SERVICE, _PS_PATH), _PS_INTERFACE)
     135    ps.RestartServerConnection()
  • extensions/cpsection/network/view.py

    diff --git a/extensions/cpsection/network/view.py b/extensions/cpsection/network/view.py
    index 9a7f387..b1338be 100644
    a b class Network(SectionView): 
    155155        self._jabber_alert_box.pack_start(self._jabber_alert, expand=False)
    156156        box_mesh.pack_end(self._jabber_alert_box, expand=False)
    157157        self._jabber_alert_box.show()
    158         if 'jabber' in self.restart_alerts:
    159             self._jabber_alert.props.msg = self.restart_msg
    160             self._jabber_alert.show()
     158
     159        box_restart_jabber = gtk.HBox(spacing=style.DEFAULT_SPACING)
     160        self._restart_jabber_button = gtk.Button()
     161        self._restart_jabber_button.set_label(
     162            _('Reconnect collaboration server'))
     163        box_restart_jabber.pack_start(self._restart_jabber_button,
     164                                      expand=False)
     165        self._restart_jabber_button.show()
     166        box_mesh.pack_start(box_restart_jabber, expand=False)
     167        box_restart_jabber.show()
    161168
    162169        self.pack_start(box_mesh, expand=False)
    163170        box_mesh.show()
    class Network(SectionView): 
    184191        self._network_configuration_reset_handler =  \
    185192                self._clear_history_button.connect( \
    186193                        'clicked', self.__network_configuration_reset_cb)
     194        self._restart_jabber_handler = self._restart_jabber_button.connect(
     195            'clicked', self.__restart_jabber_cb)
    187196       
    188197    def undo(self):
    189198        self._button.disconnect(self._radio_change_handler)
    class Network(SectionView): 
    227236            self._jabber_alert.props.msg = detail
    228237            self._jabber_valid = False
    229238        else:
    230             self._jabber_alert.props.msg = self.restart_msg
    231239            self._jabber_valid = True           
    232             self.needs_restart = True
    233             self.restart_alerts.append('jabber')           
    234240
    235241        self._validate()
    236242        self._jabber_alert.show()       
    class Network(SectionView): 
    238244
    239245    def __network_configuration_reset_cb(self, widget):
    240246        self._model.clear_networks()
     247
     248    def __restart_jabber_cb(self, widget):
     249        if self._jabber_sid:
     250            gobject.timeout_add(self._APPLY_TIMEOUT,
     251                                self.__restart_jabber_timeout_cb)
     252        else:
     253            self.__restart_jabber_timeout_cb()
     254
     255    def __restart_jabber_timeout_cb(self):
     256        self._model.restart_jabber()