summaryrefslogtreecommitdiff
path: root/tikzit/src/data
diff options
context:
space:
mode:
Diffstat (limited to 'tikzit/src/data')
-rw-r--r--tikzit/src/data/edge.cpp22
-rw-r--r--tikzit/src/data/edge.h5
-rw-r--r--tikzit/src/data/tikzparser.parser.cpp11
-rw-r--r--tikzit/src/data/tikzparser.y5
4 files changed, 37 insertions, 6 deletions
diff --git a/tikzit/src/data/edge.cpp b/tikzit/src/data/edge.cpp
index b999f8a..3ff6c6e 100644
--- a/tikzit/src/data/edge.cpp
+++ b/tikzit/src/data/edge.cpp
@@ -1,9 +1,9 @@
#include "edge.h"
#include "tikzit.h"
+#include "util.h"
#include <QDebug>
#include <QPointF>
-#include <cmath>
Edge::Edge(Node *s, Node *t, QObject *parent) :
QObject(parent), _source(s), _target(t)
@@ -278,6 +278,26 @@ float Edge::cpDist() const
return _cpDist;
}
+void Edge::setBend(int bend)
+{
+ _bend = bend;
+}
+
+void Edge::setInAngle(int inAngle)
+{
+ _inAngle = inAngle;
+}
+
+void Edge::setOutAngle(int outAngle)
+{
+ _outAngle = outAngle;
+}
+
+void Edge::setWeight(float weight)
+{
+ _weight = weight;
+}
+
QPointF Edge::mid() const
{
return _mid;
diff --git a/tikzit/src/data/edge.h b/tikzit/src/data/edge.h
index e392c56..d2913b8 100644
--- a/tikzit/src/data/edge.h
+++ b/tikzit/src/data/edge.h
@@ -50,6 +50,11 @@ public:
bool basicBendMode() const;
float cpDist() const;
+ void setBend(int bend);
+ void setInAngle(int inAngle);
+ void setOutAngle(int outAngle);
+ void setWeight(float weight);
+
signals:
public slots:
diff --git a/tikzit/src/data/tikzparser.parser.cpp b/tikzit/src/data/tikzparser.parser.cpp
index 53c8da7..3dadb45 100644
--- a/tikzit/src/data/tikzparser.parser.cpp
+++ b/tikzit/src/data/tikzparser.parser.cpp
@@ -532,7 +532,7 @@ static const yytype_uint8 yyrline[] =
0, 124, 124, 130, 130, 131, 131, 131, 131, 133,
133, 136, 138, 140, 141, 148, 154, 156, 163, 169,
169, 171, 172, 190, 190, 191, 198, 199, 201, 202,
- 210, 243, 243, 244, 244, 245, 247
+ 210, 246, 246, 247, 247, 248, 250
};
#endif
@@ -1677,8 +1677,11 @@ yyreduce:
}
Edge *edge = assembler->graph()->addEdge(s, t);
- if ((yyvsp[(2) - (7)].data))
+ if ((yyvsp[(2) - (7)].data)) {
edge->setData((yyvsp[(2) - (7)].data));
+ edge->setAttributesFromData();
+ }
+
if ((yyvsp[(5) - (7)].node))
edge->setEdgeNode((yyvsp[(5) - (7)].node));
if ((yyvsp[(3) - (7)].noderef).anchor) {
@@ -1698,7 +1701,7 @@ yyreduce:
break;
case 36:
-#line 248 "../tikzit/src/data/tikzparser.y"
+#line 251 "../tikzit/src/data/tikzparser.y"
{
assembler->graph()->setBbox(QRectF(*(yyvsp[(3) - (6)].pt), *(yyvsp[(5) - (6)].pt)));
delete (yyvsp[(3) - (6)].pt);
@@ -1708,7 +1711,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
-#line 1712 "../tikzit/src/data/tikzparser.parser.cpp"
+#line 1715 "../tikzit/src/data/tikzparser.parser.cpp"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
diff --git a/tikzit/src/data/tikzparser.y b/tikzit/src/data/tikzparser.y
index b5bca35..eaf09eb 100644
--- a/tikzit/src/data/tikzparser.y
+++ b/tikzit/src/data/tikzparser.y
@@ -221,8 +221,11 @@ edge: "\\draw" optproperties noderef "to" optedgenode optnoderef ";"
}
Edge *edge = assembler->graph()->addEdge(s, t);
- if ($2)
+ if ($2) {
edge->setData($2);
+ edge->setAttributesFromData();
+ }
+
if ($5)
edge->setEdgeNode($5);
if ($3.anchor) {