Incorrect CSS handling in Qt Svg module?
-
wrote on 30 Jul 2010, 11:48 last edited by
Hi,
I have a SVG which uses a CSS file. I find if some SVG style attributes are split between CSS and SVG, the QSvgRenderer does not handle it correctly.
Take this SVG element
@
<rect width="50" height="30" fill-opacity="0.5" class="myfill"/>
@and the CSS that defines the fill attribute is
@
.myfill { fill: #ff0000; }
@So, I should get a 0.5 opacity red rectangle in my SVG. This works fine in various browsers like Chrome and Firefox, but when I use Qt SVG module to render this, it does not work properly.
I ran through the code and find that the switch case for handling CSS elements searches for the starting letter of the element and the whole logic is based on that. So when fill and fill-opacity are split between the SVG and CSS, this does not work. But if I have both fill and fill-opacity in the same place (either both in the SVG or both in the CSS), then the Qt SVG renderer shows the rectangle correctly! Can someone clarify this to me ... is the Qt code of parsing the CSS correct?
-
wrote on 27 Sept 2010, 16:43 last edited by
Added a bug report for this "here":http://bugreports.qt.nokia.com/browse/QTBUG-14001
-
wrote on 29 Sept 2010, 02:51 last edited by
QtSvgRenderer also fails to load the CSS if the SVG uses relative path to the CSS.
Have logged a bug "here":http://bugreports.qt.nokia.com/browse/QTBUG-14043