Re: [Sugar-devel] Gst1.0 plugins in sugar-build

2012-10-04 Thread Daniel Narvaez
On 3 October 2012 23:21, Manuel Kaufmann humi...@gmail.com wrote:
 On Wed, Oct 3, 2012 at 6:08 PM, Peter Robinson pbrobin...@gmail.com wrote:
 The advantage of gstreamer is you can add extra codecs easily by just
 installing packages and without recompiling anything and the
 functionality should just work without any changes in the application
 so I'm not sure why it's a needed requirement.

 That's why I wasn't sure. This library is not a dependency but
 gstreamer 1.0 is not as well and it's inside sugar-build. That's why I
 was asking.

Hi,

I think in general it's fine to add dependencies so that more plugins
are built. Though only if these dependencies are available in Fedora
(which doesn't seem to be the case here).

Thanks
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH gst-plugins-espeak] Setup the plugin metadata

2012-10-04 Thread Peter Robinson
Right, so can we tag and cut a release then?

Peter

On Sat, Sep 29, 2012 at 9:49 AM, Daniel Narvaez dwnarv...@gmail.com wrote:
 Yup, just tested and it seems to work fine.


 On Friday, 28 September 2012, Aleksey Lim wrote:

 On Fri, Sep 28, 2012 at 07:54:09AM +0200, Daniel Narvaez wrote:
  On Thursday, 27 September 2012, Aleksey Lim wrote:
 
   On Tue, Sep 25, 2012 at 10:57:48AM +0200, Daniel Narvaez wrote:
Work around https://bugzilla.gnome.org/show_bug.cgi?id=684765
  
   Thanks for the hint.
  
  
   http://git.sugarlabs.org/gst-plugins-espeak/mainline/commit/890c514d7c630923908e1fcb3387ff3d35897547
  
 
  Cool!  Can we do a release of the current master? I would like to get it
  in
  Fedora as soon as possible so that we get more testing. Thanks!

 Does it work as assumed after compilig in f18?
 I tested with recent git and it works for me.

 --
 Aleksey



 --
 Daniel Narvaez


 ___
 Sugar-devel mailing list
 Sugar-devel@lists.sugarlabs.org
 http://lists.sugarlabs.org/listinfo/sugar-devel

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [ASLO] Release Image Viewer-50

2012-10-04 Thread Simon Schampijer

On 10/04/2012 05:05 AM, Manuel Quiñones wrote:

2012/10/3 Agustin Zubiaga Sanchez a...@sugarlabs.org:

I fixed a bug in the objectchooser [1]
And I have ported the setup.py to gtk3 [2]

This changes are important, I have to release a new version?


Yes Agus, please.

Thanks,


(if not done yet) Can Agus get a shell account so he can upload the 
tarballs for imageviewer?


Thanks,
   Simon

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] ImageViewer (gtk3) traceback

2012-10-04 Thread Daniel Narvaez
Hi Agus,

I noticed a difference between the gtk2 and the gtk3 version. If you
close the file picker in the gtk3 version the activity is also closed.
Is that intentional? (I'm asking mostly because it breaks the UI
tests, but there is probably also the problem of consistency with
other activities like read and jukebox).
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread godiard
From: Gonzalo Odiard godi...@gmail.com

The change is done in the favorites view and in the list view

Signed-off-by: Gonzalo Odiard gonz...@laptop.org
---
 src/jarabe/desktop/activitieslist.py  | 1 +
 src/jarabe/desktop/favoriteslayout.py | 6 +-
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/jarabe/desktop/activitieslist.py 
b/src/jarabe/desktop/activitieslist.py
index 1b5ddd7..3b07e87 100644
--- a/src/jarabe/desktop/activitieslist.py
+++ b/src/jarabe/desktop/activitieslist.py
@@ -179,6 +179,7 @@ class ListModel(Gtk.TreeModelSort):
 self._model = Gtk.ListStore(str, bool, str, str, str, str, int, str)
 self._model_filter = self._model.filter_new()
 Gtk.TreeModelSort.__init__(self, model=self._model_filter)
+self.set_sort_column_id(ListModel.COLUMN_TITLE, Gtk.SortType.ASCENDING)
 
 GObject.idle_add(self.__connect_to_bundle_registry_cb)
 
diff --git a/src/jarabe/desktop/favoriteslayout.py 
b/src/jarabe/desktop/favoriteslayout.py
index a367ab6..eb5deef 100644
--- a/src/jarabe/desktop/favoriteslayout.py
+++ b/src/jarabe/desktop/favoriteslayout.py
@@ -387,11 +387,7 @@ class RingLayout(ViewLayout):
 child.size_allocate(child_allocation)
 
 def compare_activities(self, icon_a, icon_b):
-if hasattr(icon_a, 'installation_time') and \
-hasattr(icon_b, 'installation_time'):
-return int(icon_b.installation_time - icon_a.installation_time)
-else:
-return 0
+return cmp(icon_a.get_activity_name(), icon_b.get_activity_name())
 
 
 _SUNFLOWER_CONSTANT = style.STANDARD_ICON_SIZE * .75
-- 
1.7.11.4

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] ImageViewer (gtk3) traceback

2012-10-04 Thread Agustin Zubiaga Sanchez
Yes, It's intentional because If you not open any image it instance will be
unusable.
Is that ok?

Regards,
aguz

2012/10/4 Daniel Narvaez dwnarv...@gmail.com

 Hi Agus,

 I noticed a difference between the gtk2 and the gtk3 version. If you
 close the file picker in the gtk3 version the activity is also closed.
 Is that intentional? (I'm asking mostly because it breaks the UI
 tests, but there is probably also the problem of consistency with
 other activities like read and jukebox).
 ___
 Sugar-devel mailing list
 Sugar-devel@lists.sugarlabs.org
 http://lists.sugarlabs.org/listinfo/sugar-devel

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [ASLO] Release Image Viewer-51

2012-10-04 Thread Sugar Labs Activities
Activity Homepage:
http://activities.sugarlabs.org/addon/4032

Sugar Platform:
0.98 - 0.98

Download Now:
http://activities.sugarlabs.org/downloads/file/28258/image_viewer-51.xo

Release notes:
- Fix objectchooser bug
- Port setup.py to Gtk3


Sugar Labs Activities
http://activities.sugarlabs.org

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread Simon Schampijer

Thanks pushed as: d6e3fe411ee22dc4308cd06f54e2b5e0bd1d27ab

And added to the notes: 
http://wiki.sugarlabs.org/go/0.98/Notes#Alphabetical_ordering_in_the_Home_View


Regards,
   Simon

On 10/04/2012 02:06 PM, godi...@sugarlabs.org wrote:

From: Gonzalo Odiard godi...@gmail.com

The change is done in the favorites view and in the list view

Signed-off-by: Gonzalo Odiard gonz...@laptop.org
---
  src/jarabe/desktop/activitieslist.py  | 1 +
  src/jarabe/desktop/favoriteslayout.py | 6 +-
  2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/jarabe/desktop/activitieslist.py 
b/src/jarabe/desktop/activitieslist.py
index 1b5ddd7..3b07e87 100644
--- a/src/jarabe/desktop/activitieslist.py
+++ b/src/jarabe/desktop/activitieslist.py
@@ -179,6 +179,7 @@ class ListModel(Gtk.TreeModelSort):
  self._model = Gtk.ListStore(str, bool, str, str, str, str, int, str)
  self._model_filter = self._model.filter_new()
  Gtk.TreeModelSort.__init__(self, model=self._model_filter)
+self.set_sort_column_id(ListModel.COLUMN_TITLE, Gtk.SortType.ASCENDING)

  GObject.idle_add(self.__connect_to_bundle_registry_cb)

diff --git a/src/jarabe/desktop/favoriteslayout.py 
b/src/jarabe/desktop/favoriteslayout.py
index a367ab6..eb5deef 100644
--- a/src/jarabe/desktop/favoriteslayout.py
+++ b/src/jarabe/desktop/favoriteslayout.py
@@ -387,11 +387,7 @@ class RingLayout(ViewLayout):
  child.size_allocate(child_allocation)

  def compare_activities(self, icon_a, icon_b):
-if hasattr(icon_a, 'installation_time') and \
-hasattr(icon_b, 'installation_time'):
-return int(icon_b.installation_time - icon_a.installation_time)
-else:
-return 0
+return cmp(icon_a.get_activity_name(), icon_b.get_activity_name())


  _SUNFLOWER_CONSTANT = style.STANDARD_ICON_SIZE * .75



___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread Martin Langhoff
On Thu, Oct 4, 2012 at 8:06 AM,  godi...@sugarlabs.org wrote:
 The change is done in the favorites view and in the list view

What was the sorting before in the fav view?

More importantly -- Is this sorting over the English names, or the
localized names? I am not sure what we would desire, but I'll note
that if it's localized names, then every language will have a diffent
home view icon order.

I tend to believe that a stable ordering is preferrable... but I
understand other factors may apply...

cheers,



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- Software Architect - OLPC
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] ImageViewer (gtk3) traceback

2012-10-04 Thread Manuel Quiñones
2012/10/4 Agustin Zubiaga Sanchez a...@sugarlabs.org:
 Yes, It's intentional because If you not open any image it instance will be
 unusable.
 Is that ok?

Interesting issue.  ImageViewer doesn't have a way to open an image
after you close the object chooser.  I think we should add a message
with a '+' button at the center of the canvas that opens the object
chooser.  Exactly like this proposal for Jukebox:

