summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2013-01-09 12:44:09 +0000
committerMiklos Vajna <vmiklos@suse.cz>2013-01-10 09:02:14 +0000
commit4c93acdba9274f5571a01a7ed5738957d8ebb0cd (patch)
tree607269d319e7f7ea82f486de5b06e999684ce034
parentfe3bcdac912580607611475bfc3b0fa478a54ec1 (diff)
Resolves: fdo#59131 resolve default backend on printer->setup
For setting permanent defaults via spadmin we don't want to resolve the default backend on saving "default", this happens during the print initialization stuff. But when we tweak the printer settings for a single print job and reset back to default, we need to resolve that to what backend we want Change-Id: Iac2370624b6d248c9658fb0fbc2f2d449849d81a (cherry picked from commit 9c4d77f22d58f5b500c95f65a431628a8d8d6e6e) Reviewed-on: https://gerrit.libreoffice.org/1609 Reviewed-by: Miklos Vajna <vmiklos@suse.cz> Tested-by: Miklos Vajna <vmiklos@suse.cz>
-rw-r--r--vcl/generic/print/genprnpsp.cxx1
-rw-r--r--vcl/inc/vcl/jobdata.hxx3
-rw-r--r--vcl/unx/generic/printer/jobdata.cxx8
3 files changed, 10 insertions, 2 deletions
diff --git a/vcl/generic/print/genprnpsp.cxx b/vcl/generic/print/genprnpsp.cxx
index 9949eae4b6c0..6800e01ed506 100644
--- a/vcl/generic/print/genprnpsp.cxx
+++ b/vcl/generic/print/genprnpsp.cxx
@@ -584,6 +584,7 @@ sal_Bool PspSalInfoPrinter::Setup( SalFrame* pFrame, ImplJobSetup* pJobSetup )
if( pSetupFunction( aInfo ) )
{
+ aInfo.resolveDefaultBackend();
rtl_freeMemory( pJobSetup->mpDriverData );
pJobSetup->mpDriverData = NULL;
diff --git a/vcl/inc/vcl/jobdata.hxx b/vcl/inc/vcl/jobdata.hxx
index 577e0fadb6a7..3f81877f230f 100644
--- a/vcl/inc/vcl/jobdata.hxx
+++ b/vcl/inc/vcl/jobdata.hxx
@@ -68,7 +68,8 @@ struct VCL_DLLPUBLIC JobData
void setCollate( bool bCollate );
bool setPaper( int nWidth, int nHeight ); // dimensions in pt
bool setPaperBin( int nPaperBin ); // dimensions in pt
- void setDefaultBackend( bool bUsePDF );
+ void resolveDefaultBackend();
+ void setDefaultBackend(bool bUsePDF);
// creates a new buffer using new
// it is up to the user to delete it again
diff --git a/vcl/unx/generic/printer/jobdata.cxx b/vcl/unx/generic/printer/jobdata.cxx
index 385ed02426ae..c55f64aad12f 100644
--- a/vcl/unx/generic/printer/jobdata.cxx
+++ b/vcl/unx/generic/printer/jobdata.cxx
@@ -18,9 +18,9 @@
*/
+#include <officecfg/Office/Common.hxx>
#include "vcl/jobdata.hxx"
#include "vcl/printerinfomanager.hxx"
-
#include "tools/stream.hxx"
#include <sal/alloca.h>
@@ -269,6 +269,12 @@ bool JobData::constructFromStreamBuffer( void* pData, int bytes, JobData& rJobDa
return bVersion && bPrinter && bOrientation && bCopies && bContext && bMargin && bPSLevel && bPDFDevice && bColorDevice && bColorDepth;
}
+void JobData::resolveDefaultBackend()
+{
+ if (m_nPSLevel == 0 && m_nPDFDevice == 0)
+ setDefaultBackend(officecfg::Office::Common::Print::Option::Printer::PDFAsStandardPrintJobFormat::get());
+}
+
void JobData::setDefaultBackend(bool bUsePDF)
{
if (bUsePDF && m_nPSLevel == 0 && m_nPDFDevice == 0)