summaryrefslogtreecommitdiff
path: root/tikzit/src/gui/tikzscene.cpp
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2017-12-18 15:29:33 +0000
committerAleks Kissinger <aleks0@gmail.com>2017-12-18 15:29:33 +0000
commit2bf85f71dc07b2c4785b9408e3c426ccaab55b74 (patch)
tree29ed038fa42f7ba5f11a2af305b6c350149a1a9b /tikzit/src/gui/tikzscene.cpp
parent5816cd5d5e3edf7ee7a7273c7c3a3d907dc54a4a (diff)
introduced some comments for source navigation
Diffstat (limited to 'tikzit/src/gui/tikzscene.cpp')
-rw-r--r--tikzit/src/gui/tikzscene.cpp61
1 files changed, 55 insertions, 6 deletions
diff --git a/tikzit/src/gui/tikzscene.cpp b/tikzit/src/gui/tikzscene.cpp
index 058835d..cd88f4e 100644
--- a/tikzit/src/gui/tikzscene.cpp
+++ b/tikzit/src/gui/tikzscene.cpp
@@ -1,3 +1,8 @@
+/**
+ * Manage the scene, which contains a single Graph, and respond to user input. This serves as
+ * the controller for the MVC (Graph, TikzView, TikzScene).
+ */
+
#include "tikzit.h"
#include "tikzscene.h"
@@ -9,7 +14,9 @@
TikzScene::TikzScene(Graph *graph, QObject *parent) :
QGraphicsScene(parent), _graph(graph)
{
+}
+TikzScene::~TikzScene() {
}
Graph *TikzScene::graph() const
@@ -52,23 +59,65 @@ void TikzScene::graphReplaced()
void TikzScene::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
- // TODO: check if we grabbed a control point
+ QPointF mousePos(event->buttonDownScenePos(Qt::LeftButton).x(),
+ event->buttonDownScenePos(Qt::LeftButton).y());
- QGraphicsScene::mousePressEvent(event);
+
+ switch (tikzit->toolPalette()->currentTool()) {
+ case ToolPalette::SELECT:
+ // TODO: check if we grabbed a control point
+ QGraphicsScene::mousePressEvent(event);
+ if (!selectedItems().empty() && !items(mousePos).empty()) {
+ _oldNodePositions = new QHash<NodeItem*,QPointF>();
+ for (QGraphicsItem *gi : selectedItems()) {
+ if (NodeItem *ni = dynamic_cast<NodeItem*>(gi)) {
+ _oldNodePositions->
+ }
+ }
+ qDebug() << "I am dragging";
+ }
+ break;
+ case ToolPalette::VERTEX:
+ break;
+ case ToolPalette::EDGE:
+ break;
+ case ToolPalette::CROP:
+ break;
+ }
}
void TikzScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
- //foreach (Edge *e, _graph->edges()) { e->updateControls(); }
+ switch (tikzit->toolPalette()->currentTool()) {
+ case ToolPalette::SELECT:
+ QGraphicsScene::mouseMoveEvent(event);
+ break;
+ case ToolPalette::VERTEX:
+ break;
+ case ToolPalette::EDGE:
+ break;
+ case ToolPalette::CROP:
+ break;
+ }
+
+ // TODO: only sync edges that change
foreach (EdgeItem *ei, edgeItems) {
ei->edge()->updateControls();
ei->syncPos();
}
-
- QGraphicsScene::mouseMoveEvent(event);
}
void TikzScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
- QGraphicsScene::mouseReleaseEvent(event);
+ switch (tikzit->toolPalette()->currentTool()) {
+ case ToolPalette::SELECT:
+ QGraphicsScene::mouseReleaseEvent(event);
+ break;
+ case ToolPalette::VERTEX:
+ break;
+ case ToolPalette::EDGE:
+ break;
+ case ToolPalette::CROP:
+ break;
+ }
}