mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Mobile: disconnect model while updating dive list
If the dive list is connected to the model while the model is updated with the downloaded dives, sometimes the UI hangs completely. Disconnecting the model and then reconnecting it does add a fairly noticeable delay on longer dive lists, so there are tradeoffs here. Of course the obvious solution is to make reconnecting the model faster... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									113cb1acc0
								
							
						
					
					
						commit
						9f34f4f97d
					
				
					 2 changed files with 20 additions and 2 deletions
				
			
		|  | @ -385,19 +385,28 @@ Kirigami.Page { | |||
| 				text: qsTr("Accept") | ||||
| 				bottomPadding: Kirigami.Units.gridUnit / 2 | ||||
| 				onClicked: { | ||||
| 					manager.appendTextToLog("Save downloaded dives that were selected") | ||||
| 					busy = true | ||||
| 					rootItem.showBusy() | ||||
| 					manager.appendTextToLog("Save downloaded dives that were selected") | ||||
| 					manager.appendTextToLog("temporary disconnecting dive list model") | ||||
| 					diveList.diveListModel = null | ||||
| 					manager.appendTextToLog("Record dives") | ||||
| 					importModel.recordDives() | ||||
| 					manager.saveChangesLocal() | ||||
| 					manager.appendTextToLog("resetting model and refreshing the dive list") | ||||
| 					diveModel.resetInternalData() | ||||
| 					manager.refreshDiveList() | ||||
| 					manager.appendTextToLog("pageStack popping Download page") | ||||
| 					pageStack.pop() | ||||
| 					pageStack.push(diveList) | ||||
| 					manager.appendTextToLog("setting up the dive list model again") | ||||
| 					diveList.diveListModel = diveModel | ||||
| 					manager.appendTextToLog("pageStack switching to dive list") | ||||
| 					showDiveList() | ||||
| 					download.text = qsTr("Download") | ||||
| 					busy = false | ||||
| 					rootItem.hideBusy() | ||||
| 					divesDownloaded = false | ||||
| 					manager.appendTextToLog("switch to dive list has completed") | ||||
| 				} | ||||
| 			} | ||||
| 			Controls.Label { | ||||
|  |  | |||
|  | @ -103,7 +103,16 @@ Kirigami.ApplicationWindow { | |||
| 			pageStack.push(mapPage) | ||||
| 		else | ||||
| 			pageStack.currentIndex = i | ||||
| 	} | ||||
| 
 | ||||
| 	function showDiveList() { | ||||
| 		if (globalDrawer.drawerOpen) | ||||
| 			globalDrawer.close() | ||||
| 		var i=pageIndex(diveList) | ||||
| 		if (i === -1) | ||||
| 			pageStack.push(diveList) | ||||
| 		else | ||||
| 			pageStack.currentIndex = i | ||||
| 	} | ||||
| 
 | ||||
| 	function pageIndex(pageToFind) { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue