I'll be without phone or internet access for the next few days (hopefully not longer), so I probably won't be getting much Inkscape work done in that time. CVS isn't really very friendly for disconnected operation.
In my absence, there are a few important things I wanted to make sure were nailed down before the 0.39 release:
A. Clipping Paths
Clipping paths are an extremely important feature for me personally, so I want to make sure they're in order before the release.
1. I think the clipping-paths-not-activating-on-load bug is related to a cut+paste mistake in sp_item_set -- if you compare the SP_ATTR_CLIP_PATH and SP_ATTR_MASK branches, one ->clip_ref has not been changed to ->mask_ref in the SP_ATTR_MASK branch. (hopefully that's right; this is from memory) Could someone please check, fix and commit that?
2. 'clip-path' specifications are currently only supported as XML attributes, not style= properties. Changing that now will require non-trival architectural work (I think), so just be aware of that when testing.
3. In case Bulia or anyone is interested, clipping paths currently require recursive updates. Not fatal, but if it bothers you you might want to have a look.
B. Layers
I kind of snuck in some layers stuff over the weekend. You can pick "enter group" from the context menu to start using a group as the current layer (i.e. the drawing tools will draw within it). "leave group" will "back out a level" (until you hit the root <svg> element again).
I'd been hoping to get it a little more polished, but I probably won't have a chance before the release at this point...
1. The implementation is pretty crude and doesn't add any UI feedback; we should probably disable those menu entries for the final release
2. If you do decide to add feedback, I'd recommend adding a SigC++ signal to Inkscape::ObjectHierarchy that fires whenever the top or bottom object in the hierarchy changes. Also add a signal to SPDesktop that indicates when the current layer changes. The SPDesktop layer change should be driven by the signal belonging to SPDesktop::_layer_hierarchy (an Inkscape::ObjectHierarchy).
SPDesktop would also end up needing to keep a SigC::Connection around to track its connection to the hierarchy signal -- so please remember to:
a. explicitly call the constructor and destructors for any SPDesktop members of types in the SigC:: namespace
b. disconnect the SigC::Connection before destroying it
3. The tools currently set the newly created item's transform by directly assigning to SPItem::transform. That's incredibly bad, and I had not intended to leave it in. It'd be nice if someone could make a public SPItem::setTransform() method (which would more or less just call the private sp_item_(mumble?)_set_transform() .. sorry, this is from memory) and use that instead. SPItem::transform should really be treated as read-only by outsiders.
4. "enter group" and "leave group" should really both go next to each other in the menu and in interface.cpp
5. There are also some issues of "transparency" (in the sense of event delivery) for layers currently, which is another reason I think we're probably best off shipping with the feature disabled.
C. 0.40 release planning
Also some entries I want to make sure we have on the 0.40 roadmap in the wiki:
1. add a dependency on libgc (the Boehm conservative collector), which will be required for the AST code
2. add a dependency on libcroco (which will be needed for the CSS portion of AST)
3. switch to sigc++ 2.0/newer gtkmm early in 0.40, before we start doing gtkmm-intensive stuff like the layers dialog etc.
See y'all in a few days I hope...
-mental