summaryrefslogtreecommitdiff
path: root/svgio/source/svgreader/svgtools.cxx
diff options
context:
space:
mode:
authorArmin Le Grand <alg@apache.org>2014-10-08 16:36:47 +0000
committerCaolán McNamara <caolanm@redhat.com>2014-10-08 20:58:42 +0100
commit78775257a338bb348d9bd55f32ab77ba399abca9 (patch)
tree2f53e362e16e8f50a9d31125f2a5a9e8583f898c /svgio/source/svgreader/svgtools.cxx
parentb77b1ba8f0ec18d37c0bfdd795a1a9726df01482 (diff)
Resolves: #i125332# made css style stuff aware that it is case independent
(cherry picked from commit 2b179313ac95f4ae9dc2cf8f6b6d577ea893c7a8) Conflicts: svgio/inc/svgio/svgreader/svgstyleattributes.hxx svgio/inc/svgio/svgreader/svgtoken.hxx svgio/inc/svgio/svgreader/svgtools.hxx svgio/source/svgreader/svgdocumenthandler.cxx svgio/source/svgreader/svgnode.cxx svgio/source/svgreader/svgstyleattributes.cxx svgio/source/svgreader/svgtoken.cxx svgio/source/svgreader/svgtools.cxx Change-Id: I8bac5a185feb0c7a54aa7bf816ab7aabd71a2e19
Diffstat (limited to 'svgio/source/svgreader/svgtools.cxx')
-rw-r--r--svgio/source/svgreader/svgtools.cxx20
1 files changed, 13 insertions, 7 deletions
diff --git a/svgio/source/svgreader/svgtools.cxx b/svgio/source/svgreader/svgtools.cxx
index 8c7ba0f5f573..f3faa470a679 100644
--- a/svgio/source/svgreader/svgtools.cxx
+++ b/svgio/source/svgreader/svgtools.cxx
@@ -633,7 +633,7 @@ namespace svgio
}
}
- bool match_colorKeyword(basegfx::BColor& rColor, const OUString& rName)
+ bool match_colorKeyword(basegfx::BColor& rColor, const OUString& rName, bool bCaseIndependent)
{
typedef boost::unordered_map< OUString, Color,
OUStringHash,
@@ -793,7 +793,13 @@ namespace svgio
aColorTokenMapperList.insert(ColorTokenValueType(OUString("yellowgreen"), Color(154, 205, 50)));
}
- const ColorTokenMapper::const_iterator aResult(aColorTokenMapperList.find(rName));
+ ColorTokenMapper::const_iterator aResult(aColorTokenMapperList.find(rName));
+
+ if(bCaseIndependent && aResult == aColorTokenMapperList.end())
+ {
+ // also try case independent match (e.g. for Css styles)
+ aResult = aColorTokenMapperList.find(rName.toAsciiLowerCase());
+ }
if(aResult == aColorTokenMapperList.end())
{
@@ -806,7 +812,7 @@ namespace svgio
}
}
- bool read_color(const OUString& rCandidate, basegfx::BColor& rColor)
+ bool read_color(const OUString& rCandidate, basegfx::BColor& rColor, bool bCaseIndependent)
{
const sal_Int32 nLen(rCandidate.getLength());
@@ -914,7 +920,7 @@ namespace svgio
else
{
// color keyword
- if(match_colorKeyword(rColor, rCandidate))
+ if(match_colorKeyword(rColor, rCandidate, bCaseIndependent))
{
return true;
}
@@ -1199,13 +1205,13 @@ namespace svgio
return false;
}
- bool readSvgPaint(const OUString& rCandidate, SvgPaint& rSvgPaint, OUString& rURL)
+ bool readSvgPaint(const OUString& rCandidate, SvgPaint& rSvgPaint, OUString& rURL, bool bCaseIndependent)
{
if( !rCandidate.isEmpty() )
{
basegfx::BColor aColor;
- if(read_color(rCandidate, aColor))
+ if(read_color(rCandidate, aColor, bCaseIndependent))
{
rSvgPaint = SvgPaint(aColor, true, true);
return true;
@@ -1277,7 +1283,7 @@ namespace svgio
if(!aTokenName.isEmpty())
{
- switch(StrToSVGToken(aTokenName.makeStringAndClear()))
+ switch(StrToSVGToken(aTokenName.makeStringAndClear(), false))
{
case SVGTokenDefer:
{