Review Request: nofill and nostroke support in enhanced path from odf

Lukáš Tvrdý lukast.dev at gmail.com
Mon Jul 11 11:34:05 BST 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/101873/
-----------------------------------------------------------

(Updated July 11, 2011, 10:34 a.m.)


Review request for Calligra, Jan Hambrecht and Thorsten Zachmann.


Changes
-------

I fixed the issues that Zagge pointed out.

One dispute was how to allow clients of KoSubpath to manipulate with the points of the KoSubpath
by index. Previously the data structure QList was fully exposed. Now just some subset of the operations
is exposed to preserve encapsulation. I added operator [] to KoSubpath. Boemann suggested to use pointAt(int i),
but I decided for operator to stay partially "source compatible" with plugins like StarShape, RectangleShape and EllipseShape.

Testing
o checked unit tests -- no regression found by unit tests
o manually checked the output from the bug 239561(autoshape different types.pptx)


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 (updated)
-----

  libs/flake/CMakeLists.txt b9f388f 
  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/KoSubpathRemoveCommand.cpp 79894f0 
  plugins/pathshapes/ellipse/EllipseShape.cpp 0576f5d 
  plugins/pathshapes/enhancedpath/EnhancedPathCommand.cpp a58d67e 
  plugins/pathshapes/enhancedpath/EnhancedPathShape.cpp 46d76de 
  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áš

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/calligra-devel/attachments/20110711/6c0355a2/attachment.htm>


More information about the calligra-devel mailing list