summaryrefslogtreecommitdiffstats
path: root/qt-models
diff options
context:
space:
mode:
Diffstat (limited to 'qt-models')
-rw-r--r--qt-models/divelistmodel.cpp10
-rw-r--r--qt-models/divelistmodel.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp
index b28bd58a3..b9fb99b1b 100644
--- a/qt-models/divelistmodel.cpp
+++ b/qt-models/divelistmodel.cpp
@@ -108,6 +108,16 @@ void DiveListModel::clear()
}
}
+void DiveListModel::resetInternalData()
+{
+ // this is a hack. There is a long standing issue, that seems related to a
+ // sync problem between QML engine and underlying model data. It causes delete
+ // from divelist (on mobile) to crash. But not always. This function is part of
+ // an attempt to fix this. See commit.
+ beginResetModel();
+ endResetModel();
+}
+
int DiveListModel::rowCount(const QModelIndex &) const
{
return m_dives.count();
diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h
index 41bc9107c..3dc3d74e4 100644
--- a/qt-models/divelistmodel.h
+++ b/qt-models/divelistmodel.h
@@ -46,6 +46,7 @@ public:
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
QHash<int, QByteArray> roleNames() const;
QString startAddDive();
+ void resetInternalData();
Q_INVOKABLE DiveObjectHelper* at(int i);
private:
QList<DiveObjectHelper*> m_dives;