<div dir="ltr"><div><div><div><div><div><div><div><div><div><div>Hi,<br><br></div>This is not a new bug, and has been reported before, but I think it's one that should be eliminated before the next release.  When deleting a dive from the dive list (select the dive from the list but hold down until the trash icon appears, then select the trash icon), the app will crash... sometimes.  But sometimes it works.<br><br></div>The most reliable way I have come up with to reproduce the bug (crash just occurred 3 of 4 times) is:<br></div>1) select a dive from somewhere in the list - dive details page will open<br></div>2) hit back button to return to dive list, with dive still selected<br></div>3) go to menu and open another page (e.g. 'About' or 'Settings')<br></div>4) hit back button to return to dive list, with dive still selected<br></div>5) hold down on the selected dive so the trash icon appears<br></div>6) crash...<br><br></div><div>That isn't the only way to reproduce the bug, but it's the most reliable way I have found.  I think it has something to do with deleting the currently selected dive, without properly selecting another dive.<br></div><div><br></div>Below is an extract from my subsurface log.<br>TouchPointPressed without previous release event QQuickEventPoint(valid:true accepted:false state:Pressed scenePos:QPointF(70.3333,415) id:2000001 timeHeld:0)<br>The item DiveDetails_QMLTYPE_71(0xcb0e14e0) is already in the PageRow<br>Both point size and pixel size set. Using pixel size.<br>qrc:/templates/ApplicationHeader.qml:84:13: QML Heading: Binding loop detected for property "width"<br>Both point size and pixel size set. Using pixel size.<br>Both point size and pixel size set. Using pixel size.<br>qrc:/templates/ApplicationHeader.qml:84:13: QML Heading: Binding loop detected for property "width"<br>Both point size and pixel size set. Using pixel size.<br>qrc:/templates/ApplicationHeader.qml:84:13: QML Heading: Binding loop detected for property "width"<br>Both point size and pixel size set. Using pixel size.<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>Both point size and pixel size set. Using pixel size.<br>qrc:/templates/ApplicationHeader.qml:84:13: QML Heading: Binding loop detected for property "width"<br>Both point size and pixel size set. Using pixel size.<br>Both point size and pixel size set. Using pixel size.<br>"846.350: Synchronising data file"<br>qrc:///qml/DiveDetailsEdit.qml:254: TypeError: Cannot read property 'dive' of null<br>qrc:///qml/DiveDetailsEdit.qml:228: TypeError: Cannot read property 'dive' of null<br>qrc:///qml/DiveDetailsEdit.qml:216: TypeError: Cannot read property 'dive' of null<br>qrc:///qml/DiveDetailsEdit.qml:204: TypeError: Cannot read property 'dive' of null<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>QObject::startTimer: Timers cannot be started from another thread<br>"846.578: Preparing to save data"<br>"846.621: Start saving data"<br>"846.687: Start saving dives"<br>"846.727: Done creating local cache"<br><br></div>The TypeError lines (254, 228, 216, 204) in DiveDetailsEdit.qml are similar.<br>            HintsTextEdit {<br>                id: cylinderBox<br>***Line 254***                model: diveDetailsListView.currentItem ? diveDetailsListView.currentItem.modelData.dive.cylinderList : null<br>                inputMethodHints: Qt.ImhNoPredictiveText<br>                Layout.fillWidth: true<br><br></div>