> > I've submitted two patches to the maintainers and, as far as I'm > > aware, the first was accepted but the second, which I feel is > > technically superior & which replaces the first patch, has not. > > Dammit, now you forced me to think:) I knew there was a reason I didn't > apply the patch, but I thought it was just the ugliness of having to > recompile to get more CPs. This morning I realized that the real > problem is that the diagrams become incompatible. Two people with > different # of CPs compiled in couldn't read each others diagrams. And > the feature is useless for people who don't compile their Dia.
Aha! But the exact reason I feel the second patch is technically superior is because it solves just these two issues. The second patch leaves the first 8 (really 6) connection points in their original positions, ie 0,1,2 are top left, top middle, and top right, 5,6,7 are bottom same. Of course, 3&4 get obliterated anyway by the variable number of connection points on the right & left. Now, All the other points beyond 8 are added in a round-robin fashion, so that if you have 12 points rather than 8, number 8 gets put between 0&1, 9 between 1&2, etc. If you further increase the points, they continue to get round-robin added. So now 12 gets put beside 8, 13 beside 9, etc. Therefore, the second patch I gave you will do (as far as I've been able to reason) the most reasonable job of making sure associations are still connected as close to the original place as possible, given your Dia has *MORE* connection points than the originating diagram. If your Dia has *LESS* connection points, there's still the highest probability that they'll end up in the right spots, given the connection point even exists. We already have a problem with associations getting disconnected if you delete attributes. No matter what, I think it would be safe (using my second, "technically-superior" patch) to move Dia from an 8-point standard to a (say) 20-point standard, then in the future, from 20 to >20 standard is also easy. All old diagrams will work if we add 12 (ie: newConnPointsNum - 8) to all connection points >7 to catch associations that were connected at the sides. Connection points on top/bottom are just left as-is. It would definitely be hard to later on *SUBTRACT* the number of connection points in the standard Dia, but I don't see a lot of desire for that in the user community. > The right way to solve this would be to up the version number for the > UML class save format, Is there a version number stored in the file...? Oh. I'll go look again. I couldn't find one... and I really wanted it. > and allow a variable number of CPs there. Then > the UML class object menu can allow adding & removing connection points. It seems removing connection points is always problematic. I can think of no algorithm that would handle it right, and certainly, when we delete attributes currently, it becomes obvious no-one else can think of one either. It's the reason I'm resistant to a "variable number of connpoints" algorithm. Every time I shorten an attribute name, or delete the "Value" column of one, thus narrowing the Class box width, all my associations would go kaplooey in a nasty fashion. -- Tim Ellis Senior Database Architect Gamet, Inc. _______________________________________________ Dia-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/dia-list