http://bugs.sugarlabs.org/attachment/ticket/3714/Jukebox_playlist_functional_and_informational.png

The message string can be something like No image + add image

-- 
.. manuq ..
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread Gonzalo Odiard
On Thu, Oct 4, 2012 at 11:28 AM, Martin Langhoff
martin.langh...@gmail.comwrote:

 On Thu, Oct 4, 2012 at 8:06 AM,  godi...@sugarlabs.org wrote:
  The change is done in the favorites view and in the list view

 What was the sorting before in the fav view?


Before was sorted by installation time.


 More importantly -- Is this sorting over the English names, or the
 localized names? I am not sure what we would desire, but I'll note
 that if it's localized names, then every language will have a diffent
 home view icon order.


We are sorting by localized name.
It's true than the order will be different if you use a different language,
but we think is better for the users.

Gonzalo


 I tend to believe that a stable ordering is preferrable... but I
 understand other factors may apply...

 cheers,



 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- Software Architect - OLPC
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff




-- 
Gonzalo Odiard
SugarLabs Argentina
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread Simon Schampijer

On 10/04/2012 04:28 PM, Martin Langhoff wrote:

On Thu, Oct 4, 2012 at 8:06 AM,  godi...@sugarlabs.org wrote:

The change is done in the favorites view and in the list view


What was the sorting before in the fav view?


Based on Installation time. So the ordering changed when installing new 
activities or if you hacked on the machines and the directory date 
changed...



More importantly -- Is this sorting over the English names, or the
localized names? I am not sure what we would desire, but I'll note
that if it's localized names, then every language will have a diffent
home view icon order.


It is over the English names, I think... Gonzalo?


I tend to believe that a stable ordering is preferrable... but I
understand other factors may apply...

cheers,



m



___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread Martin Langhoff
On Thu, Oct 4, 2012 at 10:33 AM, Gonzalo Odiard godi...@sugarlabs.org wrote:
 We are sorting by localized name.
 It's true than the order will be different if you use a different language,
 but we think is better for the users.

Less consistency in icon location better? How?

I agree alphabetical is better for list view. Fav view, otoh, _any_
order is ok as long as it is stable... no?



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- Software Architect - OLPC
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread Gonzalo Odiard
On Thu, Oct 4, 2012 at 12:00 PM, Martin Langhoff
martin.langh...@gmail.comwrote:

 On Thu, Oct 4, 2012 at 10:33 AM, Gonzalo Odiard godi...@sugarlabs.org
 wrote:
  We are sorting by localized name.
  It's true than the order will be different if you use a different
 language,
  but we think is better for the users.

 Less consistency in icon location better? How?


You have less consistency only if you change the language.
99.9% of our users will not do it,
and will prefer have a consistent order = alphabetic.

Navegar is after Medir, does not have sense have it sorted as Browse

Have sense use the same order in the listview and in the favorites view too.

Gonzalo



 I agree alphabetical is better for list view. Fav view, otoh, _any_
 order is ok as long as it is stable... no?



 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- Software Architect - OLPC
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff




-- 
Gonzalo Odiard
SugarLabs Argentina
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [ASLO] Release Distance-34

2012-10-04 Thread Rafael Ortiz
On Fri, Sep 28, 2012 at 5:23 AM, Peter Robinson pbrobin...@gmail.comwrote:

 On Wed, Sep 26, 2012 at 6:24 PM, Gonzalo Odiard gonz...@laptop.org
 wrote:
  Please, remember add summary information in the activity.info file.

 And to release a tar file!


summary + tarball should be in for next releases.

Thanks


  Gonzalo
 
 
  On Wed, Sep 26, 2012 at 2:03 PM, Sugar Labs Activities
  activit...@sugarlabs.org wrote:
 
  Activity Homepage:
  http://activities.sugarlabs.org/addon/4264
 
  Sugar Platform:
  0.96 - 0.98
 
  Download Now:
  http://activities.sugarlabs.org/downloads/file/28237/distance-34.xo
 
  Release notes:
  *Change _shared_activity by shared_activity
  (fdane...@activitycentral.com), enabling sharing.
 
 
 
  Sugar Labs Activities
  http://activities.sugarlabs.org
 
  ___
  Sugar-devel mailing list
  Sugar-devel@lists.sugarlabs.org
  http://lists.sugarlabs.org/listinfo/sugar-devel
 
 
 
  ___
  Sugar-devel mailing list
  Sugar-devel@lists.sugarlabs.org
  http://lists.sugarlabs.org/listinfo/sugar-devel
 

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH shell] Fix drag and drop in favourites view and grid intersections - SL #3960

2012-10-04 Thread Manuel Quiñones
This fixes the unported API for drag-and-drop in favourites view.  And
in the grid, it fixes the collision detection, in GTK+3 we need to use
Gdk.Rectangle objects instead of tuples with the rectangle definition.

Signed-off-by: Manuel Quiñones ma...@laptop.org
---
 src/jarabe/desktop/favoriteslayout.py |  3 +++
 src/jarabe/desktop/favoritesview.py   | 14 +-
 src/jarabe/desktop/grid.py| 25 -
 3 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/src/jarabe/desktop/favoriteslayout.py 
b/src/jarabe/desktop/favoriteslayout.py
index eb5deef..c2bf8f5 100644
--- a/src/jarabe/desktop/favoriteslayout.py
+++ b/src/jarabe/desktop/favoriteslayout.py
@@ -124,6 +124,9 @@ class ViewLayout(Layout):
 def allocate_children(self, allocation, children):
 pass
 
+def move_icon(self, child, x, y, allocation):
+pass
+
 def move(self, child, x, y, allocation=None):
 self._grid.move(child, x / _CELL_SIZE, y / _CELL_SIZE, locked=True)
 child_request = child.size_request()
diff --git a/src/jarabe/desktop/favoritesview.py 
b/src/jarabe/desktop/favoritesview.py
index 17d014e..cfe18eb 100644
--- a/src/jarabe/desktop/favoritesview.py
+++ b/src/jarabe/desktop/favoritesview.py
@@ -24,6 +24,7 @@ from gi.repository import GConf
 import glib
 from gi.repository import Gtk
 from gi.repository import Gdk
+from gi.repository import GdkPixbuf
 
 from sugar3.graphics import style
 from sugar3.graphics.icon import Icon
@@ -208,7 +209,9 @@ class FavoritesView(ViewContainer):
int(x),
int(y)):
 self._dragging = True
