[Libreoffice-commits] core.git: Branch 'aoo/trunk' - writerfilter/source

Oliver-Rainer Wittmann orw at apache.org
Tue Feb 25 06:07:50 PST 2014


 writerfilter/source/dmapper/DomainMapper.cxx    |  150 ++++++++++++------------
 writerfilter/source/dmapper/PropertyMap.cxx     |    2 
 writerfilter/source/dmapper/PropertyMap.hxx     |    2 
 writerfilter/source/dmapper/StyleSheetTable.cxx |    2 
 4 files changed, 84 insertions(+), 72 deletions(-)

New commits:
commit 5a15ef3da683566d7bd443f96eeec3a9a3f70aeb
Author: Oliver-Rainer Wittmann <orw at apache.org>
Date:   Tue Feb 25 13:16:12 2014 +0000

    124106: correct handling of paragraph attributes, esp. whose which are providing the default value explicitly

diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 6f590f7..f9ef6c5 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -2215,7 +2215,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
     //      bExchangeLeftRight = true;
     Value::Pointer_t pValue = rSprm.getValue();
     sal_Int32 nIntValue = pValue->getInt();
-    rtl::OUString sStringValue = pValue->getString();
+    const rtl::OUString sStringValue = pValue->getString();
     // printf ( "DomainMapper::sprm(0x%.4x, 0x%.4x) [%s]\n", (unsigned int)nSprmId, (unsigned int)nIntValue, ::rtl::OUStringToOString(sStringValue, RTL_TEXTENCODING_DONTKNOW).getStr());
     /* WRITERFILTERSTATUS: table: sprmdata */
 
@@ -2254,11 +2254,14 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
         /* WRITERFILTERSTATUS: comment:  */
         rContext->Insert(PROP_PARA_KEEP_TOGETHER, true, uno::makeAny( nIntValue ? true : false) );
         break;
+
     case NS_sprm::LN_PFPageBreakBefore:
-        /* WRITERFILTERSTATUS: done: 100, planned: 3, spent: 0 */
-        /* WRITERFILTERSTATUS: comment:  */
-        rContext->Insert(PROP_BREAK_TYPE, true, uno::makeAny( com::sun::star::style::BreakType_PAGE_BEFORE ) );
+        if ( nIntValue == 1 )
+        {
+            rContext->Insert( PROP_BREAK_TYPE, true, uno::makeAny( com::sun::star::style::BreakType_PAGE_BEFORE ) );
+        }
     break;  // sprmPFPageBreakBefore
+
     case NS_sprm::LN_PBrcl:
         break;  // sprmPBrcl
     case NS_sprm::LN_PBrcp:
@@ -2327,10 +2330,9 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
         break;
 
     case NS_sprm::LN_PFNoLineNumb:   // sprmPFNoLineNumb
-        /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 1 */
-        /* WRITERFILTERSTATUS: comment:  */
-        rContext->Insert(PROP_PARA_LINE_NUMBER_COUNT, true, uno::makeAny( nIntValue ? false : true) );
+        rContext->Insert(PROP_PARA_LINE_NUMBER_COUNT, true, uno::makeAny( nIntValue != 0 ? false : true) );
         break;
+
     case NS_sprm::LN_PChgTabsPapx:   // sprmPChgTabsPapx
         /* WRITERFILTERSTATUS: done: 90, planned: 8, spent: 8 */
         /* WRITERFILTERSTATUS: comment: bar tab stops a unavailable */
@@ -2595,10 +2597,11 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
     case NS_sprm::LN_PBrcBar:
         /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
         break;  // sprmPBrcBar
+
     case NS_sprm::LN_PFNoAutoHyph:   // sprmPFNoAutoHyph
-        /* WRITERFILTERSTATUS: done: 100, planned: 1, spent: 0 */
-        rContext->Insert(PROP_PARA_IS_HYPHENATION, true, uno::makeAny( nIntValue ? false : true ));
+        rContext->Insert(PROP_PARA_IS_HYPHENATION, true, uno::makeAny( nIntValue != 0 ? false : true ));
         break;
+
     case NS_sprm::LN_PWHeightAbs:
         /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
         break;  // sprmPWHeightAbs
@@ -2629,15 +2632,16 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
     case NS_sprm::LN_PFLocked:
         /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
         break;  // sprmPFLocked
+
     case NS_sprm::LN_PFWidowControl:
     case NS_ooxml::LN_CT_PPrBase_widowControl:
