mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
mobile: fix crash on delete dive from divelist
This is a somewhat hacky commit. For a very long time, the delete from the divelist on mobile crashed. That is, not always for anyone, but for me almost consistently. This commit tries to solve it. I found that trying to save the delete immediately after removing data from the underlying model seemed to cause the crash. Hacking around, I found that a simple beginResetModel/endResetModel between the delete of the underlying model data and actual save is sufficient to solve the crash. The big question is, why does this all work? I suspect some of race condition between deleting model data, and giving the QML engine the opportunity to do its thing. This is also related to issue #311, but that is not implemented here. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
This commit is contained in:
parent
0096284a8e
commit
6193aef9ac
4 changed files with 13 additions and 2 deletions
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue