X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-jobs.c;h=e9f29eb681949ede515e4cf9688bfd1a64d80716;hb=363996497c9b439597d46f002e995055e368d7a8;hp=9ee598ac4aae5f83f938a182e6a35b7a607b2436;hpb=6a88201fff1713c9113691417cc34bdd1e3ead00;p=evince.git diff --git a/shell/ev-jobs.c b/shell/ev-jobs.c index 9ee598ac..e9f29eb6 100644 --- a/shell/ev-jobs.c +++ b/shell/ev-jobs.c @@ -271,7 +271,7 @@ ev_job_render_run (EvJobRender *job) 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); @@ -389,6 +389,11 @@ ev_job_xfer_dispose (GObject *object) job->error = NULL; } + if (job->dest) { + g_object_unref (job->dest); + job->dest = NULL; + } + (* G_OBJECT_CLASS (ev_job_xfer_parent_class)->dispose) (object); } @@ -404,13 +409,15 @@ ev_job_xfer_class_init (EvJobXferClass *class) 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); } @@ -433,9 +440,13 @@ ev_job_xfer_run (EvJobXfer *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);