From ca679febd93eef2a4a6afd99cbd7aee8ab537443 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Wed, 24 Jan 2007 18:14:06 +0000 Subject: Do file transfer asynchronously in the main thread instead of 2007-01-24 Carlos Garcia Campos * shell/ev-job-queue.c: (handle_job), (search_for_jobs_unlocked), (no_jobs_available_unlocked), (ev_job_queue_init), (find_queue), (ev_job_queue_remove_job): * shell/ev-jobs.[ch]: (ev_job_load_init), (ev_job_load_class_init), (ev_job_load_dispose), (ev_job_load_new), (ev_job_load_set_uri), (ev_job_load_run): * shell/ev-window.c: (ev_window_is_empty), (password_dialog_response), (ev_window_popup_password_dialog), (ev_window_clear_load_job), (ev_window_load_job_cb), (xfer_update_progress_callback), (ev_window_open_uri), (ev_window_dispose): * shell/main.c: (main): Do file transfer asynchronously in the main thread instead of synchronously in the load thread. Fixes bugs #399694, #398307 and #343542. svn path=/trunk/; revision=2248 --- (limited to 'shell/ev-jobs.h') diff --git a/shell/ev-jobs.h b/shell/ev-jobs.h index bf37b67..779c373 100644 --- a/shell/ev-jobs.h +++ b/shell/ev-jobs.h @@ -41,8 +41,8 @@ typedef struct _EvJobLinksClass EvJobLinksClass; typedef struct _EvJobFonts EvJobFonts; typedef struct _EvJobFontsClass EvJobFontsClass; -typedef struct _EvJobXfer EvJobXfer; -typedef struct _EvJobXferClass EvJobXferClass; +typedef struct _EvJobLoad EvJobLoad; +typedef struct _EvJobLoadClass EvJobLoadClass; typedef struct _EvJobPrint EvJobPrint; typedef struct _EvJobPrintClass EvJobPrintClass; @@ -72,10 +72,10 @@ typedef struct _EvJobPrintClass EvJobPrintClass; #define EV_JOB_FONTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_FONTS, EvJobFontsClass)) #define EV_IS_JOB_FONTS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_FONTS)) -#define EV_TYPE_JOB_XFER (ev_job_xfer_get_type()) -#define EV_JOB_XFER(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_XFER, EvJobXfer)) -#define EV_JOB_XFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_XFER, EvJobXferClass)) -#define EV_IS_JOB_XFER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_XFER)) +#define EV_TYPE_JOB_LOAD (ev_job_load_get_type()) +#define EV_JOB_LOAD(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_LOAD, EvJobLoad)) +#define EV_JOB_LOAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_LOAD, EvJobLoadClass)) +#define EV_IS_JOB_LOAD(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_LOAD)) #define EV_TYPE_JOB_PRINT (ev_job_print_get_type()) #define EV_JOB_PRINT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_PRINT, EvJobPrint)) @@ -170,17 +170,17 @@ struct _EvJobFontsClass EvJobClass parent_class; }; -struct _EvJobXfer +struct _EvJobLoad { EvJob parent; + EvLinkDest *dest; EvWindowRunMode mode; GError *error; - char *uri; - char *local_uri; + gchar *uri; }; -struct _EvJobXferClass +struct _EvJobLoadClass { EvJobClass parent_class; }; @@ -244,12 +244,14 @@ GType ev_job_fonts_get_type (void) G_GNUC_CONST; EvJob *ev_job_fonts_new (EvDocument *document); void ev_job_fonts_run (EvJobFonts *fonts); -/* EvJobXfer */ -GType ev_job_xfer_get_type (void) G_GNUC_CONST; -EvJob *ev_job_xfer_new (const gchar *uri, +/* EvJobLoad */ +GType ev_job_load_get_type (void) G_GNUC_CONST; +EvJob *ev_job_load_new (const gchar *uri, EvLinkDest *dest, EvWindowRunMode mode); -void ev_job_xfer_run (EvJobXfer *xfer); +void ev_job_load_set_uri (EvJobLoad *load, + const gchar *uri); +void ev_job_load_run (EvJobLoad *load); /* EvJobPrint */ GType ev_job_print_get_type (void) G_GNUC_CONST; -- cgit v0.9.1