diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-08-14 18:09:17 +0200 |
---|---|---|
committer | bstoeger <32835590+bstoeger@users.noreply.github.com> | 2019-09-14 13:20:59 +0200 |
commit | 0026aa395599489c09be3b7892b96923c670b7cf (patch) | |
tree | df1afd69466092143472ef5411d86cf141945e57 /mobile-widgets/qmlmanager.cpp | |
parent | 57b77c90b9dad6a114a13fe08b8ae7b986039de8 (diff) | |
download | subsurface-0026aa395599489c09be3b7892b96923c670b7cf.tar.gz |
Mobile: replace clear()/addAllDives() pairs by reload()
The clear()/addAllDives() pair was bogus as the former didn't
clear the model (this is not possible anymore - the model
represents the core dive list) and the latter readded all
dives again.
Replace this by a reload() function.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'mobile-widgets/qmlmanager.cpp')
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index 8dcacf4cc..040c957e1 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -309,8 +309,7 @@ void QMLManager::openLocalThenRemote(QString url) qPrefTechnicalDetails::set_show_ccr_sensors(git_prefs.show_ccr_sensors); qPrefPartialPressureGas::set_po2(git_prefs.pp_graphs.po2); process_loaded_dives(); - DiveListModel::instance()->clear(); - DiveListModel::instance()->addAllDives(); + DiveListModel::instance()->reload(); appendTextToLog(QStringLiteral("%1 dives loaded from cache").arg(dive_table.nr)); setNotificationText(tr("%1 dives loaded from local dive data file").arg(dive_table.nr)); } @@ -529,7 +528,7 @@ void QMLManager::saveCloudCredentials() getCloudURL(url); manager()->clearAccessCache(); // remove any chached credentials clear_git_id(); // invalidate our remembered GIT SHA - DiveListModel::instance()->clear(); + DiveListModel::instance()->reload(); GpsListModel::instance()->clear(); setStartPageText(tr("Attempting to open cloud storage with new credentials")); // we therefore know that no one else is already accessing THIS git repo; @@ -757,8 +756,7 @@ successful_exit: if (noCloudToCloud) { git_storage_update_progress(qPrintable(tr("Loading dives from local storage ('no cloud' mode)"))); mergeLocalRepo(); - DiveListModel::instance()->clear(); - DiveListModel::instance()->addAllDives(); + DiveListModel::instance()->reload(); appendTextToLog(QStringLiteral("%1 dives loaded after importing nocloud local storage").arg(dive_table.nr)); noCloudToCloud = false; mark_divelist_changed(true); @@ -819,9 +817,8 @@ void QMLManager::consumeFinishedLoad(timestamp_t currentDiveTimestamp) prefs.show_ccr_setpoint = git_prefs.show_ccr_setpoint; prefs.show_ccr_sensors = git_prefs.show_ccr_sensors; prefs.pp_graphs.po2 = git_prefs.pp_graphs.po2; - DiveListModel::instance()->clear(); process_loaded_dives(); - DiveListModel::instance()->addAllDives(); + DiveListModel::instance()->reload(); if (currentDiveTimestamp) setUpdateSelectedDive(dlSortModel->getIdxForId(get_dive_id_closest_to(currentDiveTimestamp))); appendTextToLog(QStringLiteral("%1 dives loaded").arg(dive_table.nr)); @@ -832,8 +829,7 @@ void QMLManager::consumeFinishedLoad(timestamp_t currentDiveTimestamp) void QMLManager::refreshDiveList() { - DiveListModel::instance()->clear(); - DiveListModel::instance()->addAllDives(); + DiveListModel::instance()->reload(); } void QMLManager::setupDivesite(struct dive *d, struct dive_site *ds, double lat, double lon, const char *locationtext) @@ -1367,9 +1363,7 @@ bool QMLManager::undoDelete(int id) add_dive_to_trip(deletedDive, trip); } record_dive(deletedDive); - QList<dive *>diveAsList; - diveAsList << deletedDive; - DiveListModel::instance()->addDive(diveAsList); + DiveListModel::instance()->insertDive(get_idx_by_uniq_id(deletedDive->id), nullptr); changesNeedSaving(); deletedDive = NULL; deletedTrip = NULL; |