Hey Devs,
I've got a plan for getting last year's connector work into use. I've updated the branch to the latest trunk (damn you changes!) so I'd like to get this merged in because it removes 1110 lines and replaces them with 91. So it's a big cleanup of code that was never in use:
https://code.launchpad.net/~doctormo/inkscape/knot-visio
This branch should maintain the same functionality as we currently have, plus a focus on the next steps to improve the functionality. Testing is required and advice for more experienced cpp developers about the use of std::map instead of a more appropriate std::list structure which I'm hoping can be picked up in merge review.
The next steps are the exciting parts. I thought the idea from last year about having a generic point anchor tool was really interesting. So the way the connector work will happen is, it'll simply use other non-connector functionality to achieve everything we want.
The anchor tool would insert a point path, which would be displayed on screen with either an knot-anchor which would just move along with it, or some other visual identifier which would not appear in renders. It would be selectable using the near-detection and then groupable, transformable etc because it's a real point element on the canvas.
The anchor tool would be useful for a few functionalities. For the connector work we would use the point to join connectors together on canvas, as custom points on shapes when grouped with them, act as flexible points where custom paths around objects are required.
This offers the best combination of features while not requiring any custom attributes or elements and doesn't require a exo-canvas def addition (which would suck IMO). It's also groovy because the amount of code will be small and use lots of existing code to achieve what we want.
Best Regards, Martin Owens
Note: Apologies to all the wonderful responses in the thread last year, a week after my daughter was born and I fell of the productive Internet and only now is my time freeing up a bit.