[Uml-devel] [Merge request] New features

Andi Fischer andi.fischer at hispeed.ch
Thu May 12 19:37:19 UTC 2011


Am 12.05.2011 20:22, schrieb Andi Fischer:
> Am 09.05.2011 08:04, schrieb Emmanuel Lepage-Vallée:
>> 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.
> Hi Emmanuel,
> I compiled your repository successfully.
> Your work is very nice and useful, but I think it is not yet ready for
> inclusion.
>
> Here are some observations and opinions:
> - A lot of new compiler warnings are present.
> - When running Umbrello-ng my CPU is at 100% :-(
> - Disable the undo view by default is ok for me.
> - Adding the zoom widget is very welcome, but "fit" and "100%" buttons
> do not work yet.
> - In tab "Entity Attributes" there is a "Doc" button. Clicking on it
> opens a pop-up, that can not be closed again. Same in other tabs (e.g.
> source).
> - Why has a class this tab "Entity Attributes"? Is this not only for
> Entity Relationship Diagrams?
> - ...
>
> Please, keep up the good work. Do some more polishing and merge it as
> soon as the freeze is over.
> But this is only my opinion ;-)
Hi Emmanuel,

Some more observations, which I hope are helpful:
- In rowwidgetcontroller.h and rowwidgetcontroller.cpp add license at 
the beginning of the file.
- Same for compactCombo.h and compactCombo.cpp.
- Same for paramwidget.h and paramwidget.cpp.
- Same for many more.
- I guess that some compiler warnings are from the usage of KFontChooser 
and KMessageBox. Have a look at trunk.
- You should apply the new commits to trunk also to your repository.

Great work!

Regards,

Andi





More information about the umbrello-devel mailing list