Great - I like it, thanks for listing all the solutions to each point, makes it pleasant to review.

Saying text does not work yet, we have to investigate that - but is separate from this patch which is about making the Palette appear.

Please push,
   Simon


On 09/20/2012 04:41 AM, Manuel Quiñones wrote:
- Port palette with mixed content to new API.

- pack_start: the convert script got confused here.

- Gtk.HScale API change: set adjustment with set_adjustment method,
   not in the constructor.

- Gtk.Adjustment API change: use get_value method because value
   property was removed.

- Gdk.Clipboard API changes: Gtk.Clipboard.get needs a GdkAtom [1] and
   Gdk.SELECTION_PRIMARY is the one we need.
   Gtk.Clipboard.request_text needs another argument user_data [2],
   passing None seems to work, but maybe the annotations are wrong.

- fixed long lines and a few indentations

- fixed mispelled variable name 'adjustement' to 'adjustment'

[1] 
http://developer.gnome.org/gtk3/stable/gtk3-Clipboards.html#gtk-clipboard-get
[2] 
http://developer.gnome.org/gtk3/stable/gtk3-Clipboards.html#gtk-clipboard-request-text

Signed-off-by: Manuel Quiñones <ma...@laptop.org>
---
  extensions/deviceicon/speech.py | 44 ++++++++++++++++++++++++-----------------
  src/jarabe/model/speech.py      |  5 +++--
  2 files changed, 29 insertions(+), 20 deletions(-)

diff --git a/extensions/deviceicon/speech.py b/extensions/deviceicon/speech.py
index d89ad51..ba27e7a 100644
--- a/extensions/deviceicon/speech.py
+++ b/extensions/deviceicon/speech.py
@@ -24,8 +24,9 @@ from gi.repository import GObject
  from sugar3.graphics.icon import Icon
  from sugar3.graphics.tray import TrayIcon
  from sugar3.graphics.palette import Palette
+from sugar3.graphics.palettemenuitem import PaletteMenuItem
+from sugar3.graphics.palettemenuitem import PaletteMenuItemSeparator
  from sugar3.graphics.xocolor import XoColor
-from sugar3.graphics.menuitem import MenuItem
  from sugar3.graphics import style

  from jarabe.frame.frameinvoker import FrameWidgetInvoker
@@ -74,47 +75,54 @@ class SpeechPalette(Palette):

          self._play_icon = Icon(icon_name='player_play')
          self._pause_icon = Icon(icon_name='player_pause')
-        self._play_pause_menu = MenuItem(text_label=_('Say selected text'))
+        self._play_pause_menu = PaletteMenuItem(
+            text_label=_('Say selected text'))
          self._play_pause_menu.set_image(self._play_icon)
          self._play_pause_menu.connect('activate', self.__play_activated_cb)
          self._play_pause_menu.show()
+        vbox.pack_start(self._play_pause_menu, True, True, 0)

-        self._stop_menu = MenuItem(icon_name='player_stop',
-                text_label=_('Stop playback'))
+        self._stop_menu = PaletteMenuItem(icon_name='player_stop',
+                                          text_label=_('Stop playback'))
          self._stop_menu.connect('activate', self.__stop_activated_cb)
          self._stop_menu.set_sensitive(False)
          self._stop_menu.show()
+        vbox.pack_start(self._stop_menu, True, True, 0)

-        self.menu.append(self._play_pause_menu)
-        self.menu.append(self._stop_menu)
+        separator = PaletteMenuItemSeparator()
+        vbox.pack_start(separator, True, True, 0)

          self._adj_pitch = Gtk.Adjustment(value=self._manager.get_pitch(),
-                                          lower=self._manager.MIN_PITCH,
-                                          upper=self._manager.MAX_PITCH)
-        self._hscale_pitch = Gtk.HScale(self._adj_pitch)
+                                         lower=self._manager.MIN_PITCH,
+                                         upper=self._manager.MAX_PITCH)
+        self._hscale_pitch = Gtk.HScale()
+        self._hscale_pitch.set_adjustment(self._adj_pitch)
          self._hscale_pitch.set_draw_value(False)

-        vbox.pack_start(Gtk.Label(_('Pitch', True, True, 0)), 
padding=style.DEFAULT_PADDING)
+        vbox.pack_start(Gtk.Label(_('Pitch')), True, True,
+                        padding=style.DEFAULT_PADDING)
          vbox.pack_start(self._hscale_pitch, True, True, 0)

          self._adj_rate = Gtk.Adjustment(value=self._manager.get_rate(),
-                                          lower=self._manager.MIN_RATE,
-                                          upper=self._manager.MAX_RATE)
-        self._hscale_rate = Gtk.HScale(self._adj_rate)
+                                        lower=self._manager.MIN_RATE,
+                                        upper=self._manager.MAX_RATE)
+        self._hscale_rate = Gtk.HScale()
+        self._hscale_rate.set_adjustment(self._adj_rate)
          self._hscale_rate.set_draw_value(False)

-        vbox.pack_start(Gtk.Label(_('Rate', True, True, 0)), 
padding=style.DEFAULT_PADDING)
+        vbox.pack_start(Gtk.Label(_('Rate')), True, True,
+                        padding=style.DEFAULT_PADDING)
          vbox.pack_start(self._hscale_rate, True, True, 0)
          vbox.show_all()

          self._adj_pitch.connect('value_changed', self.__adj_pitch_changed_cb)
          self._adj_rate.connect('value_changed', self.__adj_rate_changed_cb)

-    def __adj_pitch_changed_cb(self, adjustement):
-        self._manager.set_pitch(int(adjustement.value))
+    def __adj_pitch_changed_cb(self, adjustment):
+        self._manager.set_pitch(int(adjustment.get_value()))

-    def __adj_rate_changed_cb(self, adjustement):
-        self._manager.set_rate(int(adjustement.value))
+    def __adj_rate_changed_cb(self, adjustment):
+        self._manager.set_rate(int(adjustment.get_value()))

      def __play_activated_cb(self, widget):
          if self._manager.is_paused:
diff --git a/src/jarabe/model/speech.py b/src/jarabe/model/speech.py
index 864f639..d34237a 100644
--- a/src/jarabe/model/speech.py
+++ b/src/jarabe/model/speech.py
@@ -20,6 +20,7 @@ import logging
  from gi.repository import GConf
  from gi.repository import Gst
  from gi.repository import Gtk
+from gi.repository import Gdk
  from gi.repository import GObject


@@ -96,8 +97,8 @@ class SpeechManager(GObject.GObject):
              self._player.speak(self._pitch, self._rate, self._voice_name, 
text)

      def say_selected_text(self):
-        clipboard = Gtk.clipboard_get(selection='PRIMARY')
-        clipboard.request_text(self.__primary_selection_cb)
+        clipboard = Gtk.Clipboard.get(Gdk.SELECTION_PRIMARY)
+        clipboard.request_text(self.__primary_selection_cb, None)

      def pause(self):
          self._player.pause_sound_device()


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

Reply via email to