[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-08-31 23:35:16
Message-ID: 1251761716.055138.2288.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1017939 by tcanabrava:
cute node grouth - shrink from the wheel
M +1 -0 Actions/AddNode.cpp
M +1 -1 Actions/MoveNode.cpp
M +13 -1 Core/node.cpp
M +5 -1 Core/node.h
M +23 -10 GraphicsItem/NodeItem.cpp
M +4 -0 GraphicsItem/NodeItem.h
M +6 -3 Interface/GraphPropertiesWidget.cpp
M +35 -6 Interface/GraphScene.cpp
M +1 -1 Interface/GraphScene.h
--- trunk/playground/edu/Rocs/src/Actions/AddNode.cpp #1017938:1017939
@@ -52,6 +52,7 @@
Node *n = _graph -> addNode(i18n("untitled"));
n ->setX(pos.x());
n -> setY(pos.y());
+ n -> setZ(1);
Graph *g = qobject_cast<Graph*>(n->parent());
g->calcRelativeCenter();
--- trunk/playground/edu/Rocs/src/Actions/MoveNode.cpp #1017938:1017939
@@ -69,7 +69,7 @@
}
}
else {
- _node -> setPos(pos.x(), pos.y());
+ _node -> setPos(pos.x(), pos.y(), _node->z());
}
}
--- trunk/playground/edu/Rocs/src/Core/node.cpp #1017938:1017939
@@ -27,6 +27,7 @@
setColor("#FF0000");
setX(0);
setY(0);
+ setZ(0);
setBegin(false);
setEnd(false);
}
@@ -173,15 +174,26 @@
_y = y;
emit posChanged();
}
-void Node::setPos(qreal x, qreal y) {
+
+void Node::setZ(qreal z) {
+ _z = z;
+ emit posChanged();
+}
+
+void Node::setPos(qreal x, qreal y, qreal z) {
_x = x;
_y = y;
+ _z = z;
emit posChanged();
kDebug() << "Updating";
}
qreal Node::y() const {
return _y;
}
+
+qreal Node::z() const {
+ return _z;
+}
void Node::setColor(const QString& s) {
_color = s;
}
--- trunk/playground/edu/Rocs/src/Core/node.h #1017938:1017939
@@ -40,6 +40,7 @@
Q_OBJECT
Q_PROPERTY(qreal x READ x WRITE setX);
Q_PROPERTY(qreal y READ y WRITE setY);
+ Q_PROPERTY(qreal z READ z WRITE setZ);
Q_PROPERTY(QString name READ name WRITE setName);
Q_PROPERTY(QString color READ color WRITE setColor);
Q_PROPERTY(bool begin READ begin WRITE setBegin);
@@ -73,9 +74,11 @@
void setX(qreal x);
void setY(qreal y);
- void setPos(qreal x, qreal y);
+ void setZ(qreal z);
+ void setPos(qreal x, qreal y, qreal z = 1);
qreal x() const;
qreal y() const;
+ qreal z() const;
void setColor(const QString& s);
const QString& color() const;
void setName(const QString& s);
@@ -108,6 +111,7 @@
//! fixed properties
qreal _x;
qreal _y;
+ qreal _z;
QString _name;
QString _color;
bool _begin;
--- trunk/playground/edu/Rocs/src/GraphicsItem/NodeItem.cpp #1017938:1017939
@@ -45,6 +45,7 @@
connect(_node, SIGNAL(posChanged()), this, SLOT(updatePos()));
QPointF pos( _node -> x() ,_node->y() );
setPos( pos );
+ _oldZ = node->z();
setZValue(1);
setFlag(ItemIsSelectable);
connect (_node, SIGNAL(removed()), this, SLOT(deleteItem()));
@@ -87,29 +88,40 @@
}
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, -12 , 65, 25);
+ return QRectF(-52 * z, -12 * z , 65 * z, 25 * z);
}
if ( _removingBeginFlag ){
- return QRectF(-52, -12 , 65, 25);
+ return QRectF(-52 * z, -12 * z , 65 * z, 25 * z);
}
- return QRectF(-12, -12 , 25, 25);
+ return QRectF(-12 * z, -12 * z , 25 * z, 25 * z);
}
QPainterPath NodeItem::shape() const {
QPainterPath path;
- path.addEllipse(-10, -10, 20, 20);
+ qreal z = _node->z();
+ path.addEllipse(-10 * z, -10 * z, 20 * z, 20 * z);
return path;
}
void NodeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *) {
+ qreal z = _node->z();
+ 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()) {
QPen pen(Qt::black, 1, Qt::DotLine);
painter->setBrush(QBrush());
painter->setPen(pen);
- painter->drawRect(QRectF(-11 , -11 , 24 , 24 ));
+ painter->drawRect(QRectF(-11 * z , -11 * z , 24 * z , 24 * z ));
}
@@ -120,14 +132,15 @@
painter->drawLine(-20, 10, 0, 0);
}
else if (_removingBeginFlag) _removingBeginFlag = false;
+
painter->setPen(Qt::NoPen);
_color.setAlphaF(_opacity);
painter->setBrush( _color.dark(240) );
- painter->drawEllipse(-7, -7, 20, 20);
- QRadialGradient gradient(-3, -3, 10);
+ painter->drawEllipse(-7 * z, -7 * z, 20 * z, 20 * z);
+ QRadialGradient gradient(-3 * z, -3 * z, 10 * z);
if (option->state & QStyle::State_Sunken) {
gradient.setColorAt(0, _color.light(240));
@@ -139,12 +152,12 @@
painter->setBrush(gradient);
painter->setPen(QPen(_color, 2));
- painter->drawEllipse(-10, -10, 20, 20);
+ painter->drawEllipse(-10 * z, -10 * z, 20 * z, 20 * z);
if(_node && _node->end() ){
QColor c(Qt::black);
c.setAlphaF(_opacity);
painter->setPen(c);
- painter->drawEllipse(-7, -7, 15, 15);
+ painter->drawEllipse(-7 * z, -7 * z, 15 * z, 15 * z);
}
}
--- trunk/playground/edu/Rocs/src/GraphicsItem/NodeItem.h #1017938:1017939
@@ -36,6 +36,9 @@
class NodeItem : public QObject, public QGraphicsItem {
Q_OBJECT
public:
+
+ bool isDownSizing;
+ bool isUpSizing;
/*! default constructor
\param node the Node that this item will interact to.
\param parent the QGraphicsITem that this Item belongs to. */
@@ -91,6 +94,7 @@
private:
Node *_node;
+ qreal _oldZ;
qreal _opacity;
bool _removingBeginFlag;
QTimeLine *_timeLine;
--- trunk/playground/edu/Rocs/src/Interface/GraphPropertiesWidget.cpp #1017938:1017939
@@ -43,8 +43,11 @@
_graphEdgeColor->setColor(_graph->edgeDefaultColor());
_graphNodeColor->setColor(_graph->nodeDefaultColor());
_graphAutomate->setChecked(_graph->automate());
- _graphAutomate->setChecked( _graph->directed());
+ _graphAutomate->setChecked(_graph->directed());
+ _activateGraph->setChecked(true);
+ _editWidget->setVisible(_activateGraph->isChecked());
+
}
void GraphPropertiesWidget::on__graphAutomate_clicked(bool b){
@@ -60,7 +63,7 @@
}
void GraphPropertiesWidget::on__graphName_textChanged(QString n){
-
+ _activateGraph->setText(_graphName->text());
}
void GraphPropertiesWidget::on__graphNodeColorApplyNow_clicked(){
@@ -77,4 +80,4 @@
void GraphPropertiesWidget::on__graphDelete_clicked(){
-}
\ No newline at end of file
+}
--- trunk/playground/edu/Rocs/src/Interface/GraphScene.cpp #1017938:1017939
@@ -31,6 +31,7 @@
#include <QGraphicsSceneWheelEvent>
#include <QKeyEvent>
#include <KDebug>
+#include "node.h"
#include "graph.h"
GraphScene::GraphScene(QObject *parent) : QGraphicsScene(parent) {
@@ -103,23 +104,51 @@
return edgeItem;
}
+void GraphScene::wheelEvent(QGraphicsSceneWheelEvent *wheelEvent) {
+ NodeItem *nitem = qgraphicsitem_cast<NodeItem*>(itemAt(wheelEvent->scenePos()));
+ if (!nitem) return;
+ Node *movableNode = nitem->node();
+ int numDegrees = wheelEvent->delta();
+ if(wheelEvent->orientation() == Qt::Vertical) {
+ if(numDegrees > 0)
+ {
+ nitem->isUpSizing = 1;
+ movableNode->setZ(movableNode->z()+0.25);
+ nitem->update();
+ nitem->isUpSizing = 0;
+ }
+ else if(movableNode->z() > 0.5)
+ {
+ nitem->isDownSizing = 1;
+ movableNode->setZ(movableNode->z()-0.25);
+ nitem->update();
+ nitem->isDownSizing = 0;
+ }
+ }
+ }
+
void GraphScene::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent) {
_action->executeMove(mouseEvent->scenePos());
}
void GraphScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent) {
+ if(mouseEvent->button() == 4)
+ {
+ NodeItem *nitem = qgraphicsitem_cast<NodeItem*>(itemAt(mouseEvent->scenePos()));
+ if (!nitem) return;
+ Node *movableNode = nitem->node();
+ nitem->isDownSizing = 1;
+ movableNode->setZ(1);
+ nitem->update();
+ nitem->isDownSizing = 0;
+ }
_action->executePress(mouseEvent->scenePos());
-
}
void GraphScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent) {
- _action->executeRelease(mouseEvent->scenePos());
+ _action->executeRelease(mouseEvent->scenePos());
}
-void GraphScene::wheelEvent(QGraphicsSceneWheelEvent *) {
-
-}
-
void GraphScene::keyPressEvent(QKeyEvent *) {
}
--- trunk/playground/edu/Rocs/src/Interface/GraphScene.h #1017938:1017939
@@ -9,7 +9,7 @@
* version 2 of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * MERCHANTABILITY or FITNGraphScene::ESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
* You should have received a copy of the GNU Library General Public License
* along with this program; see the file COPYING. If not, write to
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic