Compare commits
1 Commits
master
...
fixDeleteC
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
31a979371e |
@ -278,11 +278,40 @@ Kirigami.ScrollablePage {
|
|||||||
visible: currentItem && currentItem.myData && !currentItem.myData.isTrip
|
visible: currentItem && currentItem.myData && !currentItem.myData.isTrip
|
||||||
onTriggered: manager.toggleDiveInvalid(currentItem.myData.id)
|
onTriggered: manager.toggleDiveInvalid(currentItem.myData.id)
|
||||||
}
|
}
|
||||||
|
Timer {
|
||||||
|
// this waits a tenth of a second and then deletes the dive -
|
||||||
|
// this way the Action in the contextDrawer can complete its signal handler before
|
||||||
|
// having the visual QML element going away and being deleted (which could cause a crash)
|
||||||
|
id: delayedDelete
|
||||||
|
interval: 100
|
||||||
|
onTriggered: {
|
||||||
|
var myDiveToDelete = diveToDelete // try to minimize the window for a race
|
||||||
|
diveToDelete = -1
|
||||||
|
if (myDiveToDelete !== -1) {
|
||||||
|
manager.appendTextToLog("now deleting dive id " + myDiveToDelete)
|
||||||
|
manager.deleteDive(myDiveToDelete)
|
||||||
|
} else {
|
||||||
|
manager.appendTextToLog("delayedDelete triggered with dive id -1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
property int diveToDelete: -1
|
||||||
property QtObject deleteAction: Kirigami.Action {
|
property QtObject deleteAction: Kirigami.Action {
|
||||||
text: qsTr("Delete dive")
|
text: qsTr("Delete dive")
|
||||||
icon { name: ":/icons/trash-empty.svg" }
|
icon { name: ":/icons/trash-empty.svg" }
|
||||||
visible: currentItem && currentItem.myData && !currentItem.myData.isTrip
|
visible: currentItem && currentItem.myData && !currentItem.myData.isTrip
|
||||||
onTriggered: manager.deleteDive(currentItem.myData.id)
|
onTriggered: {
|
||||||
|
if (diveToDelete === -1) {
|
||||||
|
diveToDelete = currentItem.myData.id
|
||||||
|
manager.appendTextToLog("setting timer to delete dive " + diveToDelete)
|
||||||
|
delayedDelete.start()
|
||||||
|
contextDrawer.close()
|
||||||
|
manager.appendTextToLog("closed drawer, done with the action")
|
||||||
|
} else {
|
||||||
|
manager.appendTextToLog("deleteAction triggered with diveToDelete already set to " +
|
||||||
|
diveToDelete + " -- ignoring just to be safe");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
property QtObject mapAction: Kirigami.Action {
|
property QtObject mapAction: Kirigami.Action {
|
||||||
text: qsTr("Show on map")
|
text: qsTr("Show on map")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user