[Libreoffice-commits] core.git: include/svtools include/unotools sfx2/source svtools/source

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Sun Jul 25 10:56:28 UTC 2021


 include/svtools/printoptions.hxx       |   79 ----
 include/unotools/itemholderbase.hxx    |    2 
 sfx2/source/dialog/printopt.cxx        |   11 
 svtools/source/config/itemholder2.cxx  |    8 
 svtools/source/config/printoptions.cxx |  547 ++++++---------------------------
 5 files changed, 116 insertions(+), 531 deletions(-)

New commits:
commit c05adac9229aad0683d2e75a8f8dcd5421c66b02
Author:     Noel Grandin <noelgrandin at gmail.com>
AuthorDate: Sat Jul 24 22:56:15 2021 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sun Jul 25 12:55:51 2021 +0200

    use officecfg for print options
    
    Change-Id: I2a85d802b9edda638da467e273ad3d24cbf2bcf1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119476
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/include/svtools/printoptions.hxx b/include/svtools/printoptions.hxx
index 72120306c5f5..6f2e86df3cf1 100644
--- a/include/svtools/printoptions.hxx
+++ b/include/svtools/printoptions.hxx
@@ -22,88 +22,15 @@
 #include <config_options.h>
 #include <svtools/svtdllapi.h>
 #include <sal/types.h>
-#include <unotools/options.hxx>
 
-namespace osl { class Mutex; }
-
-class SvtPrintOptions_Impl;
 class PrinterOptions;
 
-
-class UNLESS_MERGELIBS(SVT_DLLPUBLIC) SvtBasePrintOptions: public utl::detail::Options
+namespace svtools
 {
-
-    SvtPrintOptions_Impl* m_pDataContainer;
-
-protected:
-
-    void        SetDataContainer( SvtPrintOptions_Impl* pDataContainer ) { m_pDataContainer = pDataContainer; }
-
-public:
-
-    static ::osl::Mutex& GetOwnStaticMutex();
-
-public:
-
-                SvtBasePrintOptions();
-                virtual ~SvtBasePrintOptions() override;
-
-    static bool        IsReduceTransparency();
-    static sal_Int16   GetReducedTransparencyMode();
-    static bool        IsReduceGradients();
-    static sal_Int16   GetReducedGradientMode();
-    static sal_Int16   GetReducedGradientStepCount();
-    static bool        IsReduceBitmaps();
-    static sal_Int16   GetReducedBitmapMode();
-    static sal_Int16   GetReducedBitmapResolution();
-    static bool        IsReducedBitmapIncludesTransparency();
-    static bool        IsConvertToGreyscales();
-    static bool        IsPDFAsStandardPrintJobFormat();
-
-    void        SetReduceTransparency( bool bState );
-    void        SetReducedTransparencyMode( sal_Int16 nMode );
-    void        SetReduceGradients( bool bState );
-    void        SetReducedGradientMode( sal_Int16 nMode );
-    void        SetReducedGradientStepCount( sal_Int16 nStepCount );
-    void        SetReduceBitmaps( bool bState );
-    void        SetReducedBitmapMode( sal_Int16   bState );
-    void        SetReducedBitmapResolution( sal_Int16 nResolution );
-    void        SetReducedBitmapIncludesTransparency( bool bState );
-    void        SetConvertToGreyscales( bool bState );
-    void        SetPDFAsStandardPrintJobFormat( bool bState );
-
-public:
-
-    static void        GetPrinterOptions( PrinterOptions& rOptions );
-    void               SetPrinterOptions( const PrinterOptions& rOptions );
+    SVT_DLLPUBLIC void GetPrinterOptions( PrinterOptions& rOptions, bool bFile );
+    SVT_DLLPUBLIC void SetPrinterOptions( const PrinterOptions& rOptions, bool bFile );
 };
 
 
-class UNLESS_MERGELIBS(SVT_DLLPUBLIC) SvtPrinterOptions final : public SvtBasePrintOptions
-{
-private:
-
-    static SvtPrintOptions_Impl*    m_pStaticDataContainer;
-    static sal_Int32                m_nRefCount;
-
-public:
-
-    SvtPrinterOptions();
-    virtual ~SvtPrinterOptions() override;
-};
-
-
-class UNLESS_MERGELIBS(SVT_DLLPUBLIC) SvtPrintFileOptions final : public SvtBasePrintOptions
-{
-private:
-
-    static SvtPrintOptions_Impl*    m_pStaticDataContainer;
-    static sal_Int32                m_nRefCount;
-
-public:
-
-    SvtPrintFileOptions();
-    virtual ~SvtPrintFileOptions() override;
-};
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/unotools/itemholderbase.hxx b/include/unotools/itemholderbase.hxx
index 3546e5fd1478..676ed455484a 100644
--- a/include/unotools/itemholderbase.hxx
+++ b/include/unotools/itemholderbase.hxx
@@ -55,8 +55,6 @@ enum class EItem
     OptionsDialogOptions          ,
 
     PathOptions                   ,
