Revision 1282402

Go back to digest for 4th March 2012

Bug Fixes in Multimedia

Oliver Kellogg committed changes in /trunk/KDE/kdesdk/umbrello:

(In reply to comment #1)
> [...]
> you have an inheritance in the opposite direction.
> The mutual inheritance throws Umbrello off the handle and so I've removed
> the first one. (Actually I wonder why Umbrello did not disallow its
> creation.)

It turns out that
AssocRules::allowAssociation(Uml::AssociationType,
UMLWidget *, UMLWidget *)
was being called twice: First in ToolBarStateAssociation::setSecondWidget()
(toolbarstateassociation.cpp:226) and again via ToolBarStateAssociation::
addAssociationInViewAndDoc() in UMLView::addAssociation().
At the time of the second call, the AssociationWidget was already created
and inserted at its role widgets.

Fixed as follows:
- In UMLView::addAssociation(), remove the call to
AssocRules::allowAssociation()
- At ToolBarStateAssociation::addAssociationInViewAndDoc(), change return
type to bool (true for success) and test the success at
ToolBarStateAssociation::setSecondWidget()
- Revert the "#if 0" at the extendedCheck code at assocrules.cpp:170 ff.
thus re-enabling the check for illegal mutual associations.

File Changes

Modified 6 files
  • /trunk/KDE/kdesdk/umbrello
  •   /ChangeLog
  •   /umbrello/assocrules.cpp
  •   /umbrello/toolbarstateassociation.cpp
  •   /umbrello/toolbarstateassociation.h
  •   /umbrello/umlview.cpp
  •   /umbrello/widgets/associationwidget.cpp
6 files changed in total