-        /* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
     {
-        uno::Any aVal( uno::makeAny( sal_Int8(nIntValue ? 2 : 0 )));
+        uno::Any aVal( uno::makeAny( sal_Int8(nIntValue != 0 ? 2 : 0 )));
         rContext->Insert( PROP_PARA_WIDOWS, true, aVal );
         rContext->Insert( PROP_PARA_ORPHANS, true, aVal );
     }
     break;  // sprmPFWidowControl
+
     case NS_sprm::LN_PRuler:
         /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
         break;  // sprmPRuler
@@ -2675,34 +2679,47 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
     case NS_sprm::LN_PPropRMark:
         /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
         break;  // sprmPPropRMark
+
     case NS_sprm::LN_POutLvl:
-        /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
         {
-            sal_Int16 nLvl = static_cast< sal_Int16 >( nIntValue );
-            if( m_pImpl->IsStyleSheetImport() )
+            // - nIntValue == WW_OUTLINE_MAX --> no outline level
+            // - WW_OUTLINE_MIN <= nIntValue < WW_OUTLINE_MAX --> outline level = nIntValue+1
+            // - nIntValue > WW_OUTLINE_MAX are treated as no outline level
+            const sal_Int16 nOutlineLevel = nIntValue >= WW_OUTLINE_MIN && nIntValue < WW_OUTLINE_MAX
+                                            ? static_cast< sal_Int16 >(nIntValue+1)
+                                            : 0;
+            StyleSheetPropertyMap* pStyleSheetPropertyMap = NULL;
+            if ( m_pImpl->IsStyleSheetImport() )
             {
-
-                StyleSheetPropertyMap* pStyleSheetPropertyMap = dynamic_cast< StyleSheetPropertyMap* >( rContext.get() );
-                pStyleSheetPropertyMap->SetOutlineLevel( nLvl );
+                pStyleSheetPropertyMap = dynamic_cast< StyleSheetPropertyMap* >( rContext.get() );
+            }
+            if ( pStyleSheetPropertyMap != 0 )
+            {
+                pStyleSheetPropertyMap->SetOutlineLevel( nOutlineLevel );
             }
             else
             {
-                nLvl = nLvl >= WW_OUTLINE_MIN && nLvl < WW_OUTLINE_MAX? nLvl+1 : 0; //0 means no outline level set on
-                rContext->Insert(PROP_OUTLINE_LEVEL, true, uno::makeAny ( nLvl ));
+                rContext->Insert(PROP_OUTLINE_LEVEL, true, uno::makeAny ( nOutlineLevel ));
             }
         }
         break;  // sprmPOutLvl
+
     case NS_sprm::LN_PFBiDi:
-        /* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
+        if ( nIntValue == 1 )
+        {
             rContext->Insert(PROP_WRITING_MODE, false, uno::makeAny( text::WritingMode2::RL_TB ));
             rContext->Insert(PROP_PARA_ADJUST, false, uno::makeAny( style::ParagraphAdjust_RIGHT ));
-
+        }
         break;  // sprmPFBiDi
+
     case NS_ooxml::LN_EG_SectPrContents_bidi:
-        /* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
-        if (pSectionContext != NULL)
-            pSectionContext->Insert(PROP_WRITING_MODE,false, uno::makeAny( text::WritingMode2::RL_TB));
+        if ( nIntValue == 1 )
+        {
+            if ( pSectionContext != NULL )
+                pSectionContext->Insert( PROP_WRITING_MODE, false, uno::makeAny( text::WritingMode2::RL_TB ) );
+        }
         break;
+
     case NS_sprm::LN_PFNumRMIns:
         /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
         break;  // sprmPFNumRMIns
@@ -2792,73 +2809,62 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
         /* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
         rContext->Insert(PROP_CHAR_EMPHASIS, true, uno::makeAny ( getEmphasisValue (nIntValue)));
         break;  // sprmCKcd
+
     case NS_sprm::LN_CFEmboss:// sprmCFEmboss
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
     case 60:// sprmCFBold
     case NS_sprm::LN_CFBoldBi:// sprmCFBoldBi    (offset 0x27 to normal bold)
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
     case NS_sprm::LN_CFItalicBi:// sprmCFItalicBi  (offset 0x27 to normal italic)
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
     case NS_sprm::LN_CFBold: //sprmCFBold
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
     case 61: /*sprmCFItalic*/
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
     case NS_sprm::LN_CFItalic: //sprmCFItalic
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
     case NS_sprm::LN_CFStrike: //sprmCFStrike
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent:  0.5*/
     case NS_sprm::LN_CFOutline: //sprmCFOutline
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
     case NS_sprm::LN_CFShadow: //sprmCFShadow
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
     case NS_sprm::LN_CFSmallCaps: //sprmCFSmallCaps
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
     case NS_sprm::LN_CFCaps: //sprmCFCaps
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
     case NS_sprm::LN_CFVanish: //sprmCFVanish
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
     case NS_sprm::LN_CFDStrike:   // sprmCFDStrike
-        /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
         {
             PropertyIds ePropertyId = PROP_CHAR_WEIGHT; //initialized to prevent warning!
             switch( nSprmId )
             {
             case 60:// sprmCFBold
-            case NS_sprm::LN_CFBoldBi: // sprmCFBoldBi
             case NS_sprm::LN_CFBold: /*sprmCFBold*/
-                /* WRITERFILTERSTATUS: */
-                ePropertyId = nSprmId != NS_sprm::LN_CFBoldBi ? PROP_CHAR_WEIGHT : PROP_CHAR_WEIGHT_COMPLEX;
+                ePropertyId = PROP_CHAR_WEIGHT;
+                break;
+            case NS_sprm::LN_CFBoldBi: // sprmCFBoldBi
+                ePropertyId = PROP_CHAR_WEIGHT_COMPLEX;
                 break;
+
             case 61: /*sprmCFItalic*/
             case NS_sprm::LN_CFItalicBi: // sprmCFItalicBi
             case NS_sprm::LN_CFItalic: /*sprmCFItalic*/
-                /* WRITERFILTERSTATUS: */
                 ePropertyId = nSprmId == 0x836 ? PROP_CHAR_POSTURE : PROP_CHAR_POSTURE_COMPLEX;
                 break;
+
             case NS_sprm::LN_CFStrike: /*sprmCFStrike*/
             case NS_sprm::LN_CFDStrike : /*sprmCFDStrike double strike through*/
-                /* WRITERFILTERSTATUS: */
                 ePropertyId = PROP_CHAR_STRIKEOUT;
                 break;
+
             case NS_sprm::LN_CFOutline: /*sprmCFOutline*/
-                /* WRITERFILTERSTATUS: */
                 ePropertyId = PROP_CHAR_CONTOURED;
                 break;
+
             case NS_sprm::LN_CFShadow: /*sprmCFShadow*/
-                /* WRITERFILTERSTATUS: */
                 ePropertyId = PROP_CHAR_SHADOWED;
                 break;
+
             case NS_sprm::LN_CFSmallCaps: /*sprmCFSmallCaps*/
             case NS_sprm::LN_CFCaps: /*sprmCFCaps*/
-                /* WRITERFILTERSTATUS: */
                 ePropertyId = PROP_CHAR_CASE_MAP;
                 break;
+
             case NS_sprm::LN_CFVanish: /*sprmCFVanish*/
-                /* WRITERFILTERSTATUS: */
                 ePropertyId = PROP_CHAR_HIDDEN;
                 break;
+
             case NS_sprm::LN_CFEmboss: /*sprmCFEmboss*/
-                /* WRITERFILTERSTATUS: */
                 ePropertyId = PROP_CHAR_RELIEF;
                 break;
             }
@@ -2900,56 +2906,55 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
                     case 60:/*sprmCFBold*/
                     case NS_sprm::LN_CFBold: /*sprmCFBold*/
                     case NS_sprm::LN_CFBoldBi: // sprmCFBoldBi
-                        /* WRITERFILTERSTATUS: */
                     {
-                        uno::Any aBold( uno::makeAny( nIntValue ? awt::FontWeight::BOLD : awt::FontWeight::NORMAL ) );
+                        uno::Any aBold( uno::makeAny( nIntValue != 0 ? awt::FontWeight::BOLD : awt::FontWeight::NORMAL ) );
 
                         rContext->Insert(ePropertyId, true, aBold );
                         if( nSprmId != NS_sprm::LN_CFBoldBi ) // sprmCFBoldBi
                             rContext->Insert(PROP_CHAR_WEIGHT_ASIAN, true, aBold );
                     }
                     break;
+
                     case 61: /*sprmCFItalic*/
                     case NS_sprm::LN_CFItalic: /*sprmCFItalic*/
                     case NS_sprm::LN_CFItalicBi: // sprmCFItalicBi
-                        /* WRITERFILTERSTATUS: */
                     {
-                        uno::Any aPosture( uno::makeAny( nIntValue ? awt::FontSlant_ITALIC : awt::FontSlant_NONE ) );
+                        uno::Any aPosture( uno::makeAny( nIntValue != 0 ? awt::FontSlant_ITALIC : awt::FontSlant_NONE ) );
                         rContext->Insert( ePropertyId, true, aPosture );
                         if( nSprmId != NS_sprm::LN_CFItalicBi ) // sprmCFItalicBi
                             rContext->Insert(PROP_CHAR_POSTURE_ASIAN, true, aPosture );
                     }
                     break;
+
                     case NS_sprm::LN_CFStrike: /*sprmCFStrike*/
-                        /* WRITERFILTERSTATUS: */
                         rContext->Insert(ePropertyId, true,
-                                         uno::makeAny( nIntValue ? awt::FontStrikeout::SINGLE : awt::FontStrikeout::NONE ) );
+                                         uno::makeAny( nIntValue != 0 ? awt::FontStrikeout::SINGLE : awt::FontStrikeout::NONE ) );
                     break;
