[Sugar-devel] [PATCH sugar] Neighborhood View: reveal Palette on left click/touch instead of a primary action

Manuel Quiñones manuq at laptop.org
Thu Aug 16 08:10:31 EDT 2012


2012/8/15 Simon Schampijer <simon at schampijer.de>:
> Having a primary action for the icons in the Neighborhood View
> like the AP icon, the Ad-hoc, the Mesh network icon and the icon
> for a shared activity has never been a fully working UI design because
> the result you get by clicking on the icon was not fully clear to
> the user (e.g. I clicked on the AP icon to connect to it, when I
> click again will it deconnect?).
>
> With the mouse you have a way of discovering secondary information
> by hovering over the icon, this is not as elegant with touch. You would
> need to use touch&hold for that but the 'failure' rate of
> undesired actions is much higher.
>
> In long discussions with Gary we agreed on always revealing the
> Palette on left-click/touch and giving the learner the
> information to make his choice. We think this is the best behavior
> for both worlds.
>
> For the SugarAdhoc Palette we make sure it has the connect option in
> the Palette. Until now, the Palette did only have the connect
> option shown when the device state had changed once.
>
> This patch applies on top of "Making the buddy icons in the Views
> reveal the Palette on left click or touch"
>
> Signed-off-by: Simon Schampijer <simon at laptop.org>

Acked-by: Manuel Quiñones <manuq at laptop.org>

> ---
>  src/jarabe/desktop/meshbox.py      | 14 ++++++++------
>  src/jarabe/desktop/networkviews.py | 10 +++++++---
>  2 files changed, 15 insertions(+), 9 deletions(-)
>
> diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py
> index 8ac5047..412a093 100644
> --- a/src/jarabe/desktop/meshbox.py
> +++ b/src/jarabe/desktop/meshbox.py
> @@ -64,7 +64,8 @@ class _ActivityIcon(EventIcon):
>          EventIcon.__init__(self, file_name=file_name,
>                             xo_color=xo_color, pixel_size=size)
>          self._model = model
> -        self.connect('button-release-event', self._button_release_cb)
> +        self.connect('button-release-event',
> +                     self.__button_release_event_cb)

Yes good renames in this patch also.

>      def create_palette(self):
>          primary_text = glib.markup_escape_text(self._model.bundle.get_name())
> @@ -82,21 +83,22 @@ class _ActivityIcon(EventIcon):
>
>          if joined:
>              item = MenuItem(_('Resume'), 'activity-start')
> -            item.connect('activate', self._clicked_cb)
> +            item.connect('activate', self.__palette_item_clicked_cb)
>              item.show()
>              p.menu.append(item)
>          elif not private:
>              item = MenuItem(_('Join'), 'activity-start')
> -            item.connect('activate', self._clicked_cb)
> +            item.connect('activate', self.__palette_item_clicked_cb)
>              item.show()
>              p.menu.append(item)
>
>          return p
>
> -    def _button_release_cb(self, widget, event):
> -        return self._clicked_cb(item=None)
> +    def __button_release_event_cb(self, widget, event):
> +        self.props.palette.popup(immediate=True,
> +                                 state=palette.Palette.SECONDARY)
>
> -    def _clicked_cb(self, item):
> +    def __palette_item_clicked_cb(self, item):
>          bundle = self._model.get_bundle()
>          misc.launch(bundle, activity_id=self._model.activity_id,
>                      color=self._model.get_color())
> diff --git a/src/jarabe/desktop/networkviews.py b/src/jarabe/desktop/networkviews.py
> index d2531bf..83269e0 100644
> --- a/src/jarabe/desktop/networkviews.py
> +++ b/src/jarabe/desktop/networkviews.py
> @@ -330,7 +330,8 @@ class WirelessNetworkView(EventPulsingIcon):
>          self._connect()
>
>      def __button_release_event_cb(self, icon, event):
> -        self._connect()
> +        self._palette.popup(immediate=True,
> +                            state=palette.Palette.SECONDARY)
>
>      def _connect(self):
>          # Activate existing connection, if there is one
> @@ -489,6 +490,7 @@ class SugarAdhocView(EventPulsingIcon):
>          self._connect_item = MenuItem(_('Connect'), 'dialog-ok')
>          self._connect_item.connect('activate', self.__connect_activate_cb)
>          palette_.menu.append(self._connect_item)
> +        self._connect_item.show()
>
>          self._disconnect_item = MenuItem(_('Disconnect'), 'media-eject')
>          self._disconnect_item.connect('activate',
> @@ -498,7 +500,8 @@ class SugarAdhocView(EventPulsingIcon):
>          return palette_
>
>      def __button_release_event_cb(self, icon, event):
> -        get_adhoc_manager_instance().activate_channel(self._channel)
> +        self._palette.popup(immediate=True,
> +                            state=palette.Palette.SECONDARY)
>
>      def __connect_activate_cb(self, icon):
>          get_adhoc_manager_instance().activate_channel(self._channel)
> @@ -688,7 +691,8 @@ class OlpcMeshView(EventPulsingIcon):
>          self._connect()
>
>      def __button_release_event_cb(self, icon, event):
> -        self._connect()
> +        self._palette.popup(immediate=True,
> +                            state=palette.Palette.SECONDARY)
>
>      def _connect(self):
>          self._mesh_mgr.user_activate_channel(self._channel)
> --
> 1.7.11.4
>
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel



-- 
.. manuq ..


More information about the Sugar-devel mailing list