-context_ = widget.drag_begin([_ICON_DND_TARGET],
+target_entry = Gtk.TargetEntry.new(*_ICON_DND_TARGET)
+target_list = Gtk.TargetList.new([target_entry])
+context_ = widget.drag_begin(target_list,
  Gdk.DragAction.MOVE,
  1,
  event)
@@ -219,18 +222,19 @@ class FavoritesView(ViewContainer):
 
 self._hot_x = pixbuf.props.width / 2
 self._hot_y = pixbuf.props.height / 2
-context.set_icon_pixbuf(pixbuf, self._hot_x, self._hot_y)
+Gtk.drag_set_icon_pixbuf(context, pixbuf, self._hot_x, self._hot_y)
 
 def __drag_motion_cb(self, widget, context, x, y, time):
 if self._last_clicked_icon is not None:
-context.drag_status(context.suggested_action, time)
+Gdk.drag_status(context, context.get_suggested_action(), time)
 return True
 else:
 return False
 
 def __drag_drop_cb(self, widget, context, x, y, time):
 if self._last_clicked_icon is not None:
-self.drag_get_data(context, _ICON_DND_TARGET[0])
+target = Gdk.Atom.intern_static_string(_ICON_DND_TARGET[0])
+self.drag_get_data(context, target, time)
 self._layout.move_icon(self._last_clicked_icon,
x - self._hot_x, y - self._hot_y,
self.get_allocation())
@@ -249,7 +253,7 @@ class FavoritesView(ViewContainer):
 
 def __drag_data_received_cb(self, widget, context, x, y, selection_data,
 info, time):
-context.drop_finish(success=True, time=time)
+Gdk.drop_finish(context, success=True, time_=time)
 
 def __connect_to_bundle_registry_cb(self):
 registry = bundleregistry.get_registry()
diff --git a/src/jarabe/desktop/grid.py b/src/jarabe/desktop/grid.py
index 851c23e..9d6d820 100644
--- a/src/jarabe/desktop/grid.py
+++ b/src/jarabe/desktop/grid.py
@@ -114,39 +114,45 @@ class Grid(SugarExt.Grid):
 
 new_rects = []
 
+def _create_rectangle(x, y, width, height):
+rect = Gdk.Rectangle()
+rect.x, rect.y = x, y
+rect.width, rect.height = width, height
+return rect
+
 # Get rects right, left, bottom and top
 if (rect.x + rect.width  self.width - 1):
-new_rects.append((rect.x + 1, rect.y,
+new_rects.append(_create_rectangle(rect.x + 1, rect.y,
rect.width, rect.height))
 
 if (rect.x - 1  0):
-new_rects.append((rect.x - 1, rect.y,
+new_rects.append(_create_rectangle(rect.x - 1, rect.y,
rect.width, rect.height))
 
 if (rect.y + rect.height  self.height - 1):
-new_rects.append((rect.x, rect.y + 1,
+new_rects.append(_create_rectangle(rect.x, rect.y + 1,
rect.width, rect.height))
 
 if (rect.y - 1  0):
-new_rects.append((rect.x, rect.y - 1,
+new_rects.append(_create_rectangle(rect.x, rect.y - 1,
  

Re: [Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread Martin Langhoff
On Thu, Oct 4, 2012 at 11:25 AM, Gonzalo Odiard godi...@sugarlabs.org wrote:
 You have less consistency only if you change the language.

I generally agree. My only worry is that documentation screenshots
will be all over the place.

 Have sense use the same order in the listview and in the favorites view too.

yeah... ok.



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- Software Architect - OLPC
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread Manuel Quiñones
2012/10/4 Gonzalo Odiard godi...@sugarlabs.org:


 On Thu, Oct 4, 2012 at 12:00 PM, Martin Langhoff martin.langh...@gmail.com
 wrote:

 On Thu, Oct 4, 2012 at 10:33 AM, Gonzalo Odiard godi...@sugarlabs.org
 wrote:
  We are sorting by localized name.
  It's true than the order will be different if you use a different
  language,
  but we think is better for the users.

 Less consistency in icon location better? How?


 You have less consistency only if you change the language.
 99.9% of our users will not do it,
 and will prefer have a consistent order = alphabetic.

 Navegar is after Medir, does not have sense have it sorted as Browse

 Have sense use the same order in the listview and in the favorites view too.

In internal discussions with Gary and Simon I gave +1 for alphabetic
ordering in list view, and -1 for favs view.  My cons were: 1.
inconsistency between languages for first boot layout, 2. icons
displacement while switching language 3. I like how new added
activities appear right at the top of the buddy icon head.  I think
alpha ordering have no sense in only-icons views.

-- 
.. manuq ..
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH v2 artwork] Style activities in home view for tap - click and hover feedback

2012-10-04 Thread Manuel Quiñones
For hover, change the previous outline to a background fill.  For tap
- click, add a grey background fill.  This change is consistent with
the style of buttons in toolbars, which have subtle hover feedback,
and more visible background change for tap - click feedback.

For choosing the grey tones, Gary used the 'strive for at least two
Munsell steps' guideline as per the HIG.  Assuming our current white
zoom view canvas backrounds, and 50% grey for activities without
Journal entries (the 50% grey is 3 too bright for a strict two Munsell
gap, but close enough). This gives good visibility for both hover,
press, and enough contrast during a press on a 50% grey.

Also, make the corners a bit more round.

Signed-off-by: Manuel Quiñones ma...@laptop.org
---
 gtk3/theme/gtk-widgets.css.em | 18 ++
 gtk3/theme/gtk.css|  2 ++
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/gtk3/theme/gtk-widgets.css.em b/gtk3/theme/gtk-widgets.css.em
index b9a39d5..58cf450 100644
--- a/gtk3/theme/gtk-widgets.css.em
+++ b/gtk3/theme/gtk-widgets.css.em
@@ -687,13 +687,23 @@ SugarFrameWindow {
 
 /* Sugar Favorite Activity icon */
 
-SugarFavoriteActivityIcon:prelight {
-border-color: @selection_grey;
-border-radius: $(2 * thickness)px;
-border-width: $(thickness)px;
+SugarFavoriteActivityIcon {
+border-color: transparent;
+border-radius: $(4 * thickness)px;
+border-width: 2px;
 border-style: solid;
 }
 
+SugarFavoriteActivityIcon:prelight {
+border-color: @zoom_views_prelight;
+background-color: @zoom_views_prelight;
+}
+
+SugarFavoriteActivityIcon:active {
+border-color: @zoom_views_active;
+background-color: @zoom_views_active;
+}
+
 /* Text cursor handles */
 
 .cursor-handle.top,
diff --git a/gtk3/theme/gtk.css b/gtk3/theme/gtk.css
index 8b55cc6..9be9b8f 100644
--- a/gtk3/theme/gtk.css
+++ b/gtk3/theme/gtk.css
@@ -9,6 +9,8 @@
 @define-color row_even #E5E5E5;
 @define-color row_odd #D5D5D5;
 @define-color white #FF;
+@define-color zoom_views_prelight #E8E8E8;
+@define-color zoom_views_active #B3B3B3;
 
 /* Default color scheme */
 @define-color base_color #ff;
-- 
1.7.11.4

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] ImageViewer (gtk3) traceback

2012-10-04 Thread Daniel Narvaez
If we are taking this approach, it would be nice to just restore the
previous behaviour as a first step, so that buildbot goes back green.

On Thursday, 4 October 2012, Gary Martin wrote:


 On 4 Oct 2012, at 15:29, Manuel Quiñones ma...@laptop.org javascript:;
 wrote:

  2012/10/4 Agustin Zubiaga Sanchez a...@sugarlabs.org javascript:;:
  Yes, It's intentional because If you not open any image it instance
 will be
  unusable.
  Is that ok?
 
  Interesting issue.  ImageViewer doesn't have a way to open an image
  after you close the object chooser.  I think we should add a message
  with a '+' button at the center of the canvas that opens the object
  chooser.  Exactly like this proposal for Jukebox:
 
 
 http://bugs.sugarlabs.org/attachment/ticket/3714/Jukebox_playlist_functional_and_informational.png
 
  The message string can be something like No image + add image

 +1

 Nice solution :)

 /me wonders if he dare mention this to Gonzalo as a solution for the same
 issue in Read

 --Gary

  --
  .. manuq ..
  ___
  Sugar-devel mailing list
  Sugar-devel@lists.sugarlabs.org javascript:;
  http://lists.sugarlabs.org/listinfo/sugar-devel



-- 
Daniel Narvaez
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] ImageViewer (gtk3) traceback

2012-10-04 Thread Manuel Quiñones
2012/10/4 Daniel Narvaez dwnarv...@gmail.com:
 If we are taking this approach, it would be nice to just restore the
 previous behaviour as a first step, so that buildbot goes back green.

Yes! +1

Thanks for letting us know, buildbot!

-- 
.. manuq ..
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH Jukebox 1/8] Use a notebook in the visualization area

2012-10-04 Thread Manuel Kaufmann
Previously an empty widget and a videowidget were packed and removed
from a container, but there are problems with the video widget not
ready when the player want start at times.

Signed-off-by: Gonzalo Odiard gonz...@laptop.org
Signed-off-by: Manuel Kaufmann humi...@gmail.com
---
 jukeboxactivity.py | 25 -
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/jukeboxactivity.py b/jukeboxactivity.py
index aebbc98..5132c68 100644
--- a/jukeboxactivity.py
+++ b/jukeboxactivity.py
@@ -150,8 +150,8 @@ class JukeboxActivity(activity.Activity):
 self._empty_widget = Gtk.Label(label=)
 self._empty_widget.show()
 self.videowidget = VideoWidget()
-self._switch_canvas(show_video=False)
 self.set_canvas(self.canvas)
+self._init_view_area()
 self.show_all()
 self.canvas.connect('size-allocate', self.__size_allocate_cb)
 
@@ -165,6 +165,18 @@ class JukeboxActivity(activity.Activity):
 self.uri = handle.uri
 GObject.idle_add(self._start, self.uri, handle.title)
 
+def _init_view_area(self):
+
+Use a notebook with two pages, one empty an another
+with the videowidget
+
+self.view_area = Gtk.Notebook()
+self.view_area.set_show_tabs(False)
+self.view_area.append_page(self._empty_widget, None)
+self.view_area.append_page(self.videowidget, None)
+self.canvas.pack_end(self.view_area, expand=True,
+ fill=True, padding=0)
+
 def _switch_canvas(self, show_video):
 Show or hide the video visualization in the canvas.
 
@@ -173,11 +185,9 @@ class JukeboxActivity(activity.Activity):
 
 
 if show_video:
-self.canvas.remove(self._empty_widget)
-self.canvas.pack_end(self.videowidget, True, True, 0)
+self.view_area.set_current_page(1)
 else:
-self.canvas.pack_end(self._empty_widget, True, True, 0)
-self.canvas.remove(self.videowidget)
+self.view_area.set_current_page(0)
 self.canvas.queue_draw()
 
 def __get_tags_cb(self, tags_reader, order, tags):
@@ -288,10 +298,7 @@ class JukeboxActivity(activity.Activity):
 self.player.stop()
 self.player.set_uri(None)
 self.control.set_disabled()
-self.canvas.remove(self.videowidget)
-text = Gtk.Label(Error: %s - %s % (message, detail))
-text.show_all()
-self.canvas.add(text)
+self._show_error_alert(Error: %s - %s % (message, detail))
 
 def _player_new_tag_cb(self, widget, tag, value):
 if not tag in [gst.TAG_TITLE, gst.TAG_ARTIST, gst.TAG_ALBUM]:
-- 
1.7.11.4

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH Jukebox 2/8] Remove capsfilter filter because of performance

2012-10-04 Thread Manuel Kaufmann
Without this filter the performance to reproduce videos is great and
in audio files the visualization performance is improved as well. The
only consequense is the text (artist, track, etc) is rendered without
antialiasing.

Signed-off-by: Gonzalo Odiard gonz...@laptop.org
Signed-off-by: Manuel Kaufmann humi...@gmail.com
---
 jukeboxactivity.py | 19 +--
 1 file changed, 1 insertion(+), 18 deletions(-)

diff --git a/jukeboxactivity.py b/jukeboxactivity.py
index 5132c68..45bb333 100644
--- a/jukeboxactivity.py
+++ b/jukeboxactivity.py
@@ -754,22 +754,6 @@ class GstPlayer(GObject.GObject):
 self.bin.add_pad(ghostpad)
 videoscale.set_property(method, 0)
 
-caps_string = video/x-raw-yuv, 
-r = self.videowidget.get_allocation()
-if r.width  500 and r.height  500:
-# Sigh... xvimagesink on the XOs will scale the video to fit
-# but ximagesink in Xephyr does not.  So we live with unscaled
-# video in Xephyr so that the XO can work right.
-w = 480
-h = float(w) / float(float(r.width) / float(r.height))
-caps_string += width=%d, height=%d % (w, h)
-else:
-caps_string += width=480, height=360
-caps = gst.Caps(caps_string)
-self.filter = gst.element_factory_make(capsfilter, filter)
-self.bin.add(self.filter)
-self.filter.set_property(caps, caps)
-
 textoverlay = gst.element_factory_make('textoverlay')
 self.overlay = textoverlay
 self.bin.add(textoverlay)
@@ -777,8 +761,7 @@ class GstPlayer(GObject.GObject):
 self.bin.add(conv)
 videosink = gst.element_factory_make('autovideosink')
 self.bin.add(videosink)
-gst.element_link_many(videoscale, self.filter, textoverlay, conv,
-videosink)
+gst.element_link_many(videoscale, textoverlay, conv, videosink)
 self.player.set_property(video-sink, self.bin)
 
 def set_overlay(self, title, artist, album):
-- 
1.7.11.4

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH Jukebox 5/8] Use 'playbin2' instead of 'playbin'

2012-10-04 Thread Manuel Kaufmann
'playbin' is obsolete and not should be used. I was told in #gstreamer
(irc.freenode.net) that 'playbin' is no longer supported, that has
some bugs and shouldn't be used anymore. It should be changed by
'playbin2'

I had to set some flags as well to keep showing the 'vis-plugin' with
'playbin2' player.

Signed-off-by: Manuel Kaufmann humi...@gmail.com
---
 jukeboxactivity.py | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/jukeboxactivity.py b/jukeboxactivity.py
index 11e1331..5c02d23 100644
--- a/jukeboxactivity.py
+++ b/jukeboxactivity.py
@@ -698,7 +698,13 @@ class GstPlayer(GObject.GObject):
 self.playing = False
 self.error = False
 
-self.player = gst.element_factory_make(playbin, player)
+self.player = gst.element_factory_make(playbin2, player)
+
+# Set the proper flags to render the vis-plugin
+GST_PLAY_FLAG_VIS = 1  3
+GST_PLAY_FLAG_TEXT = 1  2
+self.player.props.flags |= GST_PLAY_FLAG_VIS
+self.player.props.flags |= GST_PLAY_FLAG_TEXT
 
 r = gst.registry_get_default()
 l = [x for x in r.get_feature_list(gst.ElementFactory)
-- 
1.7.11.4

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH Jukebox 3/8] Stop the player when the user is reproducing a video and switch to another activity.

2012-10-04 Thread Manuel Kaufmann

Signed-off-by: Manuel Kaufmann humi...@gmail.com
---
 jukeboxactivity.py | 20 +---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/jukeboxactivity.py b/jukeboxactivity.py
index 45bb333..97c2de4 100644
--- a/jukeboxactivity.py
+++ b/jukeboxactivity.py
@@ -101,6 +101,11 @@ class JukeboxActivity(activity.Activity):
 
 self.connect(key_press_event, self._key_press_event_cb)
 
+# We want to be notified when the activity gets the focus or
+# loses it.  When it is not active, we don't need to keep
+# reproducing the video
+self.connect(notify::active, self._notify_active_cb)
+
 # FIXME: this is related with shared activity and it doesn't work
 # if handle.uri:
 # pass
@@ -126,7 +131,6 @@ class JukeboxActivity(activity.Activity):
 self.playflag = False
 self.tags = {}
 self.only_audio = False
-self.got_stream_info = False
 
 self.tag_reader = TagReader()
 self.tag_reader.connect('get-tags', self.__get_tags_cb)
@@ -165,6 +169,17 @@ class JukeboxActivity(activity.Activity):
 self.uri = handle.uri
 GObject.idle_add(self._start, self.uri, handle.title)
 
+def _notify_active_cb(self, widget, event):
+Sugar notify us that the activity is becoming active or inactive.
+When we are inactive, we stop the player if it is reproducing
+a video.
+
+if self.player is not None and not self.only_audio:
+if not self.player.is_playing() and self.props.active:
+self.player.play()
+if self.player.is_playing() and not self.props.active:
+self.player.pause()
+
 def _init_view_area(self):
 
 Use a notebook with two pages, one empty an another
@@ -319,7 +334,7 @@ class JukeboxActivity(activity.Activity):
 self.tags[gst.TAG_ARTIST], album)
 
 def _player_stream_info_cb(self, widget, stream_info):
-if not len(stream_info) or self.got_stream_info:
+if not len(stream_info):
 return
 
 GST_STREAM_TYPE_UNKNOWN = 0
@@ -332,7 +347,6 @@ class JukeboxActivity(activity.Activity):
 if item.props.type == GST_STREAM_TYPE_VIDEO:
 only_audio = False
 self.only_audio = only_audio
-self.got_stream_info = True
 self._update_overlay()
 
 def _joined_cb(self, activity):
-- 
1.7.11.4

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH Jukebox 4/8] Create GstPlayer just once

2012-10-04 Thread Manuel Kaufmann
Instanciating GstPlayer when Jukebox is launched and changing its uri
when a new stream is played. This allow us to change between different
streams in the playlist without having many memory issues regarding
video playing in HD.

To change the stream being played in the GstPlayer instance we firstly
set the state of it to STATE_PAUSED, then to STATE_NULL and finally we
change the uri. When this process finishes we change the state again
to STATE_PLAYING.

Signed-off-by: Manuel Kaufmann humi...@gmail.com
---
 jukeboxactivity.py | 31 +--
 1 file changed, 13 insertions(+), 18 deletions(-)

diff --git a/jukeboxactivity.py b/jukeboxactivity.py
index 97c2de4..11e1331 100644
--- a/jukeboxactivity.py
+++ b/jukeboxactivity.py
@@ -169,12 +169,20 @@ class JukeboxActivity(activity.Activity):
 self.uri = handle.uri
 GObject.idle_add(self._start, self.uri, handle.title)
 
+# Create the player just once
+logging.debug('Instantiating GstPlayer')
+self.player = GstPlayer(self.videowidget)
+self.player.connect(eos, self._player_eos_cb)
+self.player.connect(error, self._player_error_cb)
+self.player.connect(tag, self._player_new_tag_cb)
+self.player.connect(stream-info, self._player_stream_info_cb)
+
 def _notify_active_cb(self, widget, event):
 Sugar notify us that the activity is becoming active or inactive.
 When we are inactive, we stop the player if it is reproducing
 a video.
 
-if self.player is not None and not self.only_audio:
+if self.player.player.props.uri is not None and not self.only_audio:
 if not self.player.is_playing() and self.props.active:
 self.player.play()
 if self.player.is_playing() and not self.props.active:
@@ -269,12 +277,6 @@ class JukeboxActivity(activity.Activity):
 def play(self, media_index):
 self._switch_canvas(show_video=True)
 self.currentplaying = media_index
-self.player.stop()
-self.player = GstPlayer(self.videowidget)
-self.player.connect(eos, self._player_eos_cb)
-self.player.connect(error, self._player_error_cb)
-self.player.connect(tag, self._player_new_tag_cb)
-self.player.connect(stream-info, self._player_stream_info_cb)
 url = self.playlist[self.currentplaying]['url']
 error = None
 if url.startswith('journal://'):
@@ -289,7 +291,7 @@ class JukeboxActivity(activity.Activity):
 
 if error is None:
 self.player.set_uri(url)
-self.play_toggled()
+self.player.play()
 else:
 self.control.set_disabled()
 self._show_error_alert(error)
@@ -517,16 +519,6 @@ class JukeboxActivity(activity.Activity):
 if not error:
 self.tag_reader.set_file(url, len(self.playlist) - 1)
 
-if not self.player:
-# lazy init the player so that videowidget is realized
-# and has a valid widget allocation
-self._switch_canvas(show_video=True)
-self.player = GstPlayer(self.videowidget)
-self.player.connect(eos, self._player_eos_cb)
-self.player.connect(error, self._player_error_cb)
-self.player.connect(tag, self._player_new_tag_cb)
-self.player.connect(stream-info, self._player_stream_info_cb)
-
 self.playlist_widget.update(self.playlist)
 
 try:
@@ -538,6 +530,7 @@ class JukeboxActivity(activity.Activity):
 url = 'file://' + jobject.file_path
 
 self.player.set_uri(url)
+self.player.play()
 self.currentplaying = 0
 self.play_toggled()
 self.show_all()
@@ -728,6 +721,8 @@ class GstPlayer(GObject.GObject):
 bus.connect('message', self.on_message)
 
 def set_uri(self, uri):
+self.player.set_state(gst.STATE_PAUSED)
+self.player.set_state(gst.STATE_NULL)
 self.player.set_property('uri', uri)
 
 def on_sync_message(self, bus, message):
-- 
1.7.11.4

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH Jukebox 7/8] Do not pause the stream after adding a new one

2012-10-04 Thread Manuel Kaufmann
After the user adds the first stream to the playlist it is played
immediately and when a new stream is added, the first one is kept
playing.

Signed-off-by: Manuel Kaufmann humi...@gmail.com
---
 jukeboxactivity.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/jukeboxactivity.py b/jukeboxactivity.py
index ea66d34..1ad5ff1 100644
--- a/jukeboxactivity.py
+++ b/jukeboxactivity.py
@@ -459,7 +459,7 @@ class JukeboxActivity(activity.Activity):
 self.playlist_widget.update(self.playlist)
 
 try:
-if not self.currentplaying:
+if self.currentplaying is None:
 logging.info(Playing:  + self.playlist[0]['url'])
 url = self.playlist[0]['url']
 if url.startswith('journal://'):
-- 
1.7.11.4

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH Jukebox 6/8] Tag reader feature removed

2012-10-04 Thread Manuel Kaufmann
I removed it because of performance. Jukebox was working too slow when
it was reproducing a video and it had to read the tag of the media
added to the playlist. So, we decided to remove this feature by the
moment.

Signed-off-by: Manuel Kaufmann humi...@gmail.com
---
 jukeboxactivity.py | 119 +
 1 file changed, 1 insertion(+), 118 deletions(-)

diff --git a/jukeboxactivity.py b/jukeboxactivity.py
index 5c02d23..ea66d34 100644
--- a/jukeboxactivity.py
+++ b/jukeboxactivity.py
@@ -129,11 +129,6 @@ class JukeboxActivity(activity.Activity):
 self.playpath = None
 self.currentplaying = None
 self.playflag = False
-self.tags = {}
-self.only_audio = False
-
-self.tag_reader = TagReader()
-self.tag_reader.connect('get-tags', self.__get_tags_cb)
 
 self.p_position = gst.CLOCK_TIME_NONE
 self.p_duration = gst.CLOCK_TIME_NONE
@@ -174,15 +169,13 @@ class JukeboxActivity(activity.Activity):
 self.player = GstPlayer(self.videowidget)
 self.player.connect(eos, self._player_eos_cb)
 self.player.connect(error, self._player_error_cb)
-self.player.connect(tag, self._player_new_tag_cb)
-self.player.connect(stream-info, self._player_stream_info_cb)
 
 def _notify_active_cb(self, widget, event):
 Sugar notify us that the activity is becoming active or inactive.
 When we are inactive, we stop the player if it is reproducing
 a video.
 
-if self.player.player.props.uri is not None and not self.only_audio:
+if self.player.player.props.uri is not None:
 if not self.player.is_playing() and self.props.active:
 self.player.play()
 if self.player.is_playing() and not self.props.active:
@@ -213,10 +206,6 @@ class JukeboxActivity(activity.Activity):
 self.view_area.set_current_page(0)
 self.canvas.queue_draw()
 
-def __get_tags_cb(self, tags_reader, order, tags):
-self.playlist[order]['title'] = tags['title']
-self.playlist_widget.update(self.playlist)
-
 def __size_allocate_cb(self, widget, allocation):
 canvas_size = self.canvas.get_allocation()
 playlist_width = int(canvas_size.width * PLAYLIST_WIDTH_PROP)
@@ -317,40 +306,6 @@ class JukeboxActivity(activity.Activity):
 self.control.set_disabled()
 self._show_error_alert(Error: %s - %s % (message, detail))
 
-def _player_new_tag_cb(self, widget, tag, value):
-if not tag in [gst.TAG_TITLE, gst.TAG_ARTIST, gst.TAG_ALBUM]:
-return
-self.tags[tag] = value
-self._update_overlay()
-
-def _update_overlay(self):
-if self.only_audio == False:
-return
-if not gst.TAG_TITLE in self.tags or \
-not gst.TAG_ARTIST in self.tags:
-return
-album = None
-if gst.TAG_ALBUM in self.tags:
-album = self.tags[gst.TAG_ALBUM]
-self.player.set_overlay(self.tags[gst.TAG_TITLE],
-self.tags[gst.TAG_ARTIST], album)
-
-def _player_stream_info_cb(self, widget, stream_info):
-if not len(stream_info):
-return
-
-GST_STREAM_TYPE_UNKNOWN = 0
-GST_STREAM_TYPE_AUDIO = 1
-GST_STREAM_TYPE_VIDEO = 2
-GST_STREAM_TYPE_TEXT = 3
-
-only_audio = True
-for item in stream_info:
-if item.props.type == GST_STREAM_TYPE_VIDEO:
-only_audio = False
-self.only_audio = only_audio
-self._update_overlay()
-
 def _joined_cb(self, activity):
 logging.debug(someone joined)
 pass
@@ -500,24 +455,6 @@ class JukeboxActivity(activity.Activity):
 else:
 uri = file:// + urllib.quote(os.path.abspath(uri))
 self.playlist.append({'url': uri, 'title': title})
-if uri.endswith(title) or title is None or title == '' or \
-object_id is not None:
-error = False
-logging.error('Try get a better title reading tags')
-# TODO: unify this code
-url = self.playlist[len(self.playlist) - 1]['url']
-if url.find('home')  0:
-url = url[len(journal://):]
-url = 'file://' + url
-elif url.startswith('journal://'):
-try:
-jobject = datastore.get(url[len(journal://):])
-url = 'file://' + jobject.file_path
-except:
-error = True
-# jobject.destroy() ??
-if not error:
-self.tag_reader.set_file(url, len(self.playlist) - 1)
 
 self.playlist_widget.update(self.playlist)
 
@@ -642,54 +579,11 @@ class JukeboxActivity(activity.Activity):
 self.canvas.queue_draw()
 
 
-class TagReader(GObject.GObject):
-
-__gsignals__ = {
-'get-tags': 

[Sugar-devel] [PATCH Jukebox 8/8] Port gst 0.10 to Gst 1.0

2012-10-04 Thread Manuel Kaufmann
Useful guide:

 * https://wiki.ubuntu.com/Novacut/GStreamer1.0

Signed-off-by: Manuel Kaufmann humi...@gmail.com
---
 jukeboxactivity.py | 180 ++---
 1 file changed, 90 insertions(+), 90 deletions(-)

diff --git a/jukeboxactivity.py b/jukeboxactivity.py
index 1ad5ff1..48a5aa8 100644
--- a/jukeboxactivity.py
+++ b/jukeboxactivity.py
@@ -40,15 +40,23 @@ from sugar3.graphics.alert import ErrorAlert
 
 import gi
 gi.require_version('Gtk', '3.0')
+gi.require_version('Gst', '1.0')
 
 from gi.repository import GObject
 from gi.repository import Gdk
-
-import pygst
-pygst.require('0.10')
-import gst
-import gst.interfaces
 from gi.repository import Gtk
+from gi.repository import Gst
+
+# Needed for window.get_xid(), xvimagesink.set_window_handle(),
+# respectively:
+from gi.repository import GdkX11, GstVideo
+
+# Avoid Fatal Python error: GC object already tracked
+# 
http://stackoverflow.com/questions/7496629/gstreamer-appsrc-causes-random-crashes
+GObject.threads_init()
+
+# Initialize GStreamer
+Gst.init(None)
 
 import urllib
 from ControlToolbar import Control, ViewToolbar
@@ -130,9 +138,6 @@ class JukeboxActivity(activity.Activity):
 self.currentplaying = None
 self.playflag = False
 
-self.p_position = gst.CLOCK_TIME_NONE
-self.p_duration = gst.CLOCK_TIME_NONE
-
 # README: I changed this because I was getting an error when I
 # tried to modify self.bin with something different than
 # Gtk.Bin
@@ -169,6 +174,8 @@ class JukeboxActivity(activity.Activity):
 self.player = GstPlayer(self.videowidget)
 self.player.connect(eos, self._player_eos_cb)
 self.player.connect(error, self._player_error_cb)
+self.p_position = Gst.CLOCK_TIME_NONE
+self.p_duration = Gst.CLOCK_TIME_NONE
 
 def _notify_active_cb(self, widget, event):
 Sugar notify us that the activity is becoming active or inactive.
@@ -524,7 +531,7 @@ class JukeboxActivity(activity.Activity):
 real = long(scale.get_value() * self.p_duration / 100)  # in ns
 self.player.seek(real)
 # allow for a preroll
-self.player.get_state(timeout=50 * gst.MSECOND)  # 50 ms
+self.player.get_state(timeout=50 * Gst.MSECOND)  # 50 ms
 
 def scale_button_release_cb(self, widget, event):
 # see seek.cstop_seek
@@ -546,8 +553,13 @@ class JukeboxActivity(activity.Activity):
 self.update_scale_cb)
 
 def update_scale_cb(self):
-self.p_position, self.p_duration = self.player.query_position()
-if self.p_position != gst.CLOCK_TIME_NONE:
+success, self.p_position, self.p_duration = \
+self.player.query_position()
+
+if not success:
+return True
+
+if self.p_position != Gst.CLOCK_TIME_NONE:
 value = self.p_position * 100.0 / self.p_duration
 self.control.adjustment.set_value(value)
 
@@ -558,7 +570,7 @@ class JukeboxActivity(activity.Activity):
 
 # FIXME: this should be updated just once when the file starts
 # the first time
-if self.p_duration != gst.CLOCK_TIME_NONE:
+if self.p_duration != Gst.CLOCK_TIME_NONE:
 seconds = self.p_duration * 10 ** -9
 time = '%2d:%02d' % (int(seconds / 60), int(seconds % 60))
 self.control.total_time_label.set_text(time)
@@ -592,7 +604,22 @@ class GstPlayer(GObject.GObject):
 self.playing = False
 self.error = False
 
-self.player = gst.element_factory_make(playbin2, player)
+# Create GStreamer pipeline
+self.pipeline = Gst.Pipeline()
+# Create bus to get events from GStreamer pipeline
+self.bus = self.pipeline.get_bus()
+self.bus.add_signal_watch()
+
+self.bus.connect('message::eos', self.__on_eos_message)
+self.bus.connect('message::error', self.__on_error_message)
+
+# This is needed to make the video output in our DrawingArea
+self.bus.enable_sync_message_emission()
+self.bus.connect('sync-message::element', self.__on_sync_message)
+
+# Create GStreamer elements
+self.player = Gst.ElementFactory.make('playbin', None)
+self.pipeline.add(self.player)
 
 # Set the proper flags to render the vis-plugin
 GST_PLAY_FLAG_VIS = 1  3
@@ -600,12 +627,12 @@ class GstPlayer(GObject.GObject):
 self.player.props.flags |= GST_PLAY_FLAG_VIS
 self.player.props.flags |= GST_PLAY_FLAG_TEXT
 
-r = gst.registry_get_default()
-l = [x for x in r.get_feature_list(gst.ElementFactory)
-if (gst.ElementFactory.get_klass(x) == Visualization)]
+r = Gst.Registry.get()
+l = [x for x in r.get_feature_list(Gst.ElementFactory)
+ if (x.get_metadata('klass') == Visualization)]
 if len(l):
 e = l.pop()  # take latest plugin in the list
-vis_plug = 

Re: [Sugar-devel] ImageViewer (gtk3) traceback

2012-10-04 Thread Manuel Kaufmann
On Thu, Oct 4, 2012 at 1:54 PM, Gary Martin garycmar...@googlemail.com wrote:
 /me wonders if he dare mention this to Gonzalo as a solution for the same 
 issue in Read

Maybe we can design a widget for this and include it in
sugar-toolkit-gtk3 so we will have more consistency between
activities. What do you think?

-- 
Kaufmann Manuel
Blog: http://humitos.wordpress.com/
Porfolio: http://fotos.mkaufmann.com.ar/
PyAr: http://www.python.com.ar/
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] Jukebox patches

2012-10-04 Thread Gonzalo Odiard
Great work.

Gonzalo

On Thu, Oct 4, 2012 at 2:37 PM, Manuel Kaufmann humi...@gmail.com wrote:

 Hello people,

 I've just sent 8 patches to the sugar-devel mailing list for Jukebox.
 Seven of them are those ones that were applied to the sugar-0.98
 (gtk2) branch that I ported to the master branch. The last one is
 the port of gstreamer from 0.10 to 1.0.

 Yesterday I was working a lot on Jukebox itself, removing some old
 code, rewriting some other functions and doing some bugfixing as well.
 I'm preparing some patches that I will be sending later.

 Thanks,

 --
 Kaufmann Manuel
 Blog: http://humitos.wordpress.com/
 Porfolio: http://fotos.mkaufmann.com.ar/
 PyAr: http://www.python.com.ar/

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] Jukebox patches

2012-10-04 Thread Manuel Kaufmann
Hello people,

I've just sent 8 patches to the sugar-devel mailing list for Jukebox.
Seven of them are those ones that were applied to the sugar-0.98
(gtk2) branch that I ported to the master branch. The last one is
the port of gstreamer from 0.10 to 1.0.

Yesterday I was working a lot on Jukebox itself, removing some old
code, rewriting some other functions and doing some bugfixing as well.
I'm preparing some patches that I will be sending later.

Thanks,

-- 
Kaufmann Manuel
Blog: http://humitos.wordpress.com/
Porfolio: http://fotos.mkaufmann.com.ar/
PyAr: http://www.python.com.ar/
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] ImageViewer (gtk3) traceback

2012-10-04 Thread Manuel Quiñones
2012/10/4 Manuel Kaufmann humi...@gmail.com:
 On Thu, Oct 4, 2012 at 1:54 PM, Gary Martin garycmar...@googlemail.com 
 wrote:
 /me wonders if he dare mention this to Gonzalo as a solution for the same 
 issue in Read

 Maybe we can design a widget for this and include it in
 sugar-toolkit-gtk3 so we will have more consistency between
 activities. What do you think?

Yes, I'm sure we will get that generalized at one point, there's also
duplicated code for the same in the Journal and home list view when
there are not matches.  Just not this cycle.

-- 
.. manuq ..
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [ASLO] Release Analyze Journal-2

2012-10-04 Thread Sugar Labs Activities
Activity Homepage:
http://activities.sugarlabs.org/addon/4545

Sugar Platform:
0.86 - 0.98

Download Now:
http://activities.sugarlabs.org/downloads/file/28257/analyze_journal-2.xo

Release notes:
2

ENHANCEMENTS:

* New translations
* Journal chart
* Turtle chart



Sugar Labs Activities
http://activities.sugarlabs.org

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread Gary Martin
On 4 Oct 2012, at 16:48, Manuel Quiñones ma...@laptop.org wrote:

 2012/10/4 Gonzalo Odiard godi...@sugarlabs.org:
 
 
 On Thu, Oct 4, 2012 at 12:00 PM, Martin Langhoff martin.langh...@gmail.com
 wrote:
 
 On Thu, Oct 4, 2012 at 10:33 AM, Gonzalo Odiard godi...@sugarlabs.org
 wrote:
 We are sorting by localized name.
 It's true than the order will be different if you use a different
 language,
 but we think is better for the users.
 
 Less consistency in icon location better? How?
 
 
 You have less consistency only if you change the language.
 99.9% of our users will not do it,
 and will prefer have a consistent order = alphabetic.
 
 Navegar is after Medir, does not have sense have it sorted as Browse
 
 Have sense use the same order in the listview and in the favorites view too.
 
 In internal discussions with Gary and Simon I gave +1 for alphabetic
 ordering in list view, and -1 for favs view.  My cons were: 1.
 inconsistency between languages for first boot layout, 2. icons
 displacement while switching language 3. I like how new added
 activities appear right at the top of the buddy icon head.  I think
 alpha ordering have no sense in only-icons views.

I'm still +1 for localised alphabetical ordering.

Installation date ordering (e.g. modification date of Activity) is rather 
arbitrary and unstable, you have no idea where anything will be, and they keep 
changing over time. Alphabetical sorting on the localised names provides a 
stable, understandable sort order for both list and favourite views (unless you 
are frequently switching between locales, a minority edge case). For newly 
added activities, they will first appear as grey stroke icons, so unless you've 
not been not using your favourite Activities, the new one should be reasonably 
obvious, and we have a nice search feature if you have a large number installed.

Regarding screenshots for documentation (mentioned by Martin), I would argue 
this is a relatively minor case, less than the previous date sort case where 
documentation screen shots, over time, have icons in seemingly arbitrary 
positions as the documentation authors update to different activity versions. 
Martin, could you clarify this example a little more, did you have some 
specific documentation task in mind?

Regards,
--Gary

 -- 
 .. manuq ..
 ___
 Sugar-devel mailing list
 Sugar-devel@lists.sugarlabs.org
 http://lists.sugarlabs.org/listinfo/sugar-devel

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [ASLO] Release Pippy-50

2012-10-04 Thread Sugar Labs Activities
Activity Homepage:
http://activities.sugarlabs.org/addon/4041

Sugar Platform:
0.96 - 0.98

Download Now:
http://activities.sugarlabs.org/downloads/file/28259/pippy-50.xo

Release notes:
* Initial GTK3 version (Flavio Danesse fdane...@activitycentral.com, Rafael 
Ortiz raf...@activitycentral.com ) .

== Sources ==
* http://download.sugarlabs.org/sources/sucrose/fructose/Pippy/Pippy-50.tar.bz2



Sugar Labs Activities
http://activities.sugarlabs.org

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread Manuel Quiñones
2012/10/4 Gary Martin garycmar...@googlemail.com:
 On 4 Oct 2012, at 16:48, Manuel Quiñones ma...@laptop.org wrote:

 2012/10/4 Gonzalo Odiard godi...@sugarlabs.org:


 On Thu, Oct 4, 2012 at 12:00 PM, Martin Langhoff martin.langh...@gmail.com
 wrote:

 On Thu, Oct 4, 2012 at 10:33 AM, Gonzalo Odiard godi...@sugarlabs.org
 wrote:
 We are sorting by localized name.
 It's true than the order will be different if you use a different
 language,
 but we think is better for the users.

 Less consistency in icon location better? How?


 You have less consistency only if you change the language.
 99.9% of our users will not do it,
 and will prefer have a consistent order = alphabetic.

 Navegar is after Medir, does not have sense have it sorted as Browse

 Have sense use the same order in the listview and in the favorites view too.

 In internal discussions with Gary and Simon I gave +1 for alphabetic
 ordering in list view, and -1 for favs view.  My cons were: 1.
 inconsistency between languages for first boot layout, 2. icons
 displacement while switching language 3. I like how new added
 activities appear right at the top of the buddy icon head.  I think
 alpha ordering have no sense in only-icons views.

 I'm still +1 for localised alphabetical ordering.

 Installation date ordering (e.g. modification date of Activity) is rather 
 arbitrary and unstable, you have no idea where anything will be, and they 
 keep changing over time. Alphabetical sorting on the localised names provides 
 a stable, understandable sort order for both list and favourite views (unless 
 you are frequently switching between locales, a minority edge case). For 
 newly added activities, they will first appear as grey stroke icons, so 
 unless you've not been not using your favourite Activities, the new one 
 should be reasonably obvious, and we have a nice search feature if you have a 
 large number installed.

 Regarding screenshots for documentation (mentioned by Martin), I would argue 
 this is a relatively minor case, less than the previous date sort case where 
 documentation screen shots, over time, have icons in seemingly arbitrary 
 positions as the documentation authors update to different activity versions. 
 Martin, could you clarify this example a little more, did you have some 
 specific documentation task in mind?

OK Gary.  Regarding easy location of new added activities, I remember
someone mentioned an animated appearence as alternative.  Of course
not for this cycle.


-- 
.. manuq ..
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [DESIGN] Proposal: Contol-Panel packaging

2012-10-04 Thread Peter Robinson
On Fri, Jul 27, 2012 at 2:51 AM, Jerry Vonau jvo...@shaw.ca wrote:
 Hi All:

 I would like to propose a feature for discussion and inclusion in the
 0.98 cycle is packaging all control-panel applets as rpms. As this
 discussion does not impact the UI and more of a packaging issue I'm an
 not creating a Features page. The discussion can take place here on the
 mailing-list.

 The reasoning is that it should make it easier for downstream users of
 sugar to exclude applets that don't apply to their use case without
 having to patch them out. For example OLPC removes via their .spec file,
 the keyboard and updater applets from their builds and uses their own
 version of an updater supplied as an rpm.

 Dextrose is using this idea to now to partly split up the what is
 available to install at rpm generation time[1]. I have found this useful
 from a deployment perspective by being able to exclude applets that are
 unwanted or need further development from the final image.

 The current code base and workflow would not be changed, except a
 revised sugar.spec file would generate more that just the sugar rpm when
 run, like how it is done now for sugar-emulator. Deployment level users
 of sugar would then need to state which applets to include in their
 image at image creation time. This will allow development of applets to
 evolve without having to reinstall all of sugar in the field for a
 change to an applet.

 Any XO specific user tool like About my Computer and Power should
 not really be part of sugar but should be available to install on demand
 like OLPC's sugar-update-control and olpc-switch-desktop that are added
 to OLPC's sugar installation. SoaS might benefit from not shipping all
 the applets, omitting the ones that apply to XO hardware.

 This change might help development of new features in the control-panel
 area that later be incorporated into sugar once proven to work.

 Feedback and comments welcome,

I've pushed this and it will appear in the next build, feedback welcome.

I've left the AboutComputer and AboutMe built in and all the rest are
sub packages. There's a meta-package called sugar-cp-all which pulls
all the Control Panels packages in as well.

Sorry about the delay.

Peter
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [DESIGN] Proposal: Contol-Panel packaging

2012-10-04 Thread Jerry Vonau
On Thu, 2012-10-04 at 21:29 +0100, Peter Robinson wrote:
 On Fri, Jul 27, 2012 at 2:51 AM, Jerry Vonau jvo...@shaw.ca wrote:
  Hi All:
 
  I would like to propose a feature for discussion and inclusion in the
  0.98 cycle is packaging all control-panel applets as rpms. As this
  discussion does not impact the UI and more of a packaging issue I'm an
  not creating a Features page. The discussion can take place here on the
  mailing-list.
snip
  Feedback and comments welcome,
 
 I've pushed this and it will appear in the next build, feedback welcome.
 
 I've left the AboutComputer and AboutMe built in and all the rest are
 sub packages. There's a meta-package called sugar-cp-all which pulls
 all the Control Panels packages in as well.
 
 Sorry about the delay.

Thank you very much, reviewing now.

Jerry


___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] ImageViewer (gtk3) traceback

2012-10-04 Thread Agustin Zubiaga Sanchez
+1 for all.
Daniel, I have to discard the close, when the user don't choose any image?

Regards,
aguz

2012/10/4 Manuel Quiñones ma...@laptop.org

 2012/10/4 Manuel Kaufmann humi...@gmail.com:
  On Thu, Oct 4, 2012 at 1:54 PM, Gary Martin garycmar...@googlemail.com
 wrote:
  /me wonders if he dare mention this to Gonzalo as a solution for the
 same issue in Read
 
  Maybe we can design a widget for this and include it in
  sugar-toolkit-gtk3 so we will have more consistency between
  activities. What do you think?

 Yes, I'm sure we will get that generalized at one point, there's also
 duplicated code for the same in the Journal and home list view when
 there are not matches.  Just not this cycle.

 --
 .. manuq ..

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] ImageViewer (gtk3) traceback

2012-10-04 Thread Manuel Quiñones
2012/10/4 Agustin Zubiaga Sanchez a...@sugarlabs.org:
 +1 for all.
 Daniel, I have to discard the close, when the user don't choose any image?

Yes just revert that change as it was before, then you can add the
message in the empty canvas in another commit.


-- 
.. manuq ..
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread Martin Langhoff
On Thu, Oct 4, 2012 at 3:15 PM, Gary Martin garycmar...@googlemail.com wrote:
 Martin, could you clarify this example a little more,
 did you have some specific documentation task in mind?

I want to clarify that I see this patch as a big improvement, even
with localized sorting. +100.

We often prepare some screenshots for documentation (or the Sugar
documentation sprint does). Because Sugar is icon-oriented (and light
on strings) in the UI those screenshots are used and reused in
documentation most of the time.

In my experience, most local documentation efforts are a very quick
remix of existing documentation. First-time deployments don't even
have XOs in advance for the documentation team to get screenshots. If
they have XOs, they often lack the expertise (they are first-time
deployments, after all!). Gonzalo has seen this first-hand.

With the proposed patch + non-localized strings for fav view sorting
the home view remains (mostly) stable across all languages. Yes, it
changes if you add/remove/replace activities, but only slightly. The
relative position of activity icons remains mostly stable.

With the proposed patch sorting on localized strings for fav view,
each lang randomizes the sorting. Not so good, in my book, but not
the end of the world either.

Couple more notes

 - I completely support localized names sorting for list view.

 - For fav view the best sorting would be a fixed, OS build-time
configurable sorting to group/order activities.

cheers,



martin - who worries too much about a sorting scheme kids immediately
disable using the wherever I want it to be view.
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- Software Architect - OLPC
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] Call to Activities Maintainers! Summary info

2012-10-04 Thread S. Daniel Francis
2012/9/25 Gonzalo Odiard gonz...@laptop.org:
 Hi Activities maintainers,
 In the next Sugar version, a summary will be displayed in the activities
 list,
 instead of the installation time.

I'm sad hearing that.
Sugar gave children the possibility/need to explore and discover the
aim and functionality of each activity. (Tested by myself.) I think
this is a really well planned thing in Sugar.
Is really needed a summary in this educational environment?

Cheers,
Daniel Francis.
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] ImageViewer (gtk3) traceback

2012-10-04 Thread Agustin Zubiaga Sanchez
Well, I reversed this change [1]
I will add the message in the empty canvas.

[1] git.sugarlabs.org/imageviewer/mainline/commit/2269f7a8

Regards,
aguz

2012/10/4 Manuel Quiñones ma...@laptop.org

 2012/10/4 Agustin Zubiaga Sanchez a...@sugarlabs.org:
  +1 for all.
  Daniel, I have to discard the close, when the user don't choose any
 image?

 Yes just revert that change as it was before, then you can add the
 message in the empty canvas in another commit.


 --
 .. manuq ..

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH] Sort the activities in the home in alphabetic order

