diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2013-06-21 16:07:44 -0300 |
---|---|---|
committer | Tomaz Canabrava <tcanabrava@kde.org> | 2013-06-21 16:07:44 -0300 |
commit | 1e4d360d0c12969477122ecf72e6a4e6686142f3 (patch) | |
tree | f49fbcc2d0bd4740b0d3ef885977ad3b52940e45 /qt-ui | |
parent | 397a94fcd1deb56240403a6e33e61f49460cc1c8 (diff) | |
download | subsurface-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>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/diveplanner.cpp | 22 | ||||
-rw-r--r-- | qt-ui/diveplanner.h | 2 |
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); |