aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/configuredivecomputerdialog.cpp64
-rw-r--r--qt-ui/configuredivecomputerdialog.h4
-rw-r--r--qt-ui/configuredivecomputerdialog.ui31
3 files changed, 84 insertions, 15 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");
+}
diff --git a/qt-ui/configuredivecomputerdialog.h b/qt-ui/configuredivecomputerdialog.h
index 19bab0a5b..d11726873 100644
--- a/qt-ui/configuredivecomputerdialog.h
+++ b/qt-ui/configuredivecomputerdialog.h
@@ -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 {
diff --git a/qt-ui/configuredivecomputerdialog.ui b/qt-ui/configuredivecomputerdialog.ui
index a0a0a2eac..edc24e29e 100644
--- a/qt-ui/configuredivecomputerdialog.ui
+++ b/qt-ui/configuredivecomputerdialog.ui
@@ -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>