[Uml-devel] [Merge request] New features

Emmanuel Lepage-Vallée elv1313 at gmail.com
Thu May 12 19:27:04 UTC 2011


Yes, you are right. I will wait for 4.8. Instead of waiting for the trunk to
unfroze, I will finish the port to Git. I started two weeks ago but I was
short on time fixing the issues in my code.

About the popup issue, do you have an idea how I can fix it? As far as I
know, Qt don't provide a class for those kind of popup so I made one. KDE
do, but it look tightly integrated with with the widgets using it, it is
almost a private class. My event filter manage to close it sometime, but
fail 9/10.

As for the CPU issue, I never had that one, can I have more details?

The entity stuff is because they both use the classifier object. Qt provide
way to enable/disable tabs, but I will need to create a mechanism to
hide/show them while keeping the same index and QWidget. An other problem is
that I use a single class to handle all type of classifier items
(operation/attribute/entity...). I am not sure about this one. The logic
behind it was that they share most of the code and fields. They all have
name, stereotype and doc for example. Most of them have types and
visibility. So doing a class for each one would duplicate most of the code
3-4 time, but would be the most logic way if you apply strict design rules.
Fixing a bug in one fix the bug everywhere, while if I had many classes, I
would have to copy paste the fix in many classes. What do you think about
that?

Disabling the undo view seem to be good to me too. Jonathan is not agree,
but I still think it is the way to go. The undo view:
-Is not used anywhere else be default in KDE
-Mostly fail to show useful messages about the operations being done
-Have no search features
-Take room needed by the tree, making the tree less useful in the process
-Does not add real value as most people use ctrl+z

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

> 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 ;-)
>
> Regards,
>
> Andi
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/umbrello-devel/attachments/20110512/b72bd8b8/attachment.html>


More information about the umbrello-devel mailing list