[Libreoffice-commits] .: 4 commits - writerfilter/source
Lubos Lunak
llunak at kemper.freedesktop.org
Fri May 13 10:42:05 PDT 2011
writerfilter/source/dmapper/CellMarginHandler.cxx | 25 +++++++++
writerfilter/source/dmapper/DomainMapper.cxx | 9 +++
writerfilter/source/dmapper/TDefTableHandler.cxx | 14 ++++-
writerfilter/source/dmapper/TablePropertiesHandler.cxx | 1
writerfilter/source/ooxml/model.xml | 46 ++++++++++++++++-
5 files changed, 92 insertions(+), 3 deletions(-)
New commits:
commit 6f6915bb50dd53b6ac9946640ec9e9d57ed3f245
Author: LuboÅ¡ LuÅák <l.lunak at suse.cz>
Date: Fri May 13 19:38:24 2011 +0200
implement start/end for TblCellMar (17.4.11/35), no rtl detection
diff --git a/writerfilter/source/dmapper/CellMarginHandler.cxx b/writerfilter/source/dmapper/CellMarginHandler.cxx
index 858dd4b..f8b0b46 100644
--- a/writerfilter/source/dmapper/CellMarginHandler.cxx
+++ b/writerfilter/source/dmapper/CellMarginHandler.cxx
@@ -80,12 +80,25 @@ void CellMarginHandler::lcl_sprm(Sprm & rSprm)
if( pProperties.get())
{
pProperties.get()->resolve( *this );
+ bool rtl = false; // TODO
switch( rSprm.getId() )
{
case NS_ooxml::LN_CT_TblCellMar_top:
m_nTopMargin = m_nValue;
m_bTopMarginValid = true;
break;
+ case NS_ooxml::LN_CT_TblCellMar_start:
+ if( rtl )
+ {
+ m_nRightMargin = m_nValue;
+ m_bRightMarginValid = true;
+ }
+ else
+ {
+ m_nLeftMargin = m_nValue;
+ m_bLeftMarginValid = true;
+ }
+ break;
case NS_ooxml::LN_CT_TblCellMar_left:
m_nLeftMargin = m_nValue;
m_bLeftMarginValid = true;
@@ -94,6 +107,18 @@ void CellMarginHandler::lcl_sprm(Sprm & rSprm)
m_nBottomMargin = m_nValue;
m_bBottomMarginValid = true;
break;
+ case NS_ooxml::LN_CT_TblCellMar_end:
+ if( rtl )
+ {
+ m_nLeftMargin = m_nValue;
+ m_bLeftMarginValid = true;
+ }
+ else
+ {
+ m_nRightMargin = m_nValue;
+ m_bRightMarginValid = true;
+ }
+ break;
case NS_ooxml::LN_CT_TblCellMar_right:
m_nRightMargin = m_nValue;
m_bRightMarginValid = true;
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index f8b32c8..c8a6551 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -2933,8 +2933,10 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
}
break;
case NS_ooxml::LN_CT_TblCellMar_top:
+ case NS_ooxml::LN_CT_TblCellMar_start:
case NS_ooxml::LN_CT_TblCellMar_left:
case NS_ooxml::LN_CT_TblCellMar_bottom:
+ case NS_ooxml::LN_CT_TblCellMar_end:
case NS_ooxml::LN_CT_TblCellMar_right:
{
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
@@ -2944,16 +2946,23 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
pProperties->resolve(*pMeasureHandler);
sal_Int32 nMeasureValue = pMeasureHandler->getMeasureValue();
PropertyIds eId = META_PROP_CELL_MAR_TOP;
+ bool rtl = false; // TODO
switch(nSprmId)
{
case NS_ooxml::LN_CT_TblCellMar_top:
break;
+ case NS_ooxml::LN_CT_TblCellMar_start:
+ eId = rtl ? META_PROP_CELL_MAR_RIGHT : META_PROP_CELL_MAR_LEFT;
+ break;
case NS_ooxml::LN_CT_TblCellMar_left:
eId = META_PROP_CELL_MAR_LEFT;
break;
case NS_ooxml::LN_CT_TblCellMar_bottom:
eId = META_PROP_CELL_MAR_BOTTOM;
break;
+ case NS_ooxml::LN_CT_TblCellMar_end:
+ eId = rtl ? META_PROP_CELL_MAR_LEFT : META_PROP_CELL_MAR_RIGHT;
+ break;
case NS_ooxml::LN_CT_TblCellMar_right:
eId = META_PROP_CELL_MAR_RIGHT;
break;
diff --git a/writerfilter/source/dmapper/TablePropertiesHandler.cxx b/writerfilter/source/dmapper/TablePropertiesHandler.cxx
index dfc997e..f168811 100644
--- a/writerfilter/source/dmapper/TablePropertiesHandler.cxx
+++ b/writerfilter/source/dmapper/TablePropertiesHandler.cxx
@@ -185,6 +185,7 @@ namespace dmapper {
case NS_ooxml::LN_CT_TblPrBase_tblCellMar: //cell margins
{
//contains LN_CT_TblCellMar_top, LN_CT_TblCellMar_left, LN_CT_TblCellMar_bottom, LN_CT_TblCellMar_right
+ // LN_CT_TblCellMar_start, LN_CT_TblCellMar_end
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
if( pProperties.get())
{
diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml
index 71a703f..e715fe7 100644
--- a/writerfilter/source/ooxml/model.xml
+++ b/writerfilter/source/ooxml/model.xml
@@ -17901,6 +17901,11 @@
</element>
</optional>
<optional>
+ <element name="start">
+ <ref name="CT_TblWidth"/>
+ </element>
+ </optional>
+ <optional>
<element name="left">
<ref name="CT_TblWidth"/>
</element>
@@ -17915,6 +17920,11 @@
<ref name="CT_TblWidth"/>
</element>
</optional>
+ <optional>
+ <element name="end">
+ <ref name="CT_TblWidth"/>
+ </element>
+ </optional>
</define>
<define name="CT_TblBorders">
<optional>
@@ -22791,8 +22801,10 @@
</resource>
<resource name="CT_TblCellMar" resource="Properties" tag="table">
<element name="top" tokenid="ooxml:CT_TblCellMar_top"/>
+ <element name="start" tokenid="ooxml:CT_TblCellMar_start"/>
<element name="left" tokenid="ooxml:CT_TblCellMar_left"/>
<element name="bottom" tokenid="ooxml:CT_TblCellMar_bottom"/>
+ <element name="end" tokenid="ooxml:CT_TblCellMar_end"/>
<element name="right" tokenid="ooxml:CT_TblCellMar_right"/>
</resource>
<resource name="CT_TblBorders" resource="Properties" tag="table">
commit f00fd30110c63c4981645f8d89d30ad9266fcdb6
Author: LuboÅ¡ LuÅák <l.lunak at suse.cz>
Date: Fri May 13 19:17:51 2011 +0200
add start/end for tcMar (17.4.10,17.4.36), still not actually implemented
diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml
index f68e5a5..71a703f 100644
--- a/writerfilter/source/ooxml/model.xml
+++ b/writerfilter/source/ooxml/model.xml
@@ -17547,6 +17547,11 @@
</element>
</optional>
<optional>
+ <element name="start">
+ <ref name="CT_TblWidth"/>
+ </element>
+ </optional>
+ <optional>
<element name="left">
<ref name="CT_TblWidth"/>
</element>
@@ -17561,6 +17566,11 @@
<ref name="CT_TblWidth"/>
</element>
</optional>
+ <optional>
+ <element name="end">
+ <ref name="CT_TblWidth"/>
+ </element>
+ </optional>
</define>
<define name="ST_Merge">
<list>
@@ -22689,8 +22699,10 @@
<resource name="CT_TcMar" resource="Properties" tag="table">
<kind name="table"/>
<element name="top" tokenid="ooxml:CT_TcMar_top"/>
+ <element name="start" tokenid="ooxml:CT_TcMar_start"/>
<element name="left" tokenid="ooxml:CT_TcMar_left"/>
<element name="bottom" tokenid="ooxml:CT_TcMar_bottom"/>
+ <element name="end" tokenid="ooxml:CT_TcMar_end"/>
<element name="right" tokenid="ooxml:CT_TcMar_right"/>
</resource>
<resource name="ST_Merge" resource="List">
commit 09683cc2bb690c9c939b32009a9551a4313e79bf
Author: LuboÅ¡ LuÅák <l.lunak at suse.cz>
Date: Fri May 13 19:13:34 2011 +0200
implement 17.4.12/17.4.34 (tcborders start/end), rtl detection missing
diff --git a/writerfilter/source/dmapper/TDefTableHandler.cxx b/writerfilter/source/dmapper/TDefTableHandler.cxx
index 40b801b..b207373 100644
--- a/writerfilter/source/dmapper/TDefTableHandler.cxx
+++ b/writerfilter/source/dmapper/TDefTableHandler.cxx
@@ -148,13 +148,19 @@ void TDefTableHandler::localResolve(Id rName, writerfilter::Reference<Properties
table::BorderLine2 aBorderLine;
ConversionHelper::MakeBorderLine( m_nLineWidth, m_nLineType, m_nLineColor,
aBorderLine, m_bOOXML );
-
+ bool rtl = false; // TODO
switch( rName )
{
case NS_ooxml::LN_CT_TcBorders_top:
case NS_rtf::LN_BRCTOP:
m_aTopBorderLines.push_back(aBorderLine);
break;
+ case NS_ooxml::LN_CT_TcBorders_start:
+ if( rtl )
+ m_aRightBorderLines.push_back(aBorderLine);
+ else
+ m_aLeftBorderLines.push_back(aBorderLine);
+ break;
case NS_ooxml::LN_CT_TcBorders_left:
case NS_rtf::LN_BRCLEFT:
m_aLeftBorderLines.push_back(aBorderLine);
@@ -163,6 +169,12 @@ void TDefTableHandler::localResolve(Id rName, writerfilter::Reference<Properties
case NS_rtf::LN_BRCBOTTOM:
m_aBottomBorderLines.push_back(aBorderLine);
break;
+ case NS_ooxml::LN_CT_TcBorders_end:
+ if( rtl )
+ m_aLeftBorderLines.push_back(aBorderLine);
+ else
+ m_aRightBorderLines.push_back(aBorderLine);
+ break;
case NS_ooxml::LN_CT_TcBorders_right:
case NS_rtf::LN_BRCRIGHT:
m_aRightBorderLines.push_back(aBorderLine);
diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml
index 86a1c8b..f68e5a5 100644
--- a/writerfilter/source/ooxml/model.xml
+++ b/writerfilter/source/ooxml/model.xml
@@ -17495,6 +17495,11 @@
</element>
</optional>
<optional>
+ <element name="start">
+ <ref name="CT_Border"/>
+ </element>
+ </optional>
+ <optional>
<element name="left">
<ref name="CT_Border"/>
</element>
@@ -17505,6 +17510,11 @@
</element>
</optional>
<optional>
+ <element name="end">
+ <ref name="CT_Border"/>
+ </element>
+ </optional>
+ <optional>
<element name="right">
<ref name="CT_Border"/>
</element>
@@ -22666,8 +22676,10 @@
<resource name="CT_TcBorders" resource="Properties" tag="table">
<kind name="table"/>
<element name="top" tokenid="ooxml:CT_TcBorders_top"/>
+ <element name="start" tokenid="ooxml:CT_TcBorders_start"/>
<element name="left" tokenid="ooxml:CT_TcBorders_left"/>
<element name="bottom" tokenid="ooxml:CT_TcBorders_bottom"/>
+ <element name="end" tokenid="ooxml:CT_TcBorders_end"/>
<element name="right" tokenid="ooxml:CT_TcBorders_right"/>
<element name="insideH" tokenid="ooxml:CT_TcBorders_insideH"/>
<element name="insideV" tokenid="ooxml:CT_TcBorders_insideV"/>
commit 3520d6ae88a9510325215174aaaf0065b230d207
Author: LuboÅ¡ LuÅák <l.lunak at suse.cz>
Date: Fri May 13 19:01:55 2011 +0200
start/end (ISO) for 17.18.84 (ST_TabJc) , without detecting RTL
diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml
index b8fceb4..86a1c8b 100644
--- a/writerfilter/source/ooxml/model.xml
+++ b/writerfilter/source/ooxml/model.xml
@@ -13714,11 +13714,15 @@
<choice>
<!-- No Tab Stop -->
<value>clear</value>
- <!-- Left Tab -->
+ <!-- Leading Tab -->
+ <value>start</value>
+ <!-- Left Tab (ecma) -->
<value>left</value>
<!-- Centered Tab -->
<value>center</value>
- <!-- Right Tab -->
+ <!-- Trailing Tab -->
+ <value>end</value>
+ <!-- Right Tab (ecma) -->
<value>right</value>
<!-- Decimal Tab -->
<value>decimal</value>
@@ -21598,8 +21602,10 @@
</resource>
<resource name="ST_TabJc" resource="List">
<value tokenid="ooxml:Value_ST_TabJc_clear">clear</value>
+ <value tokenid="0">start</value>
<value tokenid="0">left</value>
<value tokenid="1">center</value>
+ <value tokenid="2">end</value>
<value tokenid="2">right</value>
<value tokenid="3">decimal</value>
<value tokenid="4">bar</value>
More information about the Libreoffice-commits
mailing list