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 | |
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>
-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 | ||||
-rw-r--r-- | src/jarabe/desktop/networkviews.py | 7 | ||||
-rw-r--r-- | src/jarabe/frame/clipboardicon.py | 8 | ||||
-rw-r--r-- | src/jarabe/frame/friendstray.py | 6 |
8 files changed, 16 insertions, 65 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) diff --git a/src/jarabe/desktop/networkviews.py b/src/jarabe/desktop/networkviews.py index 64b4be3..c7d21c6 100644 --- a/src/jarabe/desktop/networkviews.py +++ b/src/jarabe/desktop/networkviews.py @@ -86,12 +86,11 @@ class WirelessNetworkView(EventPulsingIcon): (xocolor.colors[index][0], xocolor.colors[index][1])) - self.connect('button-release-event', self.__button_release_event_cb) - pulse_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), style.COLOR_TRANSPARENT.get_svg())) self.props.pulse_color = pulse_color + self.props.palette_invoker.props.toggle_palette = True self._palette = self._create_palette() self.set_palette(self._palette) self._palette_icon.props.xo_color = self._color @@ -332,10 +331,6 @@ class WirelessNetworkView(EventPulsingIcon): def __connect_activate_cb(self, icon): self._connect() - def __button_release_event_cb(self, icon, event): - self._palette.popup(immediate=True, - state=palette.Palette.SECONDARY) - def _connect(self): # Activate existing connection, if there is one connection = network.find_connection_by_ssid(self._ssid) diff --git a/src/jarabe/frame/clipboardicon.py b/src/jarabe/frame/clipboardicon.py index 1cee867..81b3131 100644 --- a/src/jarabe/frame/clipboardicon.py +++ b/src/jarabe/frame/clipboardicon.py @@ -40,6 +40,7 @@ class ClipboardIcon(RadioToolButton): RadioToolButton.__init__(self, group=group) self.props.palette_invoker = FrameWidgetInvoker(self) + self.palette_invoker.props.toggle_palette = True self._cb_object = cb_object self.owns_clipboard = False @@ -62,7 +63,6 @@ class ClipboardIcon(RadioToolButton): child = self.get_child() child.connect('drag_data_get', self._drag_data_get_cb) - child.connect('button-release-event', self.__button_release_event_cb) self.connect('notify::active', self._notify_active_cb) def create_palette(self): @@ -70,12 +70,6 @@ class ClipboardIcon(RadioToolButton): palette.set_group_id('frame') return palette - def __button_release_event_cb(self, widget, event): - if event.button != 1: - return False - self.props.palette_invoker.notify_right_click() - return False - def get_object_id(self): return self._cb_object.get_id() diff --git a/src/jarabe/frame/friendstray.py b/src/jarabe/frame/friendstray.py index 00d951f..099a3b6 100644 --- a/src/jarabe/frame/friendstray.py +++ b/src/jarabe/frame/friendstray.py @@ -33,7 +33,7 @@ class FriendIcon(TrayIcon): self._buddy = buddy self.set_palette_invoker(FrameWidgetInvoker(self)) self.palette_invoker.cache_palette = False - self.connect('button-release-event', self.__button_release_event_cb) + self.palette_invoker.props.toggle_palette = True def create_palette(self): palette = BuddyMenu(self._buddy) @@ -41,10 +41,6 @@ class FriendIcon(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 FriendsTray(VTray): def __init__(self): |