[Uml-devel] KDE/kdesdk/umbrello

Oliver Kellogg okellogg at users.sourceforge.net
Wed Jun 20 22:06:10 UTC 2007


SVN commit 678217 by okellogg:

merge r677223:677847 from branches/KDE/3.5

 M  +1 -0      ChangeLog  
 M  +2 -1      make-umbrello-release.sh  
 M  +4 -3      umbrello/floatingtextwidgetcontroller.cpp  
 M  +25 -4     umbrello/umlwidgetcontroller.cpp  


--- trunk/KDE/kdesdk/umbrello/ChangeLog #678216:678217
@@ -1,6 +1,7 @@
 Version 1.5.72
 
 * Bugs/wishes from http://bugs.kde.org:
+* Cannot move text and label correctly after enabling snap to grid (137041)
 * Wrong pascal code generation (146676)
 * Crash when linking to undefined xmi.id (146748)
 * End Activity Symbol gets invalid when line thickness is increased (146925)
--- trunk/KDE/kdesdk/umbrello/make-umbrello-release.sh #678216:678217
@@ -41,7 +41,8 @@
 perl -p -e 's at umbrello/VERSION at VERSION@g' -i `find umbrello -name Makefile.am`
 cd /tmp
 log=/tmp/kdesdk/svn2dist.log
-kdesdk/scripts/svn2dist kdesdk $udir -n umbrello --admin-dir kdesdk/$udir/admin --log=$log -o
+kdesdk/scripts/svn2dist kdesdk $udir -n umbrello --admin-dir kdesdk/$udir/admin \
+         --svn-root svn://anonsvn.kde.org/home/kde/branches/stable --log=$log -o
 mv umbrello/po kdesdk/$udir/
 rm -rf umbrello
 cd kdesdk/$udir
--- trunk/KDE/kdesdk/umbrello/umbrello/floatingtextwidgetcontroller.cpp #678216:678217
@@ -9,8 +9,11 @@
  *   Umbrello UML Modeller Authors <uml-devel at uml.sf.net>                  *
  ***************************************************************************/
 
+// own header
+#include "floatingtextwidgetcontroller.h"
+// qt/kde includes
+#include <kdebug.h>
 // app includes
-#include "floatingtextwidgetcontroller.h"
 #include "floatingtextwidget.h"
 #include "messagewidget.h"
 #include "objectwidget.h"
@@ -74,8 +77,6 @@
                (m_movementDirectionY > 0 && m_unconstrainedPositionY < m_floatingTextWidget->getY()) ) {
         newY = m_unconstrainedPositionY;
         m_movementDirectionY = 0;
-    } else {
-        return;
     }
 
     m_floatingTextWidget->setX(newX);
--- trunk/KDE/kdesdk/umbrello/umbrello/umlwidgetcontroller.cpp #678216:678217
@@ -144,10 +144,10 @@
 
     if ((me->modifiers() & Qt::ShiftModifier) && (me->modifiers() & Qt::ControlModifier)) {
         //Move in Y axis
-        diffX = m_oldX - m_widget->getX();
+        diffX = 0;
     } else if ((me->modifiers() & Qt::ShiftModifier) || (me->modifiers() & Qt::ControlModifier)) {
         //Move in X axis
-        diffY = m_oldY - m_widget->getY();
+        diffY = 0;
     }
 
 /* Commands
@@ -155,7 +155,12 @@
     doc->executeCommand(new cmdMoveWidget(this,diffX,diffY));*/
 
     // moveWidget(diffX,diffY);
+
+    // kDebug() << "UMLWidgetController::mouseMoveEvent before constrainMovementForAllWidgets:"
+    //     << " diffX=" << diffX << ", diffY=" << diffY << endl;
     constrainMovementForAllWidgets(diffX, diffY);
+    // kDebug() << "UMLWidgetController::mouseMoveEvent after constrainMovementForAllWidgets:"
+    //     << " diffX=" << diffX << ", diffY=" << diffY << endl;
 
     //Nothing to move
     if (diffX == 0 && diffY == 0) {
@@ -185,6 +190,7 @@
         //m_doc->executeCommand(new cmdMoveWidgetBy(widget,diffX,diffY));
         widget->getWidgetController()->moveWidgetBy(diffX, diffY);
     }
+    // kDebug() << endl;
 
     // Move any selected associations.
     AssociationWidgetList awl = m_widget->m_pView->getSelectedAssocs();
@@ -529,21 +535,36 @@
 }
 
 QPoint UMLWidgetController::getPositionDifference(QMouseEvent* me) {
-    int newX = me->x() - m_pressOffsetX;
-    int newY = me->y() - m_pressOffsetY;
+    /*
+    kDebug() << "UMLWidgetController::getPositionDifference: me->x=" << me->x()
+        << " m_widget->getX=" << m_widget->getX() << ", m_oldX=" << m_oldX
+        << ", m_pressOffsetX=" << m_pressOffsetX << endl;
+    kDebug() << "UMLWidgetController::getPositionDifference: me->y=" << me->y()
+        << " m_widget->getY=" << m_widget->getY() << ", m_oldY=" << m_oldY
+        << ", m_pressOffsetY=" << m_pressOffsetY << endl;
+     */
+    int newX = me->x() + m_widget->getX() - m_oldX - m_pressOffsetX;
+    int newY = me->y() + m_widget->getY() - m_oldY - m_pressOffsetY;
     int maxX = m_widget->m_pView->canvas()->width();
     int maxY = m_widget->m_pView->canvas()->height();
 
+    m_oldX = newX;
+    m_oldY = newY;
+
     if (newX + (m_minSelectedX - m_widget->getX()) < 0) {
+        //kDebug() << "UMLWidgetController::getPositionDifference: got into cond.1" << endl;
         newX = m_widget->getX() - m_minSelectedX;
     }
     if (newY + (m_minSelectedY - m_widget->getY()) < 0) {
+        //kDebug() << "UMLWidgetController::getPositionDifference: got into cond.2" << endl;
         newY = m_widget->getY() - m_minSelectedY;
     }
     if (newX + (m_maxSelectedX - m_widget->getX()) > maxX) {
+        //kDebug() << "UMLWidgetController::getPositionDifference: got into cond.3" << endl;
         newX = maxX - (m_maxSelectedX - m_widget->getX());
     }
     if (newY + (m_maxSelectedY - m_widget->getY()) > maxY) {
+        //kDebug() << "UMLWidgetController::getPositionDifference: got into cond.4" << endl;
         newY = maxY - (m_maxSelectedY - m_widget->getY());
     }
 




More information about the umbrello-devel mailing list