Bug 418249

Summary: No support in sequence diagrams for creating and destroying an object
Product: [Applications] umbrello Reporter: Ralf Habacker <ralf.habacker>
Component: generalAssignee: Umbrello Development Group <umbrello-devel>
Status: RESOLVED FIXED    
Severity: wishlist    
Priority: NOR    
Version: 2.30.2 (KDE releases 19.12.2)   
Target Milestone: 2.31 (KDE releases 20.04)   
Platform: Other   
OS: All   
Latest Commit: Version Fixed In: 2.30.80 (KDE releases 20.03.80)
Sentry Crash Report:

Description Ralf Habacker 2020-02-27 10:37:59 UTC
Sequence diagrams support creating and destroying an instance (https://www.ibm.com/support/knowledgecenter/SS8PJ7_8.5.1/com.ibm.xtools.sequence.doc/topics/cmsg_v.html) that is currently not supported by Umbrello. The visual representation for such a message is shown for example at https://online.visual-paradigm.com/diagrams/templates/sequence-diagram/object-creation-and-deletion/. 

STEPS TO REPRODUCE
1. start umbrello
2. add sequence diagram
3. add object
4. inspect toolbar and move mouse over the line of the object widget and press right mouse button, then select "new"

OBSERVED RESULT
The toolbar and the context menu do not contain an entry for selecting a "creation message" and a "destroy message"

EXPECTED RESULT
The toolbar and the context menu should have an entry for selecting a "creation message" and a "destroy message"

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: openSUSE_Leap_15.1
KDE Frameworks Version: 5.45.0
Qt Version: 5.9.7
Comment 1 Ralf Habacker 2020-02-27 11:10:05 UTC
Git commit 43919cf3a3a67053a5ff4f31a85be2d672fb9f8d by Ralf Habacker.
Committed on 27/02/2020 at 11:09.
Pushed by habacker into branch 'master'.

Add support for creation new objects in sequence diagrams

M  +1    -0    umbrello/icon_utils.cpp
M  +1    -0    umbrello/icon_utils.h
M  +2    -0    umbrello/icons.qrc
M  +1    -0    umbrello/menus/listpopupmenu.cpp
M  +1    -0    umbrello/menus/listpopupmenu.h
M  +1    -0    umbrello/menus/umlscenepopupmenu.cpp
M  +2    -0    umbrello/pics/CMakeLists.txt
A  +-    --    umbrello/pics/cursor-umbr-message-creation.png
A  +205  -0    umbrello/pics/sources/umbr-message-creation.svg
A  +-    --    umbrello/pics/umbr-message-creation.png
M  +1    -0    umbrello/toolbarstateassociation.cpp
M  +1    -0    umbrello/toolbarstatefactory.cpp
M  +36   -8    umbrello/toolbarstatemessages.cpp
M  +1    -1    umbrello/toolbarstatemessages.h
M  +4    -0    umbrello/umlscene.cpp
M  +2    -2    umbrello/umlwidgets/messagewidget.cpp
M  +1    -0    umbrello/umlwidgets/umlwidget.cpp
M  +3    -0    umbrello/worktoolbar.cpp
M  +2    -0    umbrello/worktoolbar.h

https://invent.kde.org/kde/umbrello/commit/43919cf3a3a67053a5ff4f31a85be2d672fb9f8d
Comment 2 Ralf Habacker 2020-03-05 18:27:11 UTC
Git commit c880a38de3d0afbb7a79d676dadb6df15df9cb26 by Ralf Habacker.
Committed on 05/03/2020 at 18:14.
Pushed by habacker into branch 'master'.

Add doc note for UMLWidget constructor

M  +1    -0    umbrello/umlwidgets/umlwidget.cpp

https://invent.kde.org/kde/umbrello/commit/c880a38de3d0afbb7a79d676dadb6df15df9cb26
Comment 3 Ralf Habacker 2020-03-05 18:27:11 UTC
Git commit 50797b59d16126a1927addc35fe00755991547bf by Ralf Habacker.
Committed on 05/03/2020 at 18:26.
Pushed by habacker into branch 'master'.

Fix 'On sequence diagrams no display of a selected object widget on the corresponding line'

If an object widget is selected, the corresponding sequence line is
displayed with a larger line width.

It was necessary to fix a problem with QGraphicsItem::setSelected() to
implement the requested behavior. Details can be found in the
documentation of the class QGraphicsObjectWrapper.
FIXED-IN:2.30.80 (KDE releases 20.03.80)

M  +13   -0    umbrello/umlwidgets/objectwidget.cpp
M  +2    -0    umbrello/umlwidgets/objectwidget.h
M  +2    -2    umbrello/umlwidgets/umlwidget.cpp
M  +19   -2    umbrello/umlwidgets/widgetbase.cpp
M  +36   -1    umbrello/umlwidgets/widgetbase.h
M  +7    -0    unittests/CMakeLists.txt
M  +1    -1    unittests/testbase.cpp
A  +70   -0    unittests/testwidgetbase.cpp     [License: GPL (v2/3)]
A  +34   -0    unittests/testwidgetbase.h     [License: GPL (v2/3)]

https://invent.kde.org/kde/umbrello/commit/50797b59d16126a1927addc35fe00755991547bf
Comment 4 Ralf Habacker 2020-03-05 18:27:11 UTC
Git commit 6dfd45fab399e17f404f2ed9be82c25451febdda by Ralf Habacker.
Committed on 05/03/2020 at 18:14.
Pushed by habacker into branch 'master'.

Make the widget selectable in the WidgetBase constructor before calling setSelected()

Otherwise, the call has no effect.

M  +3    -3    umbrello/umlwidgets/widgetbase.cpp

https://invent.kde.org/kde/umbrello/commit/6dfd45fab399e17f404f2ed9be82c25451febdda
Comment 5 Ralf Habacker 2020-03-05 18:34:49 UTC
(In reply to Ralf Habacker from comment #3)
> Git commit 50797b59d16126a1927addc35fe00755991547bf by Ralf Habacker.
This commit contains a wrong bug id, the correct one is bug 418397.
Comment 6 Ralf Habacker 2020-03-05 20:00:08 UTC
Git commit d55c6d2969e99dc131072048bb325d0ea5c398fd by Ralf Habacker.
Committed on 05/03/2020 at 19:55.
Pushed by habacker into branch 'master'.

Add support for sequence diagrams to destroy an object

For the new message type a corresponding icon has been added to the
toolbar and a corresponding entry to the context menu.

The version of the xmi file was increased because a new value was
added to the xml tag for message types.

The api of the class SeqLineWidget for setting the line color was
unified by adding a method setLineColorCmd().
FIXED-IN:2.30.80 (KDE releases 20.03.80)

M  +2    -1    umbrello/basictypes.h
M  +1    -0    umbrello/icon_utils.cpp
M  +1    -0    umbrello/icon_utils.h
M  +2    -0    umbrello/icons.qrc
M  +3    -0    umbrello/menus/listpopupmenu.cpp
M  +3    -0    umbrello/menus/listpopupmenu.h
M  +1    -0    umbrello/menus/umlscenepopupmenu.cpp
M  +5    -0    umbrello/menus/widgetbasepopupmenu.cpp
M  +2    -0    umbrello/pics/CMakeLists.txt
A  +-    --    umbrello/pics/cursor-umbr-message-destroy.png
A  +134  -0    umbrello/pics/sources/umbr-message-destroy.svg
A  +-    --    umbrello/pics/umbr-message-destroy.png
M  +1    -0    umbrello/toolbarstateassociation.cpp
M  +1    -0    umbrello/toolbarstatefactory.cpp
M  +10   -6    umbrello/toolbarstatemessages.cpp
M  +4    -0    umbrello/umlscene.cpp
M  +22   -1    umbrello/umlwidgets/messagewidget.cpp
M  +2    -0    umbrello/umlwidgets/messagewidget.h
M  +1    -3    umbrello/umlwidgets/objectwidget.cpp
M  +1    -0    umbrello/umlwidgets/objectwidget.h
M  +14   -1    umbrello/umlwidgets/seqlinewidget.cpp
M  +16   -2    umbrello/umlwidgets/seqlinewidget.h
M  +16   -0    umbrello/umlwidgets/umlwidget.cpp
M  +2    -2    umbrello/version.h
M  +3    -0    umbrello/worktoolbar.cpp
M  +2    -0    umbrello/worktoolbar.h

https://invent.kde.org/kde/umbrello/commit/d55c6d2969e99dc131072048bb325d0ea5c398fd
Comment 7 Ralf Habacker 2020-03-05 20:00:08 UTC
Git commit b2612d8a4d7689ae765383f1bfd702de93874c7e by Ralf Habacker.
Committed on 05/03/2020 at 19:55.
Pushed by habacker into branch 'master'.

SeqLineWidgdet: Fix position ox destruction box when adding by context menu

Because the size of the box is 14x14, the half width is 7 not 10.

M  +2    -2    umbrello/umlwidgets/seqlinewidget.cpp

https://invent.kde.org/kde/umbrello/commit/b2612d8a4d7689ae765383f1bfd702de93874c7e