diff options
author | Richard Hughes <richard@hughsie.com> | 2014-10-01 14:45:08 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2014-10-01 16:20:49 +0100 |
commit | f7a4cca39dda066300d9b0738fc8e98e123aeeaa (patch) | |
tree | c2566e242c7845c0218fff993e33a71bca0ec4b5 /libappstream-builder/plugins/asb-plugin-font.c | |
parent | b11a4bdba2edb21f24e1c414ca0636a19e25dbbc (diff) | |
download | appstream-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.c | 13 |
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 */ |