On 09/04/2013 09:54 PM, Tavmjong Bah wrote:
Hi Sebastian,
On Fri, 2013-08-30 at 01:15 +0200, Sebastian Götte wrote:
this week I ironed out all crashes I could find and fixed the libavoid routing I recently broke. I fixed loading/saving of documents containing connectors and points (yay!) and back-ported the parts of the code that would need C++11 to compile to pre-C++11.
Things seem to be much more stable! Good work!
Tomorrow I will test more complicated libavoid routing and make a plan for object inclusion/exclusion selection and make a test build to verify everything works on a clean system followed by a few test runs inside valgrind. Remaining TODOs are icons for the toolbar buttons, undo handling, some more advanced point manipulation functions (mainly putting points in groups/taking them out of groups) and, finally, rebasing everything onto upstream. And there is the mystery of the lost cursor, but I think I'll figure that one out.
I got the code to compile... had to rerun autogen.sh and configure. I also, following Krzysztof's hint, had to put #include <glibmm/threads.h> at the top of src/connector-context.cpp. This is a hack as we should really shouldn't need to include it there.
Until we have a "proper" fix I will just add it there with a comment expressing these concerns.
Problems:
- How do I create a new connector from scratch? If I already have a
point, I can create a new connector but I can't figure out how to get that first point entered.
Shift-click with no selection
- Selecting an object and clicking the leftmost button ("Make
connector avoid selected objects") does not insert (or remove) an "inkscape:connector-avoid true" attribute.
- Changing the "Curvature" has no effect unless I select the
"object-avoiding polygon segment" followed by "object-avoiding line of orthogonal segments" buttons. There should be a signal/callback attached to the "Curvature" entry box to update the paths if necessary.
I will look into those two. Thanks!
- The one loss of functionality is that we can no longer connect to
a random object. I assume that once a point can be inserted into a group, this functionality will be restored by grouping a point with an object. (And hopefully, with SVG 2 Connectors, place points relative to the bounding box of an object.)
Yes, point grouping should fix this. A possible approach would be that if a point is snapped to the object's center/corners/sides the point is automatically grouped with the object.
Thanks, Sebastian