From 486f60f0e0e4e3576394f964532116315decade3 Mon Sep 17 00:00:00 2001 From: "racham%netscape.com" Date: Sun, 28 Apr 2002 01:43:23 +0000 Subject: [PATCH] Fixing bug 140183. Checking ShowProgress dialog attribute and pref as printing is done. Patch by Rod Spears. r=danm,bhuvan sr=sspitzer --- content/base/src/nsDocumentViewer.cpp | 34 +++++++++++++++++---------- layout/base/nsDocumentViewer.cpp | 34 +++++++++++++++++---------- 2 files changed, 42 insertions(+), 26 deletions(-) diff --git a/content/base/src/nsDocumentViewer.cpp b/content/base/src/nsDocumentViewer.cpp index 66085a6e608f..283887388455 100644 --- a/content/base/src/nsDocumentViewer.cpp +++ b/content/base/src/nsDocumentViewer.cpp @@ -6629,21 +6629,29 @@ DocumentViewerImpl::DoPrintProgress(PRBool aIsForPrinting) nsCOMPtr prefs (do_GetService(NS_PREF_CONTRACTID)); if (prefs) { prefs->GetBoolPref("print.show_print_progress", &mPrt->mShowProgressDialog); - if (mPrt->mShowProgressDialog) { - nsPrintProgressParams* prtProgressParams = new nsPrintProgressParams(); - nsCOMPtr params; - rv = prtProgressParams->QueryInterface(NS_GET_IID(nsIPrintProgressParams), (void**)getter_AddRefs(mPrt->mPrintProgressParams)); - if (NS_SUCCEEDED(rv) && mPrt->mPrintProgressParams) { - SetDocAndURLIntoProgress(mPrt->mPrintObject, mPrt->mPrintProgressParams); + } - nsCOMPtr wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1")); - if (wwatch) { - nsCOMPtr active; - wwatch->GetActiveWindow(getter_AddRefs(active)); + // Turning off the showing of Print Progress in Prefs overrides + // whether the calling PS desire to have it on or off, so only check PS if + // prefs says it's ok to be on. + if (mPrt->mShowProgressDialog) { + mPrt->mPrintSettings->GetShowPrintProgress(&mPrt->mShowProgressDialog); + } - nsCOMPtr parent(do_QueryInterface(active)); - mPrt->mPrintProgress->OpenProgressDialog(parent, "chrome://global/content/printProgress.xul", mPrt->mPrintProgressParams); - } + if (mPrt->mShowProgressDialog) { + nsPrintProgressParams* prtProgressParams = new nsPrintProgressParams(); + nsCOMPtr params; + rv = prtProgressParams->QueryInterface(NS_GET_IID(nsIPrintProgressParams), (void**)getter_AddRefs(mPrt->mPrintProgressParams)); + if (NS_SUCCEEDED(rv) && mPrt->mPrintProgressParams) { + SetDocAndURLIntoProgress(mPrt->mPrintObject, mPrt->mPrintProgressParams); + + nsCOMPtr wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1")); + if (wwatch) { + nsCOMPtr active; + wwatch->GetActiveWindow(getter_AddRefs(active)); + + nsCOMPtr parent(do_QueryInterface(active)); + mPrt->mPrintProgress->OpenProgressDialog(parent, "chrome://global/content/printProgress.xul", mPrt->mPrintProgressParams); } } } diff --git a/layout/base/nsDocumentViewer.cpp b/layout/base/nsDocumentViewer.cpp index 66085a6e608f..283887388455 100644 --- a/layout/base/nsDocumentViewer.cpp +++ b/layout/base/nsDocumentViewer.cpp @@ -6629,21 +6629,29 @@ DocumentViewerImpl::DoPrintProgress(PRBool aIsForPrinting) nsCOMPtr prefs (do_GetService(NS_PREF_CONTRACTID)); if (prefs) { prefs->GetBoolPref("print.show_print_progress", &mPrt->mShowProgressDialog); - if (mPrt->mShowProgressDialog) { - nsPrintProgressParams* prtProgressParams = new nsPrintProgressParams(); - nsCOMPtr params; - rv = prtProgressParams->QueryInterface(NS_GET_IID(nsIPrintProgressParams), (void**)getter_AddRefs(mPrt->mPrintProgressParams)); - if (NS_SUCCEEDED(rv) && mPrt->mPrintProgressParams) { - SetDocAndURLIntoProgress(mPrt->mPrintObject, mPrt->mPrintProgressParams); + } - nsCOMPtr wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1")); - if (wwatch) { - nsCOMPtr active; - wwatch->GetActiveWindow(getter_AddRefs(active)); + // Turning off the showing of Print Progress in Prefs overrides + // whether the calling PS desire to have it on or off, so only check PS if + // prefs says it's ok to be on. + if (mPrt->mShowProgressDialog) { + mPrt->mPrintSettings->GetShowPrintProgress(&mPrt->mShowProgressDialog); + } - nsCOMPtr parent(do_QueryInterface(active)); - mPrt->mPrintProgress->OpenProgressDialog(parent, "chrome://global/content/printProgress.xul", mPrt->mPrintProgressParams); - } + if (mPrt->mShowProgressDialog) { + nsPrintProgressParams* prtProgressParams = new nsPrintProgressParams(); + nsCOMPtr params; + rv = prtProgressParams->QueryInterface(NS_GET_IID(nsIPrintProgressParams), (void**)getter_AddRefs(mPrt->mPrintProgressParams)); + if (NS_SUCCEEDED(rv) && mPrt->mPrintProgressParams) { + SetDocAndURLIntoProgress(mPrt->mPrintObject, mPrt->mPrintProgressParams); + + nsCOMPtr wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1")); + if (wwatch) { + nsCOMPtr active; + wwatch->GetActiveWindow(getter_AddRefs(active)); + + nsCOMPtr parent(do_QueryInterface(active)); + mPrt->mPrintProgress->OpenProgressDialog(parent, "chrome://global/content/printProgress.xul", mPrt->mPrintProgressParams); } } }