summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2017-09-18 15:30:59 +0200
committerAndras Timar <andras.timar@collabora.com>2017-09-26 12:08:52 +0200
commited8d2a45cb9745b8de1f287a2a6ce95e3ab6b07f (patch)
treeb7c5e8004f26990c17e51685ec89dc3cbf5728ad /oox
parenta5853d13d3cab93e666301e90da786d55d02f1ee (diff)
tdf#112333 PPTX export fill.type & fill.on
Change-Id: I2407d0227e10204354ee69fd9a2af9ca93077221 Reviewed-on: https://gerrit.libreoffice.org/42432 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/42526 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'oox')
-rw-r--r--oox/source/ppt/animvariantcontext.cxx32
-rw-r--r--oox/source/ppt/pptfilterhelpers.cxx1
-rw-r--r--oox/source/ppt/timenodelistcontext.cxx14
3 files changed, 42 insertions, 5 deletions
diff --git a/oox/source/ppt/animvariantcontext.cxx b/oox/source/ppt/animvariantcontext.cxx
index 1c879a6582ec..9cbfab2e0bb4 100644
--- a/oox/source/ppt/animvariantcontext.cxx
+++ b/oox/source/ppt/animvariantcontext.cxx
@@ -24,6 +24,7 @@
#include <osl/diagnose.h>
#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/drawing/FillStyle.hpp>
#include <rtl/ustring.hxx>
#include "oox/helper/attributelist.hxx"
@@ -140,6 +141,22 @@ namespace oox { namespace ppt {
return bRet;
}
+ bool convertFillStyle( const OUString& rString, css::drawing::FillStyle& rValue )
+ {
+ if( rString == "solid" )
+ {
+ rValue = css::drawing::FillStyle::FillStyle_SOLID;
+ return true;
+ }
+ else if( rString == "none" )
+ {
+ rValue = css::drawing::FillStyle::FillStyle_NONE;
+ return true;
+ }
+ else
+ return false;
+ }
+
AnimVariantContext::AnimVariantContext( FragmentHandler2& rParent, sal_Int32 aElement, Any & aValue )
: FragmentHandler2( rParent )
, mnElement( aElement )
@@ -187,8 +204,19 @@ namespace oox { namespace ppt {
case PPT_TOKEN( strVal ):
{
OUString val = rAttribs.getString( XML_val, OUString() );
- convertMeasure( val ); // ignore success or failure if it fails, use as is
- maValue = makeAny( val );
+
+ if( convertMeasure( val ) )
+ {
+ maValue <<= val;
+ }
+ else
+ {
+ css::drawing::FillStyle eFillStyle;
+ if( convertFillStyle( val, eFillStyle ) )
+ maValue <<= eFillStyle;
+ else
+ maValue <<= val;
+ }
return this;
}
default:
diff --git a/oox/source/ppt/pptfilterhelpers.cxx b/oox/source/ppt/pptfilterhelpers.cxx
index 6496e9153e60..f117e2a1210d 100644
--- a/oox/source/ppt/pptfilterhelpers.cxx
+++ b/oox/source/ppt/pptfilterhelpers.cxx
@@ -38,6 +38,7 @@ namespace oox { namespace ppt {
{ MS_FILLCOLOR, "fillColor", "FillColor" },
{ MS_FILLCOLOR, "fillcolor", "FillColor" },
{ MS_FILLTYPE, "fill.type", "FillStyle" },
+ { MS_FILLTYPE, "fill.on", "FillOn" },
{ MS_STROKECOLOR, "stroke.color", "LineColor" },
{ MS_STROKEON, "stroke.on", "LineStyle" },
{ MS_STYLECOLOR, "style.color", "CharColor" },
diff --git a/oox/source/ppt/timenodelistcontext.cxx b/oox/source/ppt/timenodelistcontext.cxx
index 287e67ebf066..fc890c8b97c2 100644
--- a/oox/source/ppt/timenodelistcontext.cxx
+++ b/oox/source/ppt/timenodelistcontext.cxx
@@ -189,9 +189,17 @@ namespace oox { namespace ppt {
if( maTo >>= aString )
{
OSL_TRACE( "Magic conversion %s", OUSTRING_TO_CSTR( aString ) );
- maTo = makeAny( aString == "visible" );
- if( !maTo.has<sal_Bool>() )
- OSL_TRACE( "conversion failed" );
+
+ if( aString == "visible" || aString == "true" )
+ maTo <<= true;
+ else if( aString == "false" )
+ maTo <<= false;
+
+ if (!maTo.has<sal_Bool>())
+ {
+ SAL_WARN("oox.ppt", "conversion failed");
+ maTo <<= false;
+ }
}
mpNode->setTo( maTo );
}