[Libreoffice-commits] core.git: sd/source

Katarina Behrens Katarina.Behrens at cib.de
Wed Dec 20 12:54:31 UTC 2017


 sd/source/ui/unoidl/UnoDocumentSettings.cxx |   31 ++++++++++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)

New commits:
commit a07477790204c9392a31d5060ecb5478b7c001c6
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Mon Nov 27 11:21:03 2017 +0100

    tdf#79077: Load/save PapersizeFromSetup bit into ODF for sd
    
    Change-Id: Ibf9ae8229b62cbcbdb8f56e7353301745a12ef5b
    Reviewed-on: https://gerrit.libreoffice.org/45322
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Katarina Behrens <Katarina.Behrens at cib.de>

diff --git a/sd/source/ui/unoidl/UnoDocumentSettings.cxx b/sd/source/ui/unoidl/UnoDocumentSettings.cxx
index 84a7ad50412f..44262f34c2c8 100644
--- a/sd/source/ui/unoidl/UnoDocumentSettings.cxx
+++ b/sd/source/ui/unoidl/UnoDocumentSettings.cxx
@@ -136,8 +136,8 @@ enum SdDocumentSettingsPropertyHandles
     HANDLE_PRINTHIDENPAGES, HANDLE_PRINTFITPAGE, HANDLE_PRINTTILEPAGE, HANDLE_PRINTBOOKLET, HANDLE_PRINTBOOKLETFRONT,
     HANDLE_PRINTBOOKLETBACK, HANDLE_PRINTQUALITY, HANDLE_COLORTABLEURL, HANDLE_DASHTABLEURL, HANDLE_LINEENDTABLEURL, HANDLE_HATCHTABLEURL,
     HANDLE_GRADIENTTABLEURL, HANDLE_BITMAPTABLEURL, HANDLE_FORBIDDENCHARS, HANDLE_APPLYUSERDATA, HANDLE_PAGENUMFMT,
-    HANDLE_PRINTERNAME, HANDLE_PRINTERJOB, HANDLE_PARAGRAPHSUMMATION, HANDLE_CHARCOMPRESS, HANDLE_ASIANPUNCT, HANDLE_UPDATEFROMTEMPLATE,
-    HANDLE_PRINTER_INDEPENDENT_LAYOUT
+    HANDLE_PRINTERNAME, HANDLE_PRINTERJOB, HANDLE_PRINTERPAPERSIZE, HANDLE_PARAGRAPHSUMMATION, HANDLE_CHARCOMPRESS, HANDLE_ASIANPUNCT,
+    HANDLE_UPDATEFROMTEMPLATE, HANDLE_PRINTER_INDEPENDENT_LAYOUT
     // #i33095#
     ,HANDLE_LOAD_READONLY, HANDLE_MODIFY_PASSWD, HANDLE_SAVE_VERSION
     ,HANDLE_SLIDESPERHANDOUT, HANDLE_HANDOUTHORIZONTAL, HANDLE_EMBED_FONTS
@@ -171,6 +171,7 @@ enum SdDocumentSettingsPropertyHandles
             { OUString("DefaultTabStop"),        HANDLE_TABSTOP,             ::cppu::UnoType<sal_Int32>::get(),    0,  0 },
             { OUString("PrinterName"),           HANDLE_PRINTERNAME,         ::cppu::UnoType<OUString>::get(),     0,  0 },
             { OUString("PrinterSetup"),          HANDLE_PRINTERJOB,          cppu::UnoType<uno::Sequence < sal_Int8 >>::get(),  0, MID_PRINTER },
+            { OUString("PrinterPaperFromSetup"), HANDLE_PRINTERPAPERSIZE,    cppu::UnoType<bool>::get(),                0,  MID_PRINTER },
 
             { OUString("IsPrintPageName"),       HANDLE_PRINTPAGENAME,       cppu::UnoType<bool>::get(),                0,  MID_PRINTER },
             { OUString("IsPrintDate"),           HANDLE_PRINTDATE,           cppu::UnoType<bool>::get(),                0,  MID_PRINTER },
@@ -744,9 +745,11 @@ DocumentSettings::_setPropertyValues(const PropertyMapEntry** ppEntries,
                             aStream.Seek ( STREAM_SEEK_TO_BEGIN );
                             std::unique_ptr<SfxItemSet> pItemSet;
 
+                            bool bPreferPrinterPapersize = false;
                             if( pPrinter )
                             {
                                 pItemSet.reset(pPrinter->GetOptions().Clone());
+                                bPreferPrinterPapersize = pPrinter->GetPrinterSettingsPreferred();
                             }
                             else
                             {
@@ -757,6 +760,7 @@ DocumentSettings::_setPropertyValues(const PropertyMapEntry** ppEntries,
                             }
 
                             pPrinter = SfxPrinter::Create ( aStream, std::move(pItemSet) );
+                            pPrinter->SetPrinterSettingsPreferred( bPreferPrinterPapersize );
 
                             MapMode aMM (pPrinter->GetMapMode());
                             aMM.SetMapUnit(MapUnit::Map100thMM);
@@ -770,6 +774,22 @@ DocumentSettings::_setPropertyValues(const PropertyMapEntry** ppEntries,
                 }
                 break;
 
+            case HANDLE_PRINTERPAPERSIZE:
+                {
+                    bool bPreferPrinterPapersize;
+                    if( *pValues >>= bPreferPrinterPapersize )
+                    {
+                        bOk = true;
+                        if( pDocSh->GetCreateMode() != SfxObjectCreateMode::EMBEDDED )
+                        {
+                            SfxPrinter *pTempPrinter = pDocSh->GetPrinter( true );
+                            if (pTempPrinter)
+                                pTempPrinter->SetPrinterSettingsPreferred( bPreferPrinterPapersize );
+                        }
+                    }
+                }
+                break;
+
             case HANDLE_PARAGRAPHSUMMATION :
             {
                 bool bIsSummationOfParagraphs = false;
@@ -1122,6 +1142,13 @@ DocumentSettings::_getPropertyValues(
                 }
                 break;
 
+            case HANDLE_PRINTERPAPERSIZE:
+                {
+                    SfxPrinter *pTempPrinter = pDocSh->GetPrinter( false );
+                    *pValue <<= pTempPrinter && pTempPrinter->GetPrinterSettingsPreferred();
+                }
+                break;
+
             case HANDLE_PARAGRAPHSUMMATION :
             {
                 bool bIsSummationOfParagraphs = pDoc->IsSummationOfParagraphs();


More information about the Libreoffice-commits mailing list