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): |
121 | 121 | client = gconf.client_get_default() |
122 | 122 | client.set_bool('/desktop/sugar/collaboration/publish_gadget', value) |
123 | 123 | return 0 |
| 124 | |
| 125 | def 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() |
diff --git a/extensions/cpsection/network/view.py b/extensions/cpsection/network/view.py
index 9a7f387..b1338be 100644
a
|
b
|
class Network(SectionView): |
155 | 155 | self._jabber_alert_box.pack_start(self._jabber_alert, expand=False) |
156 | 156 | box_mesh.pack_end(self._jabber_alert_box, expand=False) |
157 | 157 | 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() |
161 | 168 | |
162 | 169 | self.pack_start(box_mesh, expand=False) |
163 | 170 | box_mesh.show() |
… |
… |
class Network(SectionView): |
184 | 191 | self._network_configuration_reset_handler = \ |
185 | 192 | self._clear_history_button.connect( \ |
186 | 193 | 'clicked', self.__network_configuration_reset_cb) |
| 194 | self._restart_jabber_handler = self._restart_jabber_button.connect( |
| 195 | 'clicked', self.__restart_jabber_cb) |
187 | 196 | |
188 | 197 | def undo(self): |
189 | 198 | self._button.disconnect(self._radio_change_handler) |
… |
… |
class Network(SectionView): |
227 | 236 | self._jabber_alert.props.msg = detail |
228 | 237 | self._jabber_valid = False |
229 | 238 | else: |
230 | | self._jabber_alert.props.msg = self.restart_msg |
231 | 239 | self._jabber_valid = True |
232 | | self.needs_restart = True |
233 | | self.restart_alerts.append('jabber') |
234 | 240 | |
235 | 241 | self._validate() |
236 | 242 | self._jabber_alert.show() |
… |
… |
class Network(SectionView): |
238 | 244 | |
239 | 245 | def __network_configuration_reset_cb(self, widget): |
240 | 246 | 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() |