*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include <config.h>
+
#include <glib/gstdio.h>
+#include <unistd.h>
+
#include "ev-document-misc.h"
#include "ev-file-helpers.h"
#include "ev-image.h"
GdkPixbuf *pixbuf)
{
GError *error = NULL;
- gchar *filename;
+ 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;
- filename = ev_tmp_filename ("image");
+ if ((fd = ev_mkstemp ("image.XXXXXX.png", &filename, &error)) == -1)
+ goto had_error;
+
gdk_pixbuf_save (pixbuf, filename,
"png", &error,
"compression", "3", NULL);
+ close (fd);
+
if (!error) {
- image->priv->tmp_uri = g_filename_to_uri (filename, NULL, NULL);
+ 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 (filename);
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;
-}
-
-