aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-06-21 16:07:44 -0300
committerGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-06-21 16:07:44 -0300
commit1e4d360d0c12969477122ecf72e6a4e6686142f3 (patch)
treef49fbcc2d0bd4740b0d3ef885977ad3b52940e45
parent397a94fcd1deb56240403a6e33e61f49460cc1c8 (diff)
downloadsubsurface-1e4d360d0c12969477122ecf72e6a4e6686142f3.tar.gz
Do not plot dive handlers outside of the Plane area.
This patch makes the behavior of inserting new hanflers correct. it can only be inserted now inside of the plane defined by the Depth ruler and Time ruler. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
-rw-r--r--qt-ui/diveplanner.cpp22
-rw-r--r--qt-ui/diveplanner.h2
2 files changed, 20 insertions, 4 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index 21d134d04..bc774cc83 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -206,10 +206,13 @@ void DivePlannerGraphics::moveActiveHandler(QPointF pos)
bool DivePlannerGraphics::isPointOutOfBoundaries(QPointF point)
{
- if (point.x() > sceneRect().width()
- || point.x() < 0
- || point.y() < 0
- || point.y() > sceneRect().height())
+ double xpos = timeLine->valueAt(point);
+ double ypos = depthLine->valueAt(point);
+
+ if (xpos > timeLine->maximum()
+ || xpos < timeLine->minimum()
+ || ypos > depthLine->maximum()
+ || ypos < depthLine->minimum())
{
return true;
}
@@ -325,3 +328,14 @@ DivePlanner* DivePlanner::instance()
static DivePlanner *self = new DivePlanner();
return self;
}
+
+double Ruler::maximum() const
+{
+ return max;
+}
+
+double Ruler::minimum() const
+{
+ return min;
+}
+
diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h
index 4a28f2ec1..ce4dd6d4f 100644
--- a/qt-ui/diveplanner.h
+++ b/qt-ui/diveplanner.h
@@ -22,6 +22,8 @@ public:
void setTickInterval(double interval);
void setOrientation(Qt::Orientation orientation);
void updateTicks();
+ double minimum() const;
+ double maximum() const;
qreal valueAt(const QPointF& p);
qreal posAtValue(qreal value);