[gthumb] viewer: added a way to get the modified image
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] viewer: added a way to get the modified image
- Date: Sat, 9 Nov 2013 20:00:42 +0000 (UTC)
commit 1a98a3f8d68b61569c0d1aca1ce1a6dbeed89abc
Author: Paolo Bacchilega <paobac src gnome org>
Date: Sun Oct 6 17:40:01 2013 +0200
viewer: added a way to get the modified image
used in the desktop background tool
extensions/desktop_background/actions.c | 2 +-
extensions/image_viewer/gth-image-histogram.c | 2 +-
extensions/image_viewer/gth-image-viewer-page.c | 25 +++++++++-------------
extensions/image_viewer/gth-image-viewer-page.h | 3 +-
gthumb/gth-image-preloader.c | 16 ++++++++++++++
gthumb/gth-image-preloader.h | 1 +
6 files changed, 31 insertions(+), 18 deletions(-)
---
diff --git a/extensions/desktop_background/actions.c b/extensions/desktop_background/actions.c
index a67cc49..6e63bae 100644
--- a/extensions/desktop_background/actions.c
+++ b/extensions/desktop_background/actions.c
@@ -316,7 +316,7 @@ gth_browser_activate_action_tool_desktop_background (GtkAction *action,
GthImage *image;
GthTask *task;
- image = gth_image_new_for_surface (gth_image_viewer_page_get_image
(GTH_IMAGE_VIEWER_PAGE (viewer_page)));
+ image = gth_image_new_for_surface (gth_image_viewer_page_get_modified_image
(GTH_IMAGE_VIEWER_PAGE (viewer_page)));
file_data = gth_file_data_new (wdata->new_style.file, NULL);
task = gth_save_image_task_new (image,
"image/jpeg",
diff --git a/extensions/image_viewer/gth-image-histogram.c b/extensions/image_viewer/gth-image-histogram.c
index 27695c8..aa944b8 100644
--- a/extensions/image_viewer/gth-image-histogram.c
+++ b/extensions/image_viewer/gth-image-histogram.c
@@ -74,7 +74,7 @@ gth_image_histogram_real_set_file (GthPropertyView *base,
return;
}
- gth_histogram_calculate_for_image (self->priv->histogram, gth_image_viewer_page_get_image
(GTH_IMAGE_VIEWER_PAGE (viewer_page)));
+ gth_histogram_calculate_for_image (self->priv->histogram, gth_image_viewer_page_get_current_image
(GTH_IMAGE_VIEWER_PAGE (viewer_page)));
}
diff --git a/extensions/image_viewer/gth-image-viewer-page.c b/extensions/image_viewer/gth-image-viewer-page.c
index de735f2..999cfe4 100644
--- a/extensions/image_viewer/gth-image-viewer-page.c
+++ b/extensions/image_viewer/gth-image-viewer-page.c
@@ -1618,18 +1618,25 @@ gth_image_viewer_page_set_pixbuf (GthImageViewerPage *self,
cairo_surface_t *
-gth_image_viewer_page_get_image (GthImageViewerPage *self)
+gth_image_viewer_page_get_current_image (GthImageViewerPage *self)
{
return gth_image_viewer_get_current_image (GTH_IMAGE_VIEWER (self->priv->viewer));
}
+cairo_surface_t *
+gth_image_viewer_page_get_modified_image (GthImageViewerPage *self)
+{
+ return gth_image_preloader_get_modified_image (self->priv->preloader);
+}
+
+
void
gth_image_viewer_page_set_image (GthImageViewerPage *self,
cairo_surface_t *image,
gboolean add_to_history)
{
- if (gth_image_viewer_page_get_image (self) == image)
+ if (gth_image_viewer_page_get_current_image (self) == image)
return;
if (add_to_history)
@@ -1816,20 +1823,8 @@ gth_image_viewer_page_get_original (GthImageViewerPage *self,
gth_image_viewer_page_get_original);
data->cancellable = (cancellable != NULL) ? g_object_ref (cancellable) : g_cancellable_new ();
- if (self->priv->image_changed) {
- GthImage *image;
-
- image = gth_image_new_for_surface (gth_image_viewer_page_get_image (self));
- g_simple_async_result_set_op_res_gpointer (data->result,
- image,
- (GDestroyNotify) g_object_unref);
- g_simple_async_result_complete_in_idle (data->result);
-
- return;
- }
-
gth_image_preloader_load (self->priv->preloader,
- self->priv->file_data,
+ self->priv->image_changed ? GTH_MODIFIED_IMAGE : self->priv->file_data,
-1,
data->cancellable,
original_image_ready_cb,
diff --git a/extensions/image_viewer/gth-image-viewer-page.h b/extensions/image_viewer/gth-image-viewer-page.h
index ee7f018..01dd37c 100644
--- a/extensions/image_viewer/gth-image-viewer-page.h
+++ b/extensions/image_viewer/gth-image-viewer-page.h
@@ -52,7 +52,8 @@ GdkPixbuf * gth_image_viewer_page_get_pixbuf (GthImageViewerPage
*page)
void gth_image_viewer_page_set_pixbuf (GthImageViewerPage *page,
GdkPixbuf *pixbuf,
gboolean add_to_history);
-cairo_surface_t * gth_image_viewer_page_get_image (GthImageViewerPage *page);
+cairo_surface_t * gth_image_viewer_page_get_current_image (GthImageViewerPage *page);
+cairo_surface_t * gth_image_viewer_page_get_modified_image (GthImageViewerPage *page);
void gth_image_viewer_page_set_image (GthImageViewerPage *page,
cairo_surface_t *image,
gboolean add_to_history);
diff --git a/gthumb/gth-image-preloader.c b/gthumb/gth-image-preloader.c
index 7a49b93..f4b3352 100644
--- a/gthumb/gth-image-preloader.c
+++ b/gthumb/gth-image-preloader.c
@@ -828,3 +828,19 @@ gth_image_preloader_set_modified_image (GthImagePreloader *self,
cache_data->error = NULL;
_gth_image_preloader_add_to_cache (self, cache_data);
}
+
+
+cairo_surface_t *
+gth_image_preloader_get_modified_image (GthImagePreloader *self)
+{
+ GList *scan;
+
+ for (scan = self->priv->cache->head; scan; scan = scan->next) {
+ CacheData *cache_data = scan->data;
+
+ if ((cache_data->file_data == GTH_MODIFIED_IMAGE) && (cache_data->requested_size == -1))
+ return gth_image_get_cairo_surface (cache_data->image);
+ }
+
+ return NULL;
+}
diff --git a/gthumb/gth-image-preloader.h b/gthumb/gth-image-preloader.h
index dec9506..78134fd 100644
--- a/gthumb/gth-image-preloader.h
+++ b/gthumb/gth-image-preloader.h
@@ -69,5 +69,6 @@ gboolean gth_image_preloader_load_finish (GthImagePreloader
*
GError **error);
void gth_image_preloader_set_modified_image (GthImagePreloader *self,
cairo_surface_t *image);
+cairo_surface_t * gth_image_preloader_get_modified_image (GthImagePreloader *self);
#endif /* GTH_IMAGE_PRELOADER_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]