[Libreoffice-commits] .: 3 commits - writerfilter/source

Cédric Bosdonnat cbosdo at kemper.freedesktop.org
Tue Nov 22 06:17:21 PST 2011


 writerfilter/source/resourcemodel/TagLogger.cxx |   13 ++++++-------
 writerfilter/source/rtftok/rtfdocumentimpl.cxx  |   18 ++++++++++++++++--
 2 files changed, 22 insertions(+), 9 deletions(-)

New commits:
commit 98f32b2b8ebefe50dfa99b5c72ceb2639bf63787
Author: Cédric Bosdonnat <cedric.bosdonnat.ooo at free.fr>
Date:   Tue Nov 22 15:14:33 2011 +0100

    RTF import: better implement \trrh to import fixed height rows

diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index b6f33c3..2a46fb0 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -2288,8 +2288,23 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
             break;
         case RTF_TRRH:
             {
+                rtl::OUString hRule = rtl::OUString::createFromAscii("auto");
+                if ( nParam < 0 )
+                {
+                    RTFValue::Pointer_t pAbsValue(new RTFValue(-nParam));
+                    pIntValue.swap( pAbsValue );
+
+                    hRule = rtl::OUString::createFromAscii("exact");
+                }
+                else if ( nParam > 0 )
+                    hRule = rtl::OUString::createFromAscii("atLeast");
+
                 lcl_putNestedAttribute(m_aStates.top().aTableRowSprms,
                         NS_ooxml::LN_CT_TrPrBase_trHeight, NS_ooxml::LN_CT_Height_val, pIntValue);
+
+                RTFValue::Pointer_t pHRule(new RTFValue(hRule));
+                lcl_putNestedAttribute(m_aStates.top().aTableRowSprms,
+                    NS_ooxml::LN_CT_TrPrBase_trHeight, NS_ooxml::LN_CT_Height_hRule, pHRule);
             }
             break;
         case RTF_COLS:
commit b03fbe13f31bde4a9844985afa7abecbf1834848
Author: Cédric Bosdonnat <cedric.bosdonnat.ooo at free.fr>
Date:   Tue Nov 22 15:09:27 2011 +0100

    writerfilter: Fixed crasher when importing docx files with dbglevel>1

diff --git a/writerfilter/source/resourcemodel/TagLogger.cxx b/writerfilter/source/resourcemodel/TagLogger.cxx
index 9cfaba1..7b63ce0 100644
--- a/writerfilter/source/resourcemodel/TagLogger.cxx
+++ b/writerfilter/source/resourcemodel/TagLogger.cxx
@@ -235,10 +235,10 @@ namespace writerfilter
     class PropertySetDumpHandler : public Properties
     {
         IdToString::Pointer_t mpIdToString;
-        TagLogger::Pointer_t m_pLogger;
+        TagLogger* m_pLogger;
 
     public:
-        PropertySetDumpHandler(TagLogger::Pointer_t pLogger,
+        PropertySetDumpHandler(TagLogger* pLogger,
                 IdToString::Pointer_t pIdToString);
         virtual ~PropertySetDumpHandler();
 
@@ -248,11 +248,11 @@ namespace writerfilter
         virtual void sprm(Sprm & sprm);
     };
 
-    PropertySetDumpHandler::PropertySetDumpHandler(TagLogger::Pointer_t pLogger,
+    PropertySetDumpHandler::PropertySetDumpHandler(TagLogger* pLogger,
             IdToString::Pointer_t pIdToString) :
-        mpIdToString(pIdToString)
+        mpIdToString(pIdToString),
+        m_pLogger(pLogger)
     {
-        m_pLogger = pLogger;
     }
 
     PropertySetDumpHandler::~PropertySetDumpHandler()
@@ -302,8 +302,7 @@ namespace writerfilter
     {
         startElement( "propertySet" );
 
-        TagLogger::Pointer_t pLogger( this );
-        PropertySetDumpHandler handler( pLogger, pIdToString );
+        PropertySetDumpHandler handler( this, pIdToString );
         handler.resolve( props );
 
         endElement( );
commit 07b5fe3b8c858c1d6f8c21e89ac940663cd97f62
Author: Cédric Bosdonnat <cedric.bosdonnat.ooo at free.fr>
Date:   Mon Nov 21 18:27:51 2011 +0100

    n#417818: empty paragraphs in tables weren't considered in the table.
    
    The paragraph properties weren't propagated to the empty paragraphs in
    the tables. Called checkNeedPap() to do that job when finding \par.

diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 3b79937..b6f33c3 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -1302,8 +1302,7 @@ int RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword)
             break;
         case RTF_PAR:
             {
-                if (m_bNeedPap)
-                    checkChangedFrame();
+                checkNeedPap();
                 if (!m_pCurrentBuffer)
                     parBreak();
                 else if (m_aStates.top().nDestinationState != DESTINATION_SHAPETEXT)


More information about the Libreoffice-commits mailing list