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-16 13:33:18 (GMT)
committer Simon Schampijer <simon@laptop.org>2012-10-25 13:57:58 (GMT)
commita390ed68bb9df907aa362dd7c44b4776ba6f26a6 (patch)
tree0699054fedf0704ee108eb9cbafedc83e4653a3b
parent365f11dcd48b8689528b536cf845a19082366114 (diff)
NetworkView: add the custom SugarPalette instead of the GTK.Menu based one, part of SL #3992
The Gtk.Menu triggers a Palette popdown in a long press (and actually as well a long click). There is not realy a way around that so we go with our custom Palettes. This adds the custom Palette for the SugarAdhocView, the WirelessNetworkView and the OlpcMeshView. Use the toggle_palette property from the invoker in order to popup/popdown Palette on left click or tap. Fix appearance of AdHoc icons as well, error introduced in 02218ea3e0c4ac2edaa8b08dbc066f2d22f29e8a. Signed-off-by: Simon Schampijer <simon@laptop.org> Acked-by: Manuel QuiƱones <manuq@laptop.org>
-rw-r--r--src/jarabe/desktop/networkviews.py75
1 files changed, 46 insertions, 29 deletions
diff --git a/src/jarabe/desktop/networkviews.py b/src/jarabe/desktop/networkviews.py
index c7d21c6..f72b2d2 100644
--- a/src/jarabe/desktop/networkviews.py
+++ b/src/jarabe/desktop/networkviews.py
@@ -24,13 +24,16 @@ import uuid
import dbus
import glib
+from gi.repository import Gtk
+
from sugar3.graphics.icon import Icon
from sugar3.graphics.xocolor import XoColor
from sugar3.graphics import xocolor
from sugar3.graphics import style
from sugar3.graphics.icon import get_icon_state
from sugar3.graphics import palette
-from sugar3.graphics.menuitem import MenuItem
+from sugar3.graphics.palettemenuitem import PaletteMenuItem
+from sugar3.graphics.palettemenuitem import PaletteMenuItemSeparator
from sugar3 import profile
from jarabe.view.pulsingicon import EventPulsingIcon
@@ -122,14 +125,22 @@ class WirelessNetworkView(EventPulsingIcon):
label = glib.markup_escape_text(self._display_name)
p = palette.Palette(primary_text=label, icon=self._palette_icon)
- self._connect_item = MenuItem(_('Connect'), 'dialog-ok')
+ self.menu_box = Gtk.VBox()
+
+ self._connect_item = PaletteMenuItem(_('Connect'))
+ icon = Icon(icon_size=Gtk.IconSize.MENU, icon_name='dialog-ok')
+ self._connect_item.set_image(icon)
self._connect_item.connect('activate', self.__connect_activate_cb)
- p.menu.append(self._connect_item)
+ self.menu_box.add(self._connect_item)
+
+ self._disconnect_item = PaletteMenuItem(_('Disconnect'))
+ icon = Icon(icon_size=Gtk.IconSize.MENU, icon_name='media-eject')
+ self._disconnect_item.set_image(icon)
+ self._disconnect_item.connect('activate', self.__disconnect_activate_cb)
+ self.menu_box.add(self._disconnect_item)
- self._disconnect_item = MenuItem(_('Disconnect'), 'media-eject')
- self._disconnect_item.connect('activate',
- self._disconnect_activate_cb)
- p.menu.append(self._disconnect_item)
+ p.set_content(self.menu_box)
+ self.menu_box.show_all()
self.connect_to_palette_pop_events(p)
@@ -261,7 +272,7 @@ class WirelessNetworkView(EventPulsingIcon):
else:
self.props.alpha = 1.0
- def _disconnect_activate_cb(self, item):
+ def __disconnect_activate_cb(self, item):
ap_paths = self._access_points.keys()
network.disconnect_access_points(ap_paths)
@@ -464,7 +475,6 @@ class SugarAdhocView(EventPulsingIcon):
get_adhoc_manager_instance().connect('state-changed',
self.__state_changed_cb)
- 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()))
@@ -473,6 +483,7 @@ class SugarAdhocView(EventPulsingIcon):
(profile.get_color().get_stroke_color(),
style.COLOR_TRANSPARENT.get_svg()))
self.props.base_color = self._state_color
+ self.palette_invoker.props.toggle_palette = True
self._palette = self._create_palette()
self.set_palette(self._palette)
self._palette_icon.props.xo_color = self._state_color
@@ -486,23 +497,27 @@ class SugarAdhocView(EventPulsingIcon):
palette_ = palette.Palette(glib.markup_escape_text(text),
icon=self._palette_icon)
- self._connect_item = MenuItem(_('Connect'), 'dialog-ok')
+ self.menu_box = Gtk.VBox()
+
+ self._connect_item = PaletteMenuItem(_('Connect'))
+ icon = Icon(icon_size=Gtk.IconSize.MENU, icon_name='dialog-ok')
+ self._connect_item.set_image(icon)
self._connect_item.connect('activate', self.__connect_activate_cb)
- palette_.menu.append(self._connect_item)
- self._connect_item.show()
+ self.menu_box.add(self._connect_item)
- self._disconnect_item = MenuItem(_('Disconnect'), 'media-eject')
- self._disconnect_item.connect('activate',
- self.__disconnect_activate_cb)
- palette_.menu.append(self._disconnect_item)
+ self._disconnect_item = PaletteMenuItem(_('Disconnect'))
+ icon = Icon(icon_size=Gtk.IconSize.MENU, icon_name='media-eject')
+ self._disconnect_item.set_image(icon)
+ self._disconnect_item.connect('activate', self.__disconnect_activate_cb)
+ self.menu_box.add(self._disconnect_item)
- self.connect_to_palette_pop_events(palette)
+ palette_.set_content(self.menu_box)
+ self.menu_box.show_all()
+ self._disconnect_item.hide()
- return palette_
+ self.connect_to_palette_pop_events(palette_)
- def __button_release_event_cb(self, icon, event):
- self._palette.popup(immediate=True,
- state=palette.Palette.SECONDARY)
+ return palette_
def __connect_activate_cb(self, icon):
get_adhoc_manager_instance().activate_channel(self._channel)
@@ -592,8 +607,6 @@ class OlpcMeshView(EventPulsingIcon):
self._active = False
device = mesh_mgr.mesh_device
- self.connect('button-release-event', self.__button_release_event_cb)
-
interface_props = dbus.Interface(device, dbus.PROPERTIES_IFACE)
interface_props.Get(network.NM_DEVICE_IFACE, 'State',
reply_handler=self.__get_device_state_reply_cb,
@@ -615,6 +628,7 @@ class OlpcMeshView(EventPulsingIcon):
style.COLOR_TRANSPARENT.get_svg()))
self.props.pulse_color = pulse_color
self.props.base_color = profile.get_color()
+ self.palette_invoker.props.toggle_palette = True
self._palette = self._create_palette()
self.set_palette(self._palette)
@@ -622,9 +636,16 @@ class OlpcMeshView(EventPulsingIcon):
text = _('Mesh Network %d') % (self._channel, )
_palette = palette.Palette(glib.markup_escape_text(text))
- self._connect_item = MenuItem(_('Connect'), 'dialog-ok')
+ self.menu_box = Gtk.VBox()
+
+ self._connect_item = PaletteMenuItem(_('Connect'))
+ icon = Icon(icon_size=Gtk.IconSize.MENU, icon_name='dialog-ok')
+ self._connect_item.set_image(icon)
self._connect_item.connect('activate', self.__connect_activate_cb)
- _palette.menu.append(self._connect_item)
+ self.menu_box.add(self._connect_item)
+
+ _palette_.set_content(self.menu_box)
+ self.menu_box.show_all()
return _palette
@@ -691,10 +712,6 @@ class OlpcMeshView(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):
self._mesh_mgr.user_activate_channel(self._channel)