[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    playground/edu/Rocs/src
From:       Tomaz Martins dos Santos Canabrava <tomaz.canabrava () gmail ! com>
Date:       2009-09-01 12:08:16
Message-ID: 1251806896.488258.20378.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1018180 by tcanabrava:

fixed a bug while rocs whould crash when you try to delete a node.

 M  +1 -0      Core/node.cpp  
 M  +30 -27    GraphicsItem/NodeItem.cpp  


--- trunk/playground/edu/Rocs/src/Core/node.cpp #1018179:1018180
@@ -194,6 +194,7 @@
 qreal Node::z() const {
   return _z;
 }
+
 void Node::setColor(const QString& s) {
     _color = s;
 }
--- trunk/playground/edu/Rocs/src/GraphicsItem/NodeItem.cpp #1018179:1018180
@@ -88,17 +88,18 @@
 }
 
 QRectF NodeItem::boundingRect() const {
-      qreal z = _node->z();
-      if(isDownSizing) {
-	return QRectF(-12 * _oldZ, -12 * _oldZ, 25 * _oldZ, 25 * _oldZ);
-      }
-     if ( _node && _node->begin() ){
-         return QRectF(-52 * z, -12 * z , 65 * z, 25 * z);
-     }
-     if ( _removingBeginFlag ){
-         return QRectF(-52 * z, -12 * z , 65 * z, 25 * z);
-     }
-    return QRectF(-12 * z, -12 * z , 25 * z, 25 * z);
+  qreal z = 1;
+  qreal x1 = -12, y1 = -12, x2 = 25, y2 = 25;
+  if (_node) z = _node->z();
+
+  if (( _node && _node->begin() ) || ( _removingBeginFlag )){
+    x1 -= 40;
+    x2 += 40;
+  }
+  if(isDownSizing) {
+    return QRectF(x1 * _oldZ, y1* _oldZ, x2 * _oldZ, y2 * _oldZ);
+  }
+  return QRectF(x1 * z, y1 * z , x2 * z, y2 * z);
 }
 
 QPainterPath NodeItem::shape() const {
@@ -109,31 +110,33 @@
 }
 
 void NodeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *) {
-  qreal z = _node->z();  
+  qreal z = _oldZ;
+  if (_node){
+    z = _node->z();
+    _color = _node->color(); 
+  }
+  
   if(z > _oldZ) _oldZ = z;
+  
   if(isDownSizing) {
       QBrush brush(Qt::white);
       painter->setBrush(brush);
       painter->drawRect(QRectF(-11 * z, -11 * z, 24 * z, 24 * z));
-    }
-    if (_node){   _color = _node->color();  }
-    if (isSelected()) {
+  }
+    
+  if (isSelected()) {
         QPen pen(Qt::black, 1, Qt::DotLine);
         painter->setBrush(QBrush());
         painter->setPen(pen);
         painter->drawRect(QRectF(-11 * z , -11 * z , 24 * z , 24 * z ));
-    }
-
-
-    if( _node && _node->begin() ){
-      if (_removingBeginFlag == false) _removingBeginFlag = true;
-      painter->drawLine(-20, -10, 0, 0);
-      painter->drawLine(-52, 0, 0, 0);
-      painter->drawLine(-20, 10, 0, 0);
-    }
-    else if (_removingBeginFlag) _removingBeginFlag = false;
-      
-
+  }
+  if( _node && _node->begin() ){
+    if (_removingBeginFlag == false) _removingBeginFlag = true;
+    painter->drawLine(-20, -10, 0, 0);
+    painter->drawLine(-52, 0, 0, 0);
+    painter->drawLine(-20, 10, 0, 0);
+  }
+  else if (_removingBeginFlag) _removingBeginFlag = false;
     painter->setPen(Qt::NoPen);
     
     _color.setAlphaF(_opacity);
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic