49
50
static void ev_job_links_class_init (EvJobLinksClass *class);
50
51
static void ev_job_attachments_init (EvJobAttachments *job);
51
52
static void ev_job_attachments_class_init (EvJobAttachmentsClass *class);
53
static void ev_job_annots_init (EvJobAnnots *job);
54
static void ev_job_annots_class_init (EvJobAnnotsClass *class);
52
55
static void ev_job_render_init (EvJobRender *job);
53
56
static void ev_job_render_class_init (EvJobRenderClass *class);
54
57
static void ev_job_page_data_init (EvJobPageData *job);
91
94
G_DEFINE_ABSTRACT_TYPE (EvJob, ev_job, G_TYPE_OBJECT)
92
95
G_DEFINE_TYPE (EvJobLinks, ev_job_links, EV_TYPE_JOB)
93
96
G_DEFINE_TYPE (EvJobAttachments, ev_job_attachments, EV_TYPE_JOB)
97
G_DEFINE_TYPE (EvJobAnnots, ev_job_annots, EV_TYPE_JOB)
94
98
G_DEFINE_TYPE (EvJobRender, ev_job_render, EV_TYPE_JOB)
95
99
G_DEFINE_TYPE (EvJobPageData, ev_job_page_data, EV_TYPE_JOB)
96
100
G_DEFINE_TYPE (EvJobThumbnail, ev_job_thumbnail, EV_TYPE_JOB)
443
ev_job_annots_init (EvJobAnnots *job)
445
EV_JOB (job)->run_mode = EV_JOB_RUN_THREAD;
449
ev_job_annots_dispose (GObject *object)
453
ev_debug_message (DEBUG_JOBS, NULL);
455
job = EV_JOB_ANNOTS (object);
458
g_list_foreach (job->annots, (GFunc)ev_mapping_list_unref, NULL);
459
g_list_free (job->annots);
463
G_OBJECT_CLASS (ev_job_annots_parent_class)->dispose (object);
467
ev_job_annots_run (EvJob *job)
469
EvJobAnnots *job_annots = EV_JOB_ANNOTS (job);
472
ev_debug_message (DEBUG_JOBS, NULL);
473
ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job);
475
ev_document_doc_mutex_lock ();
476
for (i = 0; i < ev_document_get_n_pages (job->document); i++) {
477
EvMappingList *mapping_list;
480
page = ev_document_get_page (job->document, i);
481
mapping_list = ev_document_annotations_get_annotations (EV_DOCUMENT_ANNOTATIONS (job->document),
483
g_object_unref (page);
486
job_annots->annots = g_list_prepend (job_annots->annots, mapping_list);
488
ev_document_doc_mutex_unlock ();
490
job_annots->annots = g_list_reverse (job_annots->annots);
492
ev_job_succeeded (job);
498
ev_job_annots_class_init (EvJobAnnotsClass *class)
500
GObjectClass *oclass = G_OBJECT_CLASS (class);
501
EvJobClass *job_class = EV_JOB_CLASS (class);
503
oclass->dispose = ev_job_annots_dispose;
504
job_class->run = ev_job_annots_run;
508
ev_job_annots_new (EvDocument *document)
512
ev_debug_message (DEBUG_JOBS, NULL);
514
job = g_object_new (EV_TYPE_JOB_ANNOTS, NULL);
515
job->document = g_object_ref (document);
437
520
/* EvJobRender */
439
522
ev_job_render_init (EvJobRender *job)
593
676
ev_document_doc_mutex_lock ();
594
677
ev_page = ev_document_get_page (job->document, job_pd->page);
596
if ((job_pd->flags & EV_PAGE_DATA_INCLUDE_TEXT) && EV_IS_SELECTION (job->document))
679
if ((job_pd->flags & EV_PAGE_DATA_INCLUDE_TEXT_MAPPING) && EV_IS_DOCUMENT_TEXT (job->document))
597
680
job_pd->text_mapping =
598
ev_selection_get_selection_map (EV_SELECTION (job->document), ev_page);
681
ev_document_text_get_text_mapping (EV_DOCUMENT_TEXT (job->document), ev_page);
682
if ((job_pd->flags & EV_PAGE_DATA_INCLUDE_TEXT) && EV_IS_DOCUMENT_TEXT (job->document))
684
ev_document_text_get_text (EV_DOCUMENT_TEXT (job->document), ev_page);
685
if ((job_pd->flags & EV_PAGE_DATA_INCLUDE_TEXT_LAYOUT) && EV_IS_DOCUMENT_TEXT (job->document))
686
ev_document_text_get_text_layout (EV_DOCUMENT_TEXT (job->document),
688
&(job_pd->text_layout),
689
&(job_pd->text_layout_length));
599
690
if ((job_pd->flags & EV_PAGE_DATA_INCLUDE_LINKS) && EV_IS_DOCUMENT_LINKS (job->document))
600
691
job_pd->link_mapping =
601
692
ev_document_links_get_links (EV_DOCUMENT_LINKS (job->document), ev_page);