diff options
Diffstat (limited to 'desktop-widgets')
-rw-r--r-- | desktop-widgets/btdeviceselectiondialog.cpp | 14 | ||||
-rw-r--r-- | desktop-widgets/btdeviceselectiondialog.h | 2 | ||||
-rw-r--r-- | desktop-widgets/configuredivecomputerdialog.cpp | 8 | ||||
-rw-r--r-- | desktop-widgets/downloadfromdivecomputer.cpp | 16 |
4 files changed, 29 insertions, 11 deletions
diff --git a/desktop-widgets/btdeviceselectiondialog.cpp b/desktop-widgets/btdeviceselectiondialog.cpp index 1b43c8471..de3e383c5 100644 --- a/desktop-widgets/btdeviceselectiondialog.cpp +++ b/desktop-widgets/btdeviceselectiondialog.cpp @@ -466,6 +466,20 @@ QString BtDeviceSelectionDialog::getSelectedDeviceName() return QString(); } +QString BtDeviceSelectionDialog::getSelectedDeviceText() +{ + return formatDeviceText(getSelectedDeviceAddress(), getSelectedDeviceName()); +} + +QString BtDeviceSelectionDialog::formatDeviceText(const QString &address, const QString &name) +{ + if (address.isEmpty()) + return name; + if (name.isEmpty()) + return address; + return QString("%1 (%2)").arg(name, address); +} + void BtDeviceSelectionDialog::updateLocalDeviceInformation() { #if defined(Q_OS_WIN) diff --git a/desktop-widgets/btdeviceselectiondialog.h b/desktop-widgets/btdeviceselectiondialog.h index e883278ce..67d1ef0b9 100644 --- a/desktop-widgets/btdeviceselectiondialog.h +++ b/desktop-widgets/btdeviceselectiondialog.h @@ -59,6 +59,8 @@ public: ~BtDeviceSelectionDialog(); QString getSelectedDeviceAddress(); QString getSelectedDeviceName(); + QString getSelectedDeviceText(); + static QString formatDeviceText(const QString &address, const QString &name); private slots: void on_changeDeviceState_clicked(); diff --git a/desktop-widgets/configuredivecomputerdialog.cpp b/desktop-widgets/configuredivecomputerdialog.cpp index 24fe63c3e..dd9913da4 100644 --- a/desktop-widgets/configuredivecomputerdialog.cpp +++ b/desktop-widgets/configuredivecomputerdialog.cpp @@ -904,7 +904,9 @@ void ConfigureDiveComputerDialog::configError(QString err) void ConfigureDiveComputerDialog::getDeviceData() { - device_data.devname = strdup(ui.device->currentText().toUtf8().data()); + QString device = ui.bluetoothMode && btDeviceSelectionDialog ? + btDeviceSelectionDialog->getSelectedDeviceAddress() : ui.device->currentText(); + device_data.devname = strdup(device.toUtf8().data()); device_data.vendor = strdup(selected_vendor.toUtf8().data()); device_data.product = strdup(selected_product.toUtf8().data()); @@ -913,6 +915,8 @@ void ConfigureDiveComputerDialog::getDeviceData() auto dc = SettingsObjectWrapper::instance()->dive_computer_settings; dc->setDevice(device_data.devname); + if (ui.bluetoothMode && btDeviceSelectionDialog) + dc->setDeviceName(btDeviceSelectionDialog->getSelectedDeviceName()); } void ConfigureDiveComputerDialog::on_cancel_clicked() @@ -1488,7 +1492,7 @@ void ConfigureDiveComputerDialog::selectRemoteBluetoothDevice() void ConfigureDiveComputerDialog::bluetoothSelectionDialogIsFinished(int result) { if (result == QDialog::Accepted) { - ui.device->setCurrentText(btDeviceSelectionDialog->getSelectedDeviceAddress()); + ui.device->setCurrentText(btDeviceSelectionDialog->getSelectedDeviceText()); device_data.bluetooth_mode = true; ui.progressBar->setFormat("Connecting to device..."); diff --git a/desktop-widgets/downloadfromdivecomputer.cpp b/desktop-widgets/downloadfromdivecomputer.cpp index f4506fd4c..0dd98d35a 100644 --- a/desktop-widgets/downloadfromdivecomputer.cpp +++ b/desktop-widgets/downloadfromdivecomputer.cpp @@ -84,14 +84,13 @@ DownloadFromDCWidget::DownloadFromDCWidget(QWidget *parent, Qt::WindowFlags f) : if (!dc->dc_product().isEmpty()) ui.product->setCurrentIndex(ui.product->findText(dc->dc_product())); } - if (!dc->dc_device().isEmpty()) - ui.device->setEditText(dc->dc_device()); updateState(INITIAL); ui.ok->setEnabled(false); ui.downloadCancelRetryButton->setEnabled(true); ui.downloadCancelRetryButton->setText(tr("Download")); + QString deviceText = dc->dc_device(); #if defined(BT_SUPPORT) && defined(SSRF_CUSTOM_IO) ui.bluetoothMode->setText(tr("Choose Bluetooth download mode")); ui.bluetoothMode->setChecked(dc->downloadMode() == DC_TRANSPORT_BLUETOOTH); @@ -99,10 +98,14 @@ DownloadFromDCWidget::DownloadFromDCWidget(QWidget *parent, Qt::WindowFlags f) : connect(ui.bluetoothMode, SIGNAL(stateChanged(int)), this, SLOT(enableBluetoothMode(int))); connect(ui.chooseBluetoothDevice, SIGNAL(clicked()), this, SLOT(selectRemoteBluetoothDevice())); ui.chooseBluetoothDevice->setEnabled(ui.bluetoothMode->isChecked()); + if (ui.bluetoothMode->isChecked()) + deviceText = BtDeviceSelectionDialog::formatDeviceText(dc->dc_device(), dc->dc_device_name()); #else ui.bluetoothMode->hide(); ui.chooseBluetoothDevice->hide(); #endif + if (!deviceText.isEmpty()) + ui.device->setEditText(deviceText); } void DownloadFromDCWidget::updateProgressBar() @@ -291,6 +294,7 @@ void DownloadFromDCWidget::on_downloadCancelRetryButton_clicked() if (data->bluetoothMode() && btDeviceSelectionDialog != NULL) { // Get the selected device address data->setDevName(btDeviceSelectionDialog->getSelectedDeviceAddress()); + data->setDevBluetoothName(btDeviceSelectionDialog->getSelectedDeviceName()); } else // this breaks an "else if" across lines... not happy... #endif @@ -544,13 +548,7 @@ void DownloadFromDCWidget::bluetoothSelectionDialogIsFinished(int result) { if (result == QDialog::Accepted) { /* Make the selected Bluetooth device default */ - QString selectedDeviceName = btDeviceSelectionDialog->getSelectedDeviceName(); - - if (selectedDeviceName.isEmpty()) { - ui.device->setCurrentText(btDeviceSelectionDialog->getSelectedDeviceAddress()); - } else { - ui.device->setCurrentText(selectedDeviceName); - } + ui.device->setEditText(btDeviceSelectionDialog->getSelectedDeviceText()); } else if (result == QDialog::Rejected){ /* Disable Bluetooth download mode */ ui.bluetoothMode->setChecked(false); |