*/
#include <config.h>
+
#include <glib/gstdio.h>
+#include <unistd.h>
+
#include "ev-document-misc.h"
#include "ev-file-helpers.h"
#include "ev-image.h"
}
if (image->priv->tmp_uri) {
- ev_tmp_filename_unlink (image->priv->tmp_uri);
+ gchar *filename;
+
+ filename = g_filename_from_uri (image->priv->tmp_uri, NULL, NULL);
+ ev_tmp_filename_unlink (filename);
+ g_free (filename);
g_free (image->priv->tmp_uri);
image->priv->tmp_uri = NULL;
}
GdkPixbuf *pixbuf)
{
GError *error = NULL;
+ gchar *filename = NULL;
+ int fd;
g_return_val_if_fail (EV_IS_IMAGE (image), NULL);
g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
if (image->priv->tmp_uri)
return image->priv->tmp_uri;
- image->priv->tmp_uri = ev_tmp_filename ("image");
- gdk_pixbuf_save (pixbuf, image->priv->tmp_uri,
+ if ((fd = ev_mkstemp ("image.XXXXXX", &filename, &error)) == -1)
+ goto had_error;
+
+ gdk_pixbuf_save (pixbuf, filename,
"png", &error,
"compression", "3", NULL);
- if (!error)
+ close (fd);
+
+ if (!error) {
+ image->priv->tmp_uri = g_filename_to_uri (filename, NULL, &error);
+ if (image->priv->tmp_uri == NULL)
+ goto had_error;
+
+ g_free (filename);
+
return image->priv->tmp_uri;
+ }
+
+ had_error:
/* Erro saving image */
- g_warning (error->message);
+ g_warning ("Error saving image: %s", error->message);
g_error_free (error);
- g_free (image->priv->tmp_uri);
- image->priv->tmp_uri = NULL;
+ g_free (filename);
return NULL;
}
return image->priv->tmp_uri;
}
-
-/* EvImageMapping */
-static void
-ev_image_mapping_free_foreach (EvImageMapping *mapping)
-{
- g_object_unref (mapping->image);
- g_free (mapping);
-}
-
-void
-ev_image_mapping_free (GList *image_mapping)
-{
- if (!image_mapping)
- return;
-
- g_list_foreach (image_mapping, (GFunc) ev_image_mapping_free_foreach, NULL);
- g_list_free (image_mapping);
-}
-
-EvImage *
-ev_image_mapping_find (GList *image_mapping,
- gdouble x,
- gdouble y)
-{
- GList *list;
-
- for (list = image_mapping; list; list = list->next) {
- EvImageMapping *mapping = list->data;
-
- if ((x >= mapping->x1) &&
- (y >= mapping->y1) &&
- (x <= mapping->x2) &&
- (y <= mapping->y2)) {
- return mapping->image;
- }
- }
-
- return NULL;
-}
-
-