summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2012-04-05 13:58:40 +0200
committerLuboš Luňák <l.lunak@suse.cz>2012-04-25 17:25:01 +0200
commitc953267dbef38fce4d89d2a3f30fa7a82692aef0 (patch)
tree815830aae3835a9040d345fa2df425cea6ca8ca2 /writerfilter
parentf33ed937b675540a0fec71822c3e55568065a433 (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.cxx24
-rw-r--r--writerfilter/source/dmapper/NumberingManager.hxx4
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 )
{}