> On July 8, 2011, 4:05 a.m., Thorsten Zachmann wrote: > > libs/flake/KoPathShape.h, lines 178-187 > > <http://git.reviewboard.kde.org/r/101873/diff/1/?file=26224#file26224line178> > > > > I think these methods should be enhanced to make it possible to > > set/unset the fill/storke of any subpath in the shape.
Ok, more general version in KoPathShape liuke setStrokeEnabled(int index, bool enabled), and for KoSubpath just setStrokeEnabled(bool enabled). Correct? > On July 8, 2011, 4:05 a.m., Thorsten Zachmann wrote: > > libs/flake/KoSubpath.h, lines 47-48 > > <http://git.reviewboard.kde.org/r/101873/diff/1/?file=26227#file26227line47> > > > > This break encapsulation. The properties should be moved to a d > > pointer. > > Don't use a pointer for points > > > > QList<KoPathPoint *> points > > is much better here > > > > To avoid constructs like > > > > subpath->points->last() > > > > KoSubpath should provide all methods like QList that are used. > > so provide methods like last(), size(), begin() ... > > directly in KoSubpath. > > With that the diff will also be much smaller and it is much nicer api. Ok, I will. I though it is better to expose that list as I have to duplicate the last(), size(), etc. It breaks the encapsulation for sure.. > On July 8, 2011, 4:05 a.m., Thorsten Zachmann wrote: > > libs/flake/KoSubpath.h, line 124 > > <http://git.reviewboard.kde.org/r/101873/diff/1/?file=26227#file26227line124> > > > > The name of the method is not very clear that it attached to the > > subpath path. How about > > appendPath(QPainterPath &path); I agree with appendPath > On July 8, 2011, 4:05 a.m., Thorsten Zachmann wrote: > > libs/flake/KoPathShape.cpp, lines 248-249 > > <http://git.reviewboard.kde.org/r/101873/diff/1/?file=26225#file26225line248> > > > > You should iterate over the subpaths here. Then no construct like the > > QPair is needed. It avoids copying the stuff which is not necessary. So > > just do > > foreach(KoSubpath * subpath, m_subpaths) { > > > > > > } > > > > As a small optimization you don't need to get the outline of the > > subpath if both the fill and the stroke of a subpath is disabled which > > should make it a bit faster. Ok, QPainterPath is implicitly shared, so no copy occurs til you change the object. I would just move setFillStroke to constraction of the QPainterPath But I like your advice, I will implement it. - Lukáš ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/101873/#review4513 ----------------------------------------------------------- On July 8, 2011, 7:02 a.m., Lukáš Tvrdý wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://git.reviewboard.kde.org/r/101873/ > ----------------------------------------------------------- > > (Updated July 8, 2011, 7:02 a.m.) > > > Review request for Calligra, Jan Hambrecht and Thorsten Zachmann. > > > Summary > ------- > > This patch implements S and F commands in draw:enhanced-path. So far there > were no support for this. > > The idea is that the path is now rendered per sub-path, because S (no stroke) > and F (no fill) can be > specified per subpath in the draw:enhanced-path. > > I changed typedef KoSubpath to standalone class as it needs attributes about > no fill and no stroke. > I moved the code that operates only on KoSubpath to that class from > KoPathShape. > Then I render the output per QPainterPath with appropriate attributes (I turn > off the pen temporary if no stroke and turn of the brush if no fill) > > > This addresses bug 239561. > http://bugs.kde.org/show_bug.cgi?id=239561 > > > Diffs > ----- > > libs/flake/CMakeLists.txt b9f388f > libs/flake/KoConnectionShape.cpp 210e171 > libs/flake/KoPathShape.h 8b54f26 > libs/flake/KoPathShape.cpp da6c928 > libs/flake/KoPathShape_p.h e1e2843 > libs/flake/KoSubpath.h PRE-CREATION > libs/flake/KoSubpath.cpp PRE-CREATION > libs/flake/commands/KoParameterToPathCommand.cpp 177d35d > libs/flake/commands/KoSubpathRemoveCommand.cpp 79894f0 > plugins/pathshapes/ellipse/EllipseShape.cpp 0576f5d > plugins/pathshapes/enhancedpath/EnhancedPathCommand.cpp a58d67e > plugins/pathshapes/enhancedpath/EnhancedPathShape.cpp 46d76de > plugins/pathshapes/rectangle/RectangleShape.cpp 9caca45 > plugins/pathshapes/star/StarShape.cpp 5fc8562 > > Diff: http://git.reviewboard.kde.org/r/101873/diff > > > Testing > ------- > > From bug 239561: > a) before patch > http://wstaw.org/m/2011/07/07/nofill_nostroke_example_before.png > b) with my patch > http://wstaw.org/m/2011/07/07/nofill_nostroke_example_after.png > > I first managed to break several unit tests (TestPointMergeCommand and > TestPathShape), > but I fixed all the problems and no tests are broken by this patch now. > > > Thanks, > > Lukáš > >
_______________________________________________ calligra-devel mailing list calligra-devel@kde.org https://mail.kde.org/mailman/listinfo/calligra-devel