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;
}