Fix regressions in "Pattern along path" and "Scatter" extensions

With these extensions first the porting to 1.0 was messed up and then they have been sorely neglected. So there's a bunch of issues addressed here.

I restored the extensions to behave generally as in 0.92.4. and as described on this page. The examples for Pattern along path have been added as unit tests.

*: Due to #367 (closed), the bounding box computation is broken which affects this extension as well. As a workaround, convert circles/rects to paths first.

I have also fixed a few things in inkex.

  • Clone unlinking had a wrong transform order (related to #301)
  • Same problem in PathModifier.expand_groups
  • The paint_order() function used naive string comparison on xpaths for sorting instead of natural sort, so "/*/*[4]/*[16]" < "/*/*[4]/*[9]"

These were of course all covered by unit tests, but neither ran into the problem (e.g. one transform was always identity, so order doesn't matter; no unit test selected such a combination of objects). The new unit tests for the two extensions now cover these cases as well.

Apart from that, cleaned up the code and moved quite a bit to the parent class, added some comments and improved the help tag.

Merge request reports

Loading