[Uml-devel] [Merge request] New features

Emmanuel Lepage-Vallée elv1313 at gmail.com
Mon May 9 06:04:44 UTC 2011


Hi, I my name is Emmanuel Lepage Vallee (Elv13 on IRC). This is my first
post on this list, some of you may be aware of my recent work on Umbrello or
have seem me in the past decade on IRC.

Recently, I have put quite a lot of time on Umbrello recently working on UI
elements I disliked or prevented umbrello from being used to do real work at
a decent speed. My main contribution is a new input system for classifier
and other related UML objects. This system is/will be making it easier to
add element to classifier items (more to come, but classifier for now). It
use/will use a dock instead of a legion of keyboard unfriendly popups. It
currently look like that:

http://img88.imageshack.us/i/blender101.png/

The idea is not new, some other modeling software such as Oracle (TM) MySQL
Workbench already use similar input system. It already work really well with
the mouse. The keyboard part need some work, as it need a custom even filter
to manage tabs and enter corectly. This work is still in progress. There is
also some bugs and unconnected slots. I will need to make some test cases to
be sure everything work. The changes are semi invasive. 95% of them just
hook to the model. Some other take existing code and put it into new
widgets, such as one for the operation/attribute type, as this code is
shared in many new and existing places.

The other changes you can see in this screenshot is a statusbar zoom widget.
This widget is getting quite common in KDE4 and is easier to use than the
current toolbar slider. It is a little cool change, nothing big. The fact
that the text is centered is a bug, I just need time to fix it.

The other change is moving the toolbar to the left and dock to the right and
merge them. While undo view is useful, it may not be required by default. As
for the documentation dock, I think it's nice to have it. I am not sure if
it need to be separated from the model treeview. The classifier input system
take a lot of place when it is visible, so it looked better like that, not
sure about usability however.

There is quite a lot of other changes I want to make too:
Double click: return to cursor when the toolbar item is pressed once and
lock if the item is double clicked. Workbench/Vision/Draw/MS
Office/OpenOffice/All other work like that. It will require an event filter.
Better item tree: The current treeview is terrible. It show too much stuffs
like items from other diagrams. A little filter, removal of unneeded items,
better default expansion settings would be nice, someday.
Auto add items to the view during import: Having to add items in the canvas
by hand after importing them is bad. Auto import of the projects classes
would be nice (not all classes, just the project ones)
"Fit" zoom: this is broken in the widget right now, I wait from the Camila
GSoC work.
Handle all types of diagrams: Some diagrams variant would need some love. I
am thinking about dedicated helpers for code Classes and database diagram
while they are the same in theory,
Remove zoom from toolbar: well, it is not needed anymore to be there by
default
New icon set: I am working on it, it's getting nice, but the small variants
are not yet as nice as I would like them to be.
KAction for everything: there is a lot of actions missing all over the place
like adding a class in the canvas.
Multiple view at once: using a qsplitter to view more than once diagram at
once. It's useful when you have to base one diagram on an existing one. I
tried, but I failed to get it to work without bugs, so I will wait for the
new canvas to be ready too.

Those features are TODO, it is obviously too late for 4.7. However, I think
my current work on the classifier is more then useful enough to be part of
4.7. I added it on the soft feature freeze so I can merge it until may 12. I
will not enable it by default just yet, it need more polishing and bug
fixing, but it should be quite strong when 4.7 is being released. So this is
a formal merge request:

Can I merge my current work once I have unified the indentation and variable
naming (95% done):
-The dock inout system for classifier items
-The zoom widget
-The toolbar on the left with small icons
-The removal of zoom items from the default toolbar
-Disable the undo view by default

You can try the features by cloning this repository
git at github.com:Elv13/Umbrello-ng.git
If something is broken, try the previous commit. It's still buggy, but it
work. As for other things, like porting umbrello to git, this will wait
until this code is merged as the deadline is quite soon. Any feedback
welcome. I will take care or merging what is ready once/if I get the
approval to do it.

Thanks for reading, answer soon please, the deadline is coming, I know I am
late too, but I talked about it on IRC since like 2 months.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/umbrello-devel/attachments/20110509/538955a8/attachment.html>


More information about the umbrello-devel mailing list