diff options
author | David Tardon <dtardon@redhat.com> | 2016-03-24 14:52:35 +0100 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2016-03-24 15:32:36 +0100 |
commit | 6392347e27ed500b30acc62e9e27618eab5a8ee0 (patch) | |
tree | 7bbe36e38e13e1ee1736d89aa1ca4a65e528e526 | |
parent | 0e59494525d8e94a9b7deeb63fcbb1c04801de4c (diff) |
tdf#39271 allow to export only notes pages
Change-Id: Ia03062cf31b6bab8196dc317a7e8fbcfc86fadf0
-rw-r--r-- | filter/source/pdf/impdialog.cxx | 22 | ||||
-rw-r--r-- | filter/source/pdf/impdialog.hxx | 3 | ||||
-rw-r--r-- | filter/source/pdf/pdfexport.cxx | 18 | ||||
-rw-r--r-- | filter/source/pdf/pdfexport.hxx | 1 | ||||
-rw-r--r-- | filter/uiconfig/ui/pdfgeneralpage.ui | 38 | ||||
-rw-r--r-- | officecfg/registry/schema/org/openoffice/Office/Common.xcs | 7 |
6 files changed, 74 insertions, 15 deletions
diff --git a/filter/source/pdf/impdialog.cxx b/filter/source/pdf/impdialog.cxx index 0738f953909d..ebde3726cf32 100644 --- a/filter/source/pdf/impdialog.cxx +++ b/filter/source/pdf/impdialog.cxx @@ -81,6 +81,7 @@ ImpPDFTabDialog::ImpPDFTabDialog(vcl::Window* pParent, Sequence< PropertyValue > mbExportNotes( true ), mbViewPDF( false ), mbExportNotesPages( false ), + mbExportOnlyNotesPages( false ), mbUseTransitionEffects( false ), mbIsSkipEmptyPages( true ), mbAddStream( false ), @@ -187,7 +188,10 @@ ImpPDFTabDialog::ImpPDFTabDialog(vcl::Window* pParent, Sequence< PropertyValue > mbUseTaggedPDF = maConfigItem.ReadBool( "UseTaggedPDF", false ); mnPDFTypeSelection = maConfigItem.ReadInt32( "SelectPdfVersion", 0 ); if ( mbIsPresentation ) + { mbExportNotesPages = maConfigItem.ReadBool( "ExportNotesPages", false ); + mbExportOnlyNotesPages = maConfigItem.ReadBool( "ExportOnlyNotesPages", false ); + } mbExportNotes = maConfigItem.ReadBool( "ExportNotes", false ); mbViewPDF = maConfigItem.ReadBool( "ViewPDFAfterExport", false ); @@ -393,7 +397,10 @@ Sequence< PropertyValue > ImpPDFTabDialog::GetFilterData() maConfigItem.WriteInt32("SelectPdfVersion", mnPDFTypeSelection ); if ( mbIsPresentation ) + { maConfigItem.WriteBool( "ExportNotesPages", mbExportNotesPages ); + maConfigItem.WriteBool( "ExportOnlyNotesPages", mbExportOnlyNotesPages ); + } maConfigItem.WriteBool( "ExportNotes", mbExportNotes ); maConfigItem.WriteBool( "ViewPDFAfterExport", mbViewPDF ); @@ -541,6 +548,7 @@ ImpPDFTabGeneralPage::ImpPDFTabGeneralPage(vcl::Window* pParent, const SfxItemSe get(mpCbExportHiddenSlides, "hiddenpages"); get(mpCbExportNotes, "comments"); get(mpCbExportNotesPages, "notes"); + get(mpCbExportOnlyNotesPages, "onlynotes"); get(mpCbExportEmptyPages, "emptypages"); get(mpCbViewPDF, "viewpdf"); @@ -579,6 +587,7 @@ void ImpPDFTabGeneralPage::dispose() mpCbExportNotes.clear(); mpCbViewPDF.clear(); mpCbExportNotesPages.clear(); + mpCbExportOnlyNotesPages.clear(); mpCbExportEmptyPages.clear(); mpCbAddStream.clear(); mpCbWatermark.clear(); @@ -662,6 +671,10 @@ void ImpPDFTabGeneralPage::SetFilterConfigItem( ImpPDFTabDialog* paParent ) mpRbRange->SetText(get<FixedText>("slides")->GetText()); mpCbExportNotesPages->Show(); mpCbExportNotesPages->Check(paParent->mbExportNotesPages); + mpCbExportNotesPages->SetToggleHdl( LINK(this, ImpPDFTabGeneralPage, ToggleExportNotesPagesHdl ) ); + mpCbExportOnlyNotesPages->Show(); + mpCbExportOnlyNotesPages->Check(paParent->mbExportOnlyNotesPages); + mpCbExportOnlyNotesPages->Enable(paParent->mbExportNotesPages); mpCbExportHiddenSlides->Show(); mpCbExportHiddenSlides->Check(paParent->mbExportHiddenSlides); } @@ -669,6 +682,8 @@ void ImpPDFTabGeneralPage::SetFilterConfigItem( ImpPDFTabDialog* paParent ) { mpCbExportNotesPages->Show(false); mpCbExportNotesPages->Check(false); + mpCbExportOnlyNotesPages->Show(false); + mpCbExportOnlyNotesPages->Check(false); mpCbExportHiddenSlides->Show(false); mpCbExportHiddenSlides->Check(false); } @@ -693,7 +708,10 @@ void ImpPDFTabGeneralPage::GetFilterConfigItem( ImpPDFTabDialog* paParent ) paParent->mbExportNotes = mpCbExportNotes->IsChecked(); paParent->mbViewPDF = mpCbViewPDF->IsChecked(); if ( mbIsPresentation ) + { paParent->mbExportNotesPages = mpCbExportNotesPages->IsChecked(); + paParent->mbExportOnlyNotesPages = mpCbExportOnlyNotesPages->IsChecked(); + } paParent->mbExportBookmarks = mpCbExportBookmarks->IsChecked(); if ( mbIsPresentation ) paParent->mbExportHiddenSlides = mpCbExportHiddenSlides->IsChecked(); @@ -761,6 +779,10 @@ IMPL_LINK_NOARG_TYPED(ImpPDFTabGeneralPage, ToggleExportFormFieldsHdl, CheckBox& mpFormsFrame->Enable(mpCbExportFormFields->IsChecked()); } +IMPL_LINK_NOARG_TYPED(ImpPDFTabGeneralPage, ToggleExportNotesPagesHdl, CheckBox&, void) +{ + mpCbExportOnlyNotesPages->Enable(mpCbExportNotesPages->IsChecked()); +} IMPL_LINK_NOARG_TYPED(ImpPDFTabGeneralPage, ToggleCompressionHdl, RadioButton&, void) { diff --git a/filter/source/pdf/impdialog.hxx b/filter/source/pdf/impdialog.hxx index 103bc061a100..3a1de72d86bd 100644 --- a/filter/source/pdf/impdialog.hxx +++ b/filter/source/pdf/impdialog.hxx @@ -105,6 +105,7 @@ protected: bool mbExportNotes; bool mbViewPDF; bool mbExportNotesPages; + bool mbExportOnlyNotesPages; bool mbUseTransitionEffects; bool mbIsSkipEmptyPages; bool mbAddStream; @@ -219,6 +220,7 @@ class ImpPDFTabGeneralPage : public SfxTabPage VclPtr<CheckBox> mpCbExportNotes; VclPtr<CheckBox> mpCbViewPDF; VclPtr<CheckBox> mpCbExportNotesPages; + VclPtr<CheckBox> mpCbExportOnlyNotesPages; VclPtr<CheckBox> mpCbExportEmptyPages; VclPtr<CheckBox> mpCbAddStream; @@ -238,6 +240,7 @@ class ImpPDFTabGeneralPage : public SfxTabPage DECL_LINK_TYPED( ToggleWatermarkHdl, CheckBox&, void ); DECL_LINK_TYPED( ToggleAddStreamHdl, CheckBox&, void ); DECL_LINK_TYPED( ToggleExportFormFieldsHdl, CheckBox&, void ); + DECL_LINK_TYPED( ToggleExportNotesPagesHdl, CheckBox&, void ); void TogglePagesHdl(); diff --git a/filter/source/pdf/pdfexport.cxx b/filter/source/pdf/pdfexport.cxx index 5bd3f8ffa66d..b26441e443c9 100644 --- a/filter/source/pdf/pdfexport.cxx +++ b/filter/source/pdf/pdfexport.cxx @@ -95,6 +95,7 @@ PDFExport::PDFExport( const Reference< XComponent >& rxSrcDoc, mbExportNotes ( true ), mbViewPDF ( true ), mbExportNotesPages ( false ), + mbExportOnlyNotesPages ( false ), mbUseTransitionEffects ( true ), mbExportBookmarks ( true ), mbExportHiddenSlides ( false ), @@ -465,6 +466,8 @@ bool PDFExport::Export( const OUString& rFile, const Sequence< PropertyValue >& rFilterData[ nData ].Value >>= mbViewPDF; else if ( rFilterData[ nData ].Name == "ExportNotesPages" ) rFilterData[ nData ].Value >>= mbExportNotesPages; + else if ( rFilterData[ nData ].Name == "ExportOnlyNotesPages" ) + rFilterData[ nData ].Value >>= mbExportOnlyNotesPages; else if ( rFilterData[ nData ].Name == "UseTransitionEffects" ) rFilterData[ nData ].Value >>= mbUseTransitionEffects; else if ( rFilterData[ nData ].Name == "ExportFormFields" ) @@ -839,7 +842,7 @@ bool PDFExport::Export( const OUString& rFile, const Sequence< PropertyValue >& aSelection = Any(); aSelection <<= mxSrcDoc; } - bool bSecondPassForImpressNotes = false; + bool bExportNotesPages = false; bool bReChangeToNormalView = false; const OUString sShowOnlineLayout( "ShowOnlineLayout" ); bool bReHideWhitespace = false; @@ -878,8 +881,9 @@ bool PDFExport::Export( const OUString& rFile, const Sequence< PropertyValue >& { uno::Reference< drawing::XShapes > xShapes; // do not allow to export notes when exporting a selection if ( ! ( aSelection >>= xShapes ) ) // TODO: in the dialog the export notes checkbox needs to be disabled - bSecondPassForImpressNotes = true; + bExportNotesPages = true; } + const bool bExportPages = bExportNotesPages ? !mbExportOnlyNotesPages : true; if( aPageRange.isEmpty() ) { @@ -893,18 +897,18 @@ bool PDFExport::Export( const OUString& rFile, const Sequence< PropertyValue >& if ( pResMgr ) { sal_Int32 nTotalPageCount = aRangeEnum.size(); - if ( bSecondPassForImpressNotes ) + if ( bExportPages && bExportNotesPages ) nTotalPageCount *= 2; mxStatusIndicator->start( ResId( PDF_PROGRESS_BAR, *pResMgr ), nTotalPageCount ); } } - if( nPageCount > 0 ) + bRet = nPageCount > 0; + + if ( bRet && bExportPages ) bRet = ExportSelection( *pPDFWriter, xRenderable, aSelection, aRangeEnum, aRenderOptions, nPageCount ); - else - bRet = false; - if ( bRet && bSecondPassForImpressNotes ) + if ( bRet && bExportNotesPages ) { rExportNotesValue <<= sal_True; bRet = ExportSelection( *pPDFWriter, xRenderable, aSelection, aRangeEnum, aRenderOptions, nPageCount ); diff --git a/filter/source/pdf/pdfexport.hxx b/filter/source/pdf/pdfexport.hxx index 688ccadd86a4..1b04b4669e17 100644 --- a/filter/source/pdf/pdfexport.hxx +++ b/filter/source/pdf/pdfexport.hxx @@ -46,6 +46,7 @@ private: bool mbExportNotes; bool mbViewPDF; bool mbExportNotesPages; + bool mbExportOnlyNotesPages; bool mbUseTransitionEffects; bool mbExportBookmarks; bool mbExportHiddenSlides; diff --git a/filter/uiconfig/ui/pdfgeneralpage.ui b/filter/uiconfig/ui/pdfgeneralpage.ui index 7ba4a250dd4a..52314ac137f5 100644 --- a/filter/uiconfig/ui/pdfgeneralpage.ui +++ b/filter/uiconfig/ui/pdfgeneralpage.ui @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.19.0 --> <interface> <requires lib="gtk+" version="3.0"/> <object class="GtkAdjustment" id="adjustment1"> @@ -111,8 +111,8 @@ <object class="GtkLabel" id="slides"> <property name="can_focus">False</property> <property name="no_show_all">True</property> - <property name="xalign">0</property> <property name="label" translatable="yes">Slides:</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> @@ -191,9 +191,9 @@ <object class="GtkLabel" id="label6"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes">_Quality:</property> <property name="use_underline">True</property> + <property name="xalign">0</property> </object> </child> </object> @@ -378,10 +378,10 @@ <object class="GtkLabel" id="watermarklabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes">Text:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">watermarkentry</property> + <property name="xalign">0</property> </object> </child> </object> @@ -512,10 +512,10 @@ <object class="GtkLabel" id="label7"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes">Submit _format:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">format</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> @@ -604,7 +604,7 @@ </object> <packing> <property name="left_attach">0</property> - <property name="top_attach">9</property> + <property name="top_attach">10</property> </packing> </child> <child> @@ -619,7 +619,7 @@ </object> <packing> <property name="left_attach">0</property> - <property name="top_attach">10</property> + <property name="top_attach">11</property> </packing> </child> <child> @@ -634,7 +634,7 @@ </object> <packing> <property name="left_attach">0</property> - <property name="top_attach">8</property> + <property name="top_attach">9</property> </packing> </child> <child> @@ -652,6 +652,28 @@ <property name="top_attach">7</property> </packing> </child> + <child> + <object class="GtkAlignment" id="onlynotesframe"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="left_padding">12</property> + <child> + <object class="GtkCheckButton" id="onlynotes"> + <property name="label" translatable="yes">Export onl_y notes pages</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + </object> + </child> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">8</property> + </packing> + </child> </object> </child> </object> diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs index 67b72cd54c9f..c37c12c850c1 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs @@ -5148,6 +5148,13 @@ </info> <value>false</value> </prop> + <prop oor:name="ExportOnlyNotesPages" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>Specifies if only notes pages (i.e., not slides) are exported to PDF. (Notes pages + are available in Impress documents only).</desc> + </info> + <value>false</value> + </prop> <prop oor:name="UseTransitionEffects" oor:type="xs:boolean" oor:nillable="false"> <info> <desc>Specifies slide transitions are exported to PDF. This option |