aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2014-05-23 22:22:02 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-05-24 07:32:23 -0700
commitf67693b2e0dc8dc8e89a44b2db17fc1f6bc64931 (patch)
treef923de1bfe19e531b3522119be040512fb0154fa /qt-ui
parent8a1e4b04db048b3809456394c6c55643826a751b (diff)
downloadsubsurface-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.cpp21
-rw-r--r--qt-ui/profile/profilewidget2.h1
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