You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
347 lines
17 KiB
347 lines
17 KiB
From a8abbc28deebd6a9642033a47676ae9ba1900b05 Mon Sep 17 00:00:00 2001
|
|
From: David Tardon <dtardon@redhat.com>
|
|
Date: Thu, 24 Mar 2016 14:52:35 +0100
|
|
Subject: [PATCH] tdf#39271 allow to export only notes pages
|
|
|
|
Change-Id: Ia03062cf31b6bab8196dc317a7e8fbcfc86fadf0
|
|
---
|
|
filter/source/pdf/impdialog.cxx | 22 +++++++++++++
|
|
filter/source/pdf/impdialog.hxx | 4 +++
|
|
filter/source/pdf/pdfexport.cxx | 18 ++++++----
|
|
filter/source/pdf/pdfexport.hxx | 1 +
|
|
filter/uiconfig/ui/pdfgeneralpage.ui | 38 +++++++++++++++++-----
|
|
.../schema/org/openoffice/Office/Common.xcs | 7 ++++
|
|
6 files changed, 75 insertions(+), 15 deletions(-)
|
|
|
|
diff --git a/filter/source/pdf/impdialog.cxx b/filter/source/pdf/impdialog.cxx
|
|
index 1fe1474..d51770c 100644
|
|
--- a/filter/source/pdf/impdialog.cxx
|
|
+++ b/filter/source/pdf/impdialog.cxx
|
|
@@ -84,6 +84,7 @@ ImpPDFTabDialog::ImpPDFTabDialog(vcl::Window* pParent, Sequence< PropertyValue >
|
|
mbExportNotes( true ),
|
|
mbViewPDF( false ),
|
|
mbExportNotesPages( false ),
|
|
+ mbExportOnlyNotesPages( false ),
|
|
mbUseTransitionEffects( false ),
|
|
mbIsSkipEmptyPages( true ),
|
|
mbAddStream( false ),
|
|
@@ -191,7 +192,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 );
|
|
|
|
@@ -392,7 +396,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 );
|
|
|
|
@@ -540,6 +547,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");
|
|
|
|
@@ -577,6 +585,7 @@ void ImpPDFTabGeneralPage::dispose()
|
|
mpCbExportNotes.clear();
|
|
mpCbViewPDF.clear();
|
|
mpCbExportNotesPages.clear();
|
|
+ mpCbExportOnlyNotesPages.clear();
|
|
mpCbExportEmptyPages.clear();
|
|
mpCbAddStream.clear();
|
|
mpCbWatermark.clear();
|
|
@@ -658,6 +667,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);
|
|
}
|
|
@@ -665,6 +678,8 @@ void ImpPDFTabGeneralPage::SetFilterConfigItem( ImpPDFTabDialog* paParent )
|
|
{
|
|
mpCbExportNotesPages->Show(false);
|
|
mpCbExportNotesPages->Check(false);
|
|
+ mpCbExportOnlyNotesPages->Show(false);
|
|
+ mpCbExportOnlyNotesPages->Check(false);
|
|
mpCbExportHiddenSlides->Show(false);
|
|
mpCbExportHiddenSlides->Check(false);
|
|
}
|
|
@@ -690,7 +705,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();
|
|
@@ -758,6 +776,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 f4d916e..c1e80d5 100644
|
|
--- a/filter/source/pdf/impdialog.hxx
|
|
+++ b/filter/source/pdf/impdialog.hxx
|
|
@@ -104,6 +104,7 @@ protected:
|
|
bool mbExportNotes;
|
|
bool mbViewPDF;
|
|
bool mbExportNotesPages;
|
|
+ bool mbExportOnlyNotesPages;
|
|
bool mbUseTransitionEffects;
|
|
bool mbIsSkipEmptyPages;
|
|
bool mbAddStream;
|
|
@@ -218,6 +219,7 @@ class ImpPDFTabGeneralPage : public SfxTabPage
|
|
VclPtr<CheckBox> mpCbExportNotes;
|
|
VclPtr<CheckBox> mpCbViewPDF;
|
|
VclPtr<CheckBox> mpCbExportNotesPages;
|
|
+ VclPtr<CheckBox> mpCbExportOnlyNotesPages;
|
|
|
|
VclPtr<CheckBox> mpCbExportEmptyPages;
|
|
VclPtr<CheckBox> mpCbAddStream;
|
|
@@ -237,6 +239,8 @@ 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();
|
|
|
|
public:
|
|
diff --git a/filter/source/pdf/pdfexport.cxx b/filter/source/pdf/pdfexport.cxx
|
|
index 5a67041..c5f8f5a 100644
|
|
--- a/filter/source/pdf/pdfexport.cxx
|
|
+++ b/filter/source/pdf/pdfexport.cxx
|
|
@@ -100,6 +100,7 @@ PDFExport::PDFExport( const Reference< XComponent >& rxSrcDoc,
|
|
mbExportNotes ( true ),
|
|
mbViewPDF ( true ),
|
|
mbExportNotesPages ( false ),
|
|
+ mbExportOnlyNotesPages ( false ),
|
|
mbUseTransitionEffects ( true ),
|
|
mbExportBookmarks ( true ),
|
|
mbExportHiddenSlides ( false ),
|
|
@@ -464,6 +465,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" )
|
|
@@ -840,7 +843,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;
|
|
@@ -879,8 +882,9 @@ bool PDFExport::Export( const OUString& rFile, const Sequence< PropertyValue >&
|
|
{
|
|
uno::Reference< drawing::XShapes > xShapes; // sj: do not allow to export notes when
|
|
if ( ! ( aSelection >>= xShapes ) ) // exporting a selection -> todo: in the dialog
|
|
- bSecondPassForImpressNotes = true; // the export notes checkbox needs to be disabled
|
|
+ bExportNotesPages = true;
|
|
}
|
|
+ const bool bExportPages = bExportNotesPages ? !mbExportOnlyNotesPages : true;
|
|
|
|
if( aPageRange.isEmpty() )
|
|
{
|
|
@@ -894,18 +898,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 75ac0aa4..8754729 100644
|
|
--- a/filter/source/pdf/pdfexport.hxx
|
|
+++ b/filter/source/pdf/pdfexport.hxx
|
|
@@ -49,6 +49,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 7ba4a25..52314ac 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 6adfa44a..9fce3d7 100644
|
|
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
|
|
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
|
|
@@ -5135,6 +5135,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
|
|
--
|
|
2.5.0
|
|
|