diff options
author | Katarina Behrens <Katarina.Behrens@cib.de> | 2017-11-27 11:21:03 +0100 |
---|---|---|
committer | Katarina Behrens <Katarina.Behrens@cib.de> | 2017-12-20 13:54:11 +0100 |
commit | a07477790204c9392a31d5060ecb5478b7c001c6 (patch) | |
tree | e4bc12a556fdb107ac63861f4aa1a3923cb7f20f /sd | |
parent | 45429e4518fb265dc817d96f41ad4238a5d09c65 (diff) |
tdf#79077: Load/save PapersizeFromSetup bit into ODF for sd
Change-Id: Ibf9ae8229b62cbcbdb8f56e7353301745a12ef5b
Reviewed-on: https://gerrit.libreoffice.org/45322
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
Diffstat (limited to 'sd')
-rw-r--r-- | sd/source/ui/unoidl/UnoDocumentSettings.cxx | 31 |
1 files changed, 29 insertions, 2 deletions
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(); |