2012-10-04 Thread Gonzalo Odiard
Guys,
The favorites view, will change in every xo:

* Because the user select/deselect activities as favorite.
* Because the user add/remove activities.

The best we can do is provide a coherent order.
Alphabetical using the localized numbers and the same order than in the
list view,
is the best in my opinion.

I can't see the value of have a screenshot with the icons in the same order
than a documentation. Specially when we can't achieve have a updated
documentation since Sugar 0.82 ... :/

Gonzalo


On Thu, Oct 4, 2012 at 10:50 PM, Martin Langhoff
martin.langh...@gmail.comwrote:

 On Thu, Oct 4, 2012 at 3:15 PM, Gary Martin garycmar...@googlemail.com
 wrote:
  Martin, could you clarify this example a little more,
  did you have some specific documentation task in mind?

 I want to clarify that I see this patch as a big improvement, even
 with localized sorting. +100.

 We often prepare some screenshots for documentation (or the Sugar
 documentation sprint does). Because Sugar is icon-oriented (and light
 on strings) in the UI those screenshots are used and reused in
 documentation most of the time.

 In my experience, most local documentation efforts are a very quick
 remix of existing documentation. First-time deployments don't even
 have XOs in advance for the documentation team to get screenshots. If
 they have XOs, they often lack the expertise (they are first-time
 deployments, after all!). Gonzalo has seen this first-hand.

 With the proposed patch + non-localized strings for fav view sorting
 the home view remains (mostly) stable across all languages. Yes, it
 changes if you add/remove/replace activities, but only slightly. The
 relative position of activity icons remains mostly stable.

 With the proposed patch sorting on localized strings for fav view,
 each lang randomizes the sorting. Not so good, in my book, but not
 the end of the world either.

 Couple more notes

  - I completely support localized names sorting for list view.

  - For fav view the best sorting would be a fixed, OS build-time
 configurable sorting to group/order activities.

 cheers,



 martin - who worries too much about a sorting scheme kids immediately
 disable using the wherever I want it to be view.
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- Software Architect - OLPC
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff




