diff options
-rw-r--r-- | sw/qa/extras/ooxmlexport/data/tdf125936_numberingSuperscript.docx | bin | 0 -> 25589 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport16.cxx | 6 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper.cxx | 10 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper.hxx | 1 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 1 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.hxx | 3 |
6 files changed, 19 insertions, 2 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf125936_numberingSuperscript.docx b/sw/qa/extras/ooxmlexport/data/tdf125936_numberingSuperscript.docx Binary files differnew file mode 100644 index 000000000000..eb856fb3b02e --- /dev/null +++ b/sw/qa/extras/ooxmlexport/data/tdf125936_numberingSuperscript.docx diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx index a397bb073ecf..2a1784d32ac1 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx @@ -50,6 +50,12 @@ DECLARE_OOXMLEXPORT_TEST(testTdf140668, "tdf140668.docx") CPPUNIT_ASSERT_EQUAL(1, getPages()); } +DECLARE_OOXMLEXPORT_TEST(testTdf125936_numberingSuperscript, "tdf125936_numberingSuperscript.docx") +{ + // Without the fix, the first character run was superscripted. + CPPUNIT_ASSERT_EQUAL( sal_Int16(0), getProperty<sal_Int16>(getRun(getParagraph(1), 1, "A-570-108"), "CharEscapement") ); +} + DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf134619_numberingProps, "tdf134619_numberingProps.doc") { // Get the third paragraph's numbering style's 1st level's bullet size diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index f229b200d1ef..4a1481f3ea44 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -1802,7 +1802,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const PropertyMapPtr& rContext ) // The spec says 0 is the same as the lack of the value, so don't parse that. if ( nIntValue ) { - if ( !IsStyleSheetImport() ) + if (!IsStyleSheetImport() && !IsNumberingImport()) m_pImpl->deferCharacterProperty( nSprmId, uno::makeAny( nIntValue )); else if (!m_pImpl->IsDocDefaultsImport()) { @@ -3666,10 +3666,11 @@ void DomainMapper::lcl_table(Id name, writerfilter::Reference<Table>::Pointer_t break; case NS_ooxml::LN_NUMBERING: { - + m_pImpl->SetNumberingImport(true); //the same for list tables ref->resolve( *m_pImpl->GetListTable() ); m_pImpl->GetListTable( )->CreateNumberingRules( ); + m_pImpl->SetNumberingImport(false); } break; case NS_ooxml::LN_THEMETABLE: @@ -4001,6 +4002,11 @@ bool DomainMapper::IsStyleSheetImport() const return m_pImpl->IsStyleSheetImport(); } +bool DomainMapper::IsNumberingImport() const +{ + return m_pImpl->IsNumberingImport(); +} + void DomainMapper::enableInteropGrabBag(const OUString& aName) { m_pImpl->m_aInteropGrabBagName = aName; diff --git a/writerfilter/source/dmapper/DomainMapper.hxx b/writerfilter/source/dmapper/DomainMapper.hxx index 46bbd2b39018..4e47dd70a441 100644 --- a/writerfilter/source/dmapper/DomainMapper.hxx +++ b/writerfilter/source/dmapper/DomainMapper.hxx @@ -114,6 +114,7 @@ public: bool IsInTable() const; void SetDocDefaultsImport(bool bSet); bool IsStyleSheetImport() const; + bool IsNumberingImport() const; bool IsInShape() const; void hasControls( const bool bSet ) { mbHasControls = bSet; } diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index ee7cf88dfbc8..7cda0e0df1dc 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -299,6 +299,7 @@ DomainMapper_Impl::DomainMapper_Impl( m_sDefaultParaStyleName(), m_bInDocDefaultsImport(false), m_bInStyleSheetImport( false ), + m_bInNumberingImport(false), m_bInAnyTableImport( false ), m_eInHeaderFooterImport( HeaderFooterImportState::none ), m_bDiscardHeaderFooter( false ), diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx index cd318ab054fa..6dbf46952d6a 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx @@ -510,6 +510,7 @@ private: OUString m_sDefaultParaStyleName; //caches the ConvertedStyleName of the default paragraph style bool m_bInDocDefaultsImport; bool m_bInStyleSheetImport; //in import of fonts, styles, lists or lfos + bool m_bInNumberingImport; //in import of numbering (i.e. numbering.xml) bool m_bInAnyTableImport; //in import of fonts, styles, lists or lfos enum class HeaderFooterImportState { @@ -770,6 +771,8 @@ public: bool IsDocDefaultsImport()const { return m_bInDocDefaultsImport;} void SetStyleSheetImport( bool bSet ) { m_bInStyleSheetImport = bSet;} bool IsStyleSheetImport()const { return m_bInStyleSheetImport;} + void SetNumberingImport( bool bSet ) { m_bInNumberingImport = bSet;} + bool IsNumberingImport() const { return m_bInNumberingImport;} void SetAnyTableImport( bool bSet ) { m_bInAnyTableImport = bSet;} bool IsAnyTableImport()const { return m_bInAnyTableImport;} bool IsInShape()const { return m_aAnchoredStack.size() > 0;} |