From 9e97f124c6b5fe4f50ff188f8470c0a5c5cce6b7 Mon Sep 17 00:00:00 2001 From: Claudiu Olteanu Date: Sun, 6 Sep 2015 23:59:28 +0300 Subject: [PATCH] Save Bluetooth download mode settings Save the dive computer download mode flag. In this way, if the user used Bluetooth mode to download its dives on his last session he doesn't need to open the Bth selection dialog if he wants to use the same device. Signed-off-by: Claudiu Olteanu Signed-off-by: Dirk Hohndel --- display.h | 2 +- divecomputer.cpp | 11 +++++++++++ helpers.h | 1 + qt-ui/downloadfromdivecomputer.cpp | 5 +++-- qt-ui/mainwindow.cpp | 1 + 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/display.h b/display.h index 3ce0d4f29..59dd97ef4 100644 --- a/display.h +++ b/display.h @@ -53,7 +53,7 @@ int enumerate_devices(device_callback_t callback, void *userdata, int dc_type); extern const char *default_dive_computer_vendor; extern const char *default_dive_computer_product; extern const char *default_dive_computer_device; - +extern int default_dive_computer_download_mode; #define AMB_PERCENTAGE 50.0 #ifdef __cplusplus diff --git a/divecomputer.cpp b/divecomputer.cpp index ac43bd00b..b45b74a44 100644 --- a/divecomputer.cpp +++ b/divecomputer.cpp @@ -6,6 +6,7 @@ const char *default_dive_computer_vendor; const char *default_dive_computer_product; const char *default_dive_computer_device; +int default_dive_computer_download_mode; DiveComputerList dcList; DiveComputerList::DiveComputerList() @@ -172,6 +173,16 @@ void set_default_dive_computer_device(const char *name) s.endGroup(); } +void set_default_dive_computer_download_mode(int download_mode) +{ + QSettings s; + + default_dive_computer_download_mode = download_mode; + s.beginGroup("DiveComputer"); + s.setValue("dive_computer_download_mode", download_mode); + s.endGroup(); +} + extern "C" void set_dc_nickname(struct dive *dive) { if (!dive) diff --git a/helpers.h b/helpers.h index 47dccb90e..6c5c31c7d 100644 --- a/helpers.h +++ b/helpers.h @@ -25,6 +25,7 @@ QString get_pressure_string(pressure_t pressure, bool showunit = false); QString get_pressure_unit(); void set_default_dive_computer(const char *vendor, const char *product); void set_default_dive_computer_device(const char *name); +void set_default_dive_computer_download_mode(int downloadMode); QString getSubsurfaceDataPath(QString folderToFind); extern const QString get_dc_nickname(const char *model, uint32_t deviceid); int gettimezoneoffset(timestamp_t when = 0); diff --git a/qt-ui/downloadfromdivecomputer.cpp b/qt-ui/downloadfromdivecomputer.cpp index 92f245506..63866d420 100644 --- a/qt-ui/downloadfromdivecomputer.cpp +++ b/qt-ui/downloadfromdivecomputer.cpp @@ -102,6 +102,7 @@ DownloadFromDCWidget::DownloadFromDCWidget(QWidget *parent, Qt::WindowFlags f) : #if defined(BT_SUPPORT) ui.bluetoothMode->setText(tr("Choose Bluetooth download mode")); + ui.bluetoothMode->setChecked(default_dive_computer_download_mode == DC_TRANSPORT_BLUETOOTH); btDeviceSelectionDialog = 0; ui.chooseBluetoothDevice->setEnabled(ui.bluetoothMode->isChecked()); connect(ui.bluetoothMode, SIGNAL(stateChanged(int)), this, SLOT(enableBluetoothMode(int))); @@ -321,7 +322,7 @@ void DownloadFromDCWidget::on_downloadCancelRetryButton_clicked() data.product = strdup(ui.product->currentText().toUtf8().data()); #if defined(BT_SUPPORT) data.bluetooth_mode = ui.bluetoothMode->isChecked(); - if (data.bluetooth_mode) { + if (data.bluetooth_mode && btDeviceSelectionDialog != NULL) { // Get the selected device address data.devname = strdup(btDeviceSelectionDialog->getSelectedDeviceAddress().toUtf8().data()); } else @@ -346,7 +347,7 @@ void DownloadFromDCWidget::on_downloadCancelRetryButton_clicked() data.deviceid = data.diveid = 0; set_default_dive_computer(data.vendor, data.product); set_default_dive_computer_device(data.devname); - + set_default_dive_computer_download_mode(ui.bluetoothMode->isChecked() ? DC_TRANSPORT_BLUETOOTH : DC_TRANSPORT_SERIAL); thread = new DownloadThread(this, &data); connect(thread, SIGNAL(finished()), diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index b19a23026..4b186ed69 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -1127,6 +1127,7 @@ void MainWindow::readSettings() default_dive_computer_vendor = getSetting(s, "dive_computer_vendor"); default_dive_computer_product = getSetting(s, "dive_computer_product"); default_dive_computer_device = getSetting(s, "dive_computer_device"); + default_dive_computer_download_mode = s.value("dive_computer_download_mode").toInt(); s.endGroup(); QNetworkProxy proxy; proxy.setType(QNetworkProxy::ProxyType(prefs.proxy_type));