[Uml-devel] branches/KDE/3.5/kdesdk/umbrello/umbrello

Oliver Kellogg okellogg at users.sourceforge.net
Mon Dec 4 19:55:59 UTC 2006


SVN commit 610642 by okellogg:

mouseMoveEvent(): UMLWidget::adjustAssocs() does not take along association
 line breaks - let's rather use AssociationWidget::moveEntireAssoc() on the
 selected associations. This is a regression which was introduced in 1.5.4.
The behavior is still not perfect - the line break points change relative
 positions during movement. If anybody has a clue what's causing this,
 that would be great.
CCBUG:57878


 M  +12 -0     umlwidgetcontroller.cpp  


--- branches/KDE/3.5/kdesdk/umbrello/umbrello/umlwidgetcontroller.cpp #610641:610642
@@ -93,6 +93,7 @@
         if (m_widget->m_bSelected && count > 1) {
             //Single selection is made in release event if the widget wasn't moved
             m_inMoveArea = true;
+            lastUpdate.start();
             return;
         }
 
@@ -165,7 +166,18 @@
         widget->getWidgetController()->moveWidgetBy(diffX, diffY);
 
         if (update) {
+            /* adjustAssocs() does not take along association line breaks:
             widget->adjustAssocs(widget->getX(), widget->getY());
+             ***** instead: */
+            // Move any selected associations.
+            AssociationWidgetList awl = m_widget->m_pView->getSelectedAssocs();
+            AssociationWidgetListIt assoc_it(awl);
+            AssociationWidget* assocwidget = NULL;
+            while ((assocwidget = assoc_it.current()) != NULL) {
+                    ++assoc_it;
+                    if (assocwidget->getSelected())
+                            assocwidget->moveEntireAssoc(diffX, diffY);
+            }
         }
     }
     m_widget->m_pView->resizeCanvasToItems();




More information about the umbrello-devel mailing list