[Libreoffice-commits] .: writerfilter/source
Lubos Lunak
llunak at kemper.freedesktop.org
Mon May 16 09:54:30 PDT 2011
writerfilter/source/dmapper/BorderHandler.cxx | 46 ++++++++++++++++++--------
writerfilter/source/ooxml/model.xml | 12 ++++++
2 files changed, 45 insertions(+), 13 deletions(-)
New commits:
commit 1ab68aca278e0d1177e07069a3e09343f8562bf0
Author: LuboÅ¡ LuÅák <l.lunak at suse.cz>
Date: Mon May 16 18:39:57 2011 +0200
start/end for tblBorders (17.4.13/37), rtl detection missing
diff --git a/writerfilter/source/dmapper/BorderHandler.cxx b/writerfilter/source/dmapper/BorderHandler.cxx
index 7a26c54..c6de9d7 100644
--- a/writerfilter/source/dmapper/BorderHandler.cxx
+++ b/writerfilter/source/dmapper/BorderHandler.cxx
@@ -106,26 +106,46 @@ void BorderHandler::lcl_attribute(Id rName, Value & rVal)
void BorderHandler::lcl_sprm(Sprm & rSprm)
{
+ BorderPosition pos = BORDER_COUNT; // invalid pos
+ bool rtl = false; // TODO detect
switch( rSprm.getId())
{
case NS_ooxml::LN_CT_TblBorders_top:
+ pos = BORDER_TOP;
+ break;
+ case NS_ooxml::LN_CT_TblBorders_start:
+ pos = rtl ? BORDER_RIGHT : BORDER_LEFT;
+ break;
case NS_ooxml::LN_CT_TblBorders_left:
- case NS_ooxml::LN_CT_TblBorders_bottom:
+ pos = BORDER_LEFT;
+ break;
+ case NS_ooxml::LN_CT_TblBorders_bottom:
+ pos = BORDER_BOTTOM;
+ break;
+ case NS_ooxml::LN_CT_TblBorders_end:
+ pos = rtl ? BORDER_LEFT : BORDER_RIGHT;
+ break;
case NS_ooxml::LN_CT_TblBorders_right:
+ pos = BORDER_RIGHT;
+ break;
case NS_ooxml::LN_CT_TblBorders_insideH:
+ pos = BORDER_HORIZONTAL;
+ break;
case NS_ooxml::LN_CT_TblBorders_insideV:
- {
- writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
- if( pProperties.get())
- pProperties->resolve(*this);
- ConversionHelper::MakeBorderLine( m_nLineWidth, m_nLineType, m_nLineColor,
- m_aBorderLines[rSprm.getId() - NS_ooxml::LN_CT_TblBorders_top], m_bOOXML );
-
- m_aFilledLines[ rSprm.getId( ) - NS_ooxml::LN_CT_TblBorders_top] = true;
- }
- break;
- default:;
- }
+ pos = BORDER_VERTICAL;
+ break;
+ default:
+ break;
+ }
+ if( pos != BORDER_COUNT )
+ {
+ writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
+ if( pProperties.get())
+ pProperties->resolve(*this);
+ ConversionHelper::MakeBorderLine( m_nLineWidth, m_nLineType, m_nLineColor,
+ m_aBorderLines[ pos ], m_bOOXML );
+ m_aFilledLines[ pos ] = true;
+ }
}
PropertyMapPtr BorderHandler::getProperties()
diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml
index e715fe7..1e1e0d9 100644
--- a/writerfilter/source/ooxml/model.xml
+++ b/writerfilter/source/ooxml/model.xml
@@ -17933,6 +17933,11 @@
</element>
</optional>
<optional>
+ <element name="start">
+ <ref name="CT_Border"/>
+ </element>
+ </optional>
+ <optional>
<element name="left">
<ref name="CT_Border"/>
</element>
@@ -17943,6 +17948,11 @@
</element>
</optional>
<optional>
+ <element name="end">
+ <ref name="CT_Border"/>
+ </element>
+ </optional>
+ <optional>
<element name="right">
<ref name="CT_Border"/>
</element>
@@ -22810,8 +22820,10 @@
<resource name="CT_TblBorders" resource="Properties" tag="table">
<kind name="table"/>
<element name="top" tokenid="ooxml:CT_TblBorders_top"/>
+ <element name="start" tokenid="ooxml:CT_TblBorders_start"/>
<element name="left" tokenid="ooxml:CT_TblBorders_left"/>
<element name="bottom" tokenid="ooxml:CT_TblBorders_bottom"/>
+ <element name="end" tokenid="ooxml:CT_TblBorders_end"/>
<element name="right" tokenid="ooxml:CT_TblBorders_right"/>
<element name="insideH" tokenid="ooxml:CT_TblBorders_insideH"/>
<element name="insideV" tokenid="ooxml:CT_TblBorders_insideV"/>
More information about the Libreoffice-commits
mailing list