[Uml-devel] [Bug 110231] Association labels aren't moved correctly when moving the corresponding classes (class diagram)

Oliver Kellogg okellogg at users.sourceforge.net
Sun Aug 7 16:32:36 UTC 2005


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=110231         
okellogg users sourceforge net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From okellogg users sourceforge net  2005-08-08 01:31 -------
SVN commit 443930 by okellogg:

calculateTextPosition(tr_Name): Add missing assignment of `text'.
Also, apply the constrained coordinates to the FloatingText.
BUG:110231


 M  +12 -5     associationwidget.cpp  


--- branches/KDE/3.5/kdesdk/umbrello/umbrello/associationwidget.cpp #443929:443930
 @ -1699,7 +1699,7  @
     int textW = 0, textH = 0;
     int slope = 0, divisor = 1;
     const int SPACE = 2;
-    FloatingText const * text = 0;
+    FloatingText *text = 0;
 
     if(role == tr_MultiA) {
         text = getMultiWidget(A);
 @ -1778,6 +1778,8  @
 
     } else if(role == tr_Name) {
 
+        calculateNameTextSegment();
+        text = m_pName;
         x = (int)( ( m_LinePath.getPoint(m_unNameLineSegment).x() +
                      m_LinePath.getPoint(m_unNameLineSegment + 1).x() ) / 2 );
 
 @ -1868,9 +1870,14  @
     }
     if (text) {
         constrainTextPos(x, y, textW, textH, role);
-        // kdDebug() << "AssociationWidget::calculateTextPosition(" 
-        //   << p.x() << "," << p.y() << "): newPoint=("
-     	//   << x << "," << y << ")" << endl;
+        if (x != p.x() || y != p.y()) {
+            // kdDebug() << "AssociationWidget::calculateTextPosition(" 
+            //   << text->getName() << ") textrole " << role
+            //   << ": oldpoint=(" << p.x() << "," << p.y() << ")"
+            //   << ", newPoint=(" << x << "," << y << ")" << endl;
+            text->setX(x);
+            text->setY(y);
+        }
     }
     p = QPoint( x, y );
     return p;
 @ -1973,7 +1980,7  @
     if (p0.y() == p1.y()) {
         // horizontal line
         // CAUTION: This is calculated in Qt coordinates!
-        ////////////////////////// constrain verticallly ///////////////////////////
+        ////////////////////////// constrain vertically /////////////////////////////
         const int lineY = p0.y();
         if (textY + textHeight < lineY - CORRIDOR_HALFWIDTH)  // constrain at top
             textY = lineY - CORRIDOR_HALFWIDTH - textHeight;




More information about the umbrello-devel mailing list