summaryrefslogtreecommitdiff
path: root/src/data/edge.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/edge.cpp')
-rw-r--r--src/data/edge.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/data/edge.cpp b/src/data/edge.cpp
index 4803547..0bd49e8 100644
--- a/src/data/edge.cpp
+++ b/src/data/edge.cpp
@@ -57,8 +57,14 @@ Edge::Edge(Node *s, Node *t, QObject *parent) :
Edge *Edge::copy(QMap<Node*,Node*> *nodeTable)
{
Edge *e;
- if (nodeTable == nullptr) e = new Edge(_source, _target);
- else e = new Edge(nodeTable->value(_source), nodeTable->value(_target));
+ if (nodeTable == nullptr) {
+ e = new Edge(_source, _target);
+ } else {
+ Node *s = nodeTable->value(_source);
+ Node *t = nodeTable->value(_target);
+ e = new Edge((s != nullptr) ? s : _source,
+ (t != nullptr) ? t : _target);
+ }
e->setData(_data->copy());
e->setBasicBendMode(_basicBendMode);
e->setBend(_bend);