[Uml-devel] kdesdk/umbrello/umbrello

Oliver Kellogg Oliver.Kellogg at t-online.de
Tue Sep 16 12:33:04 UTC 2003


CVS commit by okellogg: 

findWidget(): Prefer an exact match over the allowClassForObject match.


  M +10 -3     umlview.cpp   1.88


--- kdesdk/umbrello/umbrello/umlview.cpp  #1.87:1.88
@@ -778,5 +778,5 @@ void UMLView::contentsMouseMoveEvent(QMo
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 UMLWidget * UMLView::findWidget( int id, bool allowClassForObject ) {
-        UMLWidget *obj;
+        UMLWidget *obj, *objWidget = NULL;
 
         UMLWidgetListIt it( m_WidgetList );
@@ -790,9 +790,11 @@ UMLWidget * UMLView::findWidget( int id,
                         }
                         if (allowClassForObject && obj->getID() == id)
-                                return obj;
+                                objWidget = (UMLWidget*) obj;
                 } else if( obj -> getID() == id ) {
                         return obj;
                 }
         }
+        if (objWidget)
+                return objWidget;
 
         MessageWidgetListIt mit( m_MessageList );
@@ -1813,4 +1815,5 @@ bool UMLView::addAssociation( Associatio
 
 void UMLView::addAssocInViewAndDoc(AssociationWidget* a) {
+        UMLAssociation *umla = a->getAssociation();
 
         // append in view
@@ -1818,6 +1821,10 @@ void UMLView::addAssocInViewAndDoc(Assoc
 
         // append in document
-        getDocument() -> addAssociation (a->getAssociation());
+        getDocument() -> addAssociation (umla);
 
+        FloatingText *pNameWidget = a->getNameWidget();
+        if (pNameWidget != NULL && pNameWidget->getID() == -1) {
+                pNameWidget->setID( umla->getID() );
+        }
 }
 






More information about the umbrello-devel mailing list