-    PrintOptions                  ,   // 2
-    PrintFileOptions              ,   // 2
 
     SecurityOptions               ,
     SysLocaleOptions              ,   // 2
diff --git a/sfx2/source/dialog/printopt.cxx b/sfx2/source/dialog/printopt.cxx
index d6fe953c785b..f94b0204cd6f 100644
--- a/sfx2/source/dialog/printopt.cxx
+++ b/sfx2/source/dialog/printopt.cxx
@@ -91,9 +91,6 @@ std::unique_ptr<SfxTabPage> SfxCommonPrintOptionsTabPage::Create(weld::Container
 
 bool SfxCommonPrintOptionsTabPage::FillItemSet( SfxItemSet* /*rSet*/ )
 {
-    SvtPrinterOptions       aPrinterOptions;
-    SvtPrintFileOptions     aPrintFileOptions;
-
     std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
 
     if( m_xPaperSizeCB->get_state_changed_from_saved())
@@ -107,8 +104,8 @@ bool SfxCommonPrintOptionsTabPage::FillItemSet( SfxItemSet* /*rSet*/ )
 
     ImplSaveControls( m_xPrinterOutputRB->get_active() ? &maPrinterOptions : &maPrintFileOptions );
 
-    aPrinterOptions.SetPrinterOptions( maPrinterOptions );
-    aPrintFileOptions.SetPrinterOptions( maPrintFileOptions );
+    svtools::SetPrinterOptions(maPrinterOptions, /*bFile*/false);
+    svtools::SetPrinterOptions(maPrintFileOptions, /*bFile*/true);
 
     return false;
 }
@@ -123,8 +120,8 @@ void SfxCommonPrintOptionsTabPage::Reset( const SfxItemSet* /*rSet*/ )
     m_xPaperOrientationCB->save_state();
     m_xTransparencyCB->save_state();
 
-    SvtBasePrintOptions::GetPrinterOptions( maPrinterOptions );
-    SvtBasePrintOptions::GetPrinterOptions( maPrintFileOptions );
+    svtools::GetPrinterOptions( maPrinterOptions, /*bFile*/false );
+    svtools::GetPrinterOptions( maPrintFileOptions, /*bFile*/true );
     if(m_xPrintFileOutputRB->get_active()){
        m_xPrinterOutputRB->set_active(true);
     }
diff --git a/svtools/source/config/itemholder2.cxx b/svtools/source/config/itemholder2.cxx
index adb68024b020..52993547543f 100644
--- a/svtools/source/config/itemholder2.cxx
+++ b/svtools/source/config/itemholder2.cxx
@@ -132,14 +132,6 @@ void ItemHolder2::impl_newItem(TItemInfo& rItem)
             rItem.pItem.reset( new SvtMenuOptions() );
             break;
 
-        case EItem::PrintOptions :
-            rItem.pItem.reset( new SvtPrinterOptions() );
-            break;
-
-        case EItem::PrintFileOptions :
-            rItem.pItem.reset( new SvtPrintFileOptions() );
-            break;
-
         case EItem::MiscOptions :
             rItem.pItem.reset( new SvtMiscOptions() );
             break;
diff --git a/svtools/source/config/printoptions.cxx b/svtools/source/config/printoptions.cxx
index e7d7ce991429..4dd889186e6c 100644
--- a/svtools/source/config/printoptions.cxx
+++ b/svtools/source/config/printoptions.cxx
@@ -19,18 +19,7 @@
 
 #include <svtools/printoptions.hxx>
 #include <vcl/print.hxx>
-#include <com/sun/star/uno/Any.hxx>
-
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-
-#include <comphelper/configurationhelper.hxx>
-#include <comphelper/processfactory.hxx>
-
 #include <officecfg/Office/Common.hxx>
-
-#include "itemholder2.hxx"
-
 #include <sal/macros.h>
 #include <tools/diagnose_ex.h>
 
@@ -38,463 +27,145 @@ const sal_uInt16 aDPIArray[] = { 72, 96, 150, 200, 300, 600 };
 
 #define DPI_COUNT (SAL_N_ELEMENTS(aDPIArray))
 
-#define ROOTNODE_START                                  "Office.Common/Print/Option"
-#define ROOTNODE_PRINTOPTION                            "org.openoffice.Office.Common/Print/Option"
-
-#define PROPERTYNAME_REDUCETRANSPARENCY                 "ReduceTransparency"
-#define PROPERTYNAME_REDUCEDTRANSPARENCYMODE            "ReducedTransparencyMode"
-#define PROPERTYNAME_REDUCEGRADIENTS                    "ReduceGradients"
-#define PROPERTYNAME_REDUCEDGRADIENTMODE                "ReducedGradientMode"
-#define PROPERTYNAME_REDUCEDGRADIENTSTEPCOUNT           "ReducedGradientStepCount"
-#define PROPERTYNAME_REDUCEBITMAPS                      "ReduceBitmaps"
-#define PROPERTYNAME_REDUCEDBITMAPMODE                  "ReducedBitmapMode"
-#define PROPERTYNAME_REDUCEDBITMAPRESOLUTION            "ReducedBitmapResolution"
-#define PROPERTYNAME_REDUCEDBITMAPINCLUDESTRANSPARENCY  "ReducedBitmapIncludesTransparency"
-#define PROPERTYNAME_CONVERTTOGREYSCALES                "ConvertToGreyscales"
-#define PROPERTYNAME_PDFASSTANDARDPRINTJOBFORMAT        "PDFAsStandardPrintJobFormat"
-
-using namespace ::utl;
 using namespace ::osl;
 using namespace ::com::sun::star::uno;
 
-SvtPrintOptions_Impl*   SvtPrinterOptions::m_pStaticDataContainer = nullptr;
-sal_Int32               SvtPrinterOptions::m_nRefCount = 0;
-
-SvtPrintOptions_Impl*   SvtPrintFileOptions::m_pStaticDataContainer = nullptr;
-sal_Int32               SvtPrintFileOptions::m_nRefCount = 0;
-
-class SvtPrintOptions_Impl
+namespace svtools
 {
-public:
-    explicit SvtPrintOptions_Impl( const OUString& rConfigRoot );
-    ~SvtPrintOptions_Impl();
-
-    void        SetReduceTransparency( bool bState ) ;
-    void        SetReducedTransparencyMode( sal_Int16 nMode ) ;
-    void        SetReduceGradients( bool bState ) ;
-    void        SetReducedGradientMode( sal_Int16 nMode ) ;
-    void        SetReducedGradientStepCount( sal_Int16 nStepCount ) ;
-    void        SetReduceBitmaps( bool bState ) ;
-    void        SetReducedBitmapMode( sal_Int16 nMode ) ;
-    void        SetReducedBitmapResolution( sal_Int16 nResolution ) ;
-    void        SetReducedBitmapIncludesTransparency( bool bState ) ;
-    void        SetConvertToGreyscales( bool bState ) ;
-    void        SetPDFAsStandardPrintJobFormat( bool bState ) ;
-
-
-//  private API
 
-
-private:
-    void impl_setValue (const OUString& sProp, bool bNew );
-    void impl_setValue (const OUString& sProp, sal_Int16 nNew );
-
-
-//  private member
-
-
-private:
-       css::uno::Reference< css::container::XNameAccess > m_xCfg;
-    css::uno::Reference< css::container::XNameAccess > m_xNode;
-};
-
-SvtPrintOptions_Impl::SvtPrintOptions_Impl(const OUString& rConfigRoot)
+void GetPrinterOptions( PrinterOptions& rOptions, bool bFile )
 {
-    try
-    {
-        m_xCfg.set(
-            ::comphelper::ConfigurationHelper::openConfig(
-                comphelper::getProcessComponentContext(),
-                ROOTNODE_PRINTOPTION,
-                ::comphelper::EConfigurationModes::Standard),
-            css::uno::UNO_QUERY);
-
-        if (m_xCfg.is())
-        {
-            m_xCfg->getByName(rConfigRoot.copy(rConfigRoot.lastIndexOf('/')+1)) >>= m_xNode;
-        }
-    }
-    catch (const css::uno::Exception&)
+    if (bFile)
     {
-        DBG_UNHANDLED_EXCEPTION("svtools.config");
-        m_xNode.clear();
-        m_xCfg.clear();
+        rOptions.SetReduceTransparency( officecfg::Office::Common::Print::Option::File::ReduceTransparency::get() );
+        rOptions.SetReducedTransparencyMode( static_cast<PrinterTransparencyMode>(
+                officecfg::Office::Common::Print::Option::File::ReducedTransparencyMode::get() ) );
+        rOptions.SetReduceGradients( officecfg::Office::Common::Print::Option::File::ReduceGradients::get() );
+        rOptions.SetReducedGradientMode( static_cast<PrinterGradientMode>(
+                officecfg::Office::Common::Print::Option::File::ReducedGradientMode::get()) );
+        rOptions.SetReducedGradientStepCount( officecfg::Office::Common::Print::Option::File::ReducedGradientStepCount::get() );
+        rOptions.SetReduceBitmaps( officecfg::Office::Common::Print::Option::File::ReduceBitmaps::get() );
+        rOptions.SetReducedBitmapMode( static_cast<PrinterBitmapMode>(
+                officecfg::Office::Common::Print::Option::File::ReducedBitmapMode::get()) );
+        rOptions.SetReducedBitmapResolution( aDPIArray[ std::min( static_cast<sal_uInt16>(
+                officecfg::Office::Common::Print::Option::File::ReducedBitmapResolution::get()), sal_uInt16( DPI_COUNT - 1 ) ) ] );
+        rOptions.SetReducedBitmapIncludesTransparency(
+                officecfg::Office::Common::Print::Option::File::ReducedBitmapIncludesTransparency::get() );
+        rOptions.SetConvertToGreyscales( officecfg::Office::Common::Print::Option::File::ConvertToGreyscales::get() );
+        rOptions.SetPDFAsStandardPrintJobFormat( officecfg::Office::Common::Print::Option::File::PDFAsStandardPrintJobFormat::get() );
     }
-}
-
-void SvtPrintOptions_Impl::SetReduceTransparency(bool bState)
-{
-    impl_setValue(PROPERTYNAME_REDUCETRANSPARENCY, bState);
-}
-
-void SvtPrintOptions_Impl::SetReducedTransparencyMode(sal_Int16 nMode)
-{
-    impl_setValue(PROPERTYNAME_REDUCEDTRANSPARENCYMODE, nMode);
-}
-
-void SvtPrintOptions_Impl::SetReduceGradients(bool bState)
-{
-    impl_setValue(PROPERTYNAME_REDUCEGRADIENTS, bState);
-}
-
-void SvtPrintOptions_Impl::SetReducedGradientMode(sal_Int16 nMode)
-{
-    impl_setValue(PROPERTYNAME_REDUCEDGRADIENTMODE, nMode);
-}
-
-void SvtPrintOptions_Impl::SetReducedGradientStepCount(sal_Int16 nStepCount )
-{
-    impl_setValue(PROPERTYNAME_REDUCEDGRADIENTSTEPCOUNT, nStepCount);
-}
-
-void SvtPrintOptions_Impl::SetReduceBitmaps(bool bState )
-{
-    impl_setValue(PROPERTYNAME_REDUCEBITMAPS, bState);
-}
-
-void SvtPrintOptions_Impl::SetReducedBitmapMode(sal_Int16 nMode )
-{
-    impl_setValue(PROPERTYNAME_REDUCEDBITMAPMODE, nMode);
-}
-
-void SvtPrintOptions_Impl::SetReducedBitmapResolution(sal_Int16 nResolution )
-{
-    impl_setValue(PROPERTYNAME_REDUCEDBITMAPRESOLUTION, nResolution);
-}
-
-void SvtPrintOptions_Impl::SetReducedBitmapIncludesTransparency(bool bState )
-{
-    impl_setValue(PROPERTYNAME_REDUCEDBITMAPINCLUDESTRANSPARENCY, bState);
-}
-
-void SvtPrintOptions_Impl::SetConvertToGreyscales(bool bState)
-{
-    impl_setValue(PROPERTYNAME_CONVERTTOGREYSCALES, bState);
-}
-
-void SvtPrintOptions_Impl::SetPDFAsStandardPrintJobFormat(bool bState)
-{
-    impl_setValue(PROPERTYNAME_PDFASSTANDARDPRINTJOBFORMAT, bState);
-}
-
-SvtPrintOptions_Impl::~SvtPrintOptions_Impl()
-{
-    m_xNode.clear();
-    m_xCfg.clear();
-}
-
-void SvtPrintOptions_Impl::impl_setValue (const OUString& sProp, bool bNew )
-{
-    try
-    {
-        if ( ! m_xNode.is())
-            return;
-
-        css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
-        if ( ! xSet.is())
-            return;
-
-        bool bOld = ! bNew;
-        if ( ! (xSet->getPropertyValue(sProp) >>= bOld))
-            return;
-
-        if (bOld != bNew)
-        {
-            xSet->setPropertyValue(sProp, css::uno::makeAny(bNew));
-            ::comphelper::ConfigurationHelper::flush(m_xCfg);
-        }
-    }
-    catch(const css::uno::Exception&)
+    else
     {
-        DBG_UNHANDLED_EXCEPTION("svtools.config");
+        rOptions.SetReduceTransparency( officecfg::Office::Common::Print::Option::Printer::ReduceTransparency::get() );
+        rOptions.SetReducedTransparencyMode( static_cast<PrinterTransparencyMode>(
+                officecfg::Office::Common::Print::Option::Printer::ReducedTransparencyMode::get() ) );
+        rOptions.SetReduceGradients( officecfg::Office::Common::Print::Option::Printer::ReduceGradients::get() );
+        rOptions.SetReducedGradientMode( static_cast<PrinterGradientMode>(
+                officecfg::Office::Common::Print::Option::Printer::ReducedGradientMode::get()) );
+        rOptions.SetReducedGradientStepCount( officecfg::Office::Common::Print::Option::Printer::ReducedGradientStepCount::get() );
+        rOptions.SetReduceBitmaps( officecfg::Office::Common::Print::Option::Printer::ReduceBitmaps::get() );
+        rOptions.SetReducedBitmapMode( static_cast<PrinterBitmapMode>(
+                officecfg::Office::Common::Print::Option::Printer::ReducedBitmapMode::get()) );
+        rOptions.SetReducedBitmapResolution( aDPIArray[ std::min( static_cast<sal_uInt16>(
+                officecfg::Office::Common::Print::Option::Printer::ReducedBitmapResolution::get()), sal_uInt16( DPI_COUNT - 1 ) ) ] );
+        rOptions.SetReducedBitmapIncludesTransparency(
+                officecfg::Office::Common::Print::Option::Printer::ReducedBitmapIncludesTransparency::get() );
+        rOptions.SetConvertToGreyscales( officecfg::Office::Common::Print::Option::Printer::ConvertToGreyscales::get() );
+        rOptions.SetPDFAsStandardPrintJobFormat( officecfg::Office::Common::Print::Option::Printer::PDFAsStandardPrintJobFormat::get() );
     }
 }
 
-void SvtPrintOptions_Impl::impl_setValue (const OUString& sProp,
-                                                ::sal_Int16      nNew )
+void SetPrinterOptions( const PrinterOptions& rOptions, bool bFile )
 {
-    try
+    std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
+    if (bFile)
     {
-        if ( ! m_xNode.is())
-            return;
-
-        css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
-        if ( ! xSet.is())
-            return;
-
-        ::sal_Int16 nOld = nNew+1;
-        if ( ! (xSet->getPropertyValue(sProp) >>= nOld))
-            return;
-
-        if (nOld != nNew)
+        officecfg::Office::Common::Print::Option::File::ReduceTransparency::set(
+                rOptions.IsReduceTransparency(), batch );
+        officecfg::Office::Common::Print::Option::File::ReducedTransparencyMode::set(
+                static_cast<sal_Int16>(rOptions.GetReducedTransparencyMode()), batch );
+        officecfg::Office::Common::Print::Option::File::ReduceGradients::set(
+                rOptions.IsReduceGradients(), batch );
+        officecfg::Office::Common::Print::Option::File::ReducedGradientMode::set(
+                static_cast<sal_Int16>(rOptions.GetReducedGradientMode()), batch );
+        officecfg::Office::Common::Print::Option::File::ReducedGradientStepCount::set(
+                rOptions.GetReducedGradientStepCount(), batch );
+        officecfg::Office::Common::Print::Option::File::ReduceBitmaps::set(
+                rOptions.IsReduceBitmaps(), batch );
+        officecfg::Office::Common::Print::Option::File::ReducedBitmapMode::set(
+                static_cast<sal_Int16>(rOptions.GetReducedBitmapMode()), batch );
+        officecfg::Office::Common::Print::Option::File::ReducedBitmapIncludesTransparency::set(
+                rOptions.IsReducedBitmapIncludesTransparency(), batch );
+        officecfg::Office::Common::Print::Option::File::ConvertToGreyscales::set(
+                rOptions.IsConvertToGreyscales(), batch );
+        officecfg::Office::Common::Print::Option::File::PDFAsStandardPrintJobFormat::set(
+                rOptions.IsPDFAsStandardPrintJobFormat(), batch );
+
+        const sal_uInt16 nDPI = rOptions.GetReducedBitmapResolution();
+
+        if( nDPI < aDPIArray[ 0 ] )
+            officecfg::Office::Common::Print::Option::File::ReducedBitmapResolution::set( 0, batch );
+        else
         {
-            xSet->setPropertyValue(sProp, css::uno::makeAny(nNew));
-            ::comphelper::ConfigurationHelper::flush(m_xCfg);
+            for( tools::Long i = DPI_COUNT - 1; i >= 0; i-- )
+            {
+                if( nDPI >= aDPIArray[ i ] )
+                {
+                    officecfg::Office::Common::Print::Option::File::ReducedBitmapResolution::set(
+                            static_cast<sal_Int16>(i), batch );
+                    i = -1;
+                }
+            }
         }
     }
-    catch(const css::uno::Exception&)
-    {
-        DBG_UNHANDLED_EXCEPTION("svtools.config");
-    }
-}
-
-SvtBasePrintOptions::SvtBasePrintOptions()
-    : m_pDataContainer(nullptr)
-{
-}
-
-SvtBasePrintOptions::~SvtBasePrintOptions()
-{
-}
-
-Mutex& SvtBasePrintOptions::GetOwnStaticMutex()
-{
-    static Mutex ourMutex;
-
-    return ourMutex;
-}
-
-bool SvtBasePrintOptions::IsReduceTransparency()
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    return officecfg::Office::Common::Print::Option::Printer::ReduceTransparency::get();
-}
-
-sal_Int16 SvtBasePrintOptions::GetReducedTransparencyMode()
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    return officecfg::Office::Common::Print::Option::Printer::ReducedTransparencyMode::get();
-}
-
-bool SvtBasePrintOptions::IsReduceGradients()
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    return officecfg::Office::Common::Print::Option::Printer::ReduceGradients::get();
-}
-
-sal_Int16 SvtBasePrintOptions::GetReducedGradientMode()
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    return officecfg::Office::Common::Print::Option::Printer::ReducedGradientMode::get();
-}
-
-sal_Int16 SvtBasePrintOptions::GetReducedGradientStepCount()
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    return officecfg::Office::Common::Print::Option::Printer::ReducedGradientStepCount::get();
-}
-
-bool SvtBasePrintOptions::IsReduceBitmaps()
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    return officecfg::Office::Common::Print::Option::Printer::ReduceBitmaps::get();
-}
-
-sal_Int16 SvtBasePrintOptions::GetReducedBitmapMode()
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    return officecfg::Office::Common::Print::Option::Printer::ReducedBitmapMode::get();
-}
-
-sal_Int16 SvtBasePrintOptions::GetReducedBitmapResolution()
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    return officecfg::Office::Common::Print::Option::Printer::ReducedBitmapResolution::get();
-}
-
-bool SvtBasePrintOptions::IsReducedBitmapIncludesTransparency()
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    return officecfg::Office::Common::Print::Option::Printer::ReducedBitmapIncludesTransparency::get();
-}
-
-bool SvtBasePrintOptions::IsConvertToGreyscales()
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    return officecfg::Office::Common::Print::Option::Printer::ConvertToGreyscales::get();
-}
-
-bool SvtBasePrintOptions::IsPDFAsStandardPrintJobFormat()
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    return officecfg::Office::Common::Print::Option::Printer::PDFAsStandardPrintJobFormat::get();
-}
-
-void SvtBasePrintOptions::SetReduceTransparency( bool bState )
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    m_pDataContainer->SetReduceTransparency( bState ) ;
-}
-
-void SvtBasePrintOptions::SetReducedTransparencyMode( sal_Int16 nMode )
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    m_pDataContainer->SetReducedTransparencyMode( nMode );
-}
-
-void SvtBasePrintOptions::SetReduceGradients( bool bState )
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    m_pDataContainer->SetReduceGradients( bState );
-}
-
-void SvtBasePrintOptions::SetReducedGradientMode( sal_Int16 nMode )
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    m_pDataContainer->SetReducedGradientMode( nMode );
-}
-
-void SvtBasePrintOptions::SetReducedGradientStepCount( sal_Int16 nStepCount )
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    m_pDataContainer->SetReducedGradientStepCount( nStepCount );
-}
-
-void SvtBasePrintOptions::SetReduceBitmaps( bool bState )
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    m_pDataContainer->SetReduceBitmaps( bState );
-}
-
-void SvtBasePrintOptions::SetReducedBitmapMode( sal_Int16 nMode )
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    m_pDataContainer->SetReducedBitmapMode( nMode );
-}
-
-void SvtBasePrintOptions::SetReducedBitmapResolution( sal_Int16 nResolution )
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    m_pDataContainer->SetReducedBitmapResolution( nResolution );
-}
-
-void SvtBasePrintOptions::SetReducedBitmapIncludesTransparency( bool bState )
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    m_pDataContainer->SetReducedBitmapIncludesTransparency( bState );
-}
-
-void SvtBasePrintOptions::SetConvertToGreyscales( bool bState )
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    m_pDataContainer->SetConvertToGreyscales( bState );
-}
-
-void SvtBasePrintOptions::SetPDFAsStandardPrintJobFormat( bool bState )
-{
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    m_pDataContainer->SetPDFAsStandardPrintJobFormat( bState );
-}
-
-void SvtBasePrintOptions::GetPrinterOptions( PrinterOptions& rOptions )
-{
-    rOptions.SetReduceTransparency( IsReduceTransparency() );
-    rOptions.SetReducedTransparencyMode( static_cast<PrinterTransparencyMode>(GetReducedTransparencyMode()) );
-    rOptions.SetReduceGradients( IsReduceGradients() );
-    rOptions.SetReducedGradientMode( static_cast<PrinterGradientMode>(GetReducedGradientMode()) );
-    rOptions.SetReducedGradientStepCount( GetReducedGradientStepCount() );
-    rOptions.SetReduceBitmaps( IsReduceBitmaps() );
-    rOptions.SetReducedBitmapMode( static_cast<PrinterBitmapMode>(GetReducedBitmapMode()) );
-    rOptions.SetReducedBitmapResolution( aDPIArray[ std::min( static_cast<sal_uInt16>(GetReducedBitmapResolution()), sal_uInt16( DPI_COUNT - 1 ) ) ] );
-    rOptions.SetReducedBitmapIncludesTransparency( IsReducedBitmapIncludesTransparency() );
-    rOptions.SetConvertToGreyscales( IsConvertToGreyscales() );
-    rOptions.SetPDFAsStandardPrintJobFormat( IsPDFAsStandardPrintJobFormat() );
-}
-
-void SvtBasePrintOptions::SetPrinterOptions( const PrinterOptions& rOptions )
-{
-    SetReduceTransparency( rOptions.IsReduceTransparency() );
-    SetReducedTransparencyMode(
-        sal::static_int_cast< sal_Int16 >(
-            rOptions.GetReducedTransparencyMode()) );
-    SetReduceGradients( rOptions.IsReduceGradients() );
-    SetReducedGradientMode(
-        sal::static_int_cast< sal_Int16 >(rOptions.GetReducedGradientMode()) );
-    SetReducedGradientStepCount( rOptions.GetReducedGradientStepCount() );
-    SetReduceBitmaps( rOptions.IsReduceBitmaps() );
-    SetReducedBitmapMode(
-        sal::static_int_cast< sal_Int16 >(rOptions.GetReducedBitmapMode()) );
-    SetReducedBitmapIncludesTransparency( rOptions.IsReducedBitmapIncludesTransparency() );
-    SetConvertToGreyscales( rOptions.IsConvertToGreyscales() );
-    SetPDFAsStandardPrintJobFormat( rOptions.IsPDFAsStandardPrintJobFormat() );
-
-    const sal_uInt16 nDPI = rOptions.GetReducedBitmapResolution();
-
-    if( nDPI < aDPIArray[ 0 ] )
-        SetReducedBitmapResolution( 0 );
     else
     {
-        for( tools::Long i = DPI_COUNT - 1; i >= 0; i-- )
+        officecfg::Office::Common::Print::Option::Printer::ReduceTransparency::set(
+                rOptions.IsReduceTransparency(), batch );
+        officecfg::Office::Common::Print::Option::Printer::ReducedTransparencyMode::set(
+                static_cast<sal_Int16>(rOptions.GetReducedTransparencyMode()), batch );
+        officecfg::Office::Common::Print::Option::Printer::ReduceGradients::set(
+                rOptions.IsReduceGradients(), batch );
+        officecfg::Office::Common::Print::Option::Printer::ReducedGradientMode::set(
+                static_cast<sal_Int16>(rOptions.GetReducedGradientMode()), batch );
+        officecfg::Office::Common::Print::Option::Printer::ReducedGradientStepCount::set(
+                rOptions.GetReducedGradientStepCount(), batch );
+        officecfg::Office::Common::Print::Option::Printer::ReduceBitmaps::set(
+                rOptions.IsReduceBitmaps(), batch );
+        officecfg::Office::Common::Print::Option::Printer::ReducedBitmapMode::set(
+                static_cast<sal_Int16>(rOptions.GetReducedBitmapMode()), batch );
+        officecfg::Office::Common::Print::Option::Printer::ReducedBitmapIncludesTransparency::set(
+                rOptions.IsReducedBitmapIncludesTransparency(), batch );
+        officecfg::Office::Common::Print::Option::Printer::ConvertToGreyscales::set(
+                rOptions.IsConvertToGreyscales(), batch );
+        officecfg::Office::Common::Print::Option::Printer::PDFAsStandardPrintJobFormat::set(
+                rOptions.IsPDFAsStandardPrintJobFormat(), batch );
+
+        const sal_uInt16 nDPI = rOptions.GetReducedBitmapResolution();
+
+        if( nDPI < aDPIArray[ 0 ] )
+            officecfg::Office::Common::Print::Option::Printer::ReducedBitmapResolution::set( 0, batch );
+        else
         {
-            if( nDPI >= aDPIArray[ i ] )
+            for( tools::Long i = DPI_COUNT - 1; i >= 0; i-- )
             {
-                SetReducedBitmapResolution( static_cast<sal_Int16>(i) );
-                i = -1;
+                if( nDPI >= aDPIArray[ i ] )
+                {
+                    officecfg::Office::Common::Print::Option::Printer::ReducedBitmapResolution::set(
+                            static_cast<sal_Int16>(i), batch );
+                    i = -1;
+                }
             }
         }
     }
+    batch->commit();
 }
 
