aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/configuredivecomputerdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/configuredivecomputerdialog.cpp')
-rw-r--r--qt-ui/configuredivecomputerdialog.cpp64
1 files changed, 50 insertions, 14 deletions
diff --git a/qt-ui/configuredivecomputerdialog.cpp b/qt-ui/configuredivecomputerdialog.cpp
index aa8c6cf36..537b23121 100644
--- a/qt-ui/configuredivecomputerdialog.cpp
+++ b/qt-ui/configuredivecomputerdialog.cpp
@@ -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");
+}