aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2004-06-25 19:31:22 +0800
committerMarco Pesenti Gritti <marco@src.gnome.org>2004-06-25 19:31:22 +0800
commit36ad80414746a470d3f64849266817c58fef2344 (patch)
treef7360d1212f4dbc10e0606b4e78852ebbb3463a2 /embed/mozilla
parentb6b7539092921b12790435b10e6bfb68ec9339f5 (diff)
downloadgsoc2013-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.cpp56
-rw-r--r--embed/mozilla/EphyBrowser.h5
-rw-r--r--embed/mozilla/PrintingPromptService.cpp2
-rw-r--r--embed/mozilla/mozilla-embed.cpp32
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;