diff options
Diffstat (limited to 'font-viewer/font-model.c')
-rw-r--r-- | font-viewer/font-model.c | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/font-viewer/font-model.c b/font-viewer/font-model.c index 13dc94ca..f6fefa27 100644 --- a/font-viewer/font-model.c +++ b/font-viewer/font-model.c @@ -114,7 +114,6 @@ create_thumbnail (GIOSchedulerJob *job, } g_object_unref (info); - g_object_unref (file); g_object_unref (factory); g_clear_object (&pixbuf); @@ -351,19 +350,18 @@ thumb_file_read_async_ready_cb (GObject *source, } static void -ensure_thumbnail (FontViewModel *self, - const gchar *path) +thumbnail_query_info_cb (GObject *source, + GAsyncResult *res, + gpointer user_data) { - GFile *file, *thumb_file = NULL; + FontViewModel *self = user_data; + GFile *file = G_FILE (source); + GFile *thumb_file = NULL; GFileInfo *info; const gchar *thumb_path; LoadThumbnailData *data; - file = g_file_new_for_path (path); - info = g_file_query_info (file, G_FILE_ATTRIBUTE_THUMBNAIL_PATH "," - G_FILE_ATTRIBUTE_THUMBNAILING_FAILED, - G_FILE_QUERY_INFO_NONE, - NULL, NULL); + info = g_file_query_info_finish (file, res, NULL); if (!info || g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_THUMBNAILING_FAILED)) { @@ -389,10 +387,25 @@ ensure_thumbnail (FontViewModel *self, } out: - g_clear_object (&file); g_clear_object (&info); } +static void +ensure_thumbnail (FontViewModel *self, + const gchar *path) +{ + GFile *file; + + file = g_file_new_for_path (path); + g_file_query_info_async (file, + G_FILE_ATTRIBUTE_THUMBNAIL_PATH "," + G_FILE_ATTRIBUTE_THUMBNAILING_FAILED, + G_FILE_QUERY_INFO_NONE, + G_PRIORITY_DEFAULT, NULL, + thumbnail_query_info_cb, self); + g_object_unref (file); +} + /* make sure the font list is valid */ static void ensure_font_list (FontViewModel *self) |