Kaydet (Commit) 2bc84658 authored tarafından Justin Luth's avatar Justin Luth Kaydeden (comit) Justin Luth

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: 's avatarJustin Luth <justin_luth@sil.org>
üst daafe79c
......@@ -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());
......
......@@ -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();
......
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment