From cbdeaed3897f8fdd01995a356c1e3a829fffbf7e Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Sat, 11 Jun 2005 14:15:42 +0000 Subject: Make fonts model fill incrementally. 2005-06-11 Marco Pesenti Gritti * backend/ev-document-fonts.c: (ev_document_fonts_fill_model): * backend/ev-document-fonts.h: * pdf/ev-poppler.cc: Make fonts model fill incrementally. * 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.c: (ev_job_fonts_init), (ev_job_fonts_class_init), (ev_job_fonts_new), (ev_job_fonts_run): * shell/ev-jobs.h: New job for fonts scanning * shell/ev-properties.c: (job_fonts_finished_cb), (fill_fonts_treeview), (setup_fonts_view), (ev_properties_new): * shell/ev-properties.h: * shell/ev-window.c: (ev_window_cmd_file_properties): Incrementally feel the treeview using the new job. Show Loading... message until scanning is completed. Hopefully I didnt break the build without the poppler patch. --- (limited to 'shell/ev-jobs.c') diff --git a/shell/ev-jobs.c b/shell/ev-jobs.c index be1d3bc..82f310f 100644 --- a/shell/ev-jobs.c +++ b/shell/ev-jobs.c @@ -2,6 +2,7 @@ #include "ev-job-queue.h" #include "ev-document-thumbnails.h" #include "ev-document-links.h" +#include "ev-document-fonts.h" #include "ev-async-renderer.h" static void ev_job_init (EvJob *job); @@ -28,6 +29,7 @@ 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) G_DEFINE_TYPE (EvJobLoad, ev_job_load, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobFonts, ev_job_fonts, EV_TYPE_JOB) static void ev_job_init (EvJob *job) { /* Do Nothing */ } @@ -340,4 +342,37 @@ ev_job_load_run (EvJobLoad *job) ev_document_doc_mutex_unlock (); } +static void ev_job_fonts_init (EvJobFonts *job) { /* Do Nothing */ } +static void ev_job_fonts_class_init (EvJobFontsClass *class) { /* Do Nothing */ } + +EvJob * +ev_job_fonts_new (EvDocument *document, + GtkTreeModel *model) +{ + EvJobFonts *job; + + job = g_object_new (EV_TYPE_JOB_FONTS, NULL); + + EV_JOB (job)->document = g_object_ref (document); + job->model = g_object_ref (model); + + return EV_JOB (job); +} + +void +ev_job_fonts_run (EvJobFonts *job) +{ + EvDocumentFonts *fonts; + + g_return_if_fail (EV_IS_JOB_FONTS (job)); + + ev_document_doc_mutex_lock (); + + fonts = EV_DOCUMENT_FONTS (EV_JOB (job)->document); + job->scan_completed = !ev_document_fonts_fill_model (fonts, job->model, 20); + + EV_JOB (job)->finished = TRUE; + + ev_document_doc_mutex_unlock (); +} -- cgit v0.9.1