Author: steve_y
Date: Thu Jul  3 02:52:17 2014
New Revision: 1607520

URL: http://svn.apache.org/r1607520
Log:
Issue 119044 - Highlighter from DOCX file not imported correctly

Modified:
    openoffice/trunk/main/writerfilter/source/dmapper/CellColorHandler.cxx
    openoffice/trunk/main/writerfilter/source/dmapper/CellColorHandler.hxx
    openoffice/trunk/main/writerfilter/source/dmapper/DomainMapper.cxx

Modified: openoffice/trunk/main/writerfilter/source/dmapper/CellColorHandler.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/writerfilter/source/dmapper/CellColorHandler.cxx?rev=1607520&r1=1607519&r2=1607520&view=diff
==============================================================================
--- openoffice/trunk/main/writerfilter/source/dmapper/CellColorHandler.cxx 
(original)
+++ openoffice/trunk/main/writerfilter/source/dmapper/CellColorHandler.cxx Thu 
Jul  3 02:52:17 2014
@@ -44,7 +44,7 @@ LoggedProperties(dmapper_logger, "CellCo
 m_nShadowType( 0 ),
 m_nColor( 0xffffffff ),
 m_nFillColor( 0xffffffff ),
-m_bParagraph( false )
+m_eType( Others )
 {
 }
 /*-- 24.04.2007 09:06:35---------------------------------------------------
@@ -224,9 +224,23 @@ TablePropertyMapPtr  CellColorHandler::g
 
         nApplyColor = ( (nRed/1000) << 0x10 ) + ((nGreen/1000) << 8) + 
nBlue/1000;
     }
-        
-    pPropertyMap->Insert( m_bParagraph ? PROP_PARA_BACK_COLOR : 
PROP_BACK_COLOR, false,
-                            uno::makeAny( nApplyColor ));
+    
+       sal_Int32 objType = PROP_CHAR_BACK_COLOR;
+
+       switch(m_eType)
+       {
+       case P:
+               pPropertyMap->Insert( PROP_PARA_BACK_COLOR, false, 
uno::makeAny( nApplyColor ));
+               break;
+       case C:
+               pPropertyMap->Insert( PROP_CHAR_BACK_COLOR, false, 
uno::makeAny( nApplyColor ));
+               break;
+       case Others:
+       default:                
+               pPropertyMap->Insert( PROP_BACK_COLOR, false, uno::makeAny( 
nApplyColor ));
+               break;  
+       }
+    
     return pPropertyMap;
 }
 } //namespace dmapper

Modified: openoffice/trunk/main/writerfilter/source/dmapper/CellColorHandler.hxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/writerfilter/source/dmapper/CellColorHandler.hxx?rev=1607520&r1=1607519&r2=1607520&view=diff
==============================================================================
--- openoffice/trunk/main/writerfilter/source/dmapper/CellColorHandler.hxx 
(original)
+++ openoffice/trunk/main/writerfilter/source/dmapper/CellColorHandler.hxx Thu 
Jul  3 02:52:17 2014
@@ -39,7 +39,8 @@ public:
     sal_Int32 m_nShadowType;
     sal_Int32 m_nColor;
     sal_Int32 m_nFillColor;
-    bool      m_bParagraph;
+       enum Type {P, C, Others};
+       Type m_eType;
 
 private:
     // Properties
@@ -52,7 +53,7 @@ public:
 
     ::boost::shared_ptr<TablePropertyMap>            getProperties();
 
-    void setParagraph() { m_bParagraph = true; }
+    void setType(Type type) { m_eType = type; }
 };
 typedef boost::shared_ptr< CellColorHandler >          CellColorHandlerPtr;
 }}

Modified: openoffice/trunk/main/writerfilter/source/dmapper/DomainMapper.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/writerfilter/source/dmapper/DomainMapper.cxx?rev=1607520&r1=1607519&r2=1607520&view=diff
==============================================================================
--- openoffice/trunk/main/writerfilter/source/dmapper/DomainMapper.cxx 
(original)
+++ openoffice/trunk/main/writerfilter/source/dmapper/DomainMapper.cxx Thu Jul  
3 02:52:17 2014
@@ -2617,7 +2617,7 @@ void DomainMapper::sprmWithProps( Sprm& 
         if( pProperties.get())
         {
             CellColorHandlerPtr pCellColorHandler( new CellColorHandler );
-            pCellColorHandler->setParagraph();
+                       pCellColorHandler->setType(CellColorHandler::P);
             pProperties->resolve(*pCellColorHandler);
             rContext->insert( pCellColorHandler->getProperties(), true );
         }
@@ -3186,6 +3186,16 @@ void DomainMapper::sprmWithProps( Sprm& 
         break;  // sprmCBrc
     case NS_sprm::LN_CShd:
         /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+               {
+                       writerfilter::Reference<Properties>::Pointer_t 
pProperties = rSprm.getProps();
+                       if( pProperties.get())
+                       {
+                               CellColorHandlerPtr pCellColorHandler( new 
CellColorHandler );
+                               pCellColorHandler->setType(CellColorHandler::C);
+                               pProperties->resolve(*pCellColorHandler);
+                               rContext->insert( 
pCellColorHandler->getProperties(), true );
+                       }
+        }
         break;  // sprmCShd
     case NS_sprm::LN_CIdslRMarkDel:
         /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */


Reply via email to