mobile/DCdownload: try harder to get the right elements selected

The number of possible sequences of events when the user is connecting a
USB device is rather surprising. These changes try to ensure that in
every case we get USB connection information we do in fact show the
correct (or best guess) connection.

See #2686

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2020-03-20 14:00:16 -07:00
parent 98ef01b2e4
commit 559547b7e6
2 changed files with 22 additions and 4 deletions

View file

@ -157,6 +157,16 @@ Kirigami.Page {
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight elide: Text.ElideRight
} }
onCountChanged: {
// ensure that pick the first entry once we have any
// entries in the connection list
if (count === 0)
currentIndex = -1
else if (currentIndex === -1)
currentIndex = 0
}
onCurrentTextChanged: { onCurrentTextChanged: {
var curVendor var curVendor
var curProduct var curProduct

View file

@ -820,13 +820,21 @@ if you have network connectivity and want to sync your data to cloud storage."),
downloadFromDc.dcImportModel.clearTable() downloadFromDc.dcImportModel.clearTable()
if (vendor !== undefined && product !== undefined && connection !== undefined) { if (vendor !== undefined && product !== undefined && connection !== undefined) {
downloadFromDc.setupUSB = true downloadFromDc.setupUSB = true
/* set up the correct values on the download page */ // set up the correct values on the download page
if (vendor !== -1) // setting the currentIndex to -1, first, helps to ensure
// that the comboBox does get updated in the UI
if (vendor !== -1) {
downloadFromDc.vendor = -1
downloadFromDc.vendor = vendor downloadFromDc.vendor = vendor
if (product !== -1) }
if (product !== -1) {
downloadFromDc.product = -1
downloadFromDc.product = product downloadFromDc.product = product
if (connection !== -1) }
if (connection !== -1) {
downloadFromDc.connection = -1
downloadFromDc.connection = connection downloadFromDc.connection = connection
}
} else { } else {
downloadFromDc.setupUSB = false downloadFromDc.setupUSB = false
} }