aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md1
m---------libdivecomputer0
-rw-r--r--qt-models/diveplannermodel.cpp7
3 files changed, 7 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4971abc3f..18240f402 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,7 @@
core: add support for Shearwater Peregrine (requires firmware V79 or newer)
core: fix renumbering of imported dives [#2731]
mobile: fix editing tank information
+planner: Handle zero length segments gracefully when replanning
mobile: disable download button if no connection is selected
mobile: fix incorrect time stamps on GPS track points created via location service
core: correctly recognize A1 as BLE dive computer
diff --git a/libdivecomputer b/libdivecomputer
-Subproject ad566ab04f6ef3943d2306b41b35ac427afddb4
+Subproject 1df0e13cc44041743836065c66928c06a5c035a
diff --git a/qt-models/diveplannermodel.cpp b/qt-models/diveplannermodel.cpp
index ebcbeb51e..bdc79c9e6 100644
--- a/qt-models/diveplannermodel.cpp
+++ b/qt-models/diveplannermodel.cpp
@@ -128,6 +128,7 @@ void DivePlannerPointsModel::loadFromDive(dive *d)
int plansamples = dc->samples <= 100 ? dc->samples : 100;
int j = 0;
int cylinderid = 0;
+
last_sp.mbar = 0;
for (int i = 0; i < plansamples - 1; i++) {
if (dc->last_manual_time.seconds && dc->last_manual_time.seconds > 120 && lasttime.seconds >= dc->last_manual_time.seconds)
@@ -145,7 +146,11 @@ void DivePlannerPointsModel::loadFromDive(dive *d)
}
if (samplecount) {
cylinderid = get_cylinderid_at_time(d, dc, lasttime);
- if (newtime.seconds - lastrecordedtime.seconds > 10) {
+ duration_t nexttime = newtime;
+ ++nexttime.seconds;
+ if (newtime.seconds - lastrecordedtime.seconds > 10 || cylinderid == get_cylinderid_at_time(d, dc, nexttime)) {
+ if (newtime.seconds == lastrecordedtime.seconds)
+ newtime.seconds += 10;
current_divemode = get_current_divemode(dc, newtime.seconds - 1, &evd, &current_divemode);
addStop(depthsum / samplecount, newtime.seconds, cylinderid, last_sp.mbar, true, current_divemode);
lastrecordedtime = newtime;