-- 
Gonzalo Odiard
SugarLabs Argentina
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH shell 1/3] Get back spacing between activity icon and hover border

2012-10-04 Thread Manuel Quiñones
size_request is deprecated and get_preferred_size should be used
instead.  We override the methods of EventIcon get_preferred_width and
get_preferred_height because they are simpler to use from python, no
need to make a requisition object, just return integers.

Signed-off-by: Manuel Quiñones ma...@laptop.org
---
 src/jarabe/desktop/favoriteslayout.py |  7 ---
 src/jarabe/desktop/favoritesview.py   | 13 +
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/jarabe/desktop/favoriteslayout.py 
b/src/jarabe/desktop/favoriteslayout.py
index c2bf8f5..e9f614e 100644
--- a/src/jarabe/desktop/favoriteslayout.py
+++ b/src/jarabe/desktop/favoriteslayout.py
@@ -380,13 +380,14 @@ class RingLayout(ViewLayout):
 x, y = self._calculate_position(radius, icon_size, n,
 len(children), allocation.width,
 allocation.height)
-child.size_request()
 child.set_size(icon_size)
+new_width = child.get_preferred_width()[0]
+new_height = child.get_preferred_height()[0]
 child_allocation = Gdk.Rectangle()
 child_allocation.x = allocation.x + x
 child_allocation.y = allocation.y + y
