Import: Make DownloadThread a subobject of DiveImportedModel

Currently, desktop and mobile are accessing the DownloadThread
and the DiveImportedModel concurrently. This makes a big data
flow mess. To achieve a more hierarchical data flow, start
by making the DownloadThread a subobject of DiveImportedModel.

Start the download by calling a function in DiveImportedModel.

Route the finished signal through DiveImportedModel. Thus,
the model can reload itself with the new data.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-09-25 20:49:13 +02:00 committed by Dirk Hohndel
parent 6e343c734a
commit ad7ffa0af0
5 changed files with 45 additions and 33 deletions

View file

@ -24,18 +24,13 @@ Kirigami.Page {
property alias product: comboProduct.currentIndex
property alias connection: comboConnection.currentIndex
DCDownloadThread {
id: downloadThread
DCImportModel {
id: importModel
onFinished : {
if (!table || !sites) {
console.warn("DCDownloadThread::onFinished(): table or sites is null!")
return
}
importModel.repopulate(table, sites)
onDownloadFinished : {
progressBar.visible = false
if (dcImportModel.rowCount() > 0) {
console.log(dcImportModel.rowCount() + " dive downloaded")
if (rowCount() > 0) {
console.log(rowCount() + " dive downloaded")
divesDownloaded = true
} else {
console.log("no new dives downloaded")
@ -45,10 +40,6 @@ Kirigami.Page {
}
}
DCImportModel {
id: importModel
}
ColumnLayout {
anchors.top: parent.top
height: parent.height
@ -295,7 +286,7 @@ Kirigami.Page {
message += " downloading " + (manager.DC_forceDownload ? "all" : "only new" ) + " dives";
manager.appendTextToLog(message)
progressBar.visible = true
downloadThread.start()
importModel.startDownload()
}
}
SsrfButton {