summaryrefslogtreecommitdiff
path: root/svgio
diff options
context:
space:
mode:
authorXisco Fauli <anistenis@gmail.com>2016-01-30 01:50:07 +0100
committerArmin Le Grand <Armin.Le.Grand@cib.de>2016-02-01 16:02:38 +0000
commit359f43f8e76c3bd85c3daf35b5a6d925a4c8c64f (patch)
treea8e9550b1b8a105999f430f081fef9126f7ae69a /svgio
parenta395a1137d2e9430dfd5fd20e81c9413f06a554d (diff)
tdf#79163: SVGIO: Fix problem with opacity attribute
Opacity attribute didn't work because it was always set to 1.0 Change-Id: I3a2029ef23acf9d8c0f346e04341db33c6802b8e Reviewed-on: https://gerrit.libreoffice.org/21911 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
Diffstat (limited to 'svgio')
-rw-r--r--svgio/inc/svgio/svgreader/svgstyleattributes.hxx2
-rw-r--r--svgio/source/svgreader/svgstyleattributes.cxx28
2 files changed, 26 insertions, 4 deletions
diff --git a/svgio/inc/svgio/svgreader/svgstyleattributes.hxx b/svgio/inc/svgio/svgreader/svgstyleattributes.hxx
index 02cf55dd0252..9d589d1aad6e 100644
--- a/svgio/inc/svgio/svgreader/svgstyleattributes.hxx
+++ b/svgio/inc/svgio/svgreader/svgstyleattributes.hxx
@@ -425,7 +425,7 @@ namespace svgio
const basegfx::BColor* getCurrentColor() const;
/// Opacity content
- SvgNumber getOpacity() const { return maOpacity; }
+ SvgNumber getOpacity() const;
void setOpacity(const SvgNumber& rOpacity = SvgNumber()) { maOpacity = rOpacity; }
/// Visibility
diff --git a/svgio/source/svgreader/svgstyleattributes.cxx b/svgio/source/svgreader/svgstyleattributes.cxx
index 3e3fa0091378..e733396b3dcd 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -1056,7 +1056,7 @@ namespace svgio
return;
}
- const double fOpacity(getOpacity().getNumber());
+ const double fOpacity(getOpacity().solve(mrOwner));
if(basegfx::fTools::equalZero(fOpacity))
{
@@ -1113,7 +1113,7 @@ namespace svgio
{
if(!rSource.empty())
{
- const double fOpacity(getOpacity().getNumber());
+ const double fOpacity(getOpacity().solve(mrOwner));
if(basegfx::fTools::equalZero(fOpacity))
{
@@ -1210,7 +1210,7 @@ namespace svgio
maTextDecoration(TextDecoration_notset),
maTextAnchor(TextAnchor_notset),
maColor(),
- maOpacity(1.0),
+ maOpacity(),
maVisibility(Visibility_visible),
maTitle(),
maDesc(),
@@ -2163,6 +2163,28 @@ namespace svgio
return SvgNumber(1.0);
}
+ SvgNumber SvgStyleAttributes::getOpacity() const
+ {
+ if(mbIsClipPathContent)
+ {
+ return SvgNumber(1.0);
+ }
+ else if(maOpacity.isSet())
+ {
+ return maOpacity;
+ }
+
+ const SvgStyleAttributes* pSvgStyleAttributes = getParentStyle();
+
+ if(pSvgStyleAttributes)
+ {
+ return pSvgStyleAttributes->getOpacity();
+ }
+
+ // default is 1
+ return SvgNumber(1.0);
+ }
+
FillRule SvgStyleAttributes::getFillRule() const
{
if(FillRule_notset != maFillRule)