summaryrefslogtreecommitdiff
path: root/src/gui/tikzscene.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/tikzscene.cpp')
-rw-r--r--src/gui/tikzscene.cpp24
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()) {