-child_allocation.width = icon_size
-child_allocation.height = icon_size
+child_allocation.width = new_width
+child_allocation.height = new_height
 child.size_allocate(child_allocation)
 
 def compare_activities(self, icon_a, icon_b):
diff --git a/src/jarabe/desktop/favoritesview.py 
b/src/jarabe/desktop/favoritesview.py
index cfe18eb..b727e0e 100644
--- a/src/jarabe/desktop/favoritesview.py
+++ b/src/jarabe/desktop/favoritesview.py
@@ -447,10 +447,15 @@ class ActivityIcon(EventIcon):
  allocation.width,
  allocation.height)
 
-def do_size_request(self, req):
-EventIcon.do_size_request(self, req)
-req.height += ActivityIcon._BORDER_WIDTH * 2
-req.width += ActivityIcon._BORDER_WIDTH * 2
+def do_get_preferred_width(self):
+width = EventIcon.do_get_preferred_width(self)[0]
+width += ActivityIcon._BORDER_WIDTH * 2
+return (width, width)
+
+def do_get_preferred_height(self):
+height = EventIcon.do_get_preferred_height(self)[0]
+height += ActivityIcon._BORDER_WIDTH * 2
+return (height, height)
 
 def __button_release_event_cb(self, icon, event):
 self._activate()
