[Libreoffice-commits] .: writerfilter/source

Noel Power noelp at kemper.freedesktop.org
Fri Nov 26 07:40:26 PST 2010


 writerfilter/source/dmapper/DomainMapperTableManager.cxx |   38 +++++++++++++++
 writerfilter/source/dmapper/PropertyIds.cxx              |    1 
 writerfilter/source/dmapper/PropertyIds.hxx              |    1 
 3 files changed, 40 insertions(+)

New commits:
commit 710f69afff6d2138a34d7e9f817cb5d8a39f1533
Author: Noel Power <noel.power at novell.com>
Date:   Fri Nov 26 15:40:19 2010 +0000

    tentative fix for fdo#30474#

diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.cxx b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
index d310ea3..62d6d41 100644
--- a/writerfilter/source/dmapper/DomainMapperTableManager.cxx
+++ b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
@@ -269,6 +269,44 @@ bool DomainMapperTableManager::sprm(Sprm & rSprm)
             case NS_ooxml::LN_CT_TblPrBase_tblLook: 
                 /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
                 break; //todo: table look specifier
+            case NS_ooxml::LN_CT_TcPrBase_textDirection:
+            {
+                TablePropertyMapPtr pPropMap( new TablePropertyMap );
+                const sal_Int16 HORI_LEFT_TOP = 0;
+                /*const sal_Int16 HORI_RIGHT_TOP = 1;*/ // currently not used below
+                const sal_Int16 VERT_TOP_RIGHT = 2;
+                bool bInsertCellProps = true;
+                switch ( nIntValue )
+                {
+                    case 1:  // tbRl
+                    // Binary filter takes BiDirection into account ( but I have no idea about that here )
+                    // or even what it is. But... here's where to handle it if it becomes an issue
+                        pPropMap->Insert( PROP_FRM_DIRECTION, false, uno::makeAny( VERT_TOP_RIGHT ));
+                        OSL_TRACE("Have inserted textDirection %d", nIntValue );
+                        break;
+                    case 3:  // btLr
+                        // We have to fake this text direction
+                         pPropMap->Insert( PROP_FRM_DIRECTION, false, uno::makeAny( HORI_LEFT_TOP ));
+                         pPropMap->Insert( PROP_CHAR_ROTATION, false, uno::makeAny( sal_Int16( 900 ) ));
+                        OSL_TRACE("Have inserted textDirection %d", nIntValue );
+                        break;
+                    case 4: // lrTbV
+                        pPropMap->Insert( PROP_FRM_DIRECTION, false, uno::makeAny( HORI_LEFT_TOP ));
+                        break;
+                    case 5: // tbRlV
+                        pPropMap->Insert( PROP_FRM_DIRECTION, false, uno::makeAny( VERT_TOP_RIGHT ));
+                        break;
+                    case 0: // lrTb
+                    case NS_ooxml::LN_Value_ST_TextDirection_tbLrV:
+                    default:
+                       // Ignore - we can't handle these
+                       bInsertCellProps = false;
+                       break;
+                }
+                if ( bInsertCellProps )
+                    cellProps( pPropMap );
+                break;
+            }
             case NS_ooxml::LN_CT_TcPrBase_tcW: 
                 /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
                 break; //fixed column width is not supported
diff --git a/writerfilter/source/dmapper/PropertyIds.cxx b/writerfilter/source/dmapper/PropertyIds.cxx
index f846293..add98f9 100644
--- a/writerfilter/source/dmapper/PropertyIds.cxx
+++ b/writerfilter/source/dmapper/PropertyIds.cxx
@@ -324,6 +324,7 @@ const rtl::OUString& PropertyNameSupplier::GetName( PropertyIds eId ) const
             case PROP_PARA_SPLIT:    sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaSplit")); break;
             case PROP_HELP:    sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Help")); break;
             case PROP_HEADING_STYLE_NAME:    sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HeadingStyleName")); break;
+            case PROP_FRM_DIRECTION:        sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FRMDirection")); break;
 //            case       :    sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("")); break;
 //            case       :    sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("")); break;
 //            case       :    sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("")); break;
diff --git a/writerfilter/source/dmapper/PropertyIds.hxx b/writerfilter/source/dmapper/PropertyIds.hxx
index 36e48d2..401c3e3 100644
--- a/writerfilter/source/dmapper/PropertyIds.hxx
+++ b/writerfilter/source/dmapper/PropertyIds.hxx
@@ -287,6 +287,7 @@ enum PropertyIds
 /*250*/ ,PROP_HEADING_STYLE_NAME
 /*251*/ ,PROP_PARA_SPLIT
 /*252*/ ,PROP_HELP
+/*253*/ ,PROP_FRM_DIRECTION
 };
 struct PropertyNameSupplier_Impl;
 class PropertyNameSupplier


More information about the Libreoffice-commits mailing list