From a390ed68bb9df907aa362dd7c44b4776ba6f26a6 Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Tue, 16 Oct 2012 13:33:18 +0000 Subject: 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 Acked-by: Manuel QuiƱones --- (limited to 'src') 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) -- cgit v0.9.1