-- 
1.7.11.4

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH shell 2/3] Home view: add active state to activity icons for tap and click feedback

2012-10-04 Thread Manuel Quiñones
- Set the activity icon state to 'active' when it is pressed.  This
  state can then be styled in the theme.

- Set the activity icon state to 'prelight' when its palette pops up.

- Add a background render to the draw method to make the background of
  the icon styleable.

We have to connect to the palette invoker 'right-click' event and
reset the state in the palette 'popdown' event because the invoker
captures the mouse events and does not propagate them.  See
documentation in popup method of _PaletteMenuWidget in toolkit
palettewindow.py for reference.

Signed-off-by: Manuel Quiñones ma...@laptop.org
---
 src/jarabe/desktop/favoritesview.py | 48 +
 1 file changed, 44 insertions(+), 4 deletions(-)

diff --git a/src/jarabe/desktop/favoritesview.py 
b/src/jarabe/desktop/favoritesview.py
index b727e0e..4600341 100644
--- a/src/jarabe/desktop/favoritesview.py
+++ b/src/jarabe/desktop/favoritesview.py
@@ -361,8 +361,14 @@ class ActivityIcon(EventIcon):
 self._journal_entries = []
 self._resume_mode = True
 
+self._prelight_state = False
+self._active_state = False
+
 self.connect('enter-notify-event', self.__enter_notify_event_cb)
 self.connect('leave-notify-event', self.__leave_notify_event_cb)
