Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Schampijer <simon@laptop.org>2012-10-22 14:08:54 (GMT)
committer Simon Schampijer <simon@laptop.org>2012-10-23 09:23:01 (GMT)
commitda5e3e0a76a7a9222a4a36d251aeff7c8d227f5b (patch)
tree7088499642c8a21dae3727087d77abb3ee4fac54
parente1b6f8449a2ac47a15c4eb77aff01a77eb25648c (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.py6
-rw-r--r--extensions/deviceicon/network.py28
-rw-r--r--extensions/deviceicon/speaker.py11
-rw-r--r--extensions/deviceicon/speech.py8
-rw-r--r--extensions/deviceicon/volume.py7
-rw-r--r--src/jarabe/desktop/networkviews.py7
-rw-r--r--src/jarabe/frame/clipboardicon.py8
-rw-r--r--src/jarabe/frame/friendstray.py6
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):