> On Aug 3, 2017, at 3:49 PM, Rick Walsh <[email protected]> wrote:
> 
> Hi,
> 
> 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.

I have spent many hours on this. Yes, we either need to fix this or remove the 
feature.
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.

> The most reliable way I have come up with to reproduce the bug (crash just 
> occurred 3 of 4 times) is:
> 1) select a dive from somewhere in the list - dive details page will open
> 2) hit back button to return to dive list, with dive still selected
> 3) go to menu and open another page (e.g. 'About' or 'Settings')
> 4) hit back button to return to dive list, with dive still selected
> 5) hold down on the selected dive so the trash icon appears
> 6) crash...
> 
> 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.
> 
> Below is an extract from my subsurface log.
> TouchPointPressed without previous release event QQuickEventPoint(valid:true 
> accepted:false state:Pressed scenePos:QPointF(70.3333,415) id:2000001 
> timeHeld:0)
> The item DiveDetails_QMLTYPE_71(0xcb0e14e0) is already in the PageRow
> Both point size and pixel size set. Using pixel size.
> qrc:/templates/ApplicationHeader.qml:84:13: QML Heading: Binding loop 
> detected for property "width"
> Both point size and pixel size set. Using pixel size.
> Both point size and pixel size set. Using pixel size.
> qrc:/templates/ApplicationHeader.qml:84:13: QML Heading: Binding loop 
> detected for property "width"
> Both point size and pixel size set. Using pixel size.
> qrc:/templates/ApplicationHeader.qml:84:13: QML Heading: Binding loop 
> detected for property "width"
> Both point size and pixel size set. Using pixel size.
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> Both point size and pixel size set. Using pixel size.
> qrc:/templates/ApplicationHeader.qml:84:13: QML Heading: Binding loop 
> detected for property "width"
> Both point size and pixel size set. Using pixel size.
> Both point size and pixel size set. Using pixel size.
> "846.350: Synchronising data file"
> qrc:///qml/DiveDetailsEdit.qml:254: TypeError: Cannot read property 'dive' of 
> null
> qrc:///qml/DiveDetailsEdit.qml:228: TypeError: Cannot read property 'dive' of 
> null
> qrc:///qml/DiveDetailsEdit.qml:216: TypeError: Cannot read property 'dive' of 
> null
> qrc:///qml/DiveDetailsEdit.qml:204: TypeError: Cannot read property 'dive' of 
> null
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> QObject::startTimer: Timers cannot be started from another thread
> "846.578: Preparing to save data"
> "846.621: Start saving data"
> "846.687: Start saving dives"
> "846.727: Done creating local cache"
> 
> The TypeError lines (254, 228, 216, 204) in DiveDetailsEdit.qml are similar.
>             HintsTextEdit {
>                 id: cylinderBox
> ***Line 254***                model: diveDetailsListView.currentItem ? 
> diveDetailsListView.currentItem.modelData.dive.cylinderList : null
>                 inputMethodHints: Qt.ImhNoPredictiveText
>                 Layout.fillWidth: true
> 

My suspicion is that somehow our different models get out of sync. But it's 
really, really hard to debug this :-(

/D
_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to