[Libreoffice-commits] .: oox/inc oox/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Dec 11 07:20:36 PST 2012


 oox/inc/oox/drawingml/theme.hxx               |    3 ++-
 oox/source/drawingml/shape.cxx                |   16 ++++++++++------
 oox/source/drawingml/theme.cxx                |    5 +++++
 oox/source/drawingml/themeelementscontext.cxx |   12 +++++++++---
 4 files changed, 26 insertions(+), 10 deletions(-)

New commits:
commit 9f19422c546c4d8d556699df394622386afca5f3
Author: Radek Doulik <rodo at novell.com>
Date:   Tue Dec 11 15:35:43 2012 +0100

    use effect references
    
    Change-Id: Ie0d295cd7db695f777071edcd9b792056ac783ef

diff --git a/oox/inc/oox/drawingml/theme.hxx b/oox/inc/oox/drawingml/theme.hxx
index e7b1030..12bb62b 100644
--- a/oox/inc/oox/drawingml/theme.hxx
+++ b/oox/inc/oox/drawingml/theme.hxx
@@ -37,7 +37,7 @@ const sal_Int32 THEMED_STYLE_INTENSE    = 3;
 
 typedef RefVector< FillProperties >                     FillStyleList;
 typedef RefVector< LineProperties >                     LineStyleList;
-typedef RefVector< PropertyMap >                        EffectStyleList;
+typedef RefVector< EffectProperties >                   EffectStyleList;
 typedef RefMap< sal_Int32, TextCharacterProperties >    FontScheme;
 
 // ============================================================================
@@ -68,6 +68,7 @@ public:
 
     inline EffectStyleList&         getEffectStyleList() { return maEffectStyleList; }
     inline const EffectStyleList&   getEffectStyleList() const { return maEffectStyleList; }
+    const EffectProperties*         getEffectStyle( sal_Int32 nIndex ) const;
 
     inline FontScheme&              getFontScheme() { return maFontScheme; }
     inline const FontScheme&        getFontScheme() const { return maFontScheme; }
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index dba41af..3318ab8 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -490,6 +490,8 @@ Reference< XShape > Shape::createAndInsert(
         aFillProperties.moFillType = XML_noFill;
         sal_Int32 nFillPhClr = -1;
         EffectProperties aEffectProperties;
+        // TODO: use ph color when applying effect properties
+        //sal_Int32 nEffectPhClr = -1;
 
         if( pTheme )
         {
@@ -505,12 +507,13 @@ Reference< XShape > Shape::createAndInsert(
                     aFillProperties.assignUsed( *pFillProps );
                 nFillPhClr = pFillRef->maPhClr.getColor( rGraphicHelper );
             }
-//            if( const ShapeStyleRef* pEffectRef = getShapeStyleRef( XML_fillRef ) )
-//            {
-//                if( const EffectProperties* pEffectProps = pTheme->getEffectStyle( pEffectRef->mnThemedIdx ) )
-//                    aEffectProperties.assignUsed( *pEffectProps );
-//                nEffectPhClr = pEffectRef->maPhClr.getColor( rGraphicHelper );
-//            }
+            if( const ShapeStyleRef* pEffectRef = getShapeStyleRef( XML_effectRef ) )
+            {
+                if( const EffectProperties* pEffectProps = pTheme->getEffectStyle( pEffectRef->mnThemedIdx ) )
+                    aEffectProperties.assignUsed( *pEffectProps );
+                // TODO: use ph color when applying effect properties
+                // nEffectPhClr = pEffectRef->maPhClr.getColor( rGraphicHelper );
+            }
         }
 
         aLineProperties.assignUsed( getLineProperties() );
@@ -535,6 +538,7 @@ Reference< XShape > Shape::createAndInsert(
             mpTablePropertiesPtr->pushToPropSet( rFilterBase, xSet, mpMasterTextListStyle );
         aFillProperties.pushToPropMap( aShapeProps, rGraphicHelper, mnRotation, nFillPhClr );
         aLineProperties.pushToPropMap( aShapeProps, rGraphicHelper, nLinePhClr );
+        // TODO: use ph color when applying effect properties
         aEffectProperties.pushToPropMap( aShapeProps, rGraphicHelper );
 
         // applying autogrowheight property before setting shape size, because
diff --git a/oox/source/drawingml/theme.cxx b/oox/source/drawingml/theme.cxx
index 32c0997..c60b764 100644
--- a/oox/source/drawingml/theme.cxx
+++ b/oox/source/drawingml/theme.cxx
@@ -55,6 +55,11 @@ const LineProperties* Theme::getLineStyle( sal_Int32 nIndex ) const
      return lclGetStyleElement( maLineStyleList, nIndex );
 }
 
+const EffectProperties* Theme::getEffectStyle( sal_Int32 nIndex ) const
+{
+    return lclGetStyleElement( maEffectStyleList, nIndex );
+}
+
 const TextCharacterProperties* Theme::getFontStyle( sal_Int32 nSchemeType ) const
 {
     return maFontScheme.get( nSchemeType ).get();
diff --git a/oox/source/drawingml/themeelementscontext.cxx b/oox/source/drawingml/themeelementscontext.cxx
index c68369e..a171545 100644
--- a/oox/source/drawingml/themeelementscontext.cxx
+++ b/oox/source/drawingml/themeelementscontext.cxx
@@ -21,6 +21,8 @@
 #include "oox/drawingml/clrschemecontext.hxx"
 #include "oox/drawingml/lineproperties.hxx"
 #include "oox/drawingml/linepropertiescontext.hxx"
+#include "oox/drawingml/effectproperties.hxx"
+#include "oox/drawingml/effectpropertiescontext.hxx"
 #include "oox/drawingml/fillproperties.hxx"
 #include "oox/drawingml/fillpropertiesgroupcontext.hxx"
 #include "oox/drawingml/theme.hxx"
@@ -121,9 +123,13 @@ Reference< XFastContextHandler > EffectStyleListContext::createFastChildContext(
     switch( nElement )
     {
         case A_TOKEN( effectStyle ):
-            mrEffectStyleList.push_back( EffectStyleList::value_type( new PropertyMap ) );
-            // TODO: import effect styles
-            return 0;
+            mrEffectStyleList.push_back( EffectPropertiesPtr( new EffectProperties ) );
+            return this;
+
+        case A_TOKEN( effectLst ):  // CT_EffectList
+            if( mrEffectStyleList.back() )
+                return new EffectPropertiesContext( *this, *mrEffectStyleList.back() );
+            break;
     }
     return 0;
 }


More information about the Libreoffice-commits mailing list