diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2012-04-05 13:58:40 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2012-04-25 17:25:01 +0200 |
commit | c953267dbef38fce4d89d2a3f30fa7a82692aef0 (patch) | |
tree | 815830aae3835a9040d345fa2df425cea6ca8ca2 /writerfilter | |
parent | f33ed937b675540a0fec71822c3e55568065a433 (diff) |
handle w:suff correctly
that includes having a good default value, otherwise the whole
creation of the rule in ListDef::CreateNumberingRules bails out
with IllegalArgumentException
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/NumberingManager.cxx | 24 | ||||
-rw-r--r-- | writerfilter/source/dmapper/NumberingManager.hxx | 4 |
2 files changed, 22 insertions, 6 deletions
diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx index 27572f5323a4..0fe852675c5e 100644 --- a/writerfilter/source/dmapper/NumberingManager.cxx +++ b/writerfilter/source/dmapper/NumberingManager.cxx @@ -125,8 +125,9 @@ void ListLevel::SetValue( Id nId, sal_Int32 nValue ) break; #endif case NS_rtf::LN_IXCHFOLLOW: + case NS_ooxml::LN_CT_Lvl_suff: m_nXChFollow = nValue; - break; + break; case NS_ooxml::LN_CT_TabStop_pos: m_nTabstop = nValue; break; @@ -835,6 +836,23 @@ void ListsManager::lcl_sprm( Sprm& rSprm ) if (m_pCurrentDefinition->GetCurrentLevel().get()) m_pCurrentDefinition->GetCurrentLevel( )->SetValue( nSprmId, nIntValue ); break; + case NS_ooxml::LN_CT_Lvl_suff: + { + if (m_pCurrentDefinition->GetCurrentLevel().get()) + { + SvxNumberFormat::LabelFollowedBy value = SvxNumberFormat::LISTTAB; + if( rSprm.getValue()->getString() == "tab" ) + value = SvxNumberFormat::LISTTAB; + else if( rSprm.getValue()->getString() == "space" ) + value = SvxNumberFormat::SPACE; + else if( rSprm.getValue()->getString() == "nothing" ) + value = SvxNumberFormat::NOTHING; + else + SAL_WARN( "writerfilter", "Unknown ST_LevelSuffix value " + << rSprm.getValue()->getString()); + m_pCurrentDefinition->GetCurrentLevel()->SetValue( nSprmId, value ); + } + } case NS_ooxml::LN_CT_Lvl_lvlText: case NS_ooxml::LN_CT_Lvl_rPr : //contains LN_EG_RPrBase_rFonts { @@ -881,10 +899,6 @@ void ListsManager::lcl_sprm( Sprm& rSprm ) pProperties->resolve(*this); } break; - case NS_ooxml::LN_CT_Lvl_suff: - //todo: currently unsupported suffix - //can be: "none", "space", "tab" - break; case NS_ooxml::LN_CT_Lvl_pStyle: { OUString sStyleName = rSprm.getValue( )->getString( ); diff --git a/writerfilter/source/dmapper/NumberingManager.hxx b/writerfilter/source/dmapper/NumberingManager.hxx index e46ee1c98b47..d6964395d540 100644 --- a/writerfilter/source/dmapper/NumberingManager.hxx +++ b/writerfilter/source/dmapper/NumberingManager.hxx @@ -8,6 +8,8 @@ #include <dmapper/DomainMapper.hxx> #include <resourcemodel/LoggedResources.hxx> +#include <editeng/numitem.hxx> + #include <com/sun/star/container/XIndexReplace.hpp> namespace writerfilter { @@ -48,7 +50,7 @@ public: ,m_nFPrev(-1) ,m_nFPrevSpace(-1) ,m_nFWord6(-1) - ,m_nXChFollow(-1) + ,m_nXChFollow(SvxNumberFormat::LISTTAB) ,m_nTabstop( 0 ) {} |