diff options
Diffstat (limited to 'src/gui/tikzscene.cpp')
-rw-r--r-- | src/gui/tikzscene.cpp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp index 746e9dc..a3dd8ce 100644 --- a/src/gui/tikzscene.cpp +++ b/src/gui/tikzscene.cpp @@ -8,8 +8,8 @@ #include <QDebug> -TikzScene::TikzScene(TikzDocument *tikzDocument, QObject *parent) : - QGraphicsScene(parent), _tikzDocument(tikzDocument) +TikzScene::TikzScene(TikzDocument *tikzDocument, ToolPalette *tools, QObject *parent) : + QGraphicsScene(parent), _tikzDocument(tikzDocument), _tools(tools) { _modifyEdgeItem = 0; _edgeStartNodeItem = 0; @@ -73,7 +73,7 @@ void TikzScene::mousePressEvent(QGraphicsSceneMouseEvent *event) qreal cpR = GLOBAL_SCALEF * (0.05); qreal cpR2 = cpR * cpR; - switch (tikzit->toolPalette()->currentTool()) { + switch (_tools->currentTool()) { case ToolPalette::SELECT: // check if we grabbed a control point of an edge foreach (QGraphicsItem *gi, selectedItems()) { @@ -145,8 +145,10 @@ void TikzScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { // current mouse position, in scene coordinates QPointF mousePos = event->scenePos(); + QRectF rb = views()[0]->rubberBandRect(); + invalidate(-800,-800,1600,1600); - switch (tikzit->toolPalette()->currentTool()) { + switch (_tools->currentTool()) { case ToolPalette::SELECT: if (_modifyEdgeItem != 0) { Edge *e = _modifyEdgeItem->edge(); @@ -262,7 +264,7 @@ void TikzScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) // current mouse position, in scene coordinates QPointF mousePos = event->scenePos(); - switch (tikzit->toolPalette()->currentTool()) { + switch (_tools->currentTool()) { case ToolPalette::SELECT: if (_modifyEdgeItem != 0) { // finished dragging a control point @@ -361,6 +363,18 @@ void TikzScene::keyReleaseEvent(QKeyEvent *event) } } +void TikzScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + QPointF mousePos = event->scenePos(); + foreach (QGraphicsItem *gi, items(mousePos)) { + if (EdgeItem *ei = dynamic_cast<EdgeItem*>(gi)) { + ChangeEdgeModeCommand *cmd = new ChangeEdgeModeCommand(this, ei->edge()); + _tikzDocument->undoStack()->push(cmd); + break; + } + } +} + void TikzScene::getSelection(QSet<Node *> &selNodes, QSet<Edge *> &selEdges) { foreach (QGraphicsItem *gi, selectedItems()) { |