Bug 403761

Summary: Incorrect display of interface widgets in the component diagram when adding a second connection
Product: [Applications] umbrello Reporter: Ralf Habacker <ralf.habacker>
Component: generalAssignee: Umbrello Development Group <umbrello-devel>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 2.27.1 (KDE Applications 18.12.1)   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 2.27.2 (KDE Applications 18.12.2)
Attachments: test case

Description Ralf Habacker 2019-01-30 11:10:37 UTC
Created attachment 117728 [details]
test case

STEPS TO REPRODUCE
1. start umbrello
2. load appended test case
3. add a dependency from new_component to interface

OBSERVED RESULT
The display of the interface is partially broken

EXPECTED RESULT
The interface should be displayed correctly after adding the dependency

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: openSUSE Leap_42.3 
KDE Frameworks Version: 5.54.0
Qt Version: 5.11

ADDITIONAL INFORMATION
Comment 1 Ralf Habacker 2019-01-30 11:35:29 UTC
Git commit d5cb5adb7fe517ea796f08afa0840ebb6507bd4f by Ralf Habacker.
Committed on 30/01/2019 at 11:35.
Pushed by habacker into branch 'Applications/18.12'.

Fix 'incorrect display of interface widgets in the component diagram when adding a second connection'

With this commit a new class member WidgetBase::m_changesShape is
introduced to track widgets that changes it shape when the number of
connections or their positions are changed.
FIXED-IN:2.27.2 (KDE Applications 18.12.2)

M  +4    -0    umbrello/toolbarstateassociation.cpp
M  +4    -0    umbrello/umlwidgets/associationwidget.cpp
M  +2    -1    umbrello/umlwidgets/classifierwidget.cpp
M  +1    -0    umbrello/umlwidgets/umlwidget.cpp
M  +20   -1    umbrello/umlwidgets/widgetbase.cpp
M  +4    -0    umbrello/umlwidgets/widgetbase.h

https://commits.kde.org/umbrello/d5cb5adb7fe517ea796f08afa0840ebb6507bd4f
Comment 2 Ralf Habacker 2019-01-30 12:07:24 UTC
Git commit c2f15333696a9fd8b66ef546f5d38d677152eaea by Ralf Habacker.
Committed on 30/01/2019 at 12:07.
Pushed by habacker into branch 'Applications/18.12'.

Fixes the problem that the geometry of the interface widget was not updated when the connection was disconnected

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

https://commits.kde.org/umbrello/c2f15333696a9fd8b66ef546f5d38d677152eaea
Comment 3 Ralf Habacker 2019-01-30 18:56:37 UTC
Git commit a9ce7bc064a0c0910f046427eb26ee0ff99f4154 by Ralf Habacker.
Committed on 30/01/2019 at 18:55.
Pushed by habacker into branch 'Applications/18.12'.

In AssociationWidget::widgetMoved() fix endless loop

The loop has been caused by UMLWidget::updateGeometry() updating related
associations too.

Fixup of commit d5cb5adb7fe517ea796f08afa0840ebb6507bd4f.

M  +4    -4    umbrello/umlwidgets/associationwidget.cpp
M  +5    -2    umbrello/umlwidgets/umlwidget.cpp
M  +1    -1    umbrello/umlwidgets/umlwidget.h

https://commits.kde.org/umbrello/a9ce7bc064a0c0910f046427eb26ee0ff99f4154