summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--desktop-widgets/downloadfromdivecomputer.cpp23
-rw-r--r--desktop-widgets/downloadfromdivecomputer.h5
2 files changed, 28 insertions, 0 deletions
diff --git a/desktop-widgets/downloadfromdivecomputer.cpp b/desktop-widgets/downloadfromdivecomputer.cpp
index 41acae7c5..047d325f2 100644
--- a/desktop-widgets/downloadfromdivecomputer.cpp
+++ b/desktop-widgets/downloadfromdivecomputer.cpp
@@ -83,6 +83,7 @@ DownloadFromDCWidget::DownloadFromDCWidget(QWidget *parent, Qt::WindowFlags f) :
if (!qPrefDiveComputer::vendor##num().isEmpty()) { \
ui.DC##num->setVisible(true); \
ui.DC##num->setText(qPrefDiveComputer::vendor##num() + " - " + qPrefDiveComputer::product##num()); \
+ connect(ui.DC##num, &QPushButton::clicked, this, &DownloadFromDCWidget::DC##num##Clicked); \
} else { \
ui.DC##num->setVisible(false); \
}
@@ -114,6 +115,28 @@ DownloadFromDCWidget::DownloadFromDCWidget(QWidget *parent, Qt::WindowFlags f) :
ui.device->setEditText(deviceText);
}
+// DC button slots
+#define DCBUTTON(num) \
+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())); \
+ if (QSysInfo::kernelType() == "darwin") { \
+ /* it makes no sense that this would be needed on macOS but not Linux */ \
+ QCoreApplication::processEvents(); \
+ ui.vendor->update(); \
+ ui.product->update(); \
+ ui.device->update(); \
+ } \
+}
+
+DCBUTTON(1)
+DCBUTTON(2)
+DCBUTTON(3)
+DCBUTTON(4)
+
void DownloadFromDCWidget::updateProgressBar()
{
static char *last_text = NULL;
diff --git a/desktop-widgets/downloadfromdivecomputer.h b/desktop-widgets/downloadfromdivecomputer.h
index f9cc83e64..78e2923ce 100644
--- a/desktop-widgets/downloadfromdivecomputer.h
+++ b/desktop-widgets/downloadfromdivecomputer.h
@@ -50,6 +50,11 @@ slots:
void checkDumpFile(int state);
void pickDumpFile();
void pickLogFile();
+ void DC1Clicked();
+ void DC2Clicked();
+ void DC3Clicked();
+ void DC4Clicked();
+
#if defined(BT_SUPPORT)
void enableBluetoothMode(int state);
void selectRemoteBluetoothDevice();