-SvtPrinterOptions::SvtPrinterOptions()
-{
-    // Global access, must be guarded (multithreading!).
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    // Increase our refcount ...
-    ++m_nRefCount;
-    // ... and initialize our data container only if it not already!
-    if( m_pStaticDataContainer == nullptr )
-    {
-        m_pStaticDataContainer = new SvtPrintOptions_Impl( ROOTNODE_START "/Printer" );
-        svtools::ItemHolder2::holdConfigItem(EItem::PrintOptions);
-    }
+} // namespace svtools
 
-    SetDataContainer( m_pStaticDataContainer );
-}
 
-SvtPrinterOptions::~SvtPrinterOptions()
-{
-    // Global access, must be guarded (multithreading!)
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    // Decrease our refcount.
-    --m_nRefCount;
-    // If last instance was deleted ...
-    // we must destroy our static data container!
-    if( m_nRefCount <= 0 )
-    {
-        delete m_pStaticDataContainer;
-        m_pStaticDataContainer = nullptr;
-    }
-}
 
-SvtPrintFileOptions::SvtPrintFileOptions()
-{
-    // Global access, must be guarded (multithreading!).
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    // Increase our refcount ...
-    ++m_nRefCount;
-    // ... and initialize our data container only if it not already!
-    if( m_pStaticDataContainer == nullptr )
-    {
-        m_pStaticDataContainer = new SvtPrintOptions_Impl( ROOTNODE_START "/File" );
-        svtools::ItemHolder2::holdConfigItem(EItem::PrintFileOptions);
-    }
 
-    SetDataContainer( m_pStaticDataContainer );
-}
 
-SvtPrintFileOptions::~SvtPrintFileOptions()
-{
-    // Global access, must be guarded (multithreading!)
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    // Decrease our refcount.
-    --m_nRefCount;
-    // If last instance was deleted ...
-    // we must destroy our static data container!
-    if( m_nRefCount <= 0 )
-    {
-        delete m_pStaticDataContainer;
-        m_pStaticDataContainer = nullptr;
-    }
-}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list