diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-11-29 11:50:54 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-11-29 14:40:45 +0000 |
commit | 59b98580bfd70205a9ebdb0ba67e74225d875b43 (patch) | |
tree | 49ae5fefb8e5df4fdcce26f77740fc0fef70cdc5 /vcl | |
parent | 7e1b156a4103bbb6d1dc110ffac53528c00b5dd2 (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.hxx | 1 | ||||
-rw-r--r-- | vcl/inc/vcl/print.hxx | 4 | ||||
-rw-r--r-- | vcl/source/gdi/print.cxx | 6 | ||||
-rw-r--r-- | vcl/unx/generic/printer/cupsmgr.cxx | 12 | ||||
-rw-r--r-- | vcl/unx/generic/printer/jobdata.cxx | 6 |
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: */ |