[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