[Sugar-devel] [PATCH Browse] Fix bookmarks read from previous session

Manuel Quiñones manuq at laptop.org
Thu Mar 29 10:50:15 EDT 2012


Color parameter in get_image() method of class LinkButton is being
passed with type str when inside a session, but is type unicode when
read from a previous session, because json stores unicode. And
Rsvg.Handle.new_from_data() needs a single byte string.

This fixes #3402 .

Also removed unused parameters in LinkButton constructor.

Signed-off-by: Manuel Quiñones <manuq at laptop.org>
---
 linkbutton.py  |    7 ++++++-
 webactivity.py |    2 +-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/linkbutton.py b/linkbutton.py
index 2804397..d1b4ea9 100644
--- a/linkbutton.py
+++ b/linkbutton.py
@@ -40,8 +40,13 @@ class LinkButton(TrayButton, GObject.GObject):
                         None, ([str])),
         }
 
-    def __init__(self, url, buf, color, title, owner, index, hash):
+    def __init__(self, buf, color, title, owner, hash):
         TrayButton.__init__(self)
+
+        # Color read from the Journal may be Unicode, but Rsvg needs
+        # it as single byte string:
+        if isinstance(color, unicode):
+            color = str(color)
         self.set_image(buf, color.split(',')[1], color.split(',')[0])
 
         self.hash = hash
diff --git a/webactivity.py b/webactivity.py
index e156173..aadc29a 100644
--- a/webactivity.py
+++ b/webactivity.py
@@ -518,7 +518,7 @@ class WebActivity(activity.Activity):
 
     def _add_link_totray(self, url, buf, color, title, owner, index, hash):
         ''' add a link to the tray '''
-        item = LinkButton(url, buf, color, title, owner, index, hash)
+        item = LinkButton(buf, color, title, owner, hash)
         item.connect('clicked', self._link_clicked_cb, url)
         item.connect('remove_link', self._link_removed_cb)
         # use index to add to the tray
-- 
1.7.7.6



More information about the Sugar-devel mailing list