diff options
-rw-r--r-- | officecfg/registry/schema/org/openoffice/Office/Common.xcs | 26 | ||||
-rw-r--r-- | sfx2/Library_sfx.mk | 4 | ||||
-rw-r--r-- | sfx2/inc/sfx2/printopt.hxx | 2 | ||||
-rw-r--r-- | sfx2/source/dialog/printopt.cxx | 40 | ||||
-rw-r--r-- | sfx2/source/dialog/printopt.hrc | 2 | ||||
-rw-r--r-- | sfx2/source/dialog/printopt.src | 19 | ||||
-rw-r--r-- | svtools/inc/svtools/printoptions.hxx | 6 | ||||
-rw-r--r-- | svtools/inc/svtools/restartdialog.hxx | 5 | ||||
-rw-r--r-- | svtools/source/config/printoptions.cxx | 52 | ||||
-rw-r--r-- | svtools/source/dialogs/restartdialog.cxx | 9 | ||||
-rw-r--r-- | svtools/uiconfig/ui/restartdialog.ui | 36 | ||||
-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 |
16 files changed, 203 insertions, 27 deletions
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs index db6caab0ec37..cc11bb6561fe 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs @@ -3805,6 +3805,19 @@ </info> <value>false</value> </prop> + <prop + oor:name="PDFAsStandardPrintJobFormat" oor:type="xs:boolean" + oor:nillable="false"> + <!-- UIHints: Tools Options - General Print [Section] + PrintFileOptions --> + <info> + <author>CMC</author> + <desc>Indicates whether PDF should be the Standard Print Job + format</desc> + <label>(PrinterOptions) PDFAsStandardPrintJobFormat</label> + </info> + <value>true</value> + </prop> </group> <group oor:name="File"> <info> @@ -3943,6 +3956,19 @@ </info> <value>false</value> </prop> + <prop + oor:name="PDFAsStandardPrintJobFormat" oor:type="xs:boolean" + oor:nillable="false"> + <!-- UIHints: Tools Options - General Print [Section] + PrintFileOptions --> + <info> + <author>CMC</author> + <desc>Indicates whether PDF should be the Standard Print Job + format</desc> + <label>(PrintFileOptions) PDFAsStandardPrintJobFormat</label> + </info> + <value>true</value> + </prop> </group> </group> </group> diff --git a/sfx2/Library_sfx.mk b/sfx2/Library_sfx.mk index 6cc8a1d5a64e..58c4e81d1d88 100644 --- a/sfx2/Library_sfx.mk +++ b/sfx2/Library_sfx.mk @@ -40,6 +40,10 @@ $(eval $(call gb_Library_set_include,sfx,\ $(eval $(call gb_Library_add_defs,sfx,-DSFX2_DLLIMPLEMENTATION)) +$(eval $(call gb_Library_add_defs,sfx,\ + $(if $(filter TRUE,$(ENABLE_CUPS)),-DENABLE_CUPS) \ +)) + ifeq ($(ENABLE_SYSTRAY_GTK),TRUE) $(eval $(call gb_Library_add_defs,sfx,\ -DENABLE_QUICKSTART_APPLET \ diff --git a/sfx2/inc/sfx2/printopt.hxx b/sfx2/inc/sfx2/printopt.hxx index 24472c0b7b31..ccc48ef0e058 100644 --- a/sfx2/inc/sfx2/printopt.hxx +++ b/sfx2/inc/sfx2/printopt.hxx @@ -67,6 +67,8 @@ private: CheckBox aConvertToGreyscalesCB; + CheckBox aPDFCB; + FixedLine aWarnGB; CheckBox aPaperSizeCB; diff --git a/sfx2/source/dialog/printopt.cxx b/sfx2/source/dialog/printopt.cxx index 93ce802d92a7..4183eef87d41 100644 --- a/sfx2/source/dialog/printopt.cxx +++ b/sfx2/source/dialog/printopt.cxx @@ -22,8 +22,10 @@ #include <vcl/msgbox.hxx> #include <unotools/printwarningoptions.hxx> #include <svtools/printoptions.hxx> +#include <svtools/restartdialog.hxx> #include <svl/flagitem.hxx> +#include <comphelper/processfactory.hxx> #include "printopt.hrc" #include "dialog.hrc" @@ -58,6 +60,7 @@ SfxCommonPrintOptionsTabPage::SfxCommonPrintOptionsTabPage( Window* pParent, con aReduceBitmapsResolutionLB( this, SfxResId( LB_REDUCEBITMAPS_RESOLUTION ) ), aReduceBitmapsTransparencyCB( this, SfxResId( CB_REDUCEBITMAPS_TRANSPARENCY ) ), aConvertToGreyscalesCB( this, SfxResId( CB_CONVERTTOGREYSCALES ) ), + aPDFCB( this, SfxResId( CB_PDF ) ), aWarnGB( this, SfxResId( GB_PRINT_WARN ) ), aPaperSizeCB( this, SfxResId( CB_PAPERSIZE ) ), aPaperOrientationCB( this, SfxResId( CB_PAPERORIENTATION ) ), @@ -65,6 +68,29 @@ SfxCommonPrintOptionsTabPage::SfxCommonPrintOptionsTabPage( Window* pParent, con { FreeResource(); +#ifndef ENABLE_CUPS + long nDiff = aWarnGB.GetPosPixel().Y() - aPDFCB.GetPosPixel().Y(); + aPDFCB.Hide(); + + Point aPoint; + + aPoint = aWarnGB.GetPosPixel(); + aPoint.Y() -= nDiff; + aWarnGB.SetPosPixel(aPoint); + + aPoint = aPaperSizeCB.GetPosPixel(); + aPoint.Y() -= nDiff; + aPaperSizeCB.SetPosPixel(aPoint); + + aPoint = aPaperOrientationCB.GetPosPixel(); + aPoint.Y() -= nDiff; + aPaperOrientationCB.SetPosPixel(aPoint); + + aPoint = aTransparencyCB.GetPosPixel(); + aPoint.Y() -= nDiff; + aTransparencyCB.SetPosPixel(aPoint); +#endif + aOutputGB.SetStyle( aOutputGB.GetStyle() | WB_NOLABEL ); if( bOutputForPrinter ) @@ -76,6 +102,7 @@ SfxCommonPrintOptionsTabPage::SfxCommonPrintOptionsTabPage( Window* pParent, con { aPrintFileOutputRB.Check( sal_True ); aOutputGB.SetText( OutputDevice::GetNonMnemonicString( aPrintFileOutputRB.GetText() ) ); + aPDFCB.Disable(); } aPrinterOutputRB.SetToggleHdl( LINK( this, SfxCommonPrintOptionsTabPage, ToggleOutputPrinterRBHdl ) ); @@ -237,6 +264,7 @@ void SfxCommonPrintOptionsTabPage::ImplUpdateControls( const PrinterOptions* pCu aReduceBitmapsTransparencyCB.Check( pCurrentOptions->IsReducedBitmapIncludesTransparency() ); aConvertToGreyscalesCB.Check( pCurrentOptions->IsConvertToGreyscales() ); + aPDFCB.Check( pCurrentOptions->IsPDFAsStandardPrintJobFormat() ); ClickReduceTransparencyCBHdl( &aReduceTransparencyCB ); ClickReduceGradientsCBHdl( &aReduceGradientsCB ); @@ -355,6 +383,14 @@ void SfxCommonPrintOptionsTabPage::ImplSaveControls( PrinterOptions* pCurrentOpt (sal_uInt16)( (sizeof (aDPIArray) / sizeof (aDPIArray[0])) - 1 ) ) ] ); pCurrentOptions->SetReducedBitmapIncludesTransparency( aReduceBitmapsTransparencyCB.IsChecked() ); pCurrentOptions->SetConvertToGreyscales( aConvertToGreyscalesCB.IsChecked() ); + sal_Bool bOrigBackEnd = pCurrentOptions->IsPDFAsStandardPrintJobFormat(); + if (bOrigBackEnd != aPDFCB.IsChecked()) + { + pCurrentOptions->SetPDFAsStandardPrintJobFormat( aPDFCB.IsChecked() ); + svtools::executeRestartDialog( + comphelper::getProcessComponentContext(), 0, + svtools::RESTART_REASON_PDF_AS_STANDARD_JOB_FORMAT); + } } IMPL_LINK( SfxCommonPrintOptionsTabPage, ClickReduceTransparencyCBHdl, CheckBox*, pBox ) @@ -445,9 +481,13 @@ IMPL_LINK( SfxCommonPrintOptionsTabPage, ToggleOutputPrintFileRBHdl, RadioButton bOutputForPrinter = sal_False; // #i63982# ImplSetAccessibleNames(); + aPDFCB.Disable(); } else + { ImplSaveControls( &maPrintFileOptions ); + aPDFCB.Enable(); + } return 0; } diff --git a/sfx2/source/dialog/printopt.hrc b/sfx2/source/dialog/printopt.hrc index bdc04b2347a3..6df68661a534 100644 --- a/sfx2/source/dialog/printopt.hrc +++ b/sfx2/source/dialog/printopt.hrc @@ -46,3 +46,5 @@ #define CB_PAPERSIZE 51 #define CB_PAPERORIENTATION 52 #define CB_TRANSPARENCY 53 + +#define CB_PDF 54 diff --git a/sfx2/source/dialog/printopt.src b/sfx2/source/dialog/printopt.src index a21e09b618a6..648ad50d7e10 100644 --- a/sfx2/source/dialog/printopt.src +++ b/sfx2/source/dialog/printopt.src @@ -210,9 +210,20 @@ TabPage TP_COMMONPRINTOPTIONS // ----------- + CheckBox CB_PDF + { + HelpID = "sfx2:CheckBox:TP_COMMONPRINTOPTIONS:CB_REDUCEBITMAPS"; + TabStop = TRUE; + Pos = MAP_APPFONT ( 18, 146 ) ; + Size = MAP_APPFONT ( 115, 10 ) ; + Text [ en-US ] = "PDF as Standard Print Job Format"; + }; + + // ----------- + FixedLine GB_PRINT_WARN { - Pos = MAP_APPFONT ( 6, 148 ) ; + Pos = MAP_APPFONT ( 6, 162 ) ; Size = MAP_APPFONT ( 248 , 8 ) ; Text [ en-US ] = "Printer warnings" ; }; @@ -220,7 +231,7 @@ TabPage TP_COMMONPRINTOPTIONS { HelpID = "sfx2:CheckBox:TP_COMMONPRINTOPTIONS:CB_PAPERSIZE"; TabStop = TRUE; - Pos = MAP_APPFONT ( 12, 159 ) ; + Pos = MAP_APPFONT ( 12, 173 ) ; Size = MAP_APPFONT ( 123, 10 ) ; Text [ en-US ] = "P~aper size" ; }; @@ -228,7 +239,7 @@ TabPage TP_COMMONPRINTOPTIONS { HelpID = "sfx2:CheckBox:TP_COMMONPRINTOPTIONS:CB_PAPERORIENTATION"; TabStop = TRUE; - Pos = MAP_APPFONT ( 12, 172 ) ; + Pos = MAP_APPFONT ( 12, 186 ) ; Size = MAP_APPFONT ( 123 , 10 ) ; Text [ en-US ] = "Pap~er orientation" ; }; @@ -236,7 +247,7 @@ TabPage TP_COMMONPRINTOPTIONS { HelpID = "sfx2:CheckBox:TP_COMMONPRINTOPTIONS:CB_TRANSPARENCY"; TabStop = TRUE; - Pos = MAP_APPFONT ( 136, 159 ) ; + Pos = MAP_APPFONT ( 136, 173 ) ; Size = MAP_APPFONT ( 123, 10 ) ; Text [ en-US ] = "~Transparency"; }; diff --git a/svtools/inc/svtools/printoptions.hxx b/svtools/inc/svtools/printoptions.hxx index 8c882e144fc6..e3e70e7750e6 100644 --- a/svtools/inc/svtools/printoptions.hxx +++ b/svtools/inc/svtools/printoptions.hxx @@ -60,7 +60,8 @@ public: sal_Int16 GetReducedBitmapMode() const; sal_Int16 GetReducedBitmapResolution() const; sal_Bool IsReducedBitmapIncludesTransparency() const; - sal_Bool IsConvertToGreyscales() const; + sal_Bool IsConvertToGreyscales() const; + sal_Bool IsPDFAsStandardPrintJobFormat() const; void SetReduceTransparency( sal_Bool bState ); void SetReducedTransparencyMode( sal_Int16 nMode ); @@ -71,7 +72,8 @@ public: void SetReducedBitmapMode( sal_Int16 bState ); void SetReducedBitmapResolution( sal_Int16 nResolution ); void SetReducedBitmapIncludesTransparency( sal_Bool bState ); - void SetConvertToGreyscales( sal_Bool bState ); + void SetConvertToGreyscales( sal_Bool bState ); + void SetPDFAsStandardPrintJobFormat( sal_Bool bState ); public: diff --git a/svtools/inc/svtools/restartdialog.hxx b/svtools/inc/svtools/restartdialog.hxx index 85afd7d89f3c..91ff4eafa445 100644 --- a/svtools/inc/svtools/restartdialog.hxx +++ b/svtools/inc/svtools/restartdialog.hxx @@ -23,9 +23,12 @@ namespace com { namespace sun { namespace star { namespace uno { namespace svtools { enum RestartReason { - RESTART_REASON_JAVA + RESTART_REASON_JAVA, // "For the selected Java runtime environment to work properly, // %PRODUCTNAME must be restarted." + RESTART_REASON_PDF_AS_STANDARD_JOB_FORMAT + // For the modified default print job format to take effect, + // %PRODUCTNAME must be restarted. }; SVT_DLLPUBLIC void executeRestartDialog( diff --git a/svtools/source/config/printoptions.cxx b/svtools/source/config/printoptions.cxx index 039c7e9da529..3d0c0c0d07bd 100644 --- a/svtools/source/config/printoptions.cxx +++ b/svtools/source/config/printoptions.cxx @@ -64,6 +64,7 @@ static sal_uInt16 aDPIArray[] = { 72, 96, 150, 200, 300, 600 }; #define PROPERTYNAME_REDUCEDBITMAPRESOLUTION OUString(RTL_CONSTASCII_USTRINGPARAM("ReducedBitmapResolution")) #define PROPERTYNAME_REDUCEDBITMAPINCLUDESTRANSPARENCY OUString(RTL_CONSTASCII_USTRINGPARAM("ReducedBitmapIncludesTransparency")) #define PROPERTYNAME_CONVERTTOGREYSCALES OUString(RTL_CONSTASCII_USTRINGPARAM("ConvertToGreyscales")) +#define PROPERTYNAME_PDFASSTANDARDPRINTJOBFORMAT OUString(RTL_CONSTASCII_USTRINGPARAM("PDFAsStandardPrintJobFormat")) // -------------- // - Namespaces - @@ -116,7 +117,8 @@ public: sal_Int16 GetReducedBitmapMode() const ; sal_Int16 GetReducedBitmapResolution() const ; sal_Bool IsReducedBitmapIncludesTransparency() const ; - sal_Bool IsConvertToGreyscales() const; + sal_Bool IsConvertToGreyscales() const; + sal_Bool IsPDFAsStandardPrintJobFormat() const; void SetReduceTransparency( sal_Bool bState ) ; void SetReducedTransparencyMode( sal_Int16 nMode ) ; @@ -127,7 +129,8 @@ public: void SetReducedBitmapMode( sal_Int16 nMode ) ; void SetReducedBitmapResolution( sal_Int16 nResolution ) ; void SetReducedBitmapIncludesTransparency( sal_Bool bState ) ; - void SetConvertToGreyscales( sal_Bool bState ) ; + void SetConvertToGreyscales( sal_Bool bState ) ; + void SetPDFAsStandardPrintJobFormat( sal_Bool bState ) ; //------------------------------------------------------------------------------------------------------------- // private API @@ -393,6 +396,28 @@ sal_Bool SvtPrintOptions_Impl::IsConvertToGreyscales() const } +sal_Bool SvtPrintOptions_Impl::IsPDFAsStandardPrintJobFormat() const +{ + sal_Bool bRet = sal_True; + try + { + if (m_xNode.is()) + { + css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY); + if (xSet.is()) + { + xSet->getPropertyValue(PROPERTYNAME_PDFASSTANDARDPRINTJOBFORMAT) >>= bRet; + } + } + } + catch (const css::uno::Exception& ex) + { + SAL_WARN("svtools", "Caught unexpected: " << ex.Message); + } + + return bRet; +} + void SvtPrintOptions_Impl::SetReduceTransparency(sal_Bool bState) { impl_setValue(PROPERTYNAME_REDUCETRANSPARENCY, bState); @@ -443,6 +468,11 @@ void SvtPrintOptions_Impl::SetConvertToGreyscales(sal_Bool bState) impl_setValue(PROPERTYNAME_CONVERTTOGREYSCALES, bState); } +void SvtPrintOptions_Impl::SetPDFAsStandardPrintJobFormat(sal_Bool bState) +{ + impl_setValue(PROPERTYNAME_PDFASSTANDARDPRINTJOBFORMAT, bState); +} + SvtPrintOptions_Impl::~SvtPrintOptions_Impl() { m_xNode.clear(); @@ -628,6 +658,14 @@ sal_Bool SvtBasePrintOptions::IsConvertToGreyscales() const // ----------------------------------------------------------------------------- +sal_Bool SvtBasePrintOptions::IsPDFAsStandardPrintJobFormat() const +{ + MutexGuard aGuard( GetOwnStaticMutex() ); + return m_pDataContainer->IsPDFAsStandardPrintJobFormat(); +} + +// ----------------------------------------------------------------------------- + void SvtBasePrintOptions::SetReduceTransparency( sal_Bool bState ) { MutexGuard aGuard( GetOwnStaticMutex() ); @@ -708,6 +746,14 @@ void SvtBasePrintOptions::SetConvertToGreyscales( sal_Bool bState ) // ----------------------------------------------------------------------------- +void SvtBasePrintOptions::SetPDFAsStandardPrintJobFormat( sal_Bool bState ) +{ + MutexGuard aGuard( GetOwnStaticMutex() ); + m_pDataContainer->SetPDFAsStandardPrintJobFormat( bState ); +} + +// ----------------------------------------------------------------------------- + void SvtBasePrintOptions::GetPrinterOptions( PrinterOptions& rOptions ) const { rOptions.SetReduceTransparency( IsReduceTransparency() ); @@ -720,6 +766,7 @@ void SvtBasePrintOptions::GetPrinterOptions( PrinterOptions& rOptions ) const rOptions.SetReducedBitmapResolution( aDPIArray[ Min( (sal_uInt16) GetReducedBitmapResolution(), (sal_uInt16)( DPI_COUNT - 1 ) ) ] ); rOptions.SetReducedBitmapIncludesTransparency( IsReducedBitmapIncludesTransparency() ); rOptions.SetConvertToGreyscales( IsConvertToGreyscales() ); + rOptions.SetPDFAsStandardPrintJobFormat( IsPDFAsStandardPrintJobFormat() ); } // ----------------------------------------------------------------------------- @@ -739,6 +786,7 @@ void SvtBasePrintOptions::SetPrinterOptions( const PrinterOptions& rOptions ) sal::static_int_cast< sal_Int16 >(rOptions.GetReducedBitmapMode()) ); SetReducedBitmapIncludesTransparency( rOptions.IsReducedBitmapIncludesTransparency() ); SetConvertToGreyscales( rOptions.IsConvertToGreyscales() ); + SetPDFAsStandardPrintJobFormat( rOptions.IsPDFAsStandardPrintJobFormat() ); const sal_uInt16 nDPI = rOptions.GetReducedBitmapResolution(); diff --git a/svtools/source/dialogs/restartdialog.cxx b/svtools/source/dialogs/restartdialog.cxx index 1004a2d6d394..2e8428f935cf 100644 --- a/svtools/source/dialogs/restartdialog.cxx +++ b/svtools/source/dialogs/restartdialog.cxx @@ -30,16 +30,19 @@ public: RestartDialog(Window * parent, svtools::RestartReason reason): ModalDialog(parent, "RestartDialog", "svt/ui/restartdialog.ui") { - get(reasonJava_, "reason_java"); get(btnYes_, "yes"); get(btnNo_, "no"); switch (reason) { case svtools::RESTART_REASON_JAVA: - reasonJava_->Show(); + get(reason_, "reason_java"); + break; + case svtools::RESTART_REASON_PDF_AS_STANDARD_JOB_FORMAT: + get(reason_, "reason_pdf"); break; default: assert(false); // this cannot happen } + reason_->Show(); btnYes_->SetClickHdl(LINK(this, RestartDialog, hdlYes)); btnNo_->SetClickHdl(LINK(this, RestartDialog, hdlNo)); } @@ -48,7 +51,7 @@ private: DECL_LINK(hdlYes, void *); DECL_LINK(hdlNo, void *); - Window * reasonJava_; + Window * reason_; PushButton * btnYes_; PushButton * btnNo_; }; diff --git a/svtools/uiconfig/ui/restartdialog.ui b/svtools/uiconfig/ui/restartdialog.ui index dd041b4ec52b..475dfbdf1756 100644 --- a/svtools/uiconfig/ui/restartdialog.ui +++ b/svtools/uiconfig/ui/restartdialog.ui @@ -1,17 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * ---> <interface> <!-- interface-requires gtk+ 3.0 --> <object class="GtkDialog" id="RestartDialog"> <property name="can_focus">False</property> <property name="border_width">5</property> + <property name="title" translatable="yes">Restart %PRODUCTNAME</property> <property name="type_hint">dialog</property> <child internal-child="vbox"> <object class="GtkBox" id="dialog-vbox1"> @@ -26,9 +19,13 @@ <child> <object class="GtkButton" id="yes"> <property name="label" translatable="yes">Restart now</property> + <property name="use_action_appearance">False</property> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> </object> <packing> <property name="expand">False</property> @@ -39,9 +36,11 @@ <child> <object class="GtkButton" id="no"> <property name="label" translatable="yes">Restart later</property> + <property name="use_action_appearance">False</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> </object> <packing> <property name="expand">False</property> @@ -62,10 +61,14 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="orientation">vertical</property> + <property name="spacing">16</property> <child> <object class="GtkLabel" id="reason_java"> <property name="can_focus">False</property> + <property name="no_show_all">True</property> <property name="label" translatable="yes">For the selected Java runtime environment to work properly, %PRODUCTNAME must be restarted.</property> + <property name="wrap">True</property> + <property name="max_width_chars">30</property> </object> <packing> <property name="expand">False</property> @@ -74,15 +77,30 @@ </packing> </child> <child> + <object class="GtkLabel" id="reason_pdf"> + <property name="can_focus">False</property> + <property name="no_show_all">True</property> + <property name="label" translatable="yes">For the modified default print job format to take effect, %PRODUCTNAME must be restarted.</property> + <property name="wrap">True</property> + <property name="max_width_chars">50</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> <object class="GtkLabel" id="label"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Do you want to restart %PRODUCTNAME now?</property> + <property name="wrap">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">1</property> + <property name="position">2</property> </packing> </child> </object> 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: */ |