• Allison Karlitskaya's avatar
    GIcon: add g_icon_[de]serialize() · c16f914b
    Allison Karlitskaya authored
    Add support for serialising a GIcon to a GVariant and deserialising the
    result back to a GIcon.
    
    This solves a number of problems suffered by the existing to_string()
    API, primarily these:
    
     - not forcing the icon to be a utf8 string means that we can
       efficiently encode a PNG (ie: just give the array of bytes)
    
     - there is no need to ensure that proper types are loaded before using
       the deserialisation interface.  'Foreign' icon types will probably
       emit a serialised format the deserialises to a GBytesIcon.
    
    We additionally clearly document what is required for being a consumer
    or implementation of #GIcon.
    
    Further patches will be required to GdkPixbuf and GVfsIcon to bring
    their implementations in line with the new rules (essentially: introduce
    implementations of the new serialize() API).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=688820
    c16f914b