mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Lift dis- and connect out from config operations
When working with ostc's via bluetooth, they will reboot and exit bluetooth mode when you send the disconnect command. Thats kinda inconvenient when you would like to read your settings, change something and write it back, you need to start bluetooth mode on your device twice. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
f38f8ce4c9
commit
a42df06dbf
6 changed files with 212 additions and 228 deletions
|
@ -131,6 +131,8 @@ ConfigureDiveComputerDialog::ConfigureDiveComputerDialog(QWidget *parent) : QDia
|
|||
ui.chooseLogFile->setEnabled(ui.logToFile->isChecked());
|
||||
connect(ui.chooseLogFile, SIGNAL(clicked()), this, SLOT(pickLogFile()));
|
||||
connect(ui.logToFile, SIGNAL(stateChanged(int)), this, SLOT(checkLogFile(int)));
|
||||
connect(ui.connectButton, SIGNAL(clicked()), this, SLOT(dc_open()));
|
||||
connect(ui.disconnectButton, SIGNAL(clicked()), this, SLOT(dc_close()));
|
||||
|
||||
memset(&device_data, 0, sizeof(device_data));
|
||||
fill_computer_list();
|
||||
|
@ -302,15 +304,20 @@ void OstcFirmwareCheck::saveOstcFirmware(QNetworkReply *reply)
|
|||
connect(config, SIGNAL(message(QString)), dialog, SLOT(setLabelText(QString)));
|
||||
connect(config, SIGNAL(error(QString)), dialog, SLOT(setLabelText(QString)));
|
||||
connect(config, SIGNAL(progress(int)), dialog, SLOT(setValue(int)));
|
||||
connect(dialog, SIGNAL(finished(int)), config, SLOT(dc_close()));
|
||||
config->dc_open(&devData);
|
||||
config->startFirmwareUpdate(storeFirmware, &devData);
|
||||
}
|
||||
|
||||
ConfigureDiveComputerDialog::~ConfigureDiveComputerDialog()
|
||||
{
|
||||
delete config;
|
||||
}
|
||||
|
||||
void ConfigureDiveComputerDialog::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
dc_close();
|
||||
|
||||
QSettings settings;
|
||||
settings.beginGroup("ConfigureDiveComputerDialog");
|
||||
settings.beginGroup("ostc3GasTable");
|
||||
|
@ -710,7 +717,6 @@ void ConfigureDiveComputerDialog::readSettings()
|
|||
ui.progressBar->setFormat("%p%");
|
||||
ui.progressBar->setTextVisible(true);
|
||||
|
||||
getDeviceData();
|
||||
config->readSettings(&device_data);
|
||||
}
|
||||
|
||||
|
@ -720,7 +726,6 @@ void ConfigureDiveComputerDialog::resetSettings()
|
|||
ui.progressBar->setFormat("%p%");
|
||||
ui.progressBar->setTextVisible(true);
|
||||
|
||||
getDeviceData();
|
||||
config->resetSettings(&device_data);
|
||||
}
|
||||
|
||||
|
@ -758,7 +763,6 @@ void ConfigureDiveComputerDialog::on_saveSettingsPushButton_clicked()
|
|||
ui.progressBar->setTextVisible(true);
|
||||
|
||||
populateDeviceDetails();
|
||||
getDeviceData();
|
||||
config->saveDeviceDetails(deviceDetails, &device_data);
|
||||
}
|
||||
|
||||
|
@ -1067,7 +1071,6 @@ void ConfigureDiveComputerDialog::on_backupButton_clicked()
|
|||
filename, tr("Backup files (*.xml)"));
|
||||
if (!backupPath.isEmpty()) {
|
||||
populateDeviceDetails();
|
||||
getDeviceData();
|
||||
if (!config->saveXMLBackup(backupPath, deviceDetails, &device_data)) {
|
||||
QMessageBox::critical(this, tr("XML backup error"),
|
||||
tr("An error occurred while saving the backup file.\n%1")
|
||||
|
@ -1094,8 +1097,6 @@ void ConfigureDiveComputerDialog::on_restoreBackupButton_clicked()
|
|||
.arg(config->lastError));
|
||||
} else {
|
||||
reloadValues();
|
||||
//getDeviceData();
|
||||
//config->saveDeviceDetails(deviceDetails, &device_data);
|
||||
QMessageBox::information(this, tr("Restore succeeded"),
|
||||
tr("Your settings have been restored successfully."));
|
||||
}
|
||||
|
@ -1114,7 +1115,6 @@ void ConfigureDiveComputerDialog::on_updateFirmwareButton_clicked()
|
|||
ui.progressBar->setFormat("%p%");
|
||||
ui.progressBar->setTextVisible(true);
|
||||
|
||||
getDeviceData();
|
||||
config->startFirmwareUpdate(firmwarePath, &device_data);
|
||||
}
|
||||
}
|
||||
|
@ -1122,25 +1122,21 @@ void ConfigureDiveComputerDialog::on_updateFirmwareButton_clicked()
|
|||
|
||||
void ConfigureDiveComputerDialog::on_DiveComputerList_currentRowChanged(int currentRow)
|
||||
{
|
||||
// Disable the buttons to do operations on this data
|
||||
ui.saveSettingsPushButton->setEnabled(false);
|
||||
ui.backupButton->setEnabled(false);
|
||||
|
||||
switch (currentRow) {
|
||||
case 0:
|
||||
selected_vendor = "Heinrichs Weikamp";
|
||||
selected_product = "OSTC 3";
|
||||
ui.updateFirmwareButton->setEnabled(true);
|
||||
fw_upgrade_possible = true;
|
||||
break;
|
||||
case 1:
|
||||
selected_vendor = "Suunto";
|
||||
selected_product = "Vyper";
|
||||
ui.updateFirmwareButton->setEnabled(false);
|
||||
fw_upgrade_possible = false;
|
||||
break;
|
||||
case 2:
|
||||
selected_vendor = "Heinrichs Weikamp";
|
||||
selected_product = "OSTC 2N";
|
||||
ui.updateFirmwareButton->setEnabled(true);
|
||||
fw_upgrade_possible = true;
|
||||
break;
|
||||
default:
|
||||
/* Not Supported */
|
||||
|
@ -1176,3 +1172,43 @@ void ConfigureDiveComputerDialog::pickLogFile()
|
|||
logfile_name = strdup(logFile.toUtf8().data());
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigureDiveComputerDialog::dc_open()
|
||||
{
|
||||
getDeviceData();
|
||||
|
||||
QString err = config->dc_open(&device_data);
|
||||
|
||||
if (err != "")
|
||||
return ui.progressBar->setFormat(err);
|
||||
|
||||
ui.retrieveDetails->setEnabled(true);
|
||||
ui.resetButton->setEnabled(true);
|
||||
ui.updateFirmwareButton->setEnabled(true);
|
||||
ui.disconnectButton->setEnabled(true);
|
||||
ui.restoreBackupButton->setEnabled(true);
|
||||
ui.connectButton->setEnabled(false);
|
||||
ui.DiveComputerList->setEnabled(false);
|
||||
ui.logToFile->setEnabled(false);
|
||||
if (fw_upgrade_possible)
|
||||
ui.updateFirmwareButton->setEnabled(true);
|
||||
ui.progressBar->setFormat("Connected to device");
|
||||
}
|
||||
|
||||
void ConfigureDiveComputerDialog::dc_close()
|
||||
{
|
||||
config->dc_close(&device_data);
|
||||
|
||||
ui.retrieveDetails->setEnabled(false);
|
||||
ui.resetButton->setEnabled(false);
|
||||
ui.updateFirmwareButton->setEnabled(false);
|
||||
ui.disconnectButton->setEnabled(false);
|
||||
ui.connectButton->setEnabled(true);
|
||||
ui.backupButton->setEnabled(false);
|
||||
ui.saveSettingsPushButton->setEnabled(false);
|
||||
ui.restoreBackupButton->setEnabled(false);
|
||||
ui.DiveComputerList->setEnabled(true);
|
||||
ui.logToFile->setEnabled(true);
|
||||
ui.updateFirmwareButton->setEnabled(false);
|
||||
ui.progressBar->setFormat("Disonnected from device");
|
||||
}
|
||||
|
|
|
@ -81,6 +81,9 @@ slots:
|
|||
|
||||
void on_DiveComputerList_currentRowChanged(int currentRow);
|
||||
|
||||
void dc_open();
|
||||
void dc_close();
|
||||
|
||||
private:
|
||||
Ui::ConfigureDiveComputerDialog ui;
|
||||
|
||||
|
@ -108,6 +111,7 @@ private:
|
|||
|
||||
QString selected_vendor;
|
||||
QString selected_product;
|
||||
bool fw_upgrade_possible;
|
||||
};
|
||||
|
||||
class OstcFirmwareCheck : QObject {
|
||||
|
|
|
@ -30,6 +30,12 @@
|
|||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QComboBox" name="device">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="editable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
|
@ -42,6 +48,23 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="connectButton">
|
||||
<property name="text">
|
||||
<string>Connect</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="disconnectButton">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Disconnect</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
|
@ -50,6 +73,9 @@
|
|||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QPushButton" name="retrieveDetails">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Retrieve available details</string>
|
||||
</property>
|
||||
|
@ -96,6 +122,9 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="restoreBackupButton">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Restore backup</string>
|
||||
</property>
|
||||
|
@ -595,7 +624,7 @@
|
|||
<item row="10" column="3" colspan="2">
|
||||
<widget class="QPushButton" name="resetButton">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Reset device to default settings</string>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue