Mobile: clear dive data via model

Clearing the dive data directly in the core leaves us with an
inconsistent model. Therefore, clear via the model.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-09-26 13:37:44 +02:00 committed by Dirk Hohndel
parent f0fc1f3a56
commit 649ac1f83a
3 changed files with 10 additions and 2 deletions

View file

@ -277,7 +277,7 @@ void QMLManager::applicationStateChanged(Qt::ApplicationState state)
void QMLManager::openLocalThenRemote(QString url)
{
clear_dive_file_data();
DiveListModel::instance()->clear();
setNotificationText(tr("Open local dive data file"));
QByteArray fileNamePrt = QFile::encodeName(url);
bool glo = git_local_only;
@ -730,7 +730,7 @@ void QMLManager::loadDivesWithValidCredentials()
// if we aren't switching from no-cloud mode, let's clear the dive data
if (!noCloudToCloud) {
appendTextToLog("Clear out in memory dive data");
clear_dive_file_data();
DiveListModel::instance()->clear();
} else {
appendTextToLog("Switching from no cloud mode; keep in memory dive data");
}

View file

@ -171,6 +171,13 @@ void DiveListModel::updateDive(int i, dive *d)
insertDive(i);
}
void DiveListModel::clear()
{
beginResetModel();
clear_dive_file_data();
endResetModel();
}
void DiveListModel::reload()
{
beginResetModel();

View file

@ -62,6 +62,7 @@ public:
QHash<int, QByteArray> roleNames() const;
QString startAddDive();
void resetInternalData();
void clear(); // Clear all dives in core
Q_INVOKABLE DiveObjectHelper at(int i);
private:
static DiveListModel *m_instance;