]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-job-xfer.c
Allow build from different dir
[evince.git] / shell / ev-job-xfer.c
index 49f674e53f2ebdbeec8b9c6840426aec05c70bef..cc9b7c4709f70968eb88f32258239deb4a90fd62 100644 (file)
@@ -90,7 +90,7 @@ ev_job_xfer_new (const gchar *uri)
 void
 ev_job_xfer_run (EvJobXfer *job)
 {
-       GType document_type;
+       EvDocument *document;
        GError *error = NULL;
        GnomeVFSURI *source_uri;
        GnomeVFSURI *target_uri;
@@ -102,10 +102,10 @@ ev_job_xfer_run (EvJobXfer *job)
                job->error = NULL;
        }
 
-       document_type = ev_document_type_lookup (job->uri, NULL, &error);
+       document = ev_document_types_get_document (job->uri, NULL, &error);
 
-       if (document_type != G_TYPE_INVALID) {
-               EV_JOB (job)->document = g_object_new (document_type, NULL);
+       if (document != NULL) {
+               EV_JOB (job)->document = document;
        } else {
                job->error = error;                     
                EV_JOB (job)->finished = TRUE;
@@ -115,9 +115,11 @@ ev_job_xfer_run (EvJobXfer *job)
        source_uri = gnome_vfs_uri_new (job->uri);
        if (!gnome_vfs_uri_is_local (source_uri)) {
                char *tmp_name;
+               char *base_name;
                
                tmp_name = ev_tmp_filename ();
-               job->local_uri = g_strconcat ("file:", tmp_name, NULL);
+               base_name = g_path_get_basename (job->uri);
+               job->local_uri = g_strconcat ("file:", tmp_name, base_name, NULL);
                g_free (tmp_name);
                
                target_uri = gnome_vfs_uri_new (job->local_uri);