Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-jobs.c
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2005-06-11 14:15:42 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-06-11 14:15:42 (GMT)
commitcbdeaed3897f8fdd01995a356c1e3a829fffbf7e (patch)
treecdecbff828fe40a30bb201cf6e883f3674b5aafc /shell/ev-jobs.c
parente1dd38e5d83e54780cdc37a02f2e3e44eee6400a (diff)
Make fonts model fill incrementally.
2005-06-11 Marco Pesenti Gritti <mpg@redhat.com> * 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.
Diffstat (limited to 'shell/ev-jobs.c')
-rw-r--r--shell/ev-jobs.c35
1 files changed, 35 insertions, 0 deletions
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 ();
+}