G_CALLBACK (render_finished_cb), job);
} else {
job->pixbuf = ev_document_render_pixbuf (EV_JOB (job)->document, job->rc);
- if (job->include_links && EV_IS_LINK (EV_JOB (job)->document))
+ if (job->include_links && EV_IS_DOCUMENT_LINKS (EV_JOB (job)->document))
job->link_mapping =
ev_document_links_get_links (EV_DOCUMENT_LINKS (EV_JOB (job)->document),
job->rc->page);
job->error = NULL;
}
+ if (job->dest) {
+ g_object_unref (job->dest);
+ job->dest = NULL;
+ }
+
(* G_OBJECT_CLASS (ev_job_xfer_parent_class)->dispose) (object);
}
EvJob *
-ev_job_xfer_new (const gchar *uri)
+ev_job_xfer_new (const gchar *uri, EvLinkDest *dest)
{
EvJobXfer *job;
job = g_object_new (EV_TYPE_JOB_XFER, NULL);
job->uri = g_strdup (uri);
+ if (dest)
+ job->dest = g_object_ref (dest);
return EV_JOB (job);
}
char *tmp_name;
char *base_name;
+ /* We'd like to keep extension of source uri since
+ * it helps to resolve some mime types, say cbz */
+
tmp_name = ev_tmp_filename ();
- base_name = g_path_get_basename (job->uri);
- job->local_uri = g_strconcat ("file:", tmp_name, base_name, NULL);
+ base_name = gnome_vfs_uri_extract_short_name (source_uri);
+ job->local_uri = g_strconcat ("file:", tmp_name, "-", base_name, NULL);
+ g_free (base_name);
g_free (tmp_name);
target_uri = gnome_vfs_uri_new (job->local_uri);