Version: (using KDE KDE 3.4.1) Compiler: gcc (GCC) 3.4.4 (Gentoo 3.4.4, ssp-3.4.4-1.0, pie-8.7.8) OS: Linux Currently Umbello uses vectors of stright lines to represent the associations between objects. I think that it would be great if Umbrello could support a spline style connection. I originally thought that this would be an easy addition but have since found that QT does not have a nice spline object that can use a pen. I have since started to make one in the hopes that I can integrate it with Umbrello to give nice smooth lines. I can see one or two small problems looming but I think they can be eventually overcome. What do other people think? good idea or bad idea?
So, I have done some searching and found out that the new QT4.0 will have the new painting system. It looks as though the QPainterPath class will allow for a rich set of line options including some sort of spline path that will fill the current needs. The canvas is going away as of 4.0 but a replacement will be avail in 4.1. I am not sure of Umbrello's QT4 plans but if the conversion is made to the new paint system then this bug will be fixed by converting the current QCanvasLine's to QPainterPath's. Could be exciting... Justace
> fixed by converting the current QCanvasLine's to QPainterPath's. QCanvasLine has been already migrated to QGraphicsLineItem. The resulting work to do is 1. convert AssociationLine::m_lineList a QVector<QPointF> 2. add a ::paint() method which paints a polyline. 3. add a line type attribute (polyline, spline) setable by AssociationWidget property dialog. 4. use QPainterPath to display splines when line type = spline is used The QVector<QPointF> implementation in umbrello-soc branch may be used as as base.
Work started as proposed. See branch _associationline_refactoring_.
Associations can now be drawn with different layouts. The possibilities, which are set from the popup menu, are - direct lines - polylines - orthogonal lines (only vertical and horizontal) - splines Single points or segments can be moved. The controllers are now integrated into the widgets and therefore deleted. This makes the code more readable and maintainable.
*** Bug 128352 has been marked as a duplicate of this bug. ***