diff options
author | Marco 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) |
commit | cbdeaed3897f8fdd01995a356c1e3a829fffbf7e (patch) | |
tree | cdecbff828fe40a30bb201cf6e883f3674b5aafc /shell/ev-jobs.c | |
parent | e1dd38e5d83e54780cdc37a02f2e3e44eee6400a (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.c | 35 |
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 (); +} |