X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gio%2Fgicon.c;h=b5080dae28e195c0daa29310e5feff40e155033f;hb=e608ec7b2e47d29fa189fca6e97f484f41c115a4;hp=bc3f2a515d33b424d058356d79ad3d82007d4ce3;hpb=c16f914b40c749b938490a4e10a3c54ec1855c42;p=platform%2Fupstream%2Fglib.git diff --git a/gio/gicon.c b/gio/gicon.c index bc3f2a5..b5080da 100644 --- a/gio/gicon.c +++ b/gio/gicon.c @@ -13,9 +13,7 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General - * Public License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. + * Public License along with this library; if not, see . * * Author: Alexander Larsson */ @@ -195,23 +193,18 @@ g_icon_to_string_tokenized (GIcon *icon, GString *s) * The encoding of the returned string is proprietary to #GIcon except * in the following two cases * - * - * - * If @icon is a #GFileIcon, the returned string is a native path - * (such as /path/to/my icon.png) without escaping - * if the #GFile for @icon is a native file. If the file is not - * native, the returned string is the result of g_file_get_uri() - * (such as sftp://path/to/my%20icon.png). - * - * - * If @icon is a #GThemedIcon with exactly one name, the encoding is - * simply the name (such as network-server). - * - * + * - If @icon is a #GFileIcon, the returned string is a native path + * (such as `/path/to/my icon.png`) without escaping + * if the #GFile for @icon is a native file. If the file is not + * native, the returned string is the result of g_file_get_uri() + * (such as `sftp://path/to/my%20icon.png`). + * + * - If @icon is a #GThemedIcon with exactly one name, the encoding is + * simply the name (such as `network-server`). * * Virtual: to_tokens - * Returns: An allocated NUL-terminated UTF8 string or %NULL if @icon can't - * be serialized. Use g_free() to free. + * Returns: (nullable): An allocated NUL-terminated UTF8 string or + * %NULL if @icon can't be serialized. Use g_free() to free. * * Since: 2.20 */ @@ -546,6 +539,8 @@ g_icon_deserialize_emblemed (GVariant *value) g_object_unref (main_icon); } + else + icon = NULL; g_variant_iter_free (emblems); g_variant_unref (icon_data); @@ -553,6 +548,16 @@ g_icon_deserialize_emblemed (GVariant *value) return icon; } +/** + * g_icon_deserialize: + * @value: a #GVariant created with g_icon_serialize() + * + * Deserializes a #GIcon previously serialized using g_icon_serialize(). + * + * Returns: (transfer full): a #GIcon, or %NULL when deserialization fails. + * + * Since: 2.38 + */ GIcon * g_icon_deserialize (GVariant *value) { @@ -630,6 +635,20 @@ g_icon_deserialize (GVariant *value) return icon; } +/** + * g_icon_serialize: + * @icon: a #GIcon + * + * Serializes a #GIcon into a #GVariant. An equivalent #GIcon can be retrieved + * back by calling g_icon_deserialize() on the returned value. + * As serialization will avoid using raw icon data when possible, it only + * makes sense to transfer the #GVariant between processes on the same machine, + * (as opposed to over the network), and within the same file system namespace. + * + * Returns: (transfer full): a #GVariant, or %NULL when serialization fails. + * + * Since: 2.38 + */ GVariant * g_icon_serialize (GIcon *icon) { @@ -640,7 +659,7 @@ g_icon_serialize (GIcon *icon) if (!iface->serialize) { - g_critical ("g_icon_serialize() on icon type `%s' is not implemented", G_OBJECT_TYPE_NAME (icon)); + g_critical ("g_icon_serialize() on icon type '%s' is not implemented", G_OBJECT_TYPE_NAME (icon)); return NULL; } @@ -652,8 +671,8 @@ g_icon_serialize (GIcon *icon) if (!g_variant_is_of_type (result, G_VARIANT_TYPE ("(sv)"))) { - g_critical ("g_icon_serialize() on icon type `%s' returned GVariant of type `%s' but it must return " - "one with type `(sv)'", G_OBJECT_TYPE_NAME (icon), g_variant_get_type_string (result)); + g_critical ("g_icon_serialize() on icon type '%s' returned GVariant of type '%s' but it must return " + "one with type '(sv)'", G_OBJECT_TYPE_NAME (icon), g_variant_get_type_string (result)); g_variant_unref (result); result = NULL; }