+self.connect('button-press-event', self.__button_press_event_cb)
+self.palette_invoker.connect('right-click',
+ self.__invoker_right_click_cb)
 self.connect_after('button-release-event',
self.__button_release_event_cb)
 
@@ -424,6 +430,8 @@ class ActivityIcon(EventIcon):
 palette = FavoritePalette(self._activity_info, self._journal_entries)
 palette.connect('activate', self.__palette_activate_cb)
 palette.connect('entry-activate', self.__palette_entry_activate_cb)
+palette.connect('popup', self.__palette_popup_cb)
+palette.connect('popdown', self.__palette_popdown_cb)
 return palette
 
 def __palette_activate_cb(self, palette):
@@ -432,21 +440,47 @@ class ActivityIcon(EventIcon):
 def __palette_entry_activate_cb(self, palette, metadata):
 self._resume(metadata)
 
+def __palette_popup_cb(self, palette):
+self._prelight_state = Gtk.StateFlags.PRELIGHT
+self._active_state = False
+self._update_states()
+
+def __palette_popdown_cb(self, palette):
+self._prelight_state = False
+self._active_state = False
+self._update_states()
+
 def __enter_notify_event_cb(self, icon, event):
-self.set_state(Gtk.StateFlags.PRELIGHT)
+self._prelight_state = Gtk.StateFlags.PRELIGHT
+self._update_states()
 
 def __leave_notify_event_cb(self, icon, event):
-self.set_state(Gtk.StateFlags.NORMAL)
+if self.palette.is_up():
+return
+self._prelight_state = False
+self._update_states()
 
-def do_draw(self, cr):
-EventIcon.do_draw(self, cr)
+def __button_press_event_cb(self, icon, event):
+self._active_state = Gtk.StateFlags.ACTIVE
+self._update_states()
 
+def _update_states(self):
+state = self._active_state if self._active_state \
+else self._prelight_state
+self.set_state(state)
+
+def do_draw(self, cr):
 allocation = self.get_allocation()
 context = self.get_style_context()
+Gtk.render_background(context, cr, 0, 0,
+  allocation.width,
+  allocation.height)
 Gtk.render_frame(context, cr, 0, 0,
  allocation.width,
  allocation.height)
 
+EventIcon.do_draw(self, cr)
+
 def do_get_preferred_width(self):
 width = EventIcon.do_get_preferred_width(self)[0]
 width += ActivityIcon._BORDER_WIDTH * 2
@@ -457,7 +491,13 @@ class ActivityIcon(EventIcon):
 height += ActivityIcon._BORDER_WIDTH * 2
 return (height, height)
 
+def __invoker_right_click_cb(self, invoker):
+self._active_state = False
+self._update_states()
+
 def __button_release_event_cb(self, icon, event):
+self._active_state = False
+self._update_states()
 self._activate()
 
 def _resume(self, journal_entry):
-- 
1.7.11.4

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] [PATCH shell 3/3] Home favorites view: enlarge the size of the button to improve touch interaction

2012-10-04 Thread Manuel Quiñones
Note that this does not change the size of the icon inside the button,
but the area around.  The zone to tap - click is enlarged, and so it
is the feedback you see while hovering or performing a tap or click.

Signed-off-by: Manuel Quiñones ma...@laptop.org
---
 src/jarabe/desktop/favoritesview.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/jarabe/desktop/favoritesview.py 
b/src/jarabe/desktop/favoritesview.py
index 4600341..aae745a 100644
--- a/src/jarabe/desktop/favoritesview.py
+++ b/src/jarabe/desktop/favoritesview.py
@@ -350,7 +350,7 @@ class FavoritesView(ViewContainer):
 class ActivityIcon(EventIcon):
 __gtype_name__ = 'SugarFavoriteActivityIcon'
 
-_BORDER_WIDTH = style.zoom(3)
+_BORDER_WIDTH = style.zoom(9)
 _MAX_RESUME_ENTRIES = 5
 
 def __init__(self, activity_info):
-- 
1.7.11.4

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] Call to Activities Maintainers! Summary info

2012-10-04 Thread Alan Jhonn Aguiar Schwyn
 From: fran...@sugarlabs.org
 Date: Thu, 4 Oct 2012 23:16:22 -0300
 To: gonz...@laptop.org
 CC: sugar-devel@lists.sugarlabs.org; alsr...@activitycentral.org; 
 walter.ben...@gmail.com; ma...@laptop.org
 Subject: Re: [Sugar-devel] Call to Activities Maintainers! Summary info
 
 2012/9/25 Gonzalo Odiard gonz...@laptop.org:
  Hi Activities maintainers,
  In the next Sugar version, a summary will be displayed in the activities
  list,
  instead of the installation time.
 
 I'm sad hearing that.
 Sugar gave children the possibility/need to explore and discover the
 aim and functionality of each activity. (Tested by myself.) I think
 this is a really well planned thing in Sugar.
 Is really needed a summary in this educational environment?
I think that a minimal description is good. And remeber: the summary only is 
visiblein the view list, if you don't go there, you no see that..
 
 Cheers,
 Daniel Francis.
 ___
 Sugar-devel mailing list
 Sugar-devel@lists.sugarlabs.org
 http://lists.sugarlabs.org/listinfo/sugar-devel
  ___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel