diff options
Diffstat (limited to 'src/gui/tikzscene.cpp')
-rw-r--r-- | src/gui/tikzscene.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp index ffc111c..a650961 100644 --- a/src/gui/tikzscene.cpp +++ b/src/gui/tikzscene.cpp @@ -80,6 +80,8 @@ void TikzScene::graphReplaced() void TikzScene::mousePressEvent(QGraphicsSceneMouseEvent *event) { + if (!_enabled) return; + // current mouse position, in scene coordinates _mouseDownPos = event->scenePos(); @@ -181,6 +183,8 @@ void TikzScene::mousePressEvent(QGraphicsSceneMouseEvent *event) void TikzScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { + if (!_enabled) return; + // current mouse position, in scene coordinates QPointF mousePos = event->scenePos(); //QRectF rb = views()[0]->rubberBandRect(); @@ -323,6 +327,8 @@ void TikzScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) void TikzScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { + if (!_enabled) return; + // current mouse position, in scene coordinates QPointF mousePos = event->scenePos(); @@ -415,6 +421,8 @@ void TikzScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) void TikzScene::keyReleaseEvent(QKeyEvent *event) { + if (!_enabled) return; + if (event->key() == Qt::Key_Backspace || event->key() == Qt::Key_Delete) { deleteSelectedItems(); } else if (event->modifiers() == Qt::NoModifier) { @@ -438,6 +446,8 @@ void TikzScene::keyReleaseEvent(QKeyEvent *event) void TikzScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) { + if (!_enabled) return; + QPointF mousePos = event->scenePos(); foreach (QGraphicsItem *gi, items(mousePos)) { if (EdgeItem *ei = dynamic_cast<EdgeItem*>(gi)) { @@ -462,6 +472,18 @@ void TikzScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) } } +bool TikzScene::enabled() const +{ + return _enabled; +} + +void TikzScene::setEnabled(bool enabled) +{ + _enabled = enabled; + update(); +} + + void TikzScene::applyActiveStyleToNodes() { ApplyStyleToNodesCommand *cmd = new ApplyStyleToNodesCommand(this, _styles->activeNodeStyleName()); _tikzDocument->undoStack()->push(cmd); @@ -547,6 +569,17 @@ void TikzScene::deselectAll() selectedItems().clear(); } +void TikzScene::parseTikz(QString tikz) +{ + Graph *newGraph = new Graph(this); + TikzAssembler ass(newGraph); + if (ass.parse(tikz)) { + ReplaceGraphCommand *cmd = new ReplaceGraphCommand(this, graph(), newGraph); + tikzDocument()->undoStack()->push(cmd); + setEnabled(true); + } +} + void TikzScene::getSelection(QSet<Node *> &selNodes, QSet<Edge *> &selEdges) { foreach (QGraphicsItem *gi, selectedItems()) { |