diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-11-08 16:58:33 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-11-18 16:50:09 -0800 |
commit | 6b283e598a3a08c6133d66b5d5617370296e7d0e (patch) | |
tree | 685ccf1fd839d72471b179bf12aa72d2bdcec7de /qt-models | |
parent | bc7afebc23477ef23f2b9741bf45b2180cbafe15 (diff) | |
download | subsurface-6b283e598a3a08c6133d66b5d5617370296e7d0e.tar.gz |
Dive list: replace dive-list of trips by a table
The dives of each trip were kept in a list. Replace this by a
struct dive_table. This will make it significantly easier to
keep the dives of a trip in sorted state.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'qt-models')
-rw-r--r-- | qt-models/divelistmodel.cpp | 2 | ||||
-rw-r--r-- | qt-models/divetripmodel.cpp | 11 | ||||
-rw-r--r-- | qt-models/filtermodels.cpp | 4 |
3 files changed, 8 insertions, 9 deletions
diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp index 75eb9137a..b12786fa9 100644 --- a/qt-models/divelistmodel.cpp +++ b/qt-models/divelistmodel.cpp @@ -100,7 +100,7 @@ void DiveListSortModel::updateDivesShownInTrips() struct dive_trip *dt = dive_trip_list; int rc = rowCount(); while (dt) { - dt->showndives = rc ? 0 : dt->nrdives; + dt->showndives = rc ? 0 : dt->dives.nr; dt = dt->next; } for (int i = 0; i < rowCount(); i++) { diff --git a/qt-models/divetripmodel.cpp b/qt-models/divetripmodel.cpp index 7c5bb4efb..6eadbbb24 100644 --- a/qt-models/divetripmodel.cpp +++ b/qt-models/divetripmodel.cpp @@ -57,20 +57,19 @@ QVariant DiveTripModel::tripData(const dive_trip *trip, int column, int role) switch (column) { case DiveTripModel::NR: QString shownText; - struct dive *d = trip->dives; int countShown = 0; - while (d) { + for (int i = 0; i < trip->dives.nr; ++i) { + struct dive *d = trip->dives.dives[i]; if (!d->hidden_by_filter) countShown++; oneDayTrip &= is_same_day (trip->when, d->when); - d = d->next; } - if (countShown < trip->nrdives) + if (countShown < trip->dives.nr) shownText = tr("(%1 shown)").arg(countShown); if (!empty_string(trip->location)) - return QString(trip->location) + ", " + get_trip_date_string(trip->when, trip->nrdives, oneDayTrip) + " "+ shownText; + return QString(trip->location) + ", " + get_trip_date_string(trip->when, trip->dives.nr, oneDayTrip) + " "+ shownText; else - return get_trip_date_string(trip->when, trip->nrdives, oneDayTrip) + shownText; + return get_trip_date_string(trip->when, trip->dives.nr, oneDayTrip) + shownText; } } diff --git a/qt-models/filtermodels.cpp b/qt-models/filtermodels.cpp index d335d3f7c..d485684f3 100644 --- a/qt-models/filtermodels.cpp +++ b/qt-models/filtermodels.cpp @@ -634,8 +634,8 @@ bool MultiFilterSortModel::filterAcceptsRow(int source_row, const QModelIndex &s return false; // Oops. Neither dive nor trip, something is seriously wrong. // Show the trip if any dive is visible - for (d = trip->dives; d; d = d->next) { - if (!d->hidden_by_filter) + for (int i = 0; i < trip->dives.nr; ++i) { + if (!trip->dives.dives[i]->hidden_by_filter) return true; } return false; |