[Uml-devel] [Merge request] New features

Emmanuel Lepage-Vallée elv1313 at gmail.com
Thu May 12 20:55:26 UTC 2011


I made a new repository and backported the changes (made possible be kdiff),
this repository have some features attempts (like multiple view at once)
that made more damage than good. I will make a branch on git once it's
ready. I will fix variable naming (some slots don't start be "slot") and
make good comments. I will also remove all tge //TODO dead code and //TODO
ELV <missing> tags from the code. They are there to remind me that there is
some work left to be done in those functions.

As for git, are you ok to move from SVN to Git and try to merge the
GSoC2008, -ng and trunk repositories into a single repository (using
branches)?

2011/5/12 Andi Fischer <andi.fischer at hispeed.ch>

> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/umbrello-devel/attachments/20110512/766bd5fd/attachment.html>


More information about the umbrello-devel mailing list