+ int r;
+
+ wd->thumb.idler = NULL;
+
+ if ((wd->is_video) && (wd->thumb.format == ETHUMB_THUMB_EET))
+ {
+ if (!edje_object_file_set(wd->view,
+ wd->thumb.thumb_path,
+ "movie/thumb"))
+ {
+ ERR("could not set file=%s key=%s for %s",
+ wd->thumb.thumb_path,
+ wd->thumb.thumb_key,
+ wd->file);
+ goto view_err;
+ }
+ }
+ else
+ {
+ evas_object_image_file_set(wd->view,
+ wd->thumb.thumb_path,
+ wd->thumb.thumb_key);
+ r = evas_object_image_load_error_get(wd->view);
+ if (r != EVAS_LOAD_ERROR_NONE)
+ {
+ ERR("%s: %s", wd->thumb.thumb_path, evas_load_error_str(r));
+ goto view_err;
+ }
+ }
+
+ edje_object_part_swallow(wd->frame, "elm.swallow.content", wd->view);
+ edje_object_size_min_get(wd->frame, &mw, &mh);
+ edje_object_size_min_restricted_calc(wd->frame, &mw, &mh, mw, mh);
+ evas_object_size_hint_min_set(wd->self, mw, mh);
+ eina_stringshare_replace(&(wd->thumb.file), wd->thumb.thumb_path);
+ eina_stringshare_replace(&(wd->thumb.key), wd->thumb.thumb_key);
+ edje_object_signal_emit(wd->frame, EDJE_SIGNAL_GENERATE_STOP, "elm");
+ evas_object_smart_callback_call(wd->self, SIG_GENERATE_STOP, NULL);
+
+ eina_stringshare_del(wd->thumb.thumb_path);
+ wd->thumb.thumb_path = NULL;
+
+ eina_stringshare_del(wd->thumb.thumb_key);
+ wd->thumb.thumb_key = NULL;
+
+ return ECORE_CALLBACK_CANCEL;
+
+ view_err:
+ eina_stringshare_del(wd->thumb.thumb_path);
+ wd->thumb.thumb_path = NULL;
+
+ eina_stringshare_del(wd->thumb.thumb_key);
+ wd->thumb.thumb_key = NULL;
+
+ evas_object_del(wd->view);
+ wd->view = NULL;
+
+ edje_object_signal_emit(wd->frame, EDJE_SIGNAL_LOAD_ERROR, "elm");
+ evas_object_smart_callback_call(wd->self, SIG_LOAD_ERROR, NULL);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void
+_finished_thumb(Widget_Data *wd,
+ const char *thumb_path,
+ const char *thumb_key)
+{