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

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Fri Jan 18 06:24:38 PST 2013


 oox/inc/oox/vml/vmlformatting.hxx  |    5 ++++-
 oox/source/vml/vmlformatting.cxx   |    7 ++++++-
 oox/source/vml/vmlshapecontext.cxx |    3 ++-
 3 files changed, 12 insertions(+), 3 deletions(-)

New commits:
commit 2cacaf6ab0acf3188f43df02ef3fc87082e351b2
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Fri Jan 18 15:22:36 2013 +0100

    oox::vml::ShadowModel: differentiate between not having it and having it off
    
    Having it explicitly disabled was already handled, but apparently
    01d059c13e39f4fba75e2152b4db6b0b746bca71 turned on shadows by default.
    Fix this.
    
    Change-Id: I1401a28b36a9b5aea302f9a19a6d02a29e6b358d

diff --git a/oox/inc/oox/vml/vmlformatting.hxx b/oox/inc/oox/vml/vmlformatting.hxx
index 0d8db16..d675255 100644
--- a/oox/inc/oox/vml/vmlformatting.hxx
+++ b/oox/inc/oox/vml/vmlformatting.hxx
@@ -228,11 +228,14 @@ struct FillModel
 /** The shadow model structure contains all shape shadow properties. */
 struct ShadowModel
 {
-    OptValue<bool>     moHasShadow;               ///< Specifies whether to show a shadow.
+    bool               mbHasShadow;               ///< Is a v:shadow element seen?
+    OptValue<bool>     moShadowOn;                ///< Is the element turned on?
     OptValue<OUString> moColor;                   ///< Specifies the color of the shadow.
     OptValue<OUString> moOffset;                  ///< Specifies the shadow's offset from the shape's location.
     OptValue<double>   moOpacity;                 ///< Specifies the opacity of the shadow.
 
+    ShadowModel();
+
     /** Writes the properties to the passed property map. */
     void pushToPropMap(oox::drawingml::ShapePropertyMap& rPropMap, const GraphicHelper& rGraphicHelper) const;
 };
diff --git a/oox/source/vml/vmlformatting.cxx b/oox/source/vml/vmlformatting.cxx
index 3113d57..1af17a38 100644
--- a/oox/source/vml/vmlformatting.cxx
+++ b/oox/source/vml/vmlformatting.cxx
@@ -714,9 +714,14 @@ void FillModel::pushToPropMap( ShapePropertyMap& rPropMap, const GraphicHelper&
 
 // ============================================================================
 
+ShadowModel::ShadowModel()
+        : mbHasShadow(false)
+{
+}
+
 void ShadowModel::pushToPropMap(ShapePropertyMap& rPropMap, const GraphicHelper& rGraphicHelper) const
 {
-    if (moHasShadow.has() && !moHasShadow.get())
+    if (!mbHasShadow || (moShadowOn.has() && !moShadowOn.get()))
         return;
 
     drawingml::Color aColor = ConversionHelper::decodeColor(rGraphicHelper, moColor, moOpacity, API_RGB_GRAY);
diff --git a/oox/source/vml/vmlshapecontext.cxx b/oox/source/vml/vmlshapecontext.cxx
index fc5ad9f..39ac325 100644
--- a/oox/source/vml/vmlshapecontext.cxx
+++ b/oox/source/vml/vmlshapecontext.cxx
@@ -335,7 +335,8 @@ ContextHandlerRef ShapeTypeContext::onCreateContext( sal_Int32 nElement, const A
         break;
         case VML_TOKEN( shadow ):
         {
-            mrTypeModel.maShadowModel.moHasShadow.assignIfUsed(lclDecodeBool(rAttribs, XML_on));
+            mrTypeModel.maShadowModel.mbHasShadow = true;
+            mrTypeModel.maShadowModel.moShadowOn.assignIfUsed(lclDecodeBool(rAttribs, XML_on));
             mrTypeModel.maShadowModel.moColor.assignIfUsed(rAttribs.getString(XML_color));
             mrTypeModel.maShadowModel.moOffset.assignIfUsed(rAttribs.getString(XML_offset));
             mrTypeModel.maShadowModel.moOpacity = lclDecodePercent(rAttribs, XML_opacity, 1.0);


More information about the Libreoffice-commits mailing list