diff options
author | Simon Schampijer <simon@laptop.org> | 2012-10-22 14:08:54 (GMT) |
---|---|---|
committer | Simon Schampijer <simon@laptop.org> | 2012-10-23 09:23:01 (GMT) |
commit | da5e3e0a76a7a9222a4a36d251aeff7c8d227f5b (patch) | |
tree | 7088499642c8a21dae3727087d77abb3ee4fac54 /extensions | |
parent | e1b6f8449a2ac47a15c4eb77aff01a77eb25648c (diff) |
Frame: use the new toggle_palette invoker property, SL #4065
For the device icons, the friends icons and the clipboard ones
we use the toggle_palette invoker property to achieve the
following behavior: the Palette will popup/popdown on button
left click/touch tap.
The property has been added in c4165967d5e05607db8b3e0969b516da87855431
to the toolkit.
For the network device icons OlpcMeshDeviceView and WirelessDeviceView
we do have to set an extra property to make this work. They are
ToolButtons and not TrayIcons like the other icons. By default the
toolbutton does popdown the Palette on a click.
Signed-off-by: Simon Schampijer <simon@laptop.org>
Acked-by: Manuel QuiƱones <manuq@laptop.org>
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/deviceicon/battery.py | 6 | ||||
-rw-r--r-- | extensions/deviceicon/network.py | 28 | ||||
-rw-r--r-- | extensions/deviceicon/speaker.py | 11 | ||||
-rw-r--r-- | extensions/deviceicon/speech.py | 8 | ||||
-rw-r--r-- | extensions/deviceicon/volume.py | 7 |
5 files changed, 13 insertions, 47 deletions
diff --git a/extensions/deviceicon/battery.py b/extensions/deviceicon/battery.py index fa1a40d..7fcca8d 100644 --- a/extensions/deviceicon/battery.py +++ b/extensions/deviceicon/battery.py @@ -69,15 +69,11 @@ class DeviceView(TrayIcon): self._model = DeviceModel(battery) self.palette = BatteryPalette(glib.markup_escape_text(_('My Battery'))) self.palette.set_group_id('frame') - self.connect('button-release-event', self.__button_release_event_cb) + self.palette_invoker.props.toggle_palette = True self._model.connect('updated', self.__battery_status_changed_cb) self._update_info() - def __button_release_event_cb(self, widget, event): - self.palette_invoker.notify_right_click() - return True - def _update_info(self): name = _ICON_NAME current_level = self._model.props.level diff --git a/extensions/deviceicon/network.py b/extensions/deviceicon/network.py index f014418..3351281 100644 --- a/extensions/deviceicon/network.py +++ b/extensions/deviceicon/network.py @@ -399,12 +399,14 @@ class WirelessDeviceView(ToolButton): self._icon.show() self.set_palette_invoker(FrameWidgetInvoker(self)) + self.props.hide_tooltip_on_click = False + self.palette_invoker.props.toggle_palette = True + self._palette = WirelessPalette(self._display_name) self._palette.connect('deactivate-connection', self.__deactivate_connection_cb) self.set_palette(self._palette) self._palette.set_group_id('frame') - self.connect('clicked', self.__toolbutton_clicked_cb) self._device_props = dbus.Interface(self._device, dbus.PROPERTIES_IFACE) @@ -575,10 +577,6 @@ class WirelessDeviceView(ToolButton): def __activate_error_cb(self, err): logging.debug('Failed to create network: %s', err) - def __toolbutton_clicked_cb(self, button): - self.palette_invoker.notify_right_click() - return True - class OlpcMeshDeviceView(ToolButton): _ICON_NAME = 'network-mesh' @@ -604,13 +602,15 @@ class OlpcMeshDeviceView(ToolButton): self._icon.show() self.set_palette_invoker(FrameWidgetInvoker(self)) + self.props.hide_tooltip_on_click = False + self.palette_invoker.props.toggle_palette = True + title = _('Mesh Network') self._palette = WirelessPalette(glib.markup_escape_text(title)) self._palette.connect('deactivate-connection', self.__deactivate_connection) self.set_palette(self._palette) self._palette.set_group_id('frame') - self.connect('clicked', self.__toolbutton_clicked_cb) self.update_state(state) @@ -695,10 +695,6 @@ class OlpcMeshDeviceView(ToolButton): except dbus.exceptions.DBusException: pass - def __toolbutton_clicked_cb(self, button): - self.palette_invoker.notify_right_click() - return True - class WiredDeviceView(TrayIcon): @@ -716,11 +712,7 @@ class WiredDeviceView(TrayIcon): self.set_palette(self._palette) self._palette.set_group_id('frame') self._palette.set_connected(speed, address) - self.connect('button-release-event', self.__button_release_event_cb) - - def __button_release_event_cb(self, widget, event): - self.palette_invoker.notify_right_click() - return True + self.palette_invoker.props.toggle_palette = True class GsmDeviceView(TrayIcon): @@ -742,7 +734,7 @@ class GsmDeviceView(TrayIcon): self._device = device self._palette = None self.set_palette_invoker(FrameWidgetInvoker(self)) - self.connect('button-release-event', self.__button_release_event_cb) + self.palette_invoker.props.toggle_palette = True self._bus.add_signal_receiver(self.__state_changed_cb, signal_name='StateChanged', @@ -769,10 +761,6 @@ class GsmDeviceView(TrayIcon): return palette - def __button_release_event_cb(self, widget, event): - self.palette_invoker.notify_right_click() - return True - def __gsm_connect_cb(self, palette, data=None): connection = network.find_gsm_connection() if connection is not None: diff --git a/extensions/deviceicon/speaker.py b/extensions/deviceicon/speaker.py index 5dab329..8260d49 100644 --- a/extensions/deviceicon/speaker.py +++ b/extensions/deviceicon/speaker.py @@ -46,6 +46,7 @@ class DeviceView(TrayIcon): TrayIcon.__init__(self, icon_name=_ICON_NAME, xo_color=self._color) self.set_palette_invoker(FrameWidgetInvoker(self)) + self.palette_invoker.props.toggle_palette = True self._model = DeviceModel() self._model.connect('notify::level', self.__speaker_status_changed_cb) @@ -53,9 +54,6 @@ class DeviceView(TrayIcon): self.connect('draw', self.__draw_cb) - self._icon_widget.connect('button-release-event', - self.__button_release_event_cb) - self._update_info() def create_palette(self): @@ -78,13 +76,6 @@ class DeviceView(TrayIcon): step=-1) self.icon.props.xo_color = xo_color - def __button_release_event_cb(self, widget, event): - if event.button != 1: - return False - - self.palette_invoker.notify_right_click() - return True - def __draw_cb(self, *args): self._update_info() diff --git a/extensions/deviceicon/speech.py b/extensions/deviceicon/speech.py index c3115f7..1f7bf02 100644 --- a/extensions/deviceicon/speech.py +++ b/extensions/deviceicon/speech.py @@ -45,9 +45,9 @@ class SpeechDeviceView(TrayIcon): self._color = XoColor(client.get_string('/desktop/sugar/user/color')) TrayIcon.__init__(self, icon_name=_ICON_NAME, xo_color=self._color) self.set_palette_invoker(FrameWidgetInvoker(self)) + self.palette_invoker.props.toggle_palette = True + self._manager = speech.get_speech_manager() - self._icon_widget.connect('button-release-event', - self.__button_release_event_cb) def create_palette(self): label = glib.markup_escape_text(_('Speech')) @@ -55,10 +55,6 @@ class SpeechDeviceView(TrayIcon): palette.set_group_id('frame') return palette - def __button_release_event_cb(self, widget, event): - self.palette_invoker.notify_right_click() - return True - class SpeechPalette(Palette): diff --git a/extensions/deviceicon/volume.py b/extensions/deviceicon/volume.py index f1f223c..6930811 100644 --- a/extensions/deviceicon/volume.py +++ b/extensions/deviceicon/volume.py @@ -64,8 +64,7 @@ class DeviceView(TrayIcon): TrayIcon.__init__(self, icon_name=icon_name, xo_color=color) self.set_palette_invoker(FrameWidgetInvoker(self)) - - self.connect('button-release-event', self.__button_release_event_cb) + self.palette_invoker.props.toggle_palette = True def create_palette(self): palette = VolumePalette(self._mount) @@ -86,10 +85,6 @@ class DeviceView(TrayIcon): return palette - def __button_release_event_cb(self, widget, event): - self.palette_invoker.notify_right_click() - return True - def __show_contents_cb(self, menu_item): journal = journalactivity.get_journal() journal.set_active_volume(self._mount) |