From 16c082112c6d057d734d4765b466e315389ce694 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Fri, 29 Jan 2016 11:53:22 -0800 Subject: QML UI: pick new highest dive number when manually adding dive It's possible that this will create an out of order dive list, but it seems the most consistent way to do things and to avoid more than one dive with the same dive number (which could have happened if you add several dives manually that are not the newest dives in the dive list). Signed-off-by: Dirk Hohndel --- qt-models/divelistmodel.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'qt-models') diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp index 9ddf05dbc..bef2c5158 100644 --- a/qt-models/divelistmodel.cpp +++ b/qt-models/divelistmodel.cpp @@ -119,10 +119,15 @@ QString DiveListModel::startAddDive() struct dive *d; d = alloc_dive(); d->when = QDateTime::currentMSecsSinceEpoch() / 1000L + gettimezoneoffset(); - struct dive *pd = get_dive(dive_table.nr - 1); - int nr = 1; - if (pd && pd->number > 0) - nr = pd->number + 1; + + // find the highest dive nr we have and pick the next one + struct dive *pd; + int i, nr = 0; + for_each_dive(i, pd) { + if (pd->number > nr) + nr = pd->number; + } + nr++; d->number = nr; d->dc.model = strdup("manually added dive"); add_single_dive(-1, d); -- cgit v1.2.3-70-g09d2