X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=libview%2Fev-jobs.c;h=a0866d508b0ec31d7ef8aed7312b3ae56677ad7f;hb=9cea7543efb218a7a71097fa78e1841cab1e95af;hp=55e76a45821b06bd8f84af9c7311824c7f2ef732;hpb=cc0f0ef258d6540cb2a264a1a53a717d836c79d4;p=evince.git diff --git a/libview/ev-jobs.c b/libview/ev-jobs.c index 55e76a45..a0866d50 100644 --- a/libview/ev-jobs.c +++ b/libview/ev-jobs.c @@ -35,6 +35,7 @@ #include "ev-document-layers.h" #include "ev-document-print.h" #include "ev-document-annotations.h" +#include "ev-document-attachments.h" #include "ev-debug.h" #include @@ -402,13 +403,14 @@ ev_job_attachments_run (EvJob *job) ev_debug_message (DEBUG_JOBS, NULL); ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); - + ev_document_doc_mutex_lock (); - job_attachments->attachments = ev_document_get_attachments (job->document); + job_attachments->attachments = + ev_document_attachments_get_attachments (EV_DOCUMENT_ATTACHMENTS (job->document)); ev_document_doc_mutex_unlock (); - + ev_job_succeeded (job); - + return FALSE; } @@ -934,31 +936,17 @@ ev_job_save_run (EvJob *job) { EvJobSave *job_save = EV_JOB_SAVE (job); gint fd; - gchar *filename; - gchar *tmp_filename; + gchar *tmp_filename = NULL; gchar *local_uri; GError *error = NULL; ev_debug_message (DEBUG_JOBS, "uri: %s, document_uri: %s", job_save->uri, job_save->document_uri); ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); - - filename = ev_tmp_filename ("saveacopy"); - tmp_filename = g_strdup_printf ("%s.XXXXXX", filename); - g_free (filename); - - fd = g_mkstemp (tmp_filename); - if (fd == -1) { - gchar *display_name; - gint save_errno = errno; - display_name = g_filename_display_name (tmp_filename); - ev_job_failed (job, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to create file “%s”: %s"), - display_name, g_strerror (save_errno)); - g_free (display_name); - g_free (tmp_filename); + fd = ev_mkstemp ("saveacopy.XXXXXX", &tmp_filename, &error); + if (fd == -1) { + ev_job_failed_from_error (job, error); + g_error_free (error); return FALSE; } @@ -966,8 +954,11 @@ ev_job_save_run (EvJob *job) ev_document_doc_mutex_lock (); /* Save document to temp filename */ - local_uri = g_filename_to_uri (tmp_filename, NULL, NULL); - ev_document_save (job->document, local_uri, &error); + local_uri = g_filename_to_uri (tmp_filename, NULL, &error); + if (local_uri != NULL) { + ev_document_save (job->document, local_uri, &error); + } + close (fd); ev_document_doc_mutex_unlock (); @@ -998,7 +989,7 @@ ev_job_save_run (EvJob *job) uri_comp = ev_file_compress (local_uri, ctype, &error); g_free (local_uri); - ev_tmp_filename_unlink (tmp_filename); + g_unlink (tmp_filename); if (!uri_comp || error) { local_uri = NULL; @@ -1008,7 +999,7 @@ ev_job_save_run (EvJob *job) } g_free (tmp_filename); - + if (error) { g_free (local_uri); ev_job_failed_from_error (job, error);