summaryrefslogtreecommitdiff
path: root/src/gui/tikzscene.cpp
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2018-04-06 08:36:18 +0200
committerAleks Kissinger <aleks0@gmail.com>2018-04-06 08:36:18 +0200
commite840508c39b8e85328875477bfdbe0417c4e0eb0 (patch)
treeb405ed169cdb1ddbd25de91dc2e87f39b1b95316 /src/gui/tikzscene.cpp
parent9e2116497660509afd417cc3b952ea80bbb72ce5 (diff)
parse tikz feature
Diffstat (limited to 'src/gui/tikzscene.cpp')
-rw-r--r--src/gui/tikzscene.cpp33
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()) {