nofill and nostroke support problem

Lukast dev lukast.dev at gmail.com
Fri Jul 15 08:40:45 BST 2011


Hello,

so far no response...we had discussion with boemann, so I paste it here,
maybe it will inspire somebody for some idea.

<irc-talk>
(11:47:40 AM) boemann: LukasT: suggestion: paint fill and outline as two steps
(11:48:13 AM) boemann: if say nostroke the just replace that part of
the path with a move
(11:49:04 AM) boemann: then you can still paint/fill like now but the
disabled part is not drawn

(12:03:52 PM) LukasT: boemann: what do you mean by replace that part
of the path with move?
(12:08:29 PM) boemann: like create a qpainterpath copy but where the
disabled parts are nor drawn
(12:10:16 PM) LukasT: boemann: how to create  qpainterpath copy where
the disabled parts are nor drawn? some pseudo code?
(12:10:43 PM) boemann: well i have not looked at the code in detail
(12:10:47 PM) boemann: or at all
(12:11:08 PM) LukasT: boemann: but I want some pseudo code of :how to
create  qpainterpath copy where the disabled parts are nor drawn:
(12:11:11 PM) boemann: but i assume you have some kind of generic path
you create the qpainterpath from

(12:11:22 PM) LukasT: boemann: we have KoSubpath
(12:11:35 PM) LukasT: boemann: that is set of points which is
converted to QPainterPath
(12:11:57 PM) LukasT: and N KoSubpaths are converted to one
QPainterPath so that fill rule can be evaluated
(12:12:10 PM) boemann: right and then instead of adding that to the
qpainterpath you just do a qpainterpath::moveTo() to the final
position of that subpath
(12:12:11 PM) LukasT: I tried to render the shape per subpath
(12:12:41 PM) boemann: that way you still end up with one qpainterpath
but with subparts disabled
(12:13:04 PM) LukasT: boemann: but how that solves nostroke? nostroke
means that the shape of the subpath is filled but the stroke is not
there

(12:13:29 PM) boemann: yes you need to paint in two steps
(12:13:35 PM) boemann: first fill then stroke
(12:13:46 PM) boemann: and create two different qpainterpaths
(12:13:57 PM) boemann: for stroke moveTo should do
(12:14:03 PM) LukasT: boemann: sounds like a good plan, I will try
(12:14:18 PM) boemann: but for fill you might have to do a lineTo to
get the right result
(12:18:15 PM) LukasT: boemann: I think there might be a problem with
rendering fill and stroke separately
(12:18:23 PM) LukasT: boemann: the order of the shape subpaths
(12:19:14 PM) LukasT: boemann: is important, some part (subpath) of
the shape can cover part of the other subpath's outline
(12:20:37 PM) boemann: hmm
(12:20:47 PM) boemann: true

(12:21:48 PM) boemann: in that case i think there is no other solution
than to implement the fill and draw ourselves
(12:22:08 PM) LukasT: that is complex task
(12:22:40 PM) boemann: sure is
(12:23:00 PM) boemann: better way would be to patch qt
(12:23:21 PM) LukasT: yes
(12:25:43 PM) boemann: i still think the nofill attribute on subpath
level is flawed
(12:25:49 PM) boemann: it just doesn't make sense
(12:30:45 PM) LukasT: boemann: it's like injecting fill rule algorithm :)
</irc-talk>

These methods gave me some hope for the nofill, nostroke problem
http://doc.qt.nokia.com/latest/qpainterpath.html#toFillPolygons
http://doc.qt.nokia.com/latest/qpainterpath.html#toSubpathPolygons

but I still haven't found what I'm looking for...(read in the melody
of that U2 song)
No solution found :-(

Any ideas?



More information about the calligra-devel mailing list