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
|
@ -162,9 +162,8 @@ Kirigami.ScrollablePage {
|
|||
anchors.fill: parent
|
||||
enabled: parent.visible
|
||||
onClicked: {
|
||||
parent.visible = false
|
||||
deleteButtonVisible = false
|
||||
timer.stop()
|
||||
detailsWindow.showDiveIndex(index)
|
||||
manager.deleteDive(dive.id)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1244,6 +1244,7 @@ void QMLManager::deleteDive(int id)
|
|||
}
|
||||
DiveListModel::instance()->removeDiveById(id);
|
||||
delete_single_dive(get_idx_by_uniq_id(id));
|
||||
DiveListModel::instance()->resetInternalData();
|
||||
changesNeedSaving();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue