diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2004-06-25 19:31:22 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2004-06-25 19:31:22 +0800 |
commit | 36ad80414746a470d3f64849266817c58fef2344 (patch) | |
tree | f7360d1212f4dbc10e0606b4e78852ebbb3463a2 /embed/mozilla | |
parent | b6b7539092921b12790435b10e6bfb68ec9339f5 (diff) | |
download | gsoc2013-epiphany-36ad80414746a470d3f64849266817c58fef2344.tar gsoc2013-epiphany-36ad80414746a470d3f64849266817c58fef2344.tar.gz gsoc2013-epiphany-36ad80414746a470d3f64849266817c58fef2344.tar.bz2 gsoc2013-epiphany-36ad80414746a470d3f64849266817c58fef2344.tar.lz gsoc2013-epiphany-36ad80414746a470d3f64849266817c58fef2344.tar.xz gsoc2013-epiphany-36ad80414746a470d3f64849266817c58fef2344.tar.zst gsoc2013-epiphany-36ad80414746a470d3f64849266817c58fef2344.zip |
Simplify print code. Now there is only one case to deal with, the mozilla
2004-06-25 Marco Pesenti Gritti <marco@gnome.org>
* embed/ephy-embed.c: (ephy_embed_print),
(ephy_embed_set_print_preview_mode):
* embed/ephy-embed.h:
* embed/mozilla/EphyBrowser.cpp:
* embed/mozilla/EphyBrowser.h:
* embed/mozilla/PrintingPromptService.cpp:
* embed/mozilla/mozilla-embed.cpp:
* embed/print-dialog.c: (ephy_print_dialog_response_cb),
(ephy_print_dialog_new):
* embed/print-dialog.h:
* src/ephy-window.c: (ephy_window_delete_event_cb),
(ephy_window_finalize), (update_embed_dialogs), (ephy_window_find):
* src/ppview-toolbar.c: (toolbar_cmd_ppv_close):
* src/window-commands.c: (window_cmd_file_print_preview),
(window_cmd_file_print):
Simplify print code. Now there is only one case to deal with,
the mozilla prompt dialog.
This should help with xprint.
Diffstat (limited to 'embed/mozilla')
-rw-r--r-- | embed/mozilla/EphyBrowser.cpp | 56 | ||||
-rw-r--r-- | embed/mozilla/EphyBrowser.h | 5 | ||||
-rw-r--r-- | embed/mozilla/PrintingPromptService.cpp | 2 | ||||
-rw-r--r-- | embed/mozilla/mozilla-embed.cpp | 32 |
4 files changed, 36 insertions, 59 deletions
diff --git a/embed/mozilla/EphyBrowser.cpp b/embed/mozilla/EphyBrowser.cpp index 8481cee56..b9db2c2a0 100644 --- a/embed/mozilla/EphyBrowser.cpp +++ b/embed/mozilla/EphyBrowser.cpp @@ -24,9 +24,11 @@ #include "EphyBrowser.h" #include "EphyUtils.h" +#include "MozillaPrivate.h" #include "ephy-embed.h" #include "ephy-string.h" #include "ephy-debug.h" +#include "print-dialog.h" #include <gtkmozembed_internal.h> #include <unistd.h> @@ -311,43 +313,49 @@ EphyBrowser::DetachListeners(void) return NS_OK; } -nsresult EphyBrowser::Print (nsIPrintSettings *options, PRBool preview) +nsresult EphyBrowser::Print () { - nsresult result; - NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); nsCOMPtr<nsIWebBrowserPrint> print(do_GetInterface(mWebBrowser)); NS_ENSURE_TRUE (print, NS_ERROR_FAILURE); - if (!preview) - { - result = print->Print (options, nsnull); - } - else - { - result = print->PrintPreview(options, nsnull, nsnull); - } - - return result; + return print->Print (nsnull, nsnull); } -nsresult EphyBrowser::PrintPreviewClose (void) +nsresult EphyBrowser::SetPrintPreviewMode (PRBool previewMode) { nsresult rv; - PRBool isPreview = PR_FALSE; NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); nsCOMPtr<nsIWebBrowserPrint> print(do_GetInterface(mWebBrowser)); NS_ENSURE_TRUE (print, NS_ERROR_FAILURE); - rv = print->GetDoingPrintPreview(&isPreview); - NS_ENSURE_SUCCESS (rv, NS_ERROR_FAILURE); + if (previewMode) + { + EmbedPrintInfo *info; - if (isPreview == PR_TRUE) + nsCOMPtr<nsIPrintSettings> settings; + print->GetGlobalPrintSettings (getter_AddRefs(settings)); + + info = ephy_print_get_print_info (); + MozillaCollatePrintSettings (info, settings); + ephy_print_info_free (info); + + rv = print->PrintPreview (nsnull, mDOMWindow, nsnull); + } + else { - rv = print->ExitPrintPreview(); + PRBool isPreview = PR_FALSE; + + rv = print->GetDoingPrintPreview(&isPreview); + NS_ENSURE_SUCCESS (rv, NS_ERROR_FAILURE); + + if (isPreview == PR_TRUE) + { + rv = print->ExitPrintPreview(); + } } return rv; @@ -373,16 +381,6 @@ nsresult EphyBrowser::PrintPreviewNavigate(PRInt16 navType, PRInt32 pageNum) return print->PrintPreviewNavigate(navType, pageNum); } -nsresult EphyBrowser::GetPrintSettings (nsIPrintSettings **options) -{ - NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); - - nsCOMPtr<nsIWebBrowserPrint> print(do_GetInterface(mWebBrowser)); - NS_ENSURE_TRUE (print, NS_ERROR_FAILURE); - - return print->GetGlobalPrintSettings(options); -} - nsresult EphyBrowser::GetSHistory (nsISHistory **aSHistory) { nsresult result; diff --git a/embed/mozilla/EphyBrowser.h b/embed/mozilla/EphyBrowser.h index 72d69a8a7..d5bacb97d 100644 --- a/embed/mozilla/EphyBrowser.h +++ b/embed/mozilla/EphyBrowser.h @@ -87,9 +87,8 @@ public: nsresult SetZoom (float aTextZoom); nsresult GetZoom (float *aTextZoom); - nsresult Print (nsIPrintSettings *options, PRBool preview); - nsresult GetPrintSettings (nsIPrintSettings * *options); - nsresult PrintPreviewClose (void); + nsresult Print (); + nsresult SetPrintPreviewMode (PRBool previewMode); nsresult PrintPreviewNumPages (int *numPages); nsresult PrintPreviewNavigate(PRInt16 navType, PRInt32 pageNum); diff --git a/embed/mozilla/PrintingPromptService.cpp b/embed/mozilla/PrintingPromptService.cpp index 16dc3c2e9..e69f35ed8 100644 --- a/embed/mozilla/PrintingPromptService.cpp +++ b/embed/mozilla/PrintingPromptService.cpp @@ -71,7 +71,7 @@ NS_IMETHODIMP GPrintingPromptService::ShowPrintDialog(nsIDOMWindow *parent, nsIW GtkWidget *gtkParent = MozillaFindGtkParent(parent); NS_ENSURE_TRUE (gtkParent, NS_ERROR_FAILURE); - dialog = ephy_print_dialog_new (gtkParent, embed, TRUE); + dialog = ephy_print_dialog_new (gtkParent, embed); ephy_dialog_set_modal (dialog, TRUE); int ret = ephy_dialog_run (dialog); diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp index 5d7e30bc8..cdbd4ea8c 100644 --- a/embed/mozilla/mozilla-embed.cpp +++ b/embed/mozilla/mozilla-embed.cpp @@ -683,39 +683,19 @@ impl_get_security_level (EphyEmbed *embed, } static void -impl_print (EphyEmbed *embed, - EmbedPrintInfo *info) +impl_print (EphyEmbed *embed) { MozillaEmbedPrivate *mpriv = MOZILLA_EMBED(embed)->priv; - nsresult result; - - nsCOMPtr<nsIPrintSettings> options; - result = mpriv->browser->GetPrintSettings(getter_AddRefs(options)); - if (NS_FAILED (result) || !options) return; - - /* 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, options); - - options->SetPrintSilent (PR_TRUE); - - result = mpriv->browser->Print(options, info->preview); - - /* Workaround for bug 125984 */ - options->SetPrintSilent (PR_FALSE); + + mpriv->browser->Print (); } static void -impl_print_preview_close (EphyEmbed *embed) +impl_set_print_preview_mode (EphyEmbed *embed, gboolean preview_mode) { MozillaEmbedPrivate *mpriv = MOZILLA_EMBED(embed)->priv; - mpriv->browser->PrintPreviewClose(); + mpriv->browser->SetPrintPreviewMode (preview_mode); } static int @@ -1203,7 +1183,7 @@ ephy_embed_iface_init (EphyEmbedIface *iface) iface->get_encoding = impl_get_encoding; iface->has_automatic_encoding = impl_has_automatic_encoding; iface->print = impl_print; - iface->print_preview_close = impl_print_preview_close; + iface->set_print_preview_mode = impl_set_print_preview_mode; iface->print_preview_n_pages = impl_print_preview_n_pages; iface->print_preview_navigate = impl_print_preview_navigate; iface->has_modified_forms = impl_has_modified_forms; |