[Libreoffice-commits] core.git: writerfilter/source
Jürgen Schmidt
jsc at apache.org
Fri Apr 5 01:35:34 PDT 2013
writerfilter/source/dmapper/DomainMapper.cxx | 7 ++++++-
writerfilter/source/dmapper/DomainMapper_Impl.cxx | 14 +++++++++-----
writerfilter/source/dmapper/PropertyMap.hxx | 1 +
3 files changed, 16 insertions(+), 6 deletions(-)
New commits:
commit aeb7683ae745717fe5e283b6ada065183aa730f4
Author: Jürgen Schmidt <jsc at apache.org>
Date: Thu Jun 7 11:44:03 2012 +0000
Resolves: #i119621# Outline level in sample file lost
fix:
- PropertyMap.hxx, add definition for outline level min value
- DomainMapper.cxx, import outline level for paragraph property
- DomainMapper_Impl.cxx, fix TOC import if no range is given
Patch By: Yolanda Zhang Ying
Reviewed By: jsc
(cherry picked from commit 5b87b9b8bc679dfbb308646a6da7584d4b418337)
Conflicts:
writerfilter/source/dmapper/DomainMapper_Impl.cxx
Change-Id: I2149a7338b128d0dd1c1317a259e537d2a1e1063
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 2744ac3..d136e1b 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -1878,13 +1878,18 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
break; // sprmPPropRMark
case NS_sprm::LN_POutLvl:
{
+ sal_Int16 nLvl = static_cast< sal_Int16 >( nIntValue );
if( m_pImpl->IsStyleSheetImport() )
{
- sal_Int16 nLvl = static_cast< sal_Int16 >( nIntValue );
StyleSheetPropertyMap* pStyleSheetPropertyMap = dynamic_cast< StyleSheetPropertyMap* >( rContext.get() );
pStyleSheetPropertyMap->SetOutlineLevel( nLvl );
}
+ 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 ));
+ }
}
break; // sprmPOutLvl
case NS_sprm::LN_PFBiDi:
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 175e53f..eb45169 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -1957,7 +1957,6 @@ bool lcl_FindInCommand(
}
-
void DomainMapper_Impl::GetCurrentLocale(lang::Locale& rLocale)
{
PropertyMapPtr pTopContext = GetTopContext();
@@ -2549,7 +2548,7 @@ void DomainMapper_Impl::handleToc
// {
//todo: entries can only be included completely
// }
-// \n Builds a table of contents or a range of entries, sucah as �1-9�, in a table of contents without page numbers
+// \n Builds a table of contents or a range of entries, such as 1-9 in a table of contents without page numbers
// if( lcl_FindInCommand( pContext->GetCommand(), 'n', sValue ))
// {
//todo: what does the description mean?
@@ -2558,9 +2557,14 @@ void DomainMapper_Impl::handleToc
if( lcl_FindInCommand( pContext->GetCommand(), 'o', sValue ))
{
bFromOutline = true;
- sal_Int32 nIndex = 0;
- sValue.getToken( 0, '-', nIndex );
- nMaxLevel = static_cast<sal_Int16>(nIndex != -1 ? sValue.copy(nIndex).toInt32() : 0);
+ if (sValue.isEmpty())
+ nMaxLevel = WW_OUTLINE_MAX;
+ else
+ {
+ sal_Int32 nIndex = 0;
+ sValue.getToken( 0, '-', nIndex );
+ nMaxLevel = static_cast<sal_Int16>(nIndex != -1 ? sValue.copy(nIndex).toInt32() : 0);
+ }
}
// \p Defines the separator between the table entry and its page number
if( lcl_FindInCommand( pContext->GetCommand(), 'p', sValue ))
diff --git a/writerfilter/source/dmapper/PropertyMap.hxx b/writerfilter/source/dmapper/PropertyMap.hxx
index 6bbb4c7..75d78c1 100644
--- a/writerfilter/source/dmapper/PropertyMap.hxx
+++ b/writerfilter/source/dmapper/PropertyMap.hxx
@@ -374,6 +374,7 @@ typedef boost::shared_ptr<ParagraphProperties> ParagraphPropertiesPtr;
-----------------------------------------------------------------------*/
#define WW_OUTLINE_MAX sal_Int16( 9 )
+#define WW_OUTLINE_MIN sal_Int16( 0 )
class StyleSheetPropertyMap : public PropertyMap, public ParagraphProperties
More information about the Libreoffice-commits
mailing list