summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-11-29 11:50:54 +0000
committerCaolán McNamara <caolanm@redhat.com>2012-11-29 14:40:45 +0000
commit59b98580bfd70205a9ebdb0ba67e74225d875b43 (patch)
tree49ae5fefb8e5df4fdcce26f77740fc0fef70cdc5 /vcl
parent7e1b156a4103bbb6d1dc110ffac53528c00b5dd2 (diff)
Resolves: fdo#44664 Provide a way to set the default print job format.
a) In the print dialog you can temporarily override the default print job format for a single print job b) In the printer options dialog you can override the default print job format for a single printer c) Under tools->options->print you can override the default print job format for all printers. Tidy up the restart dialog in passing Change-Id: Ibea94bab6a79c3590dbf34583013db4e2ac06f45
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/vcl/jobdata.hxx1
-rw-r--r--vcl/inc/vcl/print.hxx4
-rw-r--r--vcl/source/gdi/print.cxx6
-rw-r--r--vcl/unx/generic/printer/cupsmgr.cxx12
-rw-r--r--vcl/unx/generic/printer/jobdata.cxx6
5 files changed, 23 insertions, 6 deletions
diff --git a/vcl/inc/vcl/jobdata.hxx b/vcl/inc/vcl/jobdata.hxx
index 45f7f7ee7e04..5485e018ec15 100644
--- a/vcl/inc/vcl/jobdata.hxx
+++ b/vcl/inc/vcl/jobdata.hxx
@@ -68,6 +68,7 @@ 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 );
// creates a new buffer using new
// it is up to the user to delete it again
diff --git a/vcl/inc/vcl/print.hxx b/vcl/inc/vcl/print.hxx
index 17d12c102237..509e1c6406c0 100644
--- a/vcl/inc/vcl/print.hxx
+++ b/vcl/inc/vcl/print.hxx
@@ -161,6 +161,7 @@ private:
sal_uInt16 mnReducedBitmapResolution;
sal_Bool mbReducedBitmapsIncludeTransparency;
sal_Bool mbConvertToGreyscales;
+ sal_Bool mbPDFAsStandardPrintJobFormat;
public:
@@ -197,6 +198,9 @@ public:
sal_Bool IsConvertToGreyscales() const { return mbConvertToGreyscales; }
void SetConvertToGreyscales( sal_Bool bSet ) { mbConvertToGreyscales = bSet; }
+ sal_Bool IsPDFAsStandardPrintJobFormat() const { return mbPDFAsStandardPrintJobFormat; }
+ void SetPDFAsStandardPrintJobFormat( sal_Bool bSet ) { mbPDFAsStandardPrintJobFormat = bSet; }
+
// read printer options from configuration, parameter decides whether the set for
// print "to printer" or "to file" should be read.
// returns true if config was read, false if an error occured
diff --git a/vcl/source/gdi/print.cxx b/vcl/source/gdi/print.cxx
index 9e948c9ddabd..7037a1f54058 100644
--- a/vcl/source/gdi/print.cxx
+++ b/vcl/source/gdi/print.cxx
@@ -117,7 +117,8 @@ PrinterOptions::PrinterOptions() :
meReducedBitmapMode( PRINTER_BITMAP_NORMAL ),
mnReducedBitmapResolution( 200 ),
mbReducedBitmapsIncludeTransparency( sal_True ),
- mbConvertToGreyscales( sal_False )
+ mbConvertToGreyscales( sal_False ),
+ mbPDFAsStandardPrintJobFormat( sal_False )
{
}
@@ -137,6 +138,7 @@ PrinterOptions::~PrinterOptions()
#define PROPERTYNAME_REDUCEDBITMAPRESOLUTION rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ReducedBitmapResolution"))
#define PROPERTYNAME_REDUCEDBITMAPINCLUDESTRANSPARENCY rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ReducedBitmapIncludesTransparency"))
#define PROPERTYNAME_CONVERTTOGREYSCALES rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ConvertToGreyscales"))
+#define PROPERTYNAME_PDFASSTANDARDPRINTJOBFORMAT rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PDFAsStandardPrintJobFormat"))
bool PrinterOptions::ReadFromConfig( bool i_bFile )
{
@@ -195,6 +197,8 @@ bool PrinterOptions::ReadFromConfig( bool i_bFile )
SetReducedBitmapIncludesTransparency( bValue );
if( xSet->getPropertyValue(PROPERTYNAME_CONVERTTOGREYSCALES) >>= bValue )
SetConvertToGreyscales( bValue );
+ if( xSet->getPropertyValue(PROPERTYNAME_PDFASSTANDARDPRINTJOBFORMAT) >>= bValue )
+ SetPDFAsStandardPrintJobFormat( bValue );
bSuccess = true;
}
diff --git a/vcl/unx/generic/printer/cupsmgr.cxx b/vcl/unx/generic/printer/cupsmgr.cxx
index e23aedcb6b05..a1d8d497e0a9 100644
--- a/vcl/unx/generic/printer/cupsmgr.cxx
+++ b/vcl/unx/generic/printer/cupsmgr.cxx
@@ -33,6 +33,8 @@
#include "rtl/ustrbuf.hxx"
+#include <officecfg/Office/Common.hxx>
+
#include <algorithm>
using namespace psp;
@@ -284,10 +286,11 @@ void CUPSManager::initialize()
if( pOpt )
{
m_bUseIncludeFeature = true;
- bUsePDF = true;
- if( m_aGlobalDefaults.m_nPSLevel == 0 && m_aGlobalDefaults.m_nPDFDevice == 0 )
- m_aGlobalDefaults.m_nPDFDevice = 1;
+ bUsePDF = officecfg::Office::Common::Print::Option::Printer::PDFAsStandardPrintJobFormat::get();
}
+
+ m_aGlobalDefaults.setDefaultBackend(bUsePDF);
+
// do not send include JobPatch; CUPS will insert that itself
// TODO: currently unknown which versions of CUPS insert JobPatches
// so currently it is assumed CUPS = don't insert JobPatch files
@@ -351,8 +354,7 @@ void CUPSManager::initialize()
aPrinter.m_aInfo.m_pParser = c_it->second.getParser();
aPrinter.m_aInfo.m_aContext = c_it->second;
}
- if( bUsePDF && aPrinter.m_aInfo.m_nPSLevel == 0 && aPrinter.m_aInfo.m_nPDFDevice == 0 )
- aPrinter.m_aInfo.m_nPDFDevice = 1;
+ aPrinter.m_aInfo.setDefaultBackend(bUsePDF);
aPrinter.m_aInfo.m_aDriverName = aBuf.makeStringAndClear();
aPrinter.m_bModified = false;
diff --git a/vcl/unx/generic/printer/jobdata.cxx b/vcl/unx/generic/printer/jobdata.cxx
index bd18b19ec279..385ed02426ae 100644
--- a/vcl/unx/generic/printer/jobdata.cxx
+++ b/vcl/unx/generic/printer/jobdata.cxx
@@ -269,4 +269,10 @@ bool JobData::constructFromStreamBuffer( void* pData, int bytes, JobData& rJobDa
return bVersion && bPrinter && bOrientation && bCopies && bContext && bMargin && bPSLevel && bPDFDevice && bColorDevice && bColorDepth;
}
+void JobData::setDefaultBackend(bool bUsePDF)
+{
+ if (bUsePDF && m_nPSLevel == 0 && m_nPDFDevice == 0)
+ m_nPDFDevice = 1;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */