sw/qa/extras/ooxmlexport/data/tdf63561_clearTabs2.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport11.cxx | 8 +++++++- sw/source/filter/ww8/docxattributeoutput.cxx | 6 +++++- writerfilter/source/dmapper/DomainMapper.cxx | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-)
New commits: commit 2bc84658cce1df5050fe788dd0c8a0906a1ca2c3 Author: Justin Luth <justin.l...@collabora.com> AuthorDate: Wed Jul 11 17:21:51 2018 +0300 Commit: Justin Luth <justin_l...@sil.org> CommitDate: Wed Jul 18 07:37:41 2018 +0200 related tdf#63561 docx: styles inherit tabstops too Add import and export support for style-parent tabstop inheritance. This patch is dependent on GetPropertyFromStyleSheet commit 39171b82b245a7589b9258337a18d6dd281f8ed2 Change-Id: I0245d0e08f140b6cb473c96cffa6f5a4ceff8944 Reviewed-on: https://gerrit.libreoffice.org/57278 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_l...@sil.org> diff --git a/sw/qa/extras/ooxmlexport/data/tdf63561_clearTabs2.docx b/sw/qa/extras/ooxmlexport/data/tdf63561_clearTabs2.docx new file mode 100644 index 000000000000..cf674f3c460f Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf63561_clearTabs2.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx index 70e46790c5a0..31a8a70989d8 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx @@ -58,7 +58,13 @@ DECLARE_OOXMLEXPORT_TEST(testTdf46938_clearTabStop, "tdf46938_clearTabStop.docx" DECLARE_OOXMLEXPORT_TEST(testTdf63561_clearTabs, "tdf63561_clearTabs.docx") { - // MSO2013 gives 5,7, and 4 respectively + CPPUNIT_ASSERT_EQUAL(sal_Int32(5), getProperty< uno::Sequence<style::TabStop> >(getParagraph(1), "ParaTabStops").getLength()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(7), getProperty< uno::Sequence<style::TabStop> >(getParagraph(3), "ParaTabStops").getLength()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(4), getProperty< uno::Sequence<style::TabStop> >(getParagraph(4), "ParaTabStops").getLength()); +} + +DECLARE_OOXMLEXPORT_TEST(testTdf63561_clearTabs2, "tdf63561_clearTabs2.docx") +{ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), getProperty< uno::Sequence<style::TabStop> >(getParagraph(1), "ParaTabStops").getLength()); CPPUNIT_ASSERT_EQUAL(sal_Int32(3), getProperty< uno::Sequence<style::TabStop> >(getParagraph(3), "ParaTabStops").getLength()); CPPUNIT_ASSERT_EQUAL(sal_Int32(4), getProperty< uno::Sequence<style::TabStop> >(getParagraph(4), "ParaTabStops").getLength()); diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 2de8e1b68d04..0c5ae1043f72 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -7707,7 +7707,11 @@ static void impl_WriteTabElement( FSHelperPtr const & pSerializer, void DocxAttributeOutput::ParaTabStop( const SvxTabStopItem& rTabStop ) { - const SvxTabStopItem* pInheritedTabs = GetExport().m_pStyAttr ? GetExport().m_pStyAttr->GetItem<SvxTabStopItem>(RES_PARATR_TABSTOP) : nullptr; + const SvxTabStopItem* pInheritedTabs = nullptr; + if ( GetExport().m_pStyAttr ) + pInheritedTabs = GetExport().m_pStyAttr->GetItem<SvxTabStopItem>(RES_PARATR_TABSTOP); + else if ( GetExport().m_pCurrentStyle && GetExport().m_pCurrentStyle->DerivedFrom() ) + pInheritedTabs = GetExport().m_pCurrentStyle->DerivedFrom()->GetAttrSet().GetItem<SvxTabStopItem>(RES_PARATR_TABSTOP); const sal_uInt16 nInheritedTabCount = pInheritedTabs ? pInheritedTabs->Count() : 0; const sal_uInt16 nCount = rTabStop.Count(); diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 443be5a54930..124a2061904d 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -1840,7 +1840,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const PropertyMapPtr& rContext ) // fdo#81033: for RTF, a tab stop is inherited from the style if it // is also applied to the paragraph directly, and cleared if it is // not applied to the paragraph directly => don't InitTabStopFromStyle - if (!IsStyleSheetImport() && !IsRTFImport()) + if ( !IsRTFImport() ) { uno::Any aValue = m_pImpl->GetPropertyFromStyleSheet(PROP_PARA_TAB_STOPS); uno::Sequence< style::TabStop > aStyleTabStops; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits