Calligra/Flow/Constraint Layout Idea
Currently Kivio only has few once-off layout features, which cannot provide intelligent layout management such as keeping alignments and distributions, auto-adjusting stencil positions, and object-avoiding connector routing. I found a group of people from Monash University who invented a set of libraries to handle these brilliant features. The project is named Adaptagrams and written in C++. Adaptagrams Project Home Page
If we take advantage of the Adaptagrams, we can make Kivio an amazing diagramming application with multi-way and automatic layout constraint. In this way, diagramming apps can get better productivity than the old-styled one.
Here is an essay about the one-way layout and multi-way layout. PDF
Dunnart is a demo application made by the Adaptagrams team, most functions are shown there. You can download it from here. It's a close-sourced application, and you can find two demonstrate videos on the page above.
Here is a preliminary analysis about what is already there and what is needed to be done.
Existed layout management in Kivio
connector avoid: none
multi-way alignment: only once-off alignment provided (DefaultToolArrangeWidget)
auto-layout: none
Target feature for Kivio
object-avoiding connector routing using libavoid library
multi-way alignments and distributions through improvements in DefaultToolArrangeWidget
automatic layout support through libcola library
Please leave your comments about the idea. I'll have time to work on it after my college exams.