summaryrefslogtreecommitdiff
path: root/libappstream-builder/plugins/asb-plugin-font.c
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2014-10-01 14:45:08 +0100
committerRichard Hughes <richard@hughsie.com>2014-10-01 16:20:49 +0100
commitf7a4cca39dda066300d9b0738fc8e98e123aeeaa (patch)
treec2566e242c7845c0218fff993e33a71bca0ec4b5 /libappstream-builder/plugins/asb-plugin-font.c
parentb11a4bdba2edb21f24e1c414ca0636a19e25dbbc (diff)
downloadappstream-glib-f7a4cca39dda066300d9b0738fc8e98e123aeeaa.tar.gz
Use AsIcon to represent an abstract icon
The assumption that each application had just one icon, of a single type is much too restrictive. We need to support stock fallbacks of missing cached icons and also need to support multiple sizes of embedded icon. This breaks API.
Diffstat (limited to 'libappstream-builder/plugins/asb-plugin-font.c')
-rw-r--r--libappstream-builder/plugins/asb-plugin-font.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/libappstream-builder/plugins/asb-plugin-font.c b/libappstream-builder/plugins/asb-plugin-font.c
index 1684c73..8014c36 100644
--- a/libappstream-builder/plugins/asb-plugin-font.c
+++ b/libappstream-builder/plugins/asb-plugin-font.c
@@ -614,8 +614,7 @@ asb_plugin_process_filename (AsbPlugin *plugin,
/* generate icon */
tmp = as_app_get_metadata_item (AS_APP (app), "FontIconText");
if (tmp != NULL) {
- icon_filename = g_strdup_printf ("%s.png", as_app_get_id_filename (AS_APP (app)));
- as_app_set_icon (AS_APP (app), icon_filename, -1);
+ _cleanup_object_unref_ AsIcon *icon = NULL;
pixbuf = asb_font_get_pixbuf (ft_face, 64, 64, tmp, error);
if (pixbuf == NULL) {
ret = FALSE;
@@ -632,8 +631,14 @@ asb_plugin_process_filename (AsbPlugin *plugin,
64, 64, tmp);
goto out;
}
- as_app_set_icon_kind (AS_APP (app), AS_ICON_KIND_CACHED);
- asb_app_add_pixbuf (app, pixbuf);
+
+ /* add icon */
+ icon_filename = g_strdup_printf ("%s.png", as_app_get_id_filename (AS_APP (app)));
+ icon = as_icon_new ();
+ as_icon_set_kind (icon, AS_ICON_KIND_CACHED);
+ as_icon_set_name (icon, icon_filename, -1);
+ as_icon_set_pixbuf (icon, pixbuf);
+ as_app_add_icon (AS_APP (app), icon);
}
/* add */