From 46483a096f98b3dc7186bb6971d6e5009cfb2b13 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Thu, 20 Jun 2013 13:56:28 -0300 Subject: Better defaults for placement of dive stops. This patch makes it impossible to create a dive stop outside of the scene - this, messing the complete planning system. Signed-off-by: Tomaz Canabrava --- qt-ui/diveplanner.cpp | 25 ++++++++++++++++++------- qt-ui/diveplanner.h | 2 ++ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp index 13f15a2e0..d4dd7d5bf 100644 --- a/qt-ui/diveplanner.cpp +++ b/qt-ui/diveplanner.cpp @@ -25,9 +25,13 @@ DivePlanner::DivePlanner(QWidget* parent): QGraphicsView(parent) void DivePlanner::mouseDoubleClickEvent(QMouseEvent* event) { + QPointF mappedPos = mapToScene(event->pos()); + if(isPointOutOfBoundaries(mappedPos)) + return; + QGraphicsEllipseItem *item = new QGraphicsEllipseItem(-5,-5,10,10); item->setFlag(QGraphicsItem::ItemIgnoresTransformations); - QPointF mappedPos = mapToScene(event->pos()); + item->setPos( mappedPos ); scene()->addItem(item); @@ -81,13 +85,20 @@ void DivePlanner::showEvent(QShowEvent* event) void DivePlanner::mouseMoveEvent(QMouseEvent* event) { QPointF mappedPos = mapToScene(event->pos()); - if (mappedPos.x() > sceneRect().width() - || mappedPos.x() < 0 - || mappedPos.y() < 0 - || mappedPos.y() > sceneRect().height()) - { + if (isPointOutOfBoundaries(mappedPos)) return; - } verticalLine->setLine(mappedPos.x(), 0, mappedPos.x(), 100); horizontalLine->setLine(0, mappedPos.y(), 100, mappedPos.y()); } + +bool DivePlanner::isPointOutOfBoundaries(QPointF point) +{ + if (point.x() > sceneRect().width() + || point.x() < 0 + || point.y() < 0 + || point.y() > sceneRect().height()) + { + return true; + } + return false; +} diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h index e66b50d57..7dca3bb85 100644 --- a/qt-ui/diveplanner.h +++ b/qt-ui/diveplanner.h @@ -15,6 +15,8 @@ protected: virtual void mouseMoveEvent(QMouseEvent* event); void clear_generated_deco(); void create_deco_stop(); + bool isPointOutOfBoundaries(QPointF point); + private: DivePlanner(QWidget* parent = 0); QList lines; -- cgit v1.2.3-70-g09d2