aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla/PrintingPromptService.cpp
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2003-12-07 18:23:31 +0800
committerChristian Persch <chpe@src.gnome.org>2003-12-07 18:23:31 +0800
commitec22aa6d6229b0e3405e5fca4be0662f41946b77 (patch)
tree2fa06838674189651e1cdfd5a03a2c3a021af94e /embed/mozilla/PrintingPromptService.cpp
parent83bcb61ae1b7790c9d483d3706641dcc61686c67 (diff)
downloadgsoc2013-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.cpp33
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);