summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2018-09-24 07:04:21 -0700
committerGravatar Jan Mulder <jlmulder@xs4all.nl>2018-09-24 18:51:21 +0200
commitebb3fc8a0cc68036afa6cfc09bbc7edeb3e36356 (patch)
tree165222d495a89f506cd23fba68f017a467f6f0ce
parent02fc78570e7d0a44264a9084a4884581adafe218 (diff)
downloadsubsurface-ebb3fc8a0cc68036afa6cfc09bbc7edeb3e36356.tar.gz
Desktop/remember DCs: insert the remember connection into dropdown
This still doesn't do the right thing for BT/BLE connections on a Mac, but it should work on Linux and possibly Mac. We definitely need to figure out how to get the Mac to successfully connect back to a BT/BLE device. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--desktop-widgets/downloadfromdivecomputer.cpp13
-rw-r--r--desktop-widgets/downloadfromdivecomputer.h1
2 files changed, 13 insertions, 1 deletions
diff --git a/desktop-widgets/downloadfromdivecomputer.cpp b/desktop-widgets/downloadfromdivecomputer.cpp
index c040575fc..561ff2998 100644
--- a/desktop-widgets/downloadfromdivecomputer.cpp
+++ b/desktop-widgets/downloadfromdivecomputer.cpp
@@ -121,6 +121,17 @@ void DownloadFromDCWidget::showRememberedDCs()
SETUPDC(4)
}
+int DownloadFromDCWidget::deviceIndex(QString deviceText)
+{
+ int rv = ui.device->findText(deviceText);
+ if (rv == -1) {
+ // we need to insert the device text into the model
+ ui.device->addItem(deviceText);
+ rv = ui.device->findText(deviceText);
+ }
+ return rv;
+}
+
// DC button slots
#define DCBUTTON(num) \
void DownloadFromDCWidget::DC##num##Clicked() \
@@ -128,7 +139,7 @@ void DownloadFromDCWidget::DC##num##Clicked() \
ui.vendor->setCurrentIndex(ui.vendor->findText(qPrefDiveComputer::vendor##num())); \
productModel.setStringList(productList[qPrefDiveComputer::vendor##num()]); \
ui.product->setCurrentIndex(ui.product->findText(qPrefDiveComputer::product##num())); \
- ui.device->setCurrentIndex(ui.device->findText(qPrefDiveComputer::device##num())); \
+ ui.device->setCurrentIndex(deviceIndex(qPrefDiveComputer::device##num())); \
if (QSysInfo::kernelType() == "darwin") { \
/* it makes no sense that this would be needed on macOS but not Linux */ \
QCoreApplication::processEvents(); \
diff --git a/desktop-widgets/downloadfromdivecomputer.h b/desktop-widgets/downloadfromdivecomputer.h
index da4f5d35a..bdaa3057a 100644
--- a/desktop-widgets/downloadfromdivecomputer.h
+++ b/desktop-widgets/downloadfromdivecomputer.h
@@ -54,6 +54,7 @@ slots:
void DC2Clicked();
void DC3Clicked();
void DC4Clicked();
+ int deviceIndex(QString deviceText);
#if defined(BT_SUPPORT)
void enableBluetoothMode(int state);