summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2018-10-02 17:46:03 +0200
committerAleks Kissinger <aleks0@gmail.com>2018-10-02 17:46:03 +0200
commite61fb864ec68a58abdb9cc9df047b4b75801c5e7 (patch)
treef85fa5506ef776692e67c0a69a671e33d954c5f7 /src/gui
parent52f2d4b7f3df910db6592ae16b1eec825b70c4d6 (diff)
fixed self-loop support
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/tikzscene.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp
index 119d0d1..c061221 100644
--- a/src/gui/tikzscene.cpp
+++ b/src/gui/tikzscene.cpp
@@ -556,8 +556,8 @@ void TikzScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
}
break;
case ToolPalette::EDGE:
- // add an edge. Currently, self-loops are not supported (since they aren't drawn properly)
- if (_edgeStartNodeItem != 0 && _edgeEndNodeItem != 0 && _edgeStartNodeItem != _edgeEndNodeItem) {
+ // add an edge
+ if (_edgeStartNodeItem != 0 && _edgeEndNodeItem != 0) {
Edge *e = new Edge(_edgeStartNodeItem->node(), _edgeEndNodeItem->node(), _tikzDocument);
e->setStyleName(_styles->activeEdgeStyleName());
AddEdgeCommand *cmd = new AddEdgeCommand(this, e);
@@ -659,8 +659,10 @@ void TikzScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
foreach (QGraphicsItem *it, items(mousePos)) {
if (EdgeItem *ei = dynamic_cast<EdgeItem*>(it)) {
- ChangeEdgeModeCommand *cmd = new ChangeEdgeModeCommand(this, ei->edge());
- _tikzDocument->undoStack()->push(cmd);
+ if (!ei->edge()->isSelfLoop()) {
+ ChangeEdgeModeCommand *cmd = new ChangeEdgeModeCommand(this, ei->edge());
+ _tikzDocument->undoStack()->push(cmd);
+ }
break;
} else if (NodeItem *ni = dynamic_cast<NodeItem*>(it)) {
bool ok;