[recipes/image-download: 10/10] Use the new api
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [recipes/image-download: 10/10] Use the new api
- Date: Tue, 28 Mar 2017 14:05:42 +0000 (UTC)
commit 41fb6865357d7a2201a90a40cc6d02a08accb0de
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Mar 5 18:14:24 2017 -0500
Use the new api
Load images asynchronously, possibly from the net.
src/gr-chef-dialog.c | 46 +++++++++++++++++++++++++++-------------
src/gr-chef-tile.c | 19 ++++++++++++++--
src/gr-cooking-view.c | 30 +++++++++++++++++++++----
src/gr-edit-page.c | 14 ++++++++++-
src/gr-image-page.c | 14 ++++++++++-
src/gr-image-viewer.c | 32 +++++++++++++++++++++------
src/gr-recipe-importer.c | 4 ++-
src/gr-recipe-printer.c | 2 +-
src/gr-recipe-small-tile.c | 13 ++++++++--
src/gr-recipe-store.c | 3 +-
src/gr-recipe-tile.c | 21 ++++++++++++------
src/gr-shell-search-provider.c | 4 +-
12 files changed, 153 insertions(+), 49 deletions(-)
---
diff --git a/src/gr-chef-dialog.c b/src/gr-chef-dialog.c
index 6b32378..405e42f 100644
--- a/src/gr-chef-dialog.c
+++ b/src/gr-chef-dialog.c
@@ -33,6 +33,7 @@
#include "gr-window.h"
#include "gr-utils.h"
#include "gr-chef-tile.h"
+#include "gr-image.h"
struct _GrChefDialog
@@ -54,7 +55,8 @@ struct _GrChefDialog
GPtrArray *additions;
GPtrArray *removals;
- char *image_path;
+ GrImage *ri;
+ GCancellable *cancellable;
GrChef *chef;
};
@@ -72,10 +74,13 @@ dismiss_error (GrChefDialog *self)
static void
update_image (GrChefDialog *self)
{
- if (self->image_path != NULL && self->image_path[0] != '\0') {
- g_autoptr(GdkPixbuf) pixbuf = NULL;
- pixbuf = load_pixbuf_fit_size (self->image_path, 64, 64, TRUE);
- gtk_image_set_from_pixbuf (GTK_IMAGE (self->image), pixbuf);
+ g_cancellable_cancel (self->cancellable);
+ g_clear_object (&self->cancellable);
+
+ if (self->ri) {
+ self->cancellable = g_cancellable_new ();
+
+ gr_image_load (self->ri, 64, 64, TRUE, self->cancellable, gr_image_set_pixbuf, self->image);
gtk_style_context_remove_class (gtk_widget_get_style_context (self->image), "dim-label");
}
else {
@@ -126,14 +131,15 @@ file_chooser_response (GtkNativeDialog *self,
path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (self));
- if (prefs->image_path)
- g_ptr_array_add (prefs->removals, g_strdup (prefs->image_path));
+ if (prefs->ri)
+ g_ptr_array_add (prefs->removals, g_strdup (gr_image_get_path (prefs->ri)));
- g_free (prefs->image_path);
- prefs->image_path = import_image (path);
+ g_clear_object (&prefs->ri);
+ prefs->ri = gr_image_new (gr_app_get_soup_session (GR_APP (g_application_get_default ())),
+import_image (path));
- if (prefs->image_path)
- g_ptr_array_add (prefs->additions, g_strdup (prefs->image_path));
+ if (prefs->ri)
+ g_ptr_array_add (prefs->additions, g_strdup (gr_image_get_path (prefs->ri)));
update_image (prefs);
field_changed (prefs);
@@ -172,10 +178,13 @@ gr_chef_dialog_finalize (GObject *object)
{
GrChefDialog *self = GR_CHEF_DIALOG (object);
+ g_cancellable_cancel (self->cancellable);
+ g_clear_object (&self->cancellable);
+ g_clear_object (&self->ri);
+
revert_changes (self);
g_clear_pointer (&self->removals, g_ptr_array_unref);
- g_free (self->image_path);
g_clear_object (&self->chef);
G_OBJECT_CLASS (gr_chef_dialog_parent_class)->finalize (object);
@@ -189,6 +198,7 @@ save_chef_dialog (GrChefDialog *self,
const char *id;
const char *name;
const char *fullname;
+ const char *image_path;
g_autofree char *description = NULL;
GtkTextBuffer *buffer;
GtkTextIter start, end;
@@ -203,6 +213,7 @@ save_chef_dialog (GrChefDialog *self,
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->description));
gtk_text_buffer_get_bounds (buffer, &start, &end);
description = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+ image_path = self->ri ? gr_image_get_path (self->ri) : NULL;
store = gr_recipe_store_get ();
@@ -211,7 +222,7 @@ save_chef_dialog (GrChefDialog *self,
"fullname", fullname,
"name", name,
"description", description,
- "image-path", self->image_path,
+ "image-path", image_path,
NULL);
ret = gr_recipe_store_update_chef (store, self->chef, id, error);
}
@@ -230,7 +241,7 @@ save_chef_dialog (GrChefDialog *self,
"fullname", fullname,
"name", name,
"description", description,
- "image-path", self->image_path,
+ "image-path", image_path,
NULL);
ret = gr_recipe_store_add_chef (store, self->chef, error);
@@ -291,6 +302,10 @@ gr_chef_dialog_set_chef (GrChefDialog *self,
gboolean same_chef;
GrRecipeStore *store;
+ g_cancellable_cancel (self->cancellable);
+ g_clear_object (&self->cancellable);
+ g_clear_object (&self->ri);
+
revert_changes (self);
store = gr_recipe_store_get ();
@@ -317,7 +332,8 @@ gr_chef_dialog_set_chef (GrChefDialog *self,
gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->description)),
description ? description : "", -1);
- self->image_path = g_strdup (image_path);
+ self->ri = gr_image_new (gr_app_get_soup_session (GR_APP (g_application_get_default ())),
image_path);
+
if (gr_chef_is_readonly (chef)) {
gtk_widget_set_sensitive (self->fullname, FALSE);
diff --git a/src/gr-chef-tile.c b/src/gr-chef-tile.c
index de8fc02..c7bc688 100644
--- a/src/gr-chef-tile.c
+++ b/src/gr-chef-tile.c
@@ -26,6 +26,7 @@
#include "gr-chef-tile.h"
#include "gr-utils.h"
#include "gr-window.h"
+#include "gr-image.h"
struct _GrChefTile
@@ -36,6 +37,9 @@ struct _GrChefTile
GtkWidget *label;
GtkWidget *image;
+
+ GrImage *ri;
+ GCancellable *cancellable;
};
@@ -46,7 +50,10 @@ chef_tile_finalize (GObject *object)
{
GrChefTile *tile = GR_CHEF_TILE (object);
+ g_cancellable_cancel (tile->cancellable);
+ g_clear_object (&tile->cancellable);
g_clear_object (&tile->chef);
+ g_clear_object (&tile->ri);
G_OBJECT_CLASS (gr_chef_tile_parent_class)->finalize (object);
}
@@ -76,6 +83,11 @@ void
gr_chef_tile_set_chef (GrChefTile *tile,
GrChef *chef)
{
+ g_cancellable_cancel (tile->cancellable);
+ g_clear_object (&tile->cancellable);
+
+ g_clear_object (&tile->ri);
+
g_set_object (&tile->chef, chef);
if (tile->chef) {
@@ -87,10 +99,11 @@ gr_chef_tile_set_chef (GrChefTile *tile,
path = gr_chef_get_image (chef);
if (path && path[0]) {
- g_autoptr(GdkPixbuf) pixbuf = NULL;
+ tile->ri = gr_image_new (gr_app_get_soup_session (GR_APP (g_application_get_default
())),
+ path);
+ tile->cancellable = g_cancellable_new ();
- pixbuf = load_pixbuf_fill_size (path, 64, 64);
- gtk_image_set_from_pixbuf (GTK_IMAGE (tile->image), pixbuf);
+ gr_image_load (tile->ri, 64, 64, FALSE, tile->cancellable, gr_image_set_pixbuf,
tile->image);
}
}
}
diff --git a/src/gr-cooking-view.c b/src/gr-cooking-view.c
index 15c5e0b..e6eb832 100644
--- a/src/gr-cooking-view.c
+++ b/src/gr-cooking-view.c
@@ -64,6 +64,8 @@ struct _GrCookingView
#endif
GList *timers;
+
+ GCancellable *cancellable;
};
typedef struct
@@ -240,6 +242,9 @@ gr_cooking_view_finalize (GObject *object)
{
GrCookingView *self = GR_COOKING_VIEW (object);
+ g_cancellable_cancel (self->cancellable);
+ g_clear_object (&self->cancellable);
+
g_clear_pointer (&self->id, g_free);
g_clear_pointer (&self->images, g_ptr_array_unref);
g_clear_pointer (&self->instructions, g_free);
@@ -273,6 +278,14 @@ gr_cooking_view_init (GrCookingView *self)
}
static void
+set_pixbuf (GrImage *ri,
+ GdkPixbuf *pixbuf,
+ gpointer data)
+{
+ gtk_image_set_from_pixbuf (GTK_IMAGE (data), pixbuf);
+}
+
+static void
setup_step (GrCookingView *view)
{
StepData *s;
@@ -280,6 +293,9 @@ setup_step (GrCookingView *view)
if (!view->images)
return;
+ g_cancellable_cancel (view->cancellable);
+ g_clear_object (&view->cancellable);
+
s = g_ptr_array_index (view->steps, view->step);
if (s->heading && s->heading[0]) {
@@ -318,14 +334,18 @@ setup_step (GrCookingView *view)
GrImage *ri = NULL;
g_autoptr(GdkPixbuf) pixbuf = NULL;
+ view->cancellable = g_cancellable_new ();
+
gtk_widget_show (view->cooking_stack);
gtk_widget_set_halign (view->text_box, GTK_ALIGN_START);
ri = g_ptr_array_index (view->images, s->image);
- if (view->wide)
- pixbuf = load_pixbuf_fill_size (gr_image_get_path (ri), 640, 480);
- else
- pixbuf = load_pixbuf_fill_size (gr_image_get_path (ri), 320, 240);
- gtk_image_set_from_pixbuf (GTK_IMAGE (view->cooking_image), pixbuf);
+ gr_image_load (ri,
+ view->wide ? 640 : 320,
+ view->wide ? 480 : 240,
+ FALSE,
+ view->cancellable,
+ set_pixbuf,
+ view->cooking_image);
gtk_stack_set_visible_child_name (GTK_STACK (view->cooking_stack), "image");
}
else {
diff --git a/src/gr-edit-page.c b/src/gr-edit-page.c
index 5ef26c1..edcb27b 100644
--- a/src/gr-edit-page.c
+++ b/src/gr-edit-page.c
@@ -138,6 +138,8 @@ struct _GrEditPage
char *author;
gboolean unsaved;
+
+ GCancellable *cancellable;
};
G_DEFINE_TYPE (GrEditPage, gr_edit_page, GTK_TYPE_BOX)
@@ -170,21 +172,26 @@ populate_image_flowbox (GrEditPage *page)
GPtrArray *images;
GtkWidget *button;
+ g_cancellable_cancel (page->cancellable);
+ g_clear_object (&page->cancellable);
+ page->cancellable = g_cancellable_new ();
+
images = gr_image_viewer_get_images (GR_IMAGE_VIEWER (page->images));
container_remove_all (GTK_CONTAINER (page->image_flowbox));
for (i = 0; i < images->len; i++) {
GrImage *ri = g_ptr_array_index (images, i);
- g_autoptr(GdkPixbuf) pb = load_pixbuf_fill_size (gr_image_get_path (ri), 60, 40);
GtkWidget *image;
GtkWidget *child;
- image = gtk_image_new_from_pixbuf (pb);
+ image = gtk_image_new ();
gtk_widget_show (image);
gtk_container_add (GTK_CONTAINER (page->image_flowbox), image);
child = gtk_widget_get_parent (image);
g_object_set_data (G_OBJECT (child), "image-idx", GINT_TO_POINTER (i));
+
+ gr_image_load (ri, 60, 40, FALSE, page->cancellable, gr_image_set_pixbuf, image);
}
button = gtk_button_new ();
@@ -346,6 +353,9 @@ edit_page_finalize (GObject *object)
{
GrEditPage *self = GR_EDIT_PAGE (object);
+ g_cancellable_cancel (self->cancellable);
+ g_clear_object (&self->cancellable);
+
if (self->index_handler_id)
g_signal_handler_disconnect (self->recipe, self->index_handler_id);
g_clear_object (&self->recipe);
diff --git a/src/gr-image-page.c b/src/gr-image-page.c
index 94f28d8..84c285e 100644
--- a/src/gr-image-page.c
+++ b/src/gr-image-page.c
@@ -42,6 +42,7 @@ struct _GrImagePage
int index;
guint hide_timeout;
+ GCancellable *cancellable;
};
@@ -74,6 +75,9 @@ gr_image_page_finalize (GObject *object)
{
GrImagePage *page = GR_IMAGE_PAGE (object);
+ g_cancellable_cancel (page->cancellable);
+ g_clear_object (&page->cancellable);
+
remove_hide_timeout (page);
g_clear_pointer (&page->images, g_ptr_array_unref);
@@ -91,14 +95,20 @@ set_current_image (GrImagePage *page)
GdkMonitor *monitor;
GdkRectangle geom;
+ g_cancellable_cancel (page->cancellable);
+ g_clear_object (&page->cancellable);
+ page->cancellable = g_cancellable_new ();
+
display = gtk_widget_get_display (GTK_WIDGET (page));
win = gtk_widget_get_window (gtk_widget_get_toplevel (GTK_WIDGET (page)));
monitor = gdk_display_get_monitor_at_window (display, win);
gdk_monitor_get_geometry (monitor, &geom);
ri = g_ptr_array_index (page->images, page->index);
- pixbuf = load_pixbuf_fit_size (gr_image_get_path (ri), geom.width - 80, geom.height - 80,
FALSE);
- gtk_image_set_from_pixbuf (GTK_IMAGE (page->image), pixbuf);
+ gr_image_load (ri,
+ geom.width - 80, geom.height - 80, TRUE,
+ page->cancellable,
+ gr_image_set_pixbuf, page->image);
}
}
diff --git a/src/gr-image-viewer.c b/src/gr-image-viewer.c
index e09fe47..4722e68 100644
--- a/src/gr-image-viewer.c
+++ b/src/gr-image-viewer.c
@@ -79,6 +79,9 @@ struct _GrImageViewer
guint hide_timeout;
GtkGesture *gesture;
+
+ GCancellable *cancellable;
+ GCancellable *preview_cancellable;
};
@@ -113,6 +116,12 @@ gr_image_viewer_finalize (GObject *object)
{
GrImageViewer *viewer = GR_IMAGE_VIEWER (object);
+ g_cancellable_cancel (viewer->cancellable);
+ g_clear_object (&viewer->cancellable);
+
+ g_cancellable_cancel (viewer->preview_cancellable);
+ g_clear_object (&viewer->preview_cancellable);
+
gr_image_viewer_revert_changes (viewer);
g_clear_pointer (&viewer->additions, g_ptr_array_unref);
@@ -130,6 +139,9 @@ set_current_image (GrImageViewer *viewer)
{
GtkFlowBoxChild *child;
+ g_cancellable_cancel (viewer->cancellable);
+ g_clear_object (&viewer->cancellable);
+
if (viewer->index >= viewer->images->len) {
gtk_stack_set_visible_child_name (GTK_STACK (viewer->stack), "placeholder");
return;
@@ -140,16 +152,17 @@ set_current_image (GrImageViewer *viewer)
g_autoptr(GdkPixbuf) pixbuf = NULL;
const char *vis;
+ viewer->cancellable = g_cancellable_new ();
+
ri = g_ptr_array_index (viewer->images, viewer->index);
- pixbuf = load_pixbuf_fill_size (gr_image_get_path (ri), 360, 240);
vis = gtk_stack_get_visible_child_name (GTK_STACK (viewer->stack));
if (strcmp (vis, "image1") == 0) {
- gtk_image_set_from_pixbuf (GTK_IMAGE (viewer->image2), pixbuf);
+ gr_image_load (ri, 360, 240, FALSE, viewer->cancellable, gr_image_set_pixbuf,
viewer->image2);
gtk_stack_set_visible_child_name (GTK_STACK (viewer->stack), "image2");
}
else {
- gtk_image_set_from_pixbuf (GTK_IMAGE (viewer->image1), pixbuf);
+ gr_image_load (ri, 360, 240, FALSE, viewer->cancellable, gr_image_set_pixbuf,
viewer->image1);
gtk_stack_set_visible_child_name (GTK_STACK (viewer->stack), "image1");
}
}
@@ -166,16 +179,21 @@ populate_preview (GrImageViewer *viewer)
{
int i;
+ g_cancellable_cancel (viewer->preview_cancellable);
+ g_clear_object (&viewer->preview_cancellable);
+ viewer->preview_cancellable = g_cancellable_new ();
+
container_remove_all (GTK_CONTAINER (viewer->preview_list));
for (i = 0; i < viewer->images->len; i++) {
GrImage *ri = g_ptr_array_index (viewer->images, i);
- g_autoptr(GdkPixbuf) pb = load_pixbuf_fill_size (gr_image_get_path (ri), 60, 40);
GtkWidget *image;
- image = gtk_image_new_from_pixbuf (pb);
+ image = gtk_image_new ();
gtk_widget_show (image);
gtk_container_add (GTK_CONTAINER (viewer->preview_list), image);
+
+ gr_image_load (ri, 60, 40, FALSE, viewer->preview_cancellable, gr_image_set_pixbuf, image);
}
}
@@ -386,7 +404,7 @@ image_received (GtkClipboard *clipboard,
return;
}
- ri = gr_image_new (path);
+ ri = gr_image_new (gr_app_get_soup_session (GR_APP (g_application_get_default ())), path);
add_image (viewer, ri, TRUE);
}
}
@@ -579,7 +597,7 @@ file_chooser_response (GtkNativeDialog *self,
g_autofree char *path = NULL;
path = import_image (l->data);
- ri = gr_image_new (path);
+ ri = gr_image_new (gr_app_get_soup_session (GR_APP (g_application_get_default ())),
path);
add_image (viewer, ri, TRUE);
g_ptr_array_add (viewer->additions, g_strdup (path));
diff --git a/src/gr-recipe-importer.c b/src/gr-recipe-importer.c
index af3a0b1..a79066d 100644
--- a/src/gr-recipe-importer.c
+++ b/src/gr-recipe-importer.c
@@ -28,6 +28,7 @@
#endif
#include "gr-recipe-importer.h"
+#include "gr-app.h"
#include "gr-image.h"
#include "gr-chef.h"
#include "gr-recipe.h"
@@ -300,7 +301,8 @@ import_recipe (GrRecipeImporter *importer)
return FALSE;
}
- ri = gr_image_new (new_path);
+ ri = gr_image_new (gr_app_get_soup_session (GR_APP (g_application_get_default ())),
new_path);
+
g_ptr_array_add (images, ri);
}
}
diff --git a/src/gr-recipe-printer.c b/src/gr-recipe-printer.c
index 253ded1..bc9a834 100644
--- a/src/gr-recipe-printer.c
+++ b/src/gr-recipe-printer.c
@@ -131,7 +131,7 @@ begin_print (GtkPrintOperation *operation,
if (images && images->len > 0) {
int def_index = gr_recipe_get_default_image (printer->recipe);
GrImage *ri = g_ptr_array_index (images, def_index);
- printer->image = load_pixbuf_fit_size (gr_image_get_path (ri), width / 2, height / 4, FALSE);
+ printer->image = gr_image_load_sync (ri, width / 2, height / 4, TRUE);
}
title_font = pango_font_description_from_string ("Cantarell Bold 18");
diff --git a/src/gr-recipe-small-tile.c b/src/gr-recipe-small-tile.c
index 4d5968c..127d2e7 100644
--- a/src/gr-recipe-small-tile.c
+++ b/src/gr-recipe-small-tile.c
@@ -46,6 +46,8 @@ struct _GrRecipeSmallTile
GtkWidget *serves_spin;
GtkWidget *remove_button;
+ GCancellable *cancellable;
+
int serves;
};
@@ -83,6 +85,9 @@ recipe_small_tile_set_recipe (GrRecipeSmallTile *tile,
store = gr_recipe_store_get ();
+ g_cancellable_cancel (tile->cancellable);
+ g_clear_object (&tile->cancellable);
+
g_set_object (&tile->recipe, recipe);
if (tile->recipe) {
@@ -104,15 +109,15 @@ recipe_small_tile_set_recipe (GrRecipeSmallTile *tile,
if (images->len > 0) {
int index;
GrImage *ri;
- g_autoptr(GdkPixbuf) pixbuf = NULL;
+
+ tile->cancellable = g_cancellable_new ();
index = gr_recipe_get_default_image (recipe);
if (index < 0 || index >= images->len)
index = 0;
ri = g_ptr_array_index (images, index);
- pixbuf = load_pixbuf_fill_size (gr_image_get_path (ri), 64, 64);
- gtk_image_set_from_pixbuf (GTK_IMAGE (tile->image), pixbuf);
+ gr_image_load (ri, 64, 64, FALSE, tile->cancellable, gr_image_set_pixbuf,
tile->image);
}
}
@@ -148,6 +153,8 @@ recipe_small_tile_finalize (GObject *object)
{
GrRecipeSmallTile *tile = GR_RECIPE_SMALL_TILE (object);
+ g_cancellable_cancel (tile->cancellable);
+ g_clear_object (&tile->cancellable);
g_clear_object (&tile->recipe);
G_OBJECT_CLASS (gr_recipe_small_tile_parent_class)->finalize (object);
diff --git a/src/gr-recipe-store.c b/src/gr-recipe-store.c
index 7a3daf8..6b0de40 100644
--- a/src/gr-recipe-store.c
+++ b/src/gr-recipe-store.c
@@ -360,7 +360,8 @@ load_recipes (GrRecipeStore *self,
if (paths) {
for (j = 0; paths[j]; j++) {
GrImage *ri;
- ri = gr_image_new (paths[j]);
+ ri = gr_image_new (gr_app_get_soup_session (GR_APP
(g_application_get_default ())), paths[j]);
+
g_ptr_array_add (images, ri);
}
}
diff --git a/src/gr-recipe-tile.c b/src/gr-recipe-tile.c
index d142072..72875c8 100644
--- a/src/gr-recipe-tile.c
+++ b/src/gr-recipe-tile.c
@@ -43,6 +43,8 @@ struct _GrRecipeTile
GtkWidget *author;
GtkWidget *image;
GtkWidget *box;
+
+ GCancellable *cancellable;
};
G_DEFINE_TYPE (GrRecipeTile, gr_recipe_tile, GTK_TYPE_BUTTON)
@@ -64,6 +66,9 @@ recipe_tile_set_recipe (GrRecipeTile *tile,
store = gr_recipe_store_get ();
+ g_cancellable_cancel (tile->cancellable);
+ g_clear_object (&tile->cancellable);
+
g_set_object (&tile->recipe, recipe);
if (tile->recipe) {
@@ -85,20 +90,20 @@ recipe_tile_set_recipe (GrRecipeTile *tile,
if (images->len > 0) {
int index;
GrImage *ri;
- g_autoptr(GdkPixbuf) pixbuf = NULL;
- int width;
- int height;
- width = tile->wide ? 538 : 258;
- height = 200;
+ tile->cancellable = g_cancellable_new ();
index = gr_recipe_get_default_image (recipe);
if (index < 0 || index >= images->len)
index = 0;
ri = g_ptr_array_index (images, index);
- pixbuf = load_pixbuf_fill_size (gr_image_get_path (ri), width, height);
- gtk_image_set_from_pixbuf (GTK_IMAGE (tile->image), pixbuf);
+
+ gr_image_load (ri,
+ tile->wide ? 538 : 258, 200, FALSE,
+ tile->cancellable,
+ gr_image_set_pixbuf,
+ tile->image);
}
}
}
@@ -108,6 +113,8 @@ recipe_tile_finalize (GObject *object)
{
GrRecipeTile *tile = GR_RECIPE_TILE (object);
+ g_cancellable_cancel (tile->cancellable);
+ g_clear_object (&tile->cancellable);
g_clear_object (&tile->recipe);
G_OBJECT_CLASS (gr_recipe_tile_parent_class)->finalize (object);
diff --git a/src/gr-shell-search-provider.c b/src/gr-shell-search-provider.c
index bb05394..f19a19a 100644
--- a/src/gr-shell-search-provider.c
+++ b/src/gr-shell-search-provider.c
@@ -171,8 +171,8 @@ gr_recipe_get_pixbuf (GrRecipe *recipe)
images = gr_recipe_get_images (recipe);
if (images->len > 0) {
int index = gr_recipe_get_default_image (recipe);
- GrImage *ri = &g_array_index (images, GrImage, index);
- return load_pixbuf_fill_size (gr_image_get_path (ri), 64, 64);
+ GrImage *ri = g_ptr_array_index (images, index);
+ return gr_image_load_sync (ri, 64, 64, FALSE);
}
return NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]