+
                     case NS_sprm::LN_CFDStrike : /*sprmCFDStrike double strike through*/
-                        /* WRITERFILTERSTATUS: */
                         rContext->Insert(ePropertyId, true,
-                                         uno::makeAny( awt::FontStrikeout::DOUBLE ) );
+                                         uno::makeAny( nIntValue != 0 ? awt::FontStrikeout::DOUBLE : awt::FontStrikeout::NONE ) );
                     break;
+
                     case NS_sprm::LN_CFOutline: /*sprmCFOutline*/
                     case NS_sprm::LN_CFShadow: /*sprmCFShadow*/
                     case NS_sprm::LN_CFVanish: /*sprmCFVanish*/
-                        /* WRITERFILTERSTATUS: */
-                        rContext->Insert(ePropertyId, true, uno::makeAny( nIntValue ? true : false ));
+                        rContext->Insert(ePropertyId, true, uno::makeAny( nIntValue != 0 ? true : false ));
                     break;
+
                     case NS_sprm::LN_CFSmallCaps: /*sprmCFSmallCaps*/
-                        /* WRITERFILTERSTATUS: */
                         rContext->Insert(ePropertyId, true,
-                                         uno::makeAny( nIntValue ? style::CaseMap::SMALLCAPS : style::CaseMap::NONE));
+                                         uno::makeAny( nIntValue != 0 ? style::CaseMap::SMALLCAPS : style::CaseMap::NONE));
                     break;
+
                     case NS_sprm::LN_CFCaps: /*sprmCFCaps*/
-                        /* WRITERFILTERSTATUS: */
                         rContext->Insert(ePropertyId, true,
-                                         uno::makeAny( nIntValue ? style::CaseMap::UPPERCASE : style::CaseMap::NONE));
+                                         uno::makeAny( nIntValue != 0 ? style::CaseMap::UPPERCASE : style::CaseMap::NONE));
                     break;
+
                     case NS_sprm::LN_CFEmboss: /*sprmCFEmboss*/
-                        /* WRITERFILTERSTATUS: */
                         rContext->Insert(ePropertyId, true,
-                                         uno::makeAny( nIntValue ? awt::FontRelief::EMBOSSED : awt::FontRelief::NONE ));
+                                         uno::makeAny( nIntValue != 0 ? awt::FontRelief::EMBOSSED : awt::FontRelief::NONE ));
                     break;
 
                 }
@@ -3003,6 +3008,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
     case NS_sprm::LN_CHpsInc:
         /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
         break;  // sprmCHpsInc
+
     case NS_sprm::LN_CHpsPos:
         /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
         {
@@ -3021,6 +3027,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
             rContext->Insert(PROP_CHAR_ESCAPEMENT_HEIGHT,  true, uno::makeAny( nProp ) );
         }
         break;  // sprmCHpsPos
+
     case NS_sprm::LN_CHpsPosAdj:
         /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
         break;  // sprmCHpsPosAdj
@@ -3069,10 +3076,11 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
             rContext->Insert(PROP_CHAR_CHAR_KERNING, true, uno::makeAny(nResult));
         }
         break;
+
     case NS_sprm::LN_CHpsKern:  // sprmCHpsKern    auto kerning is bound to a minimum font size in Word - but not in Writer :-(
-        /* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
         rContext->Insert(PROP_CHAR_AUTO_KERNING, true, uno::makeAny( true ) );
         break;
+
     case NS_sprm::LN_CMajority50:
         /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
         break;  // sprmCMajority50
@@ -3129,17 +3137,17 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
             }
         }
         break;
+
     case NS_sprm::LN_CCharScale:  // sprmCCharScale
-        /* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
-        rContext->Insert(PROP_CHAR_SCALE_WIDTH, true,
-                         uno::makeAny( sal_Int16(nIntValue) ));
+        rContext->Insert( PROP_CHAR_SCALE_WIDTH, true, uno::makeAny( sal_Int16(nIntValue) ));
         break;
+
     case NS_sprm::LN_CFImprint: // sprmCFImprint   1 or 0
-        /* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
         // FontRelief: NONE, EMBOSSED, ENGRAVED
         rContext->Insert(PROP_CHAR_RELIEF, true,
-                         uno::makeAny( nIntValue ? awt::FontRelief::ENGRAVED : awt::FontRelief::NONE ));
+                         uno::makeAny( nIntValue != 0 ? awt::FontRelief::ENGRAVED : awt::FontRelief::NONE ));
         break;
+
     case NS_sprm::LN_CFObj:
         /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
         break;  // sprmCFObj
@@ -3858,6 +3866,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
         /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
         resolveSprmProps(*this, rSprm);
     break;
+
     case NS_ooxml::LN_EG_SectPrContents_footnotePr:
         /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
     case NS_ooxml::LN_EG_SectPrContents_endnotePr:
@@ -3865,6 +3874,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
         m_pImpl->SetInFootnoteProperties( NS_ooxml::LN_EG_SectPrContents_footnotePr == nSprmId );
         resolveSprmProps(*this, rSprm);
     break;
+
     case NS_ooxml::LN_EG_SectPrContents_lnNumType:
         /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
     {
@@ -4111,6 +4121,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
         }
     }
     break;
+
     case NS_ooxml::LN_EG_RPrBase_vertAlign:
         /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
     {
@@ -4127,6 +4138,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
         rContext->Insert(PROP_CHAR_ESCAPEMENT_HEIGHT,  true, uno::makeAny( nProp ) );
     }
     break;
+
 //    case NS_ooxml::LN_CT_FtnEdn_type
         /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
 //    case NS_ooxml::LN_CT_FtnEdn_id
diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx
index d3cb5ad..933b771 100644
--- a/writerfilter/source/dmapper/PropertyMap.cxx
+++ b/writerfilter/source/dmapper/PropertyMap.cxx
@@ -1093,7 +1093,7 @@ StyleSheetPropertyMap::StyleSheetPropertyMap() :
     mbCT_TblWidth_typeSet( false ),
     mnListId( -1 ),
     mnListLevel( -1 ),
-    mnOutlineLevel( -1 )
+    mnOutlineLevel( 0 )
 {
 }
 /*-- 14.06.2007 13:57:43---------------------------------------------------
diff --git a/writerfilter/source/dmapper/PropertyMap.hxx b/writerfilter/source/dmapper/PropertyMap.hxx
index 9f995ae..1757122 100644
--- a/writerfilter/source/dmapper/PropertyMap.hxx
+++ b/writerfilter/source/dmapper/PropertyMap.hxx
@@ -496,7 +496,7 @@ public:
     sal_Int16   GetOutlineLevel() const            { return mnOutlineLevel; }
     void        SetOutlineLevel(sal_Int16 nLevel)
     {
-        if ( nLevel < WW_OUTLINE_MAX )
+        if ( nLevel <= WW_OUTLINE_MAX )
             mnOutlineLevel = nLevel;
     }
 
diff --git a/writerfilter/source/dmapper/StyleSheetTable.cxx b/writerfilter/source/dmapper/StyleSheetTable.cxx
index 960b116..acd230e 100644
--- a/writerfilter/source/dmapper/StyleSheetTable.cxx
+++ b/writerfilter/source/dmapper/StyleSheetTable.cxx
@@ -866,7 +866,7 @@ void StyleSheetTable::ApplyStyleSheets( FontTablePtr rFontTable )
                             aPropValues.realloc( aPropValues.getLength( ) + 1 );
 
                             beans::PropertyValue aLvlVal( rPropNameSupplier.GetName( PROP_OUTLINE_LEVEL ), 0,
-                                    uno::makeAny( sal_Int16( pStyleSheetProperties->GetOutlineLevel( ) + 1 ) ),
+                                    uno::makeAny( sal_Int16( pStyleSheetProperties->GetOutlineLevel( ) ) ),
                                     beans::PropertyState_DIRECT_VALUE );
                             aPropValues[ aPropValues.getLength( ) - 1 ] = aLvlVal;
 


More information about the Libreoffice-commits mailing list