diff options
author | Armin Le Grand <alg@apache.org> | 2014-10-08 16:36:47 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-10-08 20:58:42 +0100 |
commit | 78775257a338bb348d9bd55f32ab77ba399abca9 (patch) | |
tree | 2f53e362e16e8f50a9d31125f2a5a9e8583f898c /svgio/source/svgreader/svgtools.cxx | |
parent | b77b1ba8f0ec18d37c0bfdd795a1a9726df01482 (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.cxx | 20 |
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: { |