Skip to content
Snippets Groups Projects
Commit 04786aa0 authored by Joseph Mirabel's avatar Joseph Mirabel Committed by Joseph Mirabel
Browse files

Tiny update of the interface.

parent 446b60d6
No related branches found
No related tags found
No related merge requests found
......@@ -25,7 +25,9 @@ License along with this library.
QGVNode::QGVNode(QGVNodePrivate *node, QGVScene *scene): _scene(scene), _node(node)
{
setFlag(QGraphicsItem::ItemIsSelectable, true);
setFlag (QGraphicsItem::ItemIsSelectable, true);
setFlag (QGraphicsItem::ItemIsMovable, true);
setFlag (QGraphicsItem::ItemSendsGeometryChanges, true);
}
QGVNode::~QGVNode()
......@@ -115,7 +117,6 @@ QVariant QGVNode::itemChange (GraphicsItemChange change, const QVariant & value)
QString newStr = QGVCore::qtToGvPos (QGVCore::centerToOrigin (newPos, -width, -height), gheight);
if (!newStr.isEmpty()) {
qDebug () << newPos;
if (oldStr != newStr) {
setAttribute ("pos", newStr.toLocal8Bit().data());
}
......
......@@ -51,13 +51,14 @@ public:
return Type;
}
void updateLayout();
protected:
QVariant itemChange (GraphicsItemChange change, const QVariant & value);
private:
friend class QGVScene;
friend class QGVSubGraph;
void updateLayout();
QGVNode(QGVNodePrivate* node, QGVScene *scene);
// Not implemented in QGVNode.cpp
......
......@@ -139,11 +139,13 @@ void QGVScene::loadLayout(const QString &text)
QGVNode *inode = new QGVNode(new QGVNodePrivate(node), this);
inode->updateLayout();
addItem(inode);
_nodes.append (inode);
for (Agedge_t* edge = agfstout(_graph->graph(), node); edge != NULL; edge = agnxtout(_graph->graph(), edge))
{
QGVEdge *iedge = new QGVEdge(new QGVEdgePrivate(edge), this);
iedge->updateLayout();
addItem(iedge);
_edges.append (iedge);
}
}
......
......@@ -78,6 +78,7 @@ protected:
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent * mouseEvent);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent * mouseEvent);
virtual void drawBackground(QPainter * painter, const QRectF & rect);
private:
friend class QGVNode;
friend class QGVEdge;
......
......@@ -24,6 +24,18 @@ qreal QGVCore::graphHeight(Agraph_t *graph)
return GD_bb(graph).UR.y;
}
bool QGVCore::gvToQtPos (QString att, qreal dpi, qreal gheight, QPointF& pos)
{
QStringList split = att.split(",");
if (split.length () != 2) return false;
bool ok = true;
float x = split[0].toFloat (&ok); if (!ok) return false;
float y = split[1].toFloat (&ok); if (!ok) return false;
//Le repere Y commence du bas dans graphViz et du haut pour Qt !
pos.setX (x); pos.setY((gheight - y));
return true;
}
QString QGVCore::qtToGvPos (QPointF pos, qreal gheight)
{
float x = pos.x();
......@@ -120,6 +132,8 @@ Qt::BrushStyle QGVCore::toBrushStyle(const QString &style)
{
if(style == "filled")
return Qt::SolidPattern;
else if (style == "dashed")
return Qt::Dense5Pattern;
return Qt::NoBrush;
}
......
......@@ -38,6 +38,7 @@ class QGVCore
{
public:
static qreal graphHeight(Agraph_t *graph);
static bool gvToQtPos(QString att, qreal dpi, qreal gheight, QPointF& pos);
static QString qtToGvPos (QPointF pos, qreal gheight);
static QPointF toPoint(pointf p, qreal gheight);
static QPointF toPoint(point p, qreal gheight);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment