From ca911e6916a5598c7558cabc2f695fceee3d5143 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Fri, 15 Nov 2019 21:33:05 -0800 Subject: [PATCH] mobile: correctly reset model instead of disconnecting it This is a much better workaround for the invalid accesses to the underlying data while transitioning. Signed-off-by: Dirk Hohndel --- mobile-widgets/qmlmanager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index f12f78895..6243bc3ea 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -300,6 +300,7 @@ void QMLManager::applicationStateChanged(Qt::ApplicationState state) void QMLManager::openLocalThenRemote(QString url) { DiveListModel::instance()->clear(); + MobileListModel::instance()->resetModel(); setNotificationText(tr("Open local dive data file")); QByteArray fileNamePrt = QFile::encodeName(url); /* if this is a cloud storage repo and we have no local cache (i.e., it's the first time @@ -337,6 +338,7 @@ void QMLManager::openLocalThenRemote(QString url) qPrefPartialPressureGas::set_po2(git_prefs.pp_graphs.po2); process_loaded_dives(); DiveListModel::instance()->reload(); + MobileListModel::instance()->resetModel(); 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)); } @@ -560,6 +562,7 @@ void QMLManager::saveCloudCredentials(const QString &newEmail, const QString &ne manager()->clearAccessCache(); // remove any chached credentials clear_git_id(); // invalidate our remembered GIT SHA DiveListModel::instance()->reload(); + MobileListModel::instance()->resetModel(); 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;