diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2014-05-23 22:22:02 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-05-24 07:32:23 -0700 |
commit | f67693b2e0dc8dc8e89a44b2db17fc1f6bc64931 (patch) | |
tree | f923de1bfe19e531b3522119be040512fb0154fa /qt-ui | |
parent | 8a1e4b04db048b3809456394c6c55643826a751b (diff) | |
download | subsurface-f67693b2e0dc8dc8e89a44b2db17fc1f6bc64931.tar.gz |
Make mouse dragging work as it should.
This patch makes mouse dragging work as it should, a tiny
bit different than the old version, but I think it's a better
way. What's missing: Keyboard actions.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/profile/profilewidget2.cpp | 21 | ||||
-rw-r--r-- | qt-ui/profile/profilewidget2.h | 1 |
2 files changed, 20 insertions, 2 deletions
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp index dd4ecca85..b1bf57f9f 100644 --- a/qt-ui/profile/profilewidget2.cpp +++ b/qt-ui/profile/profilewidget2.cpp @@ -1009,12 +1009,29 @@ void ProfileWidget2::repositionDiveHandlers() } } +int ProfileWidget2::fixHandlerIndex(DiveHandler *activeHandler) +{ + int index = handles.indexOf(activeHandler); + if (index > 0 && index < handles.count() - 1) { + DiveHandler *before = handles[index - 1]; + if (before->pos().x() > activeHandler->pos().x()) { + handles.swap(index, index-1); + return index - 1; + } + DiveHandler *after = handles[index + 1]; + if (after->pos().x() < activeHandler->pos().x()) { + handles.swap(index, index+1); + return index + 1; + } + } + return index; +} + void ProfileWidget2::recreatePlannedDive() { DiveHandler *activeHandler = qobject_cast<DiveHandler*>(sender()); DivePlannerPointsModel *plannerModel = DivePlannerPointsModel::instance(); - int index = handles.indexOf(activeHandler); - + int index = fixHandlerIndex(activeHandler); int mintime = 0, maxtime = (timeAxis->maximum() + 10) * 60; if (index > 0) mintime = plannerModel->at(index - 1).time; diff --git a/qt-ui/profile/profilewidget2.h b/qt-ui/profile/profilewidget2.h index 1c1258de5..4b1d881de 100644 --- a/qt-ui/profile/profilewidget2.h +++ b/qt-ui/profile/profilewidget2.h @@ -149,6 +149,7 @@ private: QList<DiveHandler *> handles; QList<QGraphicsSimpleTextItem *> gases; void repositionDiveHandlers(); + int fixHandlerIndex(DiveHandler *activeHandler); }; #endif // PROFILEWIDGET2_H |