summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorKatarina Behrens <Katarina.Behrens@cib.de>2017-11-27 11:21:03 +0100
committerKatarina Behrens <Katarina.Behrens@cib.de>2017-12-20 13:54:11 +0100
commita07477790204c9392a31d5060ecb5478b7c001c6 (patch)
treee4bc12a556fdb107ac63861f4aa1a3923cb7f20f /sd
parent45429e4518fb265dc817d96f41ad4238a5d09c65 (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.cxx31
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();