Bug 140709

Summary: When moving an E/R diagram class the relationship arrow does not get updated until you release the class
Product: [Applications] umbrello Reporter: Frank Cornelis <info>
Component: generalAssignee: Umbrello Development Group <umbrello-devel>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Frank Cornelis 2007-01-27 10:52:48 UTC
Version:           1.5.6 (using KDE KDE 3.5.5)
Installed from:    Compiled From Sources
Compiler:          GCC 4.1.1 
OS:                Linux

I just updated to Umbrello 1.5.6.
There's a regression when editing E/R diagrams.
Suppose you have two classes with a relationship line between them.
When moving one of the classes, the relationship line is not updated during the move operation.
Only when you drop the class somewhere, then the relationship line is updated.
This is very boring since you need to see the relationship line constantly updated to be able to make the lines orthogonally.
Comment 1 Oliver Kellogg 2007-02-17 12:37:07 UTC
SVN commit 634457 by okellogg:

mouseMoveEvent(): Call m_widget->adjustUnselectedAssocs() on lastUpdate.elapsed()
BUG:140709


 M  +1 -0      ChangeLog  
 M  +5 -0      umbrello/umlwidgetcontroller.cpp  


--- branches/KDE/3.5/kdesdk/umbrello/ChangeLog #634456:634457
@@ -5,6 +5,7 @@
 * Relationships for entities do not live outside of an entity relationship diagram (125146)
 * Javascript wrong Code Generation (135527)
 * Javascript Code Generation creates bad format methods (135540)
+* Associations not updated during move of class on diagram (140709)
 * Crash when deleting the link between a package and a class (141602)
 * Ada95 Code Generation Errors for Aggregation (141644)
 * Unable to delete multiplicity information or lable from an association (141813)
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/umlwidgetcontroller.cpp #634456:634457
@@ -159,6 +159,11 @@
     if (lastUpdate.elapsed() > 25) {
         update = true;
         lastUpdate.restart();
+
+        // CHECK: UMLWidget::adjustUnselectedAssocs(x,y) appears to take absolute
+        //      values for x and y. Surprisingly, supplying diffX and diffY seems
+        //      to work all the same ?!?
+        m_widget->adjustUnselectedAssocs(diffX, diffY);
     }
 
     while ((widget = it.current()) != 0) {