<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 4 August 2017 at 14:11, Dirk Hohndel <span dir="ltr"><<a href="mailto:dirk@hohndel.org" target="_blank">dirk@hohndel.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On Aug 3, 2017, at 3:49 PM, Rick Walsh <<a href="mailto:rickmwalsh@gmail.com">rickmwalsh@gmail.com</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> 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>
</span>I have spent many hours on this. Yes, we either need to fix this or remove the feature.<br></blockquote><div>I agree, I meant to say we should remove the feature if we can't fix it.<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This won't prevent another beta (it's not a regression, it's broken in the current beta), but it will prevent the actual release of 2.0.<br>
<div><div class="h5"><br>
> The most reliable way I have come up with to reproduce the bug (crash just occurred 3 of 4 times) is:<br>
> 1) select a dive from somewhere in the list - dive details page will open<br>
> 2) hit back button to return to dive list, with dive still selected<br>
> 3) go to menu and open another page (e.g. 'About' or 'Settings')<br>
> 4) hit back button to return to dive list, with dive still selected<br>
> 5) hold down on the selected dive so the trash icon appears<br>
> 6) crash...<br>
><br>
> 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>
><br>
> 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(<wbr>0xcb0e14e0) is already in the PageRow<br>
> Both point size and pixel size set. Using pixel size.<br>
> qrc:/templates/<wbr>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/<wbr>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/<wbr>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/<wbr>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.<wbr>qml:254: TypeError: Cannot read property 'dive' of null<br>
> qrc:///qml/DiveDetailsEdit.<wbr>qml:228: TypeError: Cannot read property 'dive' of null<br>
> qrc:///qml/DiveDetailsEdit.<wbr>qml:216: TypeError: Cannot read property 'dive' of null<br>
> qrc:///qml/DiveDetailsEdit.<wbr>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>
> The TypeError lines (254, 228, 216, 204) in DiveDetailsEdit.qml are similar.<br>
>             HintsTextEdit {<br>
>                 id: cylinderBox<br>
> ***Line 254***                model: diveDetailsListView.<wbr>currentItem ? diveDetailsListView.<wbr>currentItem.modelData.dive.<wbr>cylinderList : null<br>
>                 inputMethodHints: Qt.ImhNoPredictiveText<br>
>                 Layout.fillWidth: true<br>
><br></div></div></blockquote><div><br></div><div>I sent a pull request to fix the TypeErrors, but unfortunately it doesn't stop the crash. <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
<br>
</div></div>My suspicion is that somehow our different models get out of sync. But it's really, really hard to debug this :-(<br></blockquote><br>Indeed it is<br></div></div></div>