Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-jobs.c
Commit message (Collapse)AuthorAgeFilesLines
* RemovedCarlos Garcia Campos2008-08-271-3/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-08-27 Carlos Garcia Campos <carlosgc@gnome.org> * backend/djvu/Makefile.am: * backend/djvu/djvu-document-private.h: * backend/djvu/djvu-document.c: (djvu_document_find_find_text), (djvu_document_find_iface_init): * backend/djvu/djvu-text-page.[ch]: * backend/djvu/djvu-text.[ch]: Removed * backend/pdf/ev-poppler.cc: (pdf_document_find_find_text), (pdf_document_find_iface_init): * libdocument/ev-document-find.[ch]: (ev_document_find_find_text): * shell/ev-jobs.[ch]: (ev_job_find_init), (ev_job_find_dispose), (ev_job_find_run), (ev_job_find_class_init), (ev_job_find_new), (ev_job_find_get_n_results), (ev_job_find_get_progress), (ev_job_find_has_results), (ev_job_find_get_results): * shell/ev-view-private.h: * shell/ev-view.[ch]: (ev_view_expose_event), (highlight_find_results), (ev_view_finalize), (ev_view_get_property), (ev_view_class_init), (page_changed_cb), (ev_view_set_document), (ev_view_find_get_n_results), (ev_view_find_get_result), (jump_to_find_result), (jump_to_find_page), (ev_view_find_changed), (ev_view_find_next), (ev_view_find_previous), (ev_view_find_search_changed), (ev_view_find_set_highlight_search), (ev_view_find_cancel): * shell/ev-window.c: (ev_window_update_actions), (page_changed_cb), (ev_window_setup_document), (ev_window_update_find_status_message), (ev_window_find_job_finished_cb), (ev_window_find_job_updated_cb), (ev_window_clear_find_job), (find_bar_close_cb), (find_bar_search_changed_cb), (find_bar_visibility_changed_cb), (ev_window_dispose), (ev_window_init): Rework find interface. The find logic has been moved from backends to the shell avoiding a lot of duplicated code in the backends and making easier to implement the find interface in the backends. svn path=/trunk/; revision=3123
* Add a new job to get the attachments in a thread with the document lockCarlos Garcia Campos2008-08-221-14/+82
| | | | | | | | | | | | | | | 2008-08-22 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.[ch]: (ev_job_attachments_init), (ev_job_attachments_dispose), (ev_job_attachments_run), (ev_job_attachments_class_init), (ev_job_attachments_new): * shell/ev-sidebar-attachments.c: (ev_sidebar_attachments_set_document): Add a new job to get the attachments in a thread with the document lock held. Fixes bug #548653. svn path=/trunk/; revision=3116
* Fix loading encrypted documents since I broke it with the jobs rework.Carlos Garcia Campos2008-08-061-2/+25
| | | | | | | | | | | | | | | 2008-08-06 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.[ch]: (ev_job_load_dispose), (ev_job_load_run), (ev_job_load_set_password): * shell/ev-password.[ch]: (ev_password_dialog_get_password): * shell/ev-window.c: (password_dialog_response), (ev_window_load_job_cb): Fix loading encrypted documents since I broke it with the jobs rework. svn path=/trunk/; revision=3099
* Rework the jobs system in order to make it simpler and more extensible. ItCarlos Garcia Campos2008-08-031-412/+646
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-08-03 Carlos Garcia Campos <carlosgc@gnome.org> * libdocument/ev-document.[ch]: (ev_document_doc_mutex_trylock), (ev_document_fc_mutex_trylock): * shell/Makefile.am: * shell/ev-job-queue.[ch]: * shell/ev-job-scheduler.[ch]: * shell/ev-jobs.[ch]: (ev_job_init), (ev_job_dispose), (ev_job_class_init), (emit_finished), (ev_job_emit_finished), (ev_job_run), (ev_job_cancel), (ev_job_failed), (ev_job_failed_from_error), (ev_job_succeeded), (ev_job_is_finished), (ev_job_is_failed), (ev_job_get_run_mode), (ev_job_set_run_mode), (ev_job_links_init), (ev_job_links_run), (ev_job_links_class_init), (ev_job_render_init), (notify_page_ready), (ev_job_render_page_ready), (ev_job_render_run), (ev_job_render_class_init), (ev_job_thumbnail_init), (ev_job_thumbnail_run), (ev_job_thumbnail_class_init), (ev_job_fonts_init), (ev_job_fonts_run), (ev_job_fonts_class_init), (ev_job_load_init), (ev_job_load_run), (ev_job_load_class_init), (ev_job_save_init), (ev_job_save_dispose), (ev_job_save_run), (ev_job_save_class_init), (ev_job_print_init), (ev_job_print_dispose), (ev_job_print_run), (ev_job_print_class_init): * shell/ev-page-cache.c: * shell/ev-pixbuf-cache.[ch]: (dispose_cache_job_info), (check_job_size_and_unref), (move_one_job), (copy_job_to_job_info), (add_job), (ev_pixbuf_cache_add_jobs_if_needed): * shell/ev-properties-fonts.c: (ev_properties_fonts_dispose), (job_fonts_finished_cb), (job_fonts_updated_cb), (ev_properties_fonts_set_document): * shell/ev-sidebar-links.c: (ev_sidebar_links_dispose), (ev_sidebar_links_set_document): * shell/ev-sidebar-thumbnails.c: (clear_range), (add_range), (ev_sidebar_thumbnails_set_document), (ev_sidebar_thumbnails_clear_job): * shell/ev-view-private.h: * shell/ev-view.c: * shell/ev-window.c: (ev_window_clear_thumbnail_job), (ev_window_refresh_window_thumbnail), (password_dialog_response), (ev_window_clear_load_job), (ev_window_clear_reload_job), (ev_window_load_job_cb), (ev_window_reload_job_cb), (window_open_file_copy_ready_cb), (ev_window_open_uri), (ev_window_reload_document), (ev_window_clear_save_job), (ev_window_save_job_cb), (file_save_dialog_response_cb), (ev_window_clear_print_job), (ev_window_print_job_cb), (ev_window_print_dialog_response_cb): * shell/main.c: (main): Rework the jobs system in order to make it simpler and more extensible. It allows to run jobs in the main loop instead of using a thread when it's appropriate like the fonts job. Now it's also possible to cancel jobs that are currently running. svn path=/trunk/; revision=3092
* Add a profile mode available when debug is enabled. Add profilers inCarlos Garcia Campos2008-07-271-2/+13
| | | | | | | | | | | | | | | | | 2008-07-27 Carlos Garcia Campos <carlosgc@gnome.org> * libdocument/ev-debug.[ch]: (ev_profiler_start), (ev_profiler_stop): * shell/ev-jobs.c: (ev_job_finished), (ev_job_links_run), (notify_page_ready), (ev_job_render_run), (ev_job_thumbnail_run), (ev_job_fonts_run), (ev_job_load_run), (ev_job_save_run), (ev_job_print_run): * shell/main.c: (main): Add a profile mode available when debug is enabled. Add profilers in ev-jobs. svn path=/trunk/; revision=3086
* Fix a crash in debug mode. Patch by Daniel M German.Carlos Garcia Campos2008-05-291-2/+1
| | | | | | | | | | 2008-05-29 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.c: (ev_job_render_dispose): Fix a crash in debug mode. Patch by Daniel M German. svn path=/trunk/; revision=3047
* Merge branch 'ev-debug' into workCarlos Garcia Campos2008-04-271-0/+53
| | | | svn path=/trunk/; revision=3025
* Create the render context needed for rendering a page in the render threadCarlos Garcia Campos2008-04-141-52/+53
| | | | | | | | | | | | | | | | | | 2008-04-14 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.[ch]: (ev_job_render_dispose), (ev_job_render_new), (ev_job_render_set_selection_info), (ev_job_render_run): * shell/ev-pixbuf-cache.c: (job_page_ready_cb), (job_finished_cb), (check_job_size_and_unref), (copy_job_page_and_selection_to_job_info), (copy_job_to_job_info), (add_job), (ev_pixbuf_cache_get_selection_surface): Create the render context needed for rendering a page in the render thread so that we don't block the main thread. Simplify EvJobRender API. svn path=/trunk/; revision=3005
* Add EvPage so that we can hold a reference to the backend page. FormCarlos Garcia Campos2008-04-141-17/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-04-14 Carlos Garcia Campos <carlosgc@gnome.org> * libdocument/Makefile.am: * libdocument/ev-page.[ch]: * libdocument/ev-render-context.[ch]: (ev_render_context_dispose), (ev_render_context_new), (ev_render_context_set_page): * libdocument/ev-form-field.[ch]: (ev_form_field_init), (ev_form_field_finalize), (ev_form_field_class_init): * libdocument/ev-document-forms.[ch]: (ev_document_forms_get_form_fields): * libdocument/ev-document.[ch]: (ev_document_get_page), (ev_document_get_page_size), (ev_document_get_page_label): * shell/ev-jobs.[ch]: (ev_job_thumbnail_dispose), (ev_job_render_run), (ev_job_thumbnail_new), (ev_job_thumbnail_run), (ev_job_print_run): * shell/ev-page-cache.c: (ev_page_cache_new): * shell/ev-pixbuf-cache.c: (job_page_ready_cb), (job_finished_cb), (check_job_size_and_unref), (add_job): * shell/ev-sidebar-thumbnails.c: (add_range): * shell/ev-view.c: (ev_view_form_field_get_region), (ev_view_form_field_button_create_widget), (ev_view_form_field_text_save), (ev_view_form_field_choice_save), (ev_view_handle_form_field), (ev_view_size_allocate), (get_selected_text): * shell/ev-window.c: (ev_window_refresh_window_thumbnail): * backend/pdf/ev-poppler.cc: (pdf_document_get_page_size), (pdf_document_get_page), (pdf_document_get_page_label), (pdf_document_render), (pdf_document_get_info), (pdf_document_document_iface_init), (pdf_document_thumbnails_get_thumbnail), (pdf_document_thumbnails_get_dimensions), (pdf_document_file_exporter_do_page), (pdf_selection_render_selection), (pdf_selection_get_selected_text), (pdf_selection_get_selection_region), (pdf_selection_get_selection_map), (pdf_document_forms_get_form_fields), (pdf_document_forms_form_field_text_get_text), (pdf_document_forms_form_field_text_set_text), (pdf_document_forms_form_field_button_set_state), (pdf_document_forms_form_field_button_get_state), (pdf_document_forms_form_field_choice_get_item), (pdf_document_forms_form_field_choice_get_n_items), (pdf_document_forms_form_field_choice_is_item_selected), (pdf_document_forms_form_field_choice_select_item), (pdf_document_forms_form_field_choice_toggle_item), (pdf_document_forms_form_field_choice_unselect_all), (pdf_document_forms_form_field_choice_set_text), (pdf_document_forms_form_field_choice_get_text): * backend/ps/ev-spectre.c: (ps_document_get_page), (ps_document_get_page_size), (ps_document_get_page_label), (ps_document_render), (ps_document_document_iface_init), (ps_document_file_exporter_do_page): * backend/tiff/tiff-document.c: (tiff_document_get_page_size), (tiff_document_render), (tiff_document_render_pixbuf), (tiff_document_file_exporter_do_page): * backend/pixbuf/pixbuf-document.c: (pixbuf_document_get_page_size): * backend/comics/comics-document.c: (comics_document_get_page_size), (comics_document_render_pixbuf): * backend/djvu/djvu-document.c: (djvu_document_get_page_size), (djvu_document_render), (djvu_selection_get_selected_text), (djvu_document_thumbnails_get_thumbnail), (djvu_document_file_exporter_do_page), (djvu_document_find_get_result): * backend/dvi/dvi-document.c: (dvi_document_get_page_size), (dvi_document_render), (dvi_document_thumbnails_get_dimensions), (dvi_document_thumbnails_get_thumbnail), (dvi_document_file_exporter_do_page): * backend/impress/impress-document.c: (impress_document_get_page_size), (impress_document_render_pixbuf): * thumbnailer/evince-thumbnailer.c: (evince_thumbnail_pngenc_get): Add EvPage so that we can hold a reference to the backend page. Form fields keep now a reference to the poppler page improving performance since we don't have to create/destroy the poppler field for every form operation. This will be needed for annotations too. svn path=/trunk/; revision=3004
* Fix a crash when printing a range that doesn't specify the start or endCarlos Garcia Campos2008-04-061-0/+5
| | | | | | | | | | | 2008-04-06 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.c: (ev_job_print_get_page_list): Fix a crash when printing a range that doesn't specify the start or end page. Fixes bug #524288. svn path=/trunk/; revision=2989
* Invert collate action in order to work as expected, fix reverse printingCarlos Garcia Campos2008-03-181-14/+13
| | | | | | | | | | | | 2008-03-18 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.c: (ev_job_print_run): Invert collate action in order to work as expected, fix reverse printing so that it doesn't start with a blank page and fix number of copies. Patch by Eugen Dedu. Fixes bug #365332. svn path=/trunk/; revision=2969
* Port to gio and drop gnome-vfs dependency. Fixes bug #510401. Based onCarlos Garcia Campos2008-01-251-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-01-25 Carlos Garcia Campos <carlosgc@gnome.org> * configure.ac: * backend/comics/comics-document.c: (comics_document_load): * libdocument/ev-attachment.[ch]: (ev_attachment_finalize), (ev_attachment_set_property), (ev_attachment_init), (ev_attachment_save), (ev_attachment_launch_app), (ev_attachment_open): * libdocument/ev-document-factory.c: (get_document_from_uri): * libdocument/ev-file-helpers.[ch]: (ev_tmp_file_get), (ev_tmp_file_unlink), (ev_tmp_uri_unlink), (ev_xfer_uri_simple),: * shell/ev-jobs.c: * shell/ev-password.c: (ev_password_dialog_set_property), (ev_password_dialog_save_password): * shell/ev-sidebar-attachments.c: (ev_sidebar_attachments_drag_data_get): * shell/ev-window-title.c: (get_filename_from_uri): * shell/ev-window.c: (ev_window_clear_temp_file), (ev_window_load_job_cb), (window_open_file_copy_ready_cb), (ev_window_open_uri), (window_save_file_copy_ready_cb), (ev_window_save_remote), (ev_window_cmd_save_as), (launch_action), (launch_external_uri), (image_save_dialog_response_cb), (attachment_save_dialog_response_cb): * shell/main.c: (load_files), (load_files_remote), (main): * thumbnailer/evince-thumbnailer.c: (main): Port to gio and drop gnome-vfs dependency. Fixes bug #510401. Based on patch by Cosimo Cecchi. svn path=/trunk/; revision=2858
* Do not render images when rendering the page but on demand. It reduces theCarlos Garcia Campos2008-01-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | 2008-01-19 Carlos Garcia Campos <carlosgc@gnome.org> * configure.ac: * backend/pdf/ev-poppler.cc: (pdf_document_images_get_image_mapping), (pdf_document_images_get_image), (pdf_document_document_images_iface_init): * libdocument/ev-document-images.[ch]: (ev_document_images_get_image_mapping), (ev_document_images_get_image): * libdocument/ev-image.[ch]: (ev_image_new), (ev_image_get_page), (ev_image_get_id), (ev_image_save_tmp): * shell/ev-jobs.c: (ev_job_render_run): * shell/ev-view.c: (ev_view_drag_data_get): * shell/ev-window.c: (image_save_dialog_response_cb), (ev_view_popup_cmd_copy_image): Do not render images when rendering the page but on demand. It reduces the memory comsumption. svn path=/trunk/; revision=2835
* Include config.h. Bug #504721.Christian Persch2007-12-281-0/+1
| | | | | | | | 2007-12-28 Christian Persch <chpe@gnome.org> * **/*.c: Include config.h. Bug #504721. svn path=/trunk/; revision=2787
* Add a command line option for search. Fixes bug #497710.Carlos Garcia Campos2007-11-251-1/+11
| | | | | | | | | | | | | | | | | 2007-11-25 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-application.[ch]: (get_find_string_from_args), (ev_application_open_uri_at_dest), (ev_application_open_uri), (ev_application_open_uri_list): * shell/ev-jobs.[ch]: (ev_job_load_dispose), (ev_job_load_new): * shell/ev-window.[ch]: (ev_window_load_job_cb), (ev_window_open_uri), (ev_window_cmd_file_open_copy_at_dest), (ev_window_cmd_recent_file_activate), (ev_window_open_recent_action_item_activated), (ev_window_print_send), (open_remote_link): * shell/main.c: (arguments_parse): Add a command line option for search. Fixes bug #497710. svn path=/trunk/; revision=2746
* Fix endless loop when pages_per_sheet is 0. Fixes bug #498248.Darren Kenny2007-11-201-1/+1
| | | | | | | | 2007-11-20 Darren Kenny <darren.kenny@sun.com> * shell/ev-jobs.c: (ev_job_print_new): Fix endless loop when pages_per_sheet is 0. Fixes bug #498248. svn path=/trunk/; revision=2742
* When printing multiple pages per sheet in reverse option, do not invertCarlos Garcia Campos2007-10-111-32/+26
| | | | | | | | | | | | | | | | | | | 2007-10-11 Carlos Garcia Campos <carlosgc@gnome.org> * backend/pdf/ev-poppler.cc: (pdf_document_file_exporter_begin_page), (pdf_document_file_exporter_do_page), (pdf_document_file_exporter_end_page), (pdf_document_file_exporter_iface_init): * libdocument/ev-file-exporter.[ch]: (ev_file_exporter_begin_page), (ev_file_exporter_end_page): * shell/ev-jobs.c: (ev_job_print_get_page_list), (ev_job_print_run): When printing multiple pages per sheet in reverse option, do not invert the order of the pages in every sheet, but the order of the sheets. Do not print blank pages when page range is invalid. Fixes bugs #484857 and #485521. svn path=/trunk/; revision=2700
* Respect ranges order when printing more than one range in random order.Carlos Garcia Campos2007-10-111-26/+70
| | | | | | | | | | | 2007-10-10 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.c: (ev_job_print_get_page_list), (ev_job_print_run): * shell/ev-window.c: (ev_window_print_dialog_response_cb): Respect ranges order when printing more than one range in random order. svn path=/trunk/; revision=2699
* Move save a copy task to its own job so that it's carried out in a threadCarlos Garcia Campos2007-09-041-0/+142
| | | | | | | | | | | | | | | | | | 2007-09-04 Carlos Garcia Campos <carlosgc@gnome.org> * 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.[ch]: (ev_job_save_init), (ev_job_save_dispose), (ev_job_save_class_init), (ev_job_save_new), (ev_job_save_run): * shell/ev-window.c: (ev_window_clear_save_job), (ev_window_save_job_cb), (file_save_dialog_response_cb), (ev_window_dispose): Move save a copy task to its own job so that it's carried out in a thread avoiding another lock in the main thread. Use ev_xfer_uri_simple() instead of gnome_vfs_move() so that document can be saved to a pathin another file system. Fixes bug #456891. svn path=/trunk/; revision=2664
* Actually fix printing regressions. Remove orientation from EvPrintContextCarlos Garcia Campos2007-09-011-3/+1
| | | | | | | | | | | | | 2007-09-01 Carlos Garcia Campos <carlosgc@gnome.org> * backend/pdf/ev-poppler.cc: (pdf_document_file_exporter_begin), (pdf_document_file_exporter_do_page): * libdocument/ev-file-exporter.h: * shell/ev-jobs.[ch]: (ev_job_print_new), (ev_job_print_run): * shell/ev-window.c: (ev_window_print_dialog_response_cb): Actually fix printing regressions. Remove orientation from EvPrintContext since it's redundant. svn path=/trunk/; revision=2649
* Add support for double and triple click selections.Carlos Garcia Campos2007-08-311-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-08-31 Carlos Garcia Campos <carlosgc@gnome.org> * backend/dvi/dvi-document.c: (dvi_document_document_iface_init): * backend/impress/impress-document.c: (impress_document_document_iface_init): * backend/ps/ps-document.c: (ps_document_document_iface_init): * backend/djvu/djvu-document.c: (djvu_document_document_iface_init), (djvu_selection_get_selected_text), (djvu_selection_iface_init): * backend/tiff/tiff-document.c: (tiff_document_document_iface_init): * backend/pixbuf/pixbuf-document.c: (pixbuf_document_document_iface_init): * backend/comics/comics-document.c: (comics_document_document_iface_init): * backend/pdf/ev-poppler.cc: (pdf_document_document_iface_init), (pdf_selection_render_selection), (pdf_selection_get_selected_text), (pdf_selection_get_selection_region), (pdf_selection_get_selection_map), (pdf_selection_iface_init): * libdocument/ev-selection.[ch]: (ev_selection_get_selected_text), (ev_selection_get_selection_region), (ev_selection_get_selection_map): * libdocument/ev-document.[ch]: * shell/ev-pixbuf-cache.[ch]: (add_job), (ev_pixbuf_cache_get_selection_surface), (update_job_selection): * shell/ev-view-private.h: * shell/ev-jobs.[ch]: (ev_job_render_new), (ev_job_render_new), (ev_job_render_run): * shell/ev-window.c: (ev_window_setup_action_sensitivity): * shell/ev-view.c: (start_selection_for_event), (ev_view_button_press_event), (ev_view_drag_data_get), (ev_view_drag_data_received), (ev_view_button_release_event), (compute_new_selection_text), (compute_selections), (ev_view_select_all), (get_selected_text), (ev_view_copy), (ev_view_primary_get_cb): Add support for double and triple click selections. svn path=/trunk/; revision=2648
* Create always a portrait cairo surface and rotate when needed forCarlos Garcia Campos2007-08-271-1/+1
| | | | | | | | | | | | | 2007-08-27 Carlos Garcia Campos <carlosgc@gnome.org> * backend/pdf/ev-poppler.cc: (pdf_print_context_free), (pdf_document_file_exporter_begin), (pdf_document_file_exporter_do_page): * shell/ev-jobs.c: (ev_job_print_run): * shell/ev-window.c: (ev_window_print_dialog_response_cb): Create always a portrait cairo surface and rotate when needed for landscape. It fixes printing problems in real printers. svn path=/trunk/; revision=2643
* Adjust number of pages per row according to page orientation when printingCarlos Garcia Campos2007-08-251-2/+3
| | | | | | | | | | | | | 2007-08-25 Carlos Garcia Campos <carlosgc@gnome.org> * backend/pdf/ev-poppler.cc: (pdf_document_file_exporter_begin): * libdocument/ev-file-exporter.[ch]: (ev_file_exporter_get_capabilities): * shell/ev-jobs.[ch]: (ev_job_print_new), (ev_job_print_run): * shell/ev-window.c: (ev_window_print_dialog_response_cb): Adjust number of pages per row according to page orientation when printing 2 or 6 pages per sheet. svn path=/trunk/; revision=2641
* Add page_ready callback to main loop with high priority and hold aCarlos Garcia Campos2007-07-291-1/+4
| | | | | | | | | 2007-07-29 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.c: (ev_job_render_page_ready): Add page_ready callback to main loop with high priority and hold a reference to job during idle. svn path=/trunk/; revision=2592
* Allow printing multiple pages per sheet. Fixes bug #395573.Carlos Garcia Campos2007-07-291-0/+6
| | | | | | | | | | | | | | | | 2007-07-29 Carlos Garcia Campos <carlosgc@gnome.org> * configure.ac: * backend/pdf/ev-poppler.cc: (pdf_print_context_free), (pdf_document_file_exporter_begin), (pdf_document_file_exporter_do_page), (pdf_document_file_exporter_get_capabilities): * libdocument/ev-file-exporter.h: * shell/ev-jobs.[ch]: (ev_job_print_new), (ev_job_print_run): * shell/ev-window.c: (ev_window_print_send), (ev_window_print_dialog_response_cb): Allow printing multiple pages per sheet. Fixes bug #395573. svn path=/trunk/; revision=2591
* Add page_ready signal to notify that page is ready as soon as possibleCarlos Garcia Campos2007-07-261-19/+50
| | | | | | | | | | | | | | | | | | | 2007-07-26 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-pixbuf-cache.c: (job_page_ready_cb), (job_finished_cb), (copy_job_page_and_selection_to_job_info), (copy_job_to_job_info), (add_job), (ev_pixbuf_cache_get_surface), (ev_pixbuf_cache_get_link_mapping), (ev_pixbuf_cache_get_image_mapping), (ev_pixbuf_cache_get_form_field_mapping), (ev_pixbuf_cache_get_text_mapping): * shell/ev-jobs.[ch]: (ev_job_render_class_init), (notify_page_ready), (ev_job_render_page_ready), (ev_job_render_run): Add page_ready signal to notify that page is ready as soon as possible even if other page elements like links, forms, images or text mapping are not ready yet. svn path=/trunk/; revision=2581
* Use capabilities to know which options should be offered by the printCarlos Garcia Campos2007-07-261-13/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-07-26 Carlos Garcia Campos <carlosgc@gnome.org> * backend/dvi/dvi-document.c: (dvi_document_file_exporter_begin), (dvi_document_file_exporter_do_page), (dvi_document_file_exporter_get_capabilities), (dvi_document_file_exporter_iface_init): * backend/ps/ps-document.c: (ps_document_file_exporter_begin), (ps_document_file_exporter_do_page), (ps_document_file_exporter_get_capabilities), (ps_document_file_exporter_iface_init): * backend/djvu/djvu-document.c: (djvu_document_file_exporter_begin), (djvu_document_file_exporter_end), (djvu_document_file_exporter_get_capabilities), (djvu_document_file_exporter_iface_init): * backend/tiff/tiff-document.c: (tiff_document_file_exporter_begin), (tiff_document_file_exporter_get_capabilities), (tiff_document_document_file_exporter_iface_init): * backend/pdf/ev-poppler.cc: (pdf_document_file_exporter_begin), (pdf_document_file_exporter_do_page), (pdf_document_file_exporter_get_capabilities), (pdf_document_file_exporter_iface_init): * libdocument/ev-file-exporter.[ch]: (ev_file_exporter_begin), (ev_file_exporter_get_capabilities): * shell/ev-print-job.c: (ev_print_job_use_print_dialog_settings), (idle_print_handler), (ev_print_job_print): * shell/ev-jobs.c: (ev_job_print_run): * shell/ev-window.c: (ev_window_print_send), (ev_window_print_range): Use capabilities to know which options should be offered by the print dialog depending on the document backend. svn path=/trunk/; revision=2580
* Merge evince-forms branch.Carlos Garcia Campos2007-07-081-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-07-08 Carlos Garcia Campos <carlosgc@gnome.org> * configure.ac: * backend/pdf/ev-poppler.cc: (pdf_document_get_crop_box), (ev_form_field_from_poppler_field), (pdf_document_forms_get_form_fields), (pdf_document_forms_form_field_text_get_text), (pdf_document_forms_form_field_text_set_text), (pdf_document_forms_form_field_button_set_state), (pdf_document_forms_form_field_button_get_state), (pdf_document_forms_form_field_choice_get_item), (pdf_document_forms_form_field_choice_get_n_items), (pdf_document_forms_form_field_choice_is_item_selected), (pdf_document_forms_form_field_choice_select_item), (pdf_document_forms_form_field_choice_toggle_item), (pdf_document_forms_form_field_choice_unselect_all), (pdf_document_forms_form_field_choice_set_text), (pdf_document_forms_form_field_choice_get_text), (pdf_document_document_forms_iface_init): * libdocument/Makefile.am: * libdocument/ev-form-field.[ch]: * libdocument/ev-document-forms.[ch]: * shell/ev-pixbuf-cache.[ch]: (dispose_cache_job_info), (move_one_job), (copy_job_to_job_info), (add_job_if_needed), (add_job), (ev_pixbuf_cache_reload_page), (ev_pixbuf_cache_get_form_field_mapping): * shell/ev-jobs.[ch]: (ev_job_render_new), (ev_job_render_run): * shell/ev-view-private.h: * shell/ev-view.[ch]: (ev_view_set_scroll_adjustments), (ev_view_handle_cursor_over_xy), (ev_view_get_form_field_at_location), (ev_view_forms_remove_widgets), (ev_view_form_field_destroy), (ev_view_form_field_button_create_widget), (ev_view_form_field_text_save), (ev_view_form_field_text_changed), (ev_view_form_field_text_create_widget), (ev_view_form_field_choice_save), (ev_view_form_field_choice_changed), (ev_view_form_field_choice_create_widget), (ev_view_handle_form_field), (ev_view_size_allocate), (ev_view_realize), (draw_end_presentation_page), (ev_view_button_press_event), (ev_view_remove_all), (ev_view_motion_notify_event), (ev_view_key_press_event), (ev_view_enter_notify_event), (highlight_find_results), (draw_loading_text), (draw_one_page), (ev_view_destroy), (ev_view_class_init), (page_changed_cb), (on_adjustment_value_changed), (ev_view_set_presentation), (merge_selection_region), (ev_view_set_cursor), (ev_view_reset_presentation_state): Merge evince-forms branch. svn path=/trunk/; revision=2560
* Use cairo image surfaces instead of GDK pixbufs for drawing pages andCarlos Garcia Campos2007-06-131-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-06-13 Carlos Garcia Campos <carlosgc@gnome.org> * backend/dvi/dvi-document.c: (dvi_document_render), (dvi_document_render_pixbuf), (dvi_document_document_iface_init): * backend/impress/impress-document.c: (imp_render_get_from_drawable), (impress_document_render_pixbuf), (impress_document_render), (impress_document_document_iface_init), (impress_document_thumbnails_get_thumbnail): * backend/djvu/djvu-document-private.h: * backend/djvu/djvu-document.c: (djvu_document_render), (djvu_document_finalize), (djvu_document_document_iface_init), (djvu_document_thumbnails_get_thumbnail), (djvu_document_init): * backend/tiff/tiff-document.c: (tiff_document_render), (tiff_document_render_pixbuf), (tiff_document_document_iface_init): * backend/pdf/ev-poppler.cc: (pdf_document_render), (pdf_document_render_pixbuf), (pdf_document_document_iface_init), (pdf_selection_render_selection): * backend/comics/comics-document.c: (comics_document_render_pixbuf), (comics_document_render), (comics_document_document_iface_init): * backend/pixbuf/pixbuf-document.c: (pixbuf_document_render), (pixbuf_document_document_iface_init): * libdocument/ev-document-misc.[ch]: (ev_document_misc_surface_from_pixbuf), (ev_document_misc_surface_rotate_and_scale): * libdocument/ev-document.[ch]: (ev_document_render): * libdocument/ev-selection.[ch]: (ev_selection_render_selection): * shell/ev-pixbuf-cache.[ch]: (dispose_cache_job_info), (move_one_job), (copy_job_to_job_info), (add_job_if_needed), (ev_pixbuf_cache_get_surface), (new_selection_surface_needed), (clear_selection_if_needed), (ev_pixbuf_cache_style_changed), (ev_pixbuf_cache_get_selection_surface), (clear_job_selection): * shell/ev-jobs.[ch]: (ev_job_render_dispose), (render_finished_cb), (ev_job_render_run): * shell/ev-view.c: (draw_loading_text), (draw_one_page), (merge_selection_region): Use cairo image surfaces instead of GDK pixbufs for drawing pages and selections. svn path=/trunk/; revision=2499
* Use an EvRenderContext for rendering thumbnails instead of a suggestedCarlos Garcia Campos2007-02-161-11/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-02-16 Carlos Garcia Campos <carlosgc@gnome.org> * backend/dvi/dvi-document.c: (dvi_document_thumbnails_get_dimensions), (dvi_document_thumbnails_get_thumbnail): * backend/impress/impress-document.c: (impress_document_thumbnails_get_thumbnail), (impress_document_thumbnails_get_dimensions): * backend/ps/ps-document.c: (ps_document_thumbnails_get_thumbnail), (ps_document_thumbnails_get_dimensions): * backend/djvu/djvu-document.c: (djvu_document_thumbnails_get_dimensions), (djvu_document_thumbnails_get_thumbnail): * backend/tiff/tiff-document.c: (tiff_document_thumbnails_get_thumbnail), (tiff_document_thumbnails_get_dimensions): * backend/pdf/ev-poppler.cc: (make_thumbnail_for_page), (pdf_document_thumbnails_get_thumbnail), (pdf_document_thumbnails_get_dimensions): * backend/comics/comics-document.c: (comics_document_thumbnails_get_thumbnail), (comics_document_thumbnails_get_dimensions): * backend/pixbuf/pixbuf-document.c: (pixbuf_document_thumbnails_get_thumbnail), (pixbuf_document_thumbnails_get_dimensions): * libdocument/ev-document-thumbnails.[ch]: (ev_document_thumbnails_get_thumbnail), (ev_document_thumbnails_get_dimensions): * libdocument/ev-document-misc.[ch]: (ev_document_misc_get_thumbnail_frame): * shell/ev-jobs.[ch]: (ev_job_thumbnail_dispose), (ev_job_thumbnail_new), (ev_job_thumbnail_run): * shell/ev-sidebar-thumbnails.c: (get_scale_for_page), (add_range), (ev_sidebar_thumbnails_set_loading_icon), (refresh), (ev_sidebar_thumbnails_refresh): * shell/ev-window.c: (ev_window_setup_document): * thumbnailer/evince-thumbnailer.c: (evince_thumbnail_pngenc_get): Use an EvRenderContext for rendering thumbnails instead of a suggested width, so that different sized pages get sized proportionally. svn path=/trunk/; revision=2332
* Do file transfer asynchronously in the main thread instead ofCarlos Garcia Campos2007-01-241-57/+28
| | | | | | | | | | | | | | | | | | | | 2007-01-24 Carlos Garcia Campos <carlosgc@gnome.org> * 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.[ch]: (ev_job_load_init), (ev_job_load_class_init), (ev_job_load_dispose), (ev_job_load_new), (ev_job_load_set_uri), (ev_job_load_run): * shell/ev-window.c: (ev_window_is_empty), (password_dialog_response), (ev_window_popup_password_dialog), (ev_window_clear_load_job), (ev_window_load_job_cb), (xfer_update_progress_callback), (ev_window_open_uri), (ev_window_dispose): * shell/main.c: (main): Do file transfer asynchronously in the main thread instead of synchronously in the load thread. Fixes bugs #399694, #398307 and #343542. svn path=/trunk/; revision=2248
* Load the document with the font-config lock held.Carlos Garcia Campos2007-01-241-0/+2
| | | | | | | | 2007-01-24 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.c: (ev_job_xfer_run): Load the document with the font-config lock held. svn path=/trunk/; revision=2247
* Show main window and load document with the font-config lock held.Carlos Garcia Campos2007-01-091-0/+2
| | | | | | | | | 2007-01-09 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.c: (ev_job_xfer_run): * shell/ev-application.c: (ev_application_open_uri_at_dest): Show main window and load document with the font-config lock held. svn path=/trunk/; revision=2203
* Add image handling support. Fixes bugs #310008 and #325047. ImagesCarlos Garcia Campos2007-01-071-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-01-07 Carlos Garcia Campos <carlosgc@gnome.org> * configure.ac: * data/evince-ui.xml: * pdf/ev-poppler.cc: (pdf_document_images_get_images), (pdf_document_document_images_iface_init): * backend/Makefile.am: * backend/ev-document-images.[ch]: * backend/ev-image.[ch]: * lib/ev-file-helpers.[ch]: (ev_tmp_filename): * shell/ev-jobs.[ch]: (ev_job_render_new), (ev_job_render_run), (ev_job_xfer_run): * shell/ev-pixbuf-cache.[ch]: (dispose_cache_job_info), (move_one_job), (copy_job_to_job_info), (add_job_if_needed), (ev_pixbuf_cache_get_image_mapping): * shell/ev-window.c: (view_menu_link_popup), (view_menu_image_popup), (view_menu_popup_cb), (ev_window_dispose), (image_save_dialog_response_cb), (ev_view_popup_cmd_save_image_as), (ev_view_popup_cmd_copy_image): * shell/ev-view-private.h: * shell/ev-view.c: (ev_view_get_image_at_location), (ev_view_do_popup_menu), (ev_view_popup_menu), (ev_view_button_press_event), (ev_view_drag_data_get), (ev_view_drag_motion), (ev_view_drag_data_received), (ev_view_motion_notify_event), (ev_view_button_release_event), (ev_view_finalize), (ev_view_class_init): Add image handling support. Fixes bugs #310008 and #325047. Images selection is not supported yet. svn path=/trunk/; revision=2194
* Use an specific lock for FontConfig. Hopefully it fixes some crashesCarlos Garcia Campos2006-12-181-1/+6
| | | | | | | | | | | | 2006-12-18 Carlos Garcia Campos <carlosgc@gnome.org> * backend/ev-document.[ch]: (ev_document_get_fc_mutex), (ev_document_fc_mutex_lock), (ev_document_fc_mutex_unlock): * pdf/ev-poppler.cc: (make_thumbnail_for_size): * shell/ev-jobs.c: (ev_job_render_run), (ev_job_fonts_run): * shell/ev-view.c: (draw_loading_text): * shell/ev-window.c: (ev_window_cmd_file_properties): Use an specific lock for FontConfig. Hopefully it fixes some crashes related to using FontConfig from different threads.
* Allow printing to PDF when suppoted by the backend.Carlos Garcia Campos2006-12-031-10/+23
| | | | | | | | | | | | | | 2006-12-03 Carlos Garcia Campos <carlosgc@gnome.org> * configure.ac: * backend/Makefile.am: * backend/ev-file-exporter.[ch]: * pdf/ev-poppler.cc: (pdf_document_file_exporter_*): * ps/ps-document.c: (ps_document_file_exporter_*): * tiff/tiff-document.c: (tiff_document_document_file_exporter_*): * shell/ev-jobs.[ch]: (ev_job_print_new), (ev_job_print_run): * shell/ev-window.c: (ev_window_setup_action_sensitivity), (ev_window_print_dialog_response_cb), (ev_window_print_range): Allow printing to PDF when suppoted by the backend.
* Add page setup settings for printing. Fixes bugs #363860 and #350491.Carlos Garcia Campos2006-11-081-1/+1
| | | | | | | | | | 2006-11-08 Carlos Garcia Campos <carlosgc@gnome.org> * data/evince-ui.xml: * shell/ev-window.c: (ev_window_print_page_setup_done_cb), (ev_window_cmd_file_print_setup), (ev_window_print_dialog_response_cb), (ev_window_setup_action_sensitivity): Add page setup settings for printing. Fixes bugs #363860 and #350491.
* Allow printing only odd/even pages. Fixes bug #367289.Carlos Garcia Campos2006-10-301-11/+36
| | | | | | | | | 2006-10-30 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.[ch]: (ev_job_print_new), (ev_print_job_print_page_in_range), (ev_print_job_print_page_in_set), (ev_job_print_do_page): * shell/ev-window.[ch]: (ev_window_print_dialog_response_cb): Allow printing only odd/even pages. Fixes bug #367289.
* Use print settings scale, copies, collate and reverse which were ignored.Carlos Garcia Campos2006-10-241-21/+50
| | | | | | | | 2006-10-24 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.[ch]: (ev_job_print_new), (ev_job_print_run): * shell/ev-window.c: (ev_window_print_dialog_response_cb): Use print settings scale, copies, collate and reverse which were ignored. Fixes bug #359032.
* GtkPrintJob doesn't support print ranges or current page, so we export toCarlos Garcia Campos2006-07-261-9/+79
| | | | | | | | | 2006-07-26 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-jobs.[ch]: * shell/ev-sidebar-links.c: * shell/ev-window.[ch]: GtkPrintJob doesn't support print ranges or current page, so we export to a ps file now when printing ranges or current page.
* Use GtkPrint instead of GnomePrint when it's available. Fixes bug #348422Carlos Garcia Campos2006-07-231-0/+113
| | | | | | | | | | | | 2006-07-23 Carlos Garcia Campos <carlosgc@gnome.org> * configure.ac: * shell/Makefile.am: * shell/ev-job-queue.c: * shell/ev-jobs.[ch]: * shell/ev-sidebar-links.c: * shell/ev-window.[ch]: Use GtkPrint instead of GnomePrint when it's available. Fixes bug #348422
* Add preview toolbar (hidden by default)Carlos Garcia Campos2006-07-171-1/+3
| | | | | | | | | | | | | 2006-07-17 Carlos Garcia Campos <carlosgc@gnome.org> * data/evince-toolbar.xml: Add preview toolbar (hidden by default) * shell/ev-application-service.xml: * shell/ev-application.[ch]: * shell/ev-jobs.[ch]: * shell/ev-window.[ch]: (ev_window_run_preview): * shell/main.c: Add preview mode to use evince as a printing previewer. It also adds other command line options for fullscreen and presentation modes. Fixes bugs #347822, #317031
* Fixes bug #344160: if the xfer job doesn't complete because a password isNickolay V. Shmyrev2006-06-091-0/+11
| | | | | | | | | | * shell/ev-jobs.c: (ev_job_xfer_run): * shell/ev-window.c: (password_dialog_response), (ev_window_popup_password_dialog), (ev_window_xfer_job_cb), (ev_window_dispose): Fixes bug #344160: if the xfer job doesn't complete because a password is required, reload the existing instance instead of creating a new one.
* Don't crash on reload. Fix for the bug #343167.Nickolay V. Shmyrev2006-05-291-1/+8
| | | | | | | | | * shell/ev-jobs.c: (ev_job_xfer_dispose), (ev_job_xfer_new): * shell/ev-jobs.h: * shell/ev-window.c: (ev_window_xfer_job_cb), (ev_window_open_uri), (ev_window_cmd_view_reload), (ev_window_init): Don't crash on reload. Fix for the bug #343167.
* Check for document links.Nickolay V. Shmyrev2006-05-281-1/+1
| | | | | | * shell/ev-jobs.c: (ev_job_render_run): Check for document links.
* Open links with anchors. Fix for the bug #339836.Nickolay V. Shmyrev2006-05-271-2/+6
| | | | | | | * shell/ev-jobs.c: (ev_job_xfer_run): * shell/main.c: (load_files): Open links with anchors. Fix for the bug #339836.
* Check if document supports links iterface.Nickolay V. Shmyrev2006-05-221-1/+1
| | | | | | * shell/ev-jobs.c: (ev_job_render_run): Check if document supports links iterface.
* Rework links system, it adds support for remote links now and it makesCarlos Garcia Campos2006-05-021-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | 2006-05-02 Carlos Garcia Campos <carlosgc@gnome.org> * backend/Makefile.am: * backend/ev-document-links.[ch]: * backend/ev-document.[ch]: * backend/ev-link-action.[ch]: * backend/ev-link-dest.[ch]: * backend/ev-link.[ch]: * pdf/ev-poppler.cc: (pdf_document_find_link_dest), (ev_link_dest_from_dest), (ev_link_from_action), (build_tree): * shell/ev-page-action.c: (build_new_tree_cb): * shell/ev-sidebar-links.c: (get_page_from_dest), (print_section_cb), (links_page_num_func), (update_page_callback): * shell/ev-view.[ch]: (ev_view_goto_dest), (ev_view_handle_link), (tip_from_link): * shell/ev-jobs.c: * shell/ev-window.[ch]: (ev_window_open_uri), (sidebar_links_link_activated_cb), (ev_view_popup_cmd_open_link): * shell/ev-application.[ch]: (ev_application_open_window), (ev_application_open_uri): Rework links system, it adds support for remote links now and it makes easier to add new kinds of actions and destinations. Fixes bug #317292
* Cleanup mime type detection on document load. Fix for the bug #336448.Nickolay V. Shmyrev2006-04-021-63/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * backend/ev-document-factory.c: (get_document_from_uri), (ev_document_factory_get_document): * backend/ev-document-factory.h: * properties/ev-properties-main.c: (ev_properties_get_pages): * shell/Makefile.am: * 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-job-queue.h: * shell/ev-job-xfer.c: * shell/ev-job-xfer.h: * shell/ev-jobs.c: (ev_job_fonts_init), (ev_job_fonts_class_init), (ev_job_fonts_new), (ev_job_fonts_run), (ev_job_xfer_init), (ev_job_xfer_dispose), (ev_job_xfer_class_init), (ev_job_xfer_new), (ev_job_xfer_run): * shell/ev-jobs.h: * shell/ev-window.c: (ev_window_is_empty), (password_dialog_response), (ev_window_clear_xfer_job), (ev_window_xfer_job_cb), (ev_window_open_uri), (ev_window_cmd_focus_page_selector), (ev_window_cmd_scroll_forward), (ev_window_cmd_scroll_backward), (ev_window_cmd_continuous), (ev_window_cmd_dual), (ev_window_cmd_view_best_fit), (ev_window_cmd_view_page_width), (ev_window_dispose): * thumbnailer/evince-thumbnailer.c: (evince_thumbnail_pngenc_get): * Cleanup mime type detection on document load. Fix for the bug #336448.
* Fix orientation in the postscript documentMarco Pesenti Gritti2005-08-241-1/+2
| | | | | | | | | | | | | | 2005-08-24 Marco Pesenti Gritti <mpg@redhat.com> * backend/ev-async-renderer.c: (ev_async_renderer_render_pixbuf): * backend/ev-async-renderer.h: * ps/ps-document.c: (ps_document_init), (setup_pixmap), (setup_page), (ps_document_get_page_size), (ps_async_renderer_render_pixbuf): * ps/ps-document.h: * shell/ev-jobs.c: (ev_job_render_run): Fix orientation in the postscript document