diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2003-12-07 18:23:31 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2003-12-07 18:23:31 +0800 |
commit | ec22aa6d6229b0e3405e5fca4be0662f41946b77 (patch) | |
tree | 2fa06838674189651e1cdfd5a03a2c3a021af94e /embed/mozilla/PrintingPromptService.cpp | |
parent | 83bcb61ae1b7790c9d483d3706641dcc61686c67 (diff) | |
download | gsoc2013-epiphany-ec22aa6d6229b0e3405e5fca4be0662f41946b77.tar gsoc2013-epiphany-ec22aa6d6229b0e3405e5fca4be0662f41946b77.tar.gz gsoc2013-epiphany-ec22aa6d6229b0e3405e5fca4be0662f41946b77.tar.bz2 gsoc2013-epiphany-ec22aa6d6229b0e3405e5fca4be0662f41946b77.tar.lz gsoc2013-epiphany-ec22aa6d6229b0e3405e5fca4be0662f41946b77.tar.xz gsoc2013-epiphany-ec22aa6d6229b0e3405e5fca4be0662f41946b77.tar.zst gsoc2013-epiphany-ec22aa6d6229b0e3405e5fca4be0662f41946b77.zip |
Split print dialogue in print setup and actual print, and move print
2003-12-07 Christian Persch <chpe@cvs.gnome.org>
* data/glade/print.glade:
* data/ui/epiphany-ui.xml:
* embed/mozilla/PrintingPromptService.cpp:
* embed/mozilla/mozilla-embed.cpp:
* embed/print-dialog.c: (ephy_print_info_free),
(ephy_print_get_print_info), (ephy_print_dialog_response_cb),
(print_filechooser_response_cb),
(ephy_print_dialog_browse_button_cb),
(ephy_print_setup_dialog_close_button_cb), (ephy_print_dialog_new),
(ephy_print_setup_dialog_new):
* embed/print-dialog.h:
* src/ephy-nautilus-view.c: (ephy_nautilus_view_new_component),
(gnv_cmd_file_print):
* src/ephy-nautilus-view.h:
* src/ephy-shell.c: (ephy_shell_get_type), (ephy_shell_class_init),
(ephy_automation_factory_cb), (ephy_automation_factory_new),
(ephy_shell_init), (server_timeout), (ephy_shell_startup),
(ephy_shell_finalize), (ephy_shell_new_tab),
(ephy_shell_get_session), (ephy_shell_get_bookmarks),
(ephy_shell_get_toolbars_model), (ephy_shell_get_bookmarks_editor),
(ephy_shell_get_history_window),
(ephy_shell_get_print_setup_dialog), (ephy_shell_delete_on_exit):
* src/ephy-shell.h:
* src/ephy-window.c: (ephy_window_set_print_preview),
(ephy_window_print):
* src/ephy-window.h:
* src/window-commands.c: (window_cmd_file_print_setup),
(window_cmd_file_print_preview):
* src/window-commands.h:
Split print dialogue in print setup and actual print, and move
print preview into the menus too. Made print setup a global dialogue,
print a per-window dialogue.
* lib/ephy-dialog.c: (set_value_from_pref), (set_pref_from_value),
(set_value_from_combobox), (set_combo_box_from_value),
(set_radiobuttongroup_from_value), (set_pref_from_info_and_emit),
(togglebutton_clicked_cb), (radiobutton_clicked_cb),
(spinbutton_timeout_cb), (changed_cb), (init_props), (load_info),
(save_info), (impl_show), (ephy_dialog_set_size_group),
(ephy_dialog_construct), (run_response_cb), (ephy_dialog_run),
(ephy_dialog_set_parent), (ephy_dialog_class_init),
(ephy_dialog_new_with_parent):
* lib/ephy-dialog.h:
* src/language-editor.c: (language_editor_class_init):
* src/language-editor.h:
* src/pdm-dialog.c: (pdm_dialog_init):
* src/prefs-dialog.c: (fonts_language_changed_cb),
(create_fonts_language_menu), (prefs_dialog_init),
(prefs_language_more_button_clicked_cb):
Slight api change; port callers.
Diffstat (limited to 'embed/mozilla/PrintingPromptService.cpp')
-rw-r--r-- | embed/mozilla/PrintingPromptService.cpp | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/embed/mozilla/PrintingPromptService.cpp b/embed/mozilla/PrintingPromptService.cpp index cab6b9b22..3a2bd63ae 100644 --- a/embed/mozilla/PrintingPromptService.cpp +++ b/embed/mozilla/PrintingPromptService.cpp @@ -26,6 +26,7 @@ #include "print-dialog.h" #include "ephy-embed.h" +#include "ephy-command-manager.h" #include "MozillaPrivate.h" #include "PrintingPromptService.h" @@ -49,27 +50,37 @@ GPrintingPromptService::~GPrintingPromptService() NS_IMETHODIMP GPrintingPromptService::ShowPrintDialog(nsIDOMWindow *parent, nsIWebBrowserPrint *webBrowserPrint, nsIPrintSettings *printSettings) { EphyDialog *dialog; - EmbedPrintInfo *info; - nsresult rv = NS_OK; + nsresult rv = NS_ERROR_ABORT; GtkWidget *gtkParent = MozillaFindGtkParent(parent); + if (!gtkParent) return NS_ERROR_ABORT; + EphyEmbed *embed = EPHY_EMBED (MozillaFindEmbed (parent)); + if (!embed) return NS_ERROR_ABORT; - dialog = print_dialog_new_with_parent (gtkParent, embed, &info); + dialog = ephy_print_dialog_new (gtkParent, embed, TRUE); ephy_dialog_set_modal (dialog, TRUE); - gint ret = ephy_dialog_run (dialog); - if(ret == GTK_RESPONSE_OK) + int ret = ephy_dialog_run (dialog); + if (ret == GTK_RESPONSE_OK) { - MozillaCollatePrintSettings(info, printSettings); - print_free_info(info); + EmbedPrintInfo *info; + + info = ephy_print_get_print_info (); + + /* work around mozilla bug which borks when printing selection without having one */ + if (info->pages == 2 && ephy_command_manager_can_do_command + (EPHY_COMMAND_MANAGER (embed), "cmd_copy") == FALSE) + { + info->pages = 0; + } + + MozillaCollatePrintSettings (info, printSettings); + + ephy_print_info_free (info); rv = NS_OK; } - else - { - rv = NS_ERROR_ABORT; - } g_object_unref (dialog); |