[gnome-contacts/gnome-3-16] Simplify search provider icon passing



commit 7026d477d25dbce3ca99460f190d65200cd6bd86
Author: David King <dking redhat com>
Date:   Mon Oct 5 16:09:38 2015 -0400

    Simplify search provider icon passing
    
    Avoid a Vala bug (GNOME Bugzilla #756090) by passing a serialized GIcon
    to the shell in the search provider. As a bonus, remove the old code,
    which serialized a GdkPixbuf to a string (or passed it over D-Bus as a
    bytestring).
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1244256
    https://bugzilla.gnome.org/show_bug.cgi?id=756098

 src/contacts-contact.vala               |   15 +--------------
 src/contacts-shell-search-provider.vala |    8 +++-----
 2 files changed, 4 insertions(+), 19 deletions(-)
---
diff --git a/src/contacts-contact.vala b/src/contacts-contact.vala
index 4078a75..a19d477 100644
--- a/src/contacts-contact.vala
+++ b/src/contacts-contact.vala
@@ -161,25 +161,12 @@ public class Contacts.Contact : GLib.Object  {
       if (individual.avatar == null)
         return null;
 
-      if (individual.avatar.to_string () != null)
-        return null;
-
       if (_avatar_icon_data == null) {
 
         if (small_avatar == null)
           return null;
 
-        var pixel_data = Variant.new_from_data (VariantType.BYTESTRING,
-                                                small_avatar.get_pixels_with_length (),
-                                                true, small_avatar);
-        _avatar_icon_data = new Variant ("(iiibii ay)",
-                                         small_avatar.get_width (),
-                                         small_avatar.get_height (),
-                                         small_avatar.get_rowstride (),
-                                         small_avatar.get_has_alpha (),
-                                         small_avatar.get_bits_per_sample (),
-                                         small_avatar.get_n_channels (),
-                                         pixel_data);
+        _avatar_icon_data = small_avatar.serialize ();
       }
       return _avatar_icon_data;
     }
diff --git a/src/contacts-shell-search-provider.vala b/src/contacts-shell-search-provider.vala
index 53a00dd..c47318a 100644
--- a/src/contacts-shell-search-provider.vala
+++ b/src/contacts-shell-search-provider.vala
@@ -96,12 +96,10 @@ public class Contacts.SearchProvider : Object {
 
       meta.insert ("name", new Variant.string (contact.display_name));
 
-      if (contact.serializable_avatar_icon != null)
-        meta.insert ("gicon", new Variant.string (contact.serializable_avatar_icon.to_string ()));
-      else if (contact.avatar_icon_data != null)
-        meta.insert ("icon-data", contact.avatar_icon_data);
+      if (contact.avatar_icon_data != null)
+        meta.insert ("icon", contact.avatar_icon_data);
       else
-        meta.insert ("gicon", new Variant.string (new ThemedIcon ("avatar-default").to_string ()));
+        meta.insert ("icon", new ThemedIcon ("avatar-default").serialize ());
       results.add (meta);
     }
     app.release ();


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]