summaryrefslogtreecommitdiff
path: root/tikzit/src/gui/nodeitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tikzit/src/gui/nodeitem.cpp')
-rw-r--r--tikzit/src/gui/nodeitem.cpp124
1 files changed, 0 insertions, 124 deletions
diff --git a/tikzit/src/gui/nodeitem.cpp b/tikzit/src/gui/nodeitem.cpp
deleted file mode 100644
index 71226f3..0000000
--- a/tikzit/src/gui/nodeitem.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-#include "tikzit.h"
-#include "nodeitem.h"
-#include "tikzscene.h"
-#include <cmath>
-
-#include <QPen>
-#include <QApplication>
-#include <QBrush>
-#include <QDebug>
-#include <QFont>
-#include <QFontMetrics>
-#include <QPainterPathStroker>
-
-NodeItem::NodeItem(Node *node)
-{
- _node = node;
- setFlag(QGraphicsItem::ItemIsSelectable);
- setFlag(QGraphicsItem::ItemIsMovable);
- setFlag(QGraphicsItem::ItemSendsGeometryChanges);
- readPos();
-}
-
-void NodeItem::readPos()
-{
- setPos(toScreen(_node->point()));
-}
-
-void NodeItem::writePos()
-{
- _node->setPoint(fromScreen(pos()));
-}
-
-QRectF NodeItem::labelRect() const {
- QString label = _node->label();
- //QFont f("Courier", 9);
- QFontMetrics fm(Tikzit::LABEL_FONT);
-
- QRectF rect = fm.boundingRect(label);
- //rect.adjust(-2,-2,2,2);
- rect.moveCenter(QPointF(0,0));
- return rect;
-}
-
-void NodeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
-{
- if (_node->style()->isNone()) {
- QColor c(180,180,200);
- painter->setPen(QPen(c));
- painter->setBrush(QBrush(c));
- painter->drawEllipse(QPointF(0,0), 1,1);
-
- QPen pen(QColor(180,180,220));
- QVector<qreal> p;
- p << 2.0 << 2.0;
- pen.setDashPattern(p);
- painter->setPen(pen);
- painter->setBrush(Qt::NoBrush);
- painter->drawPath(shape());
- } else {
- QPen pen(_node->style()->strokeColor);
- pen.setWidth(_node->style()->strokeThickness);
- painter->setPen(pen);
- painter->setBrush(QBrush(_node->style()->fillColor));
- painter->drawPath(shape());
- }
-
- if (_node->label() != "") {
- QRectF rect = labelRect();
- QPen pen(QColor(200,0,0,120));
- QVector<qreal> d;
- d << 2.0 << 2.0;
- pen.setDashPattern(d);
- painter->setPen(pen);
- painter->setBrush(QBrush(QColor(255,255,100,120)));
- painter->drawRect(rect);
-
- painter->setPen(QPen(Qt::black));
- painter->setFont(Tikzit::LABEL_FONT);
- painter->drawText(rect, Qt::AlignCenter, _node->label());
- }
-
- if (isSelected()) {
- QPainterPath sh = shape();
- QPainterPathStroker stroker;
- stroker.setWidth(4);
- QPainterPath outline = (stroker.createStroke(sh) + sh).simplified();
- painter->setPen(Qt::NoPen);
- painter->setBrush(QBrush(QColor(150,200,255,100)));
- painter->drawPath(outline);
- }
-
-}
-
-QPainterPath NodeItem::shape() const
-{
- QPainterPath path;
- path.addEllipse(QPointF(0,0), GLOBAL_SCALEF * 0.1, GLOBAL_SCALEF * 0.1);
- return path;
-}
-
-QRectF NodeItem::boundingRect() const
-{
- QRectF r = labelRect();
- return r.united(shape().boundingRect()).adjusted(-4,-4,4,4);
-}
-
-Node *NodeItem::node() const
-{
- return _node;
-}
-
-QVariant NodeItem::itemChange(GraphicsItemChange change, const QVariant &value)
-{
- if (change == ItemPositionChange) {
- QPointF newPos = value.toPointF();
- int gridSize = GLOBAL_SCALE / 8;
- QPointF gridPos(round(newPos.x()/gridSize)*gridSize, round(newPos.y()/gridSize)*gridSize);
- _node->setPoint(fromScreen(gridPos));
-
- return gridPos;
- } else {
- return QGraphicsItem::itemChange(change, value);
- }
-}