Mobile: don't generate numerous DiveObjectHelpers in startEditMode()

Since that object is very heavy, generate one object and read out all
the necessary values. The old code accessed the model again and again.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-08-22 19:52:25 +02:00 committed by bstoeger
parent 718c07c1a8
commit e780b0a96c

View file

@ -240,49 +240,50 @@ Kirigami.Page {
// set things up for editing - so make sure that the detailsEdit has // set things up for editing - so make sure that the detailsEdit has
// all the right data (using the property aliases set up above) // all the right data (using the property aliases set up above)
dive_id = currentItem.modelData.dive.id var dive = currentItem.modelData.dive
number = currentItem.modelData.dive.number dive_id = dive.id
date = currentItem.modelData.dive.date + " " + currentItem.modelData.dive.time number = dive.number
location = currentItem.modelData.dive.location date = dive.date + " " + dive.time
locationIndex = manager.locationList.indexOf(currentItem.modelData.dive.location) location = dive.location
gps = currentItem.modelData.dive.gps locationIndex = manager.locationList.indexOf(dive.location)
gps = dive.gps
gpsCheckbox = false gpsCheckbox = false
duration = currentItem.modelData.dive.duration duration = dive.duration
depth = currentItem.modelData.dive.depth depth = dive.depth
airtemp = currentItem.modelData.dive.airTemp airtemp = dive.airTemp
watertemp = currentItem.modelData.dive.waterTemp watertemp = dive.waterTemp
suitIndex = manager.suitList.indexOf(currentItem.modelData.dive.suit) suitIndex = manager.suitList.indexOf(dive.suit)
if (currentItem.modelData.dive.buddy.indexOf(",") > 0) { if (dive.buddy.indexOf(",") > 0) {
buddyIndex = manager.buddyList.indexOf(currentItem.modelData.dive.buddy.split(",", 1).toString()) buddyIndex = manager.buddyList.indexOf(dive.buddy.split(",", 1).toString())
} else { } else {
buddyIndex = manager.buddyList.indexOf(currentItem.modelData.dive.buddy) buddyIndex = manager.buddyList.indexOf(dive.buddy)
} }
buddyText = currentItem.modelData.dive.buddy; buddyText = dive.buddy;
if (currentItem.modelData.dive.divemaster.indexOf(",") > 0) { if (dive.divemaster.indexOf(",") > 0) {
divemasterIndex = manager.divemasterList.indexOf(currentItem.modelData.dive.divemaster.split(",", 1).toString()) divemasterIndex = manager.divemasterList.indexOf(dive.divemaster.split(",", 1).toString())
} else { } else {
divemasterIndex = manager.divemasterList.indexOf(currentItem.modelData.dive.divemaster) divemasterIndex = manager.divemasterList.indexOf(dive.divemaster)
} }
divemasterText = currentItem.modelData.dive.divemaster divemasterText = dive.divemaster
notes = currentItem.modelData.dive.notes notes = dive.notes
if (currentItem.modelData.dive.singleWeight) { if (dive.singleWeight) {
// we have only one weight, go ahead, have fun and edit it // we have only one weight, go ahead, have fun and edit it
weight = currentItem.modelData.dive.sumWeight weight = dive.sumWeight
} else { } else {
// careful when translating, this text is "magic" in DiveDetailsEdit.qml // careful when translating, this text is "magic" in DiveDetailsEdit.qml
weight = "cannot edit multiple weight systems" weight = "cannot edit multiple weight systems"
} }
startpressure = currentItem.modelData.dive.startPressure startpressure = dive.startPressure
endpressure = currentItem.modelData.dive.endPressure endpressure = dive.endPressure
usedGas = currentItem.modelData.dive.firstGas usedGas = dive.firstGas
usedCyl = currentItem.modelData.dive.getCylinder usedCyl = dive.getCylinder
cylinderIndex0 = currentItem.modelData.dive.cylinderList.indexOf(usedCyl[0]) cylinderIndex0 = dive.cylinderList.indexOf(usedCyl[0])
cylinderIndex1 = currentItem.modelData.dive.cylinderList.indexOf(usedCyl[1]) cylinderIndex1 = dive.cylinderList.indexOf(usedCyl[1])
cylinderIndex2 = currentItem.modelData.dive.cylinderList.indexOf(usedCyl[2]) cylinderIndex2 = dive.cylinderList.indexOf(usedCyl[2])
cylinderIndex3 = currentItem.modelData.dive.cylinderList.indexOf(usedCyl[3]) cylinderIndex3 = dive.cylinderList.indexOf(usedCyl[3])
cylinderIndex4 = currentItem.modelData.dive.cylinderList.indexOf(usedCyl[4]) cylinderIndex4 = dive.cylinderList.indexOf(usedCyl[4])
rating = currentItem.modelData.dive.rating rating = dive.rating
visibility = currentItem.modelData.dive.visibility visibility = dive.visibility
diveDetailsPage.state = "edit" diveDetailsPage.state = "edit"
} }