diff options
Diffstat (limited to 'backend/ev-jobs.c')
-rw-r--r-- | backend/ev-jobs.c | 274 |
1 files changed, 0 insertions, 274 deletions
diff --git a/backend/ev-jobs.c b/backend/ev-jobs.c deleted file mode 100644 index 73b0614..0000000 --- a/backend/ev-jobs.c +++ /dev/null @@ -1,274 +0,0 @@ -#include "ev-jobs.h" -#include "ev-job-queue.h" -#include "ev-document-thumbnails.h" -#include "ev-document-links.h" -#include "ev-async-renderer.h" - -static void ev_job_init (EvJob *job); -static void ev_job_class_init (EvJobClass *class); -static void ev_job_links_init (EvJobLinks *job); -static void ev_job_links_class_init (EvJobLinksClass *class); -static void ev_job_render_init (EvJobRender *job); -static void ev_job_render_class_init (EvJobRenderClass *class); -static void ev_job_thumbnail_init (EvJobThumbnail *job); -static void ev_job_thumbnail_class_init (EvJobThumbnailClass *class); - -enum -{ - FINISHED, - LAST_SIGNAL -}; - -static guint job_signals[LAST_SIGNAL] = { 0 }; - -G_DEFINE_TYPE (EvJob, ev_job, G_TYPE_OBJECT) -G_DEFINE_TYPE (EvJobLinks, ev_job_links, EV_TYPE_JOB) -G_DEFINE_TYPE (EvJobRender, ev_job_render, EV_TYPE_JOB) -G_DEFINE_TYPE (EvJobThumbnail, ev_job_thumbnail, EV_TYPE_JOB) - - -static void ev_job_init (EvJob *job) { /* Do Nothing */ } - -static void -ev_job_dispose (GObject *object) -{ - EvJob *job; - - job = EV_JOB (object); - - if (job->document) { - g_object_unref (job->document); - job->document = NULL; - } - - (* G_OBJECT_CLASS (ev_job_parent_class)->dispose) (object); -} - -static void -ev_job_class_init (EvJobClass *class) -{ - GObjectClass *oclass; - - oclass = G_OBJECT_CLASS (class); - - oclass->dispose = ev_job_dispose; - - job_signals [FINISHED] = - g_signal_new ("finished", - EV_TYPE_JOB, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EvJobClass, finished), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); -} - - -static void ev_job_links_init (EvJobLinks *job) { /* Do Nothing */ } - -static void -ev_job_links_dispose (GObject *object) -{ - EvJobLinks *job; - - job = EV_JOB_LINKS (object); - - if (job->model) { - g_object_unref (job->model); - job->model = NULL; - } - - (* G_OBJECT_CLASS (ev_job_links_parent_class)->dispose) (object); -} - -static void -ev_job_links_class_init (EvJobLinksClass *class) -{ - GObjectClass *oclass; - - oclass = G_OBJECT_CLASS (class); - - oclass->dispose = ev_job_links_dispose; -} - - -static void ev_job_render_init (EvJobRender *job) { /* Do Nothing */ } - -static void -ev_job_render_dispose (GObject *object) -{ - EvJobRender *job; - - job = EV_JOB_RENDER (object); - - if (job->pixbuf) { - g_object_unref (job->pixbuf); - job->pixbuf = NULL; - } - - (* G_OBJECT_CLASS (ev_job_render_parent_class)->dispose) (object); -} - -static void -ev_job_render_class_init (EvJobRenderClass *class) -{ - GObjectClass *oclass; - - oclass = G_OBJECT_CLASS (class); - - oclass->dispose = ev_job_render_dispose; -} - -static void ev_job_thumbnail_init (EvJobThumbnail *job) { /* Do Nothing */ } - -static void -ev_job_thumbnail_dispose (GObject *object) -{ - EvJobThumbnail *job; - - job = EV_JOB_THUMBNAIL (object); - - if (job->thumbnail) { - g_object_unref (job->thumbnail); - job->thumbnail = NULL; - } - - (* G_OBJECT_CLASS (ev_job_thumbnail_parent_class)->dispose) (object); -} - -static void -ev_job_thumbnail_class_init (EvJobThumbnailClass *class) -{ - GObjectClass *oclass; - - oclass = G_OBJECT_CLASS (class); - - oclass->dispose = ev_job_thumbnail_dispose; -} - -/* Public functions */ -void -ev_job_finished (EvJob *job) -{ - g_return_if_fail (EV_IS_JOB (job)); - - g_signal_emit (job, job_signals[FINISHED], 0); -} - -EvJob * -ev_job_links_new (EvDocument *document) -{ - EvJob *job; - - job = g_object_new (EV_TYPE_JOB_LINKS, NULL); - job->document = g_object_ref (document); - - return job; -} - -void -ev_job_links_run (EvJobLinks *job) -{ - g_return_if_fail (EV_IS_JOB_LINKS (job)); - - ev_document_doc_mutex_lock (); - job->model = ev_document_links_get_links_model (EV_DOCUMENT_LINKS (EV_JOB (job)->document)); - EV_JOB (job)->finished = TRUE; - ev_document_doc_mutex_unlock (); -} - - -EvJob * -ev_job_render_new (EvDocument *document, - gint page, - double scale, - gint width, - gint height, - gboolean include_links) -{ - EvJobRender *job; - - job = g_object_new (EV_TYPE_JOB_RENDER, NULL); - - EV_JOB (job)->document = g_object_ref (document); - job->page = page; - job->scale = scale; - job->target_width = width; - job->target_height = height; - job->include_links = include_links; - - if (EV_IS_ASYNC_RENDERER (document)) { - EV_JOB (job)->async = TRUE; - } - - return EV_JOB (job); -} - -static void -render_finished_cb (EvDocument *document, GdkPixbuf *pixbuf, EvJobRender *job) -{ - g_signal_handlers_disconnect_by_func (EV_JOB (job)->document, - render_finished_cb, job); - - EV_JOB (job)->finished = TRUE; - job->pixbuf = g_object_ref (pixbuf); - ev_job_finished (EV_JOB (job)); -} - -void -ev_job_render_run (EvJobRender *job) -{ - g_return_if_fail (EV_IS_JOB_RENDER (job)); - - ev_document_doc_mutex_lock (); - - if (EV_JOB (job)->async) { - EvAsyncRenderer *renderer = EV_ASYNC_RENDERER (EV_JOB (job)->document); - ev_async_renderer_render_pixbuf (renderer, job->page, job->scale); - g_signal_connect (EV_JOB (job)->document, "render_finished", - G_CALLBACK (render_finished_cb), job); - } else { - job->pixbuf = ev_document_render_pixbuf (EV_JOB (job)->document, - job->page, - job->scale); - if (job->include_links) - job->link_mapping = ev_document_get_links (EV_JOB (job)->document, job->page); - - EV_JOB (job)->finished = TRUE; - } - - ev_document_doc_mutex_unlock (); -} - -EvJob * -ev_job_thumbnail_new (EvDocument *document, - gint page, - gint requested_width) -{ - EvJobThumbnail *job; - - job = g_object_new (EV_TYPE_JOB_THUMBNAIL, NULL); - - EV_JOB (job)->document = g_object_ref (document); - job->page = page; - job->requested_width = requested_width; - - return EV_JOB (job); -} - -void -ev_job_thumbnail_run (EvJobThumbnail *job) -{ - g_return_if_fail (EV_IS_JOB_THUMBNAIL (job)); - - ev_document_doc_mutex_lock (); - - job->thumbnail = - ev_document_thumbnails_get_thumbnail (EV_DOCUMENT_THUMBNAILS (EV_JOB (job)->document), - job->page, - job->requested_width, - TRUE); - EV_JOB (job)->finished = TRUE; - - ev_document_doc_mutex_unlock (); -} |