Tasks
There is a lot left to do, especially the integration with other web technologies. See the following tasks:KDOM
KSVG2
General
- check whether we need more defaults like "120%" for filters in other places
- finish markers
- ems/exs length support
- optimize group opacity (reduce tempbuffer size)
- look into making progressive rendering generic (SVGStyledElementImpl.cc) (fire the event loop while progressively rendering so GUI keeps repsonisive)
- find out why early resizing (as soon as width/height on outer svg is known) doesn't visible resize the widget. (suspicion: event loop has no chance to function)
- printing (combine with KDOMView/KHTMLView?)
Missing classes as defined by IDL
Overview of all missing svg classes:- SVGICCColor, SVGCSSRule, SVGColorProfileElement, SVGColorProfileRule, SVGMaskElement, SVGCursorElement, SVGMetadataElement, SVGForeignObjectElement
- [text related] SVGTextPathElement, SVGAltGlyphElement, SVGAltGlyphDefElement, SVGAltGlyphItemElement, SVGGlyphRefElement, SVGFontElement, SVGGlyphElement, SVGMissingGlyphElement, SVGHKernElement, SVGVKernElement, SVGFontFaceElement. SVGFontFaceSrcElement, SVGFontFaceUriElement, SVGFontFaceFormatElement, SVGFontFaceNameElement, SVGDefinitionSrcElement
- [filter related]
SVGFEConvolveMatrixElement, SVGFEDiffuseLightingElement, SVGFEDistantLightElement, SVGFEPointLightElement, SVGFESpotLightElement, SVGFEDisplacementMapElement, SVGFEMorphologyElement, SVGFESpecularLightingElement - [animation related]
SVGAnimateMotionElement, SVGMPathElement
Dynamic changes
- check pseudo style selectors (mostyle, link, hover etc..) (addPseudoStyle/getPseudoStyle.. needs checking in all kdom/ksvg2/khtml2!)
- dynamic update testcases:
- dynamic clippath changes (clippathchanges.svg)
- dynamic <svg> changes (svgchanges.svg)
Linking
- interactivity (linking using xlink:href, <a> support)
- add SVGViewSpec interface (currentView() function in SVGSVGElement)
Animations
To complete animation support:-
attribute handling in SVGAnimationElementImpl
- 'restart' support
- 'min' / 'max' support
- 'calcMode' / 'keyTimes' / 'keySplines' support
-
corner cases: (create testcases and check whether it works in ksvg2)
- If to is used without from, (to animation) and if the attribute supports addition, the animation is defined to be a kind of mix of additive and non-additive. The underlying value is used as a starting point as with additive animation, however the ending value specified by the to attribute overrides the underlying value as though the animation was non-additive.
- <animateColor>
- use 'calcMode' / 'keyTimes' / 'keySplines' attributes
- <animateTransform>
- use 'calcMode' / 'keyTimes' / 'keySplines' attributes
- <animateMotion>
- create element (!)
- 'fill' support
- use 'by' attribute
- use 'values' attribute
- use 'from' / 'to' attributes
- use 'additive' / 'accumulate' attributes
- use 'calcMode' / 'keyTimes' / 'keySplines' attributes
- make animated values available as animVals
- <animate>
- 'fill' support
- use 'by' attribute
- use 'values' attribute
- use 'from' / 'to' attributes
- use 'additive' / 'accumulate' attributes
- use 'calcMode' / 'keyTimes' / 'keySplines' attributes
- make animated values available as animVals
Color/PaintServer handling
- icc color handling (aka. color profiles)
Masking/Clipping
- 'mask' element is full todo.
- 'view' element is missing.
Images
- add advanced image stuff (inline base64, svg referencing, icc color profile matching)
Filters
- Work has been started on this. Better bookkeeping and addition of filter effects is needed, as well as optimization.
Text
- text support <tspan>/<tref>/<textPath> / svg font support (Qt4's ability to render text into QPainterPaths will probably be a key part)
Integration
- DCOP Interface?
- Other W3C techologies?
KCanvas
- adapt KCanvasImage, aka. hide KCanvasImageBuffer (use QImage where needed)
After we moved to Qt4 hacking:
- add Qt4 Arthur backend, let it directly draw to the QWidget
[ Edit ]
KSVG Homepage