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

Oliver Kellogg okellogg at users.sourceforge.net
Thu Dec 7 22:16:16 UTC 2006


SVN commit 611386 by okellogg:

merge r610188:610682 from branches/KDE/3.5

 M  +3 -1      package.cpp  
 M  +1 -1      umlobject.cpp  
 M  +12 -0     umlwidgetcontroller.cpp  


--- trunk/KDE/kdesdk/umbrello/umbrello/package.cpp #611385:611386
@@ -233,7 +233,9 @@
     for (UMLObjectListIt oit(m_objects); oit.current(); ++oit) {
         UMLObject *obj = oit.current();
         if (! obj->resolveRef()) {
-            m_objects.remove(obj);
+            Uml::Object_Type ot = obj->getBaseType();
+            if (ot != Uml::ot_Package && ot != Uml::ot_Folder)
+                m_objects.remove(obj);
             overallSuccess = false;
         }
     }
--- trunk/KDE/kdesdk/umbrello/umbrello/umlobject.cpp #611385:611386
@@ -237,7 +237,7 @@
 
 void UMLObject::setDoc(const QString &d) {
     m_Doc = d;
-    emit modified();
+    //emit modified();  No, this is done centrally at DocWindow::updateDocumentation()
 }
 
 Uml::Object_Type UMLObject::getBaseType() const {
--- trunk/KDE/kdesdk/umbrello/umbrello/umlwidgetcontroller.cpp #611385:611386
@@ -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