From 9c0e2fc823bd75ca4c01ee4cb66b5153b7cead4f Mon Sep 17 00:00:00 2001 From: Anton Lundin Date: Sun, 12 Oct 2014 16:51:30 +0200 Subject: Connect the Suunto Vyper Configuration ui This code connects up the configuration ui with the backing data structures thats gets read/written to/from the devices. Signed-off-by: Anton Lundin Signed-off-by: Dirk Hohndel --- qt-ui/configuredivecomputerdialog.cpp | 66 +++++++++++++++++++++++++++++++++++ qt-ui/configuredivecomputerdialog.h | 4 +++ 2 files changed, 70 insertions(+) diff --git a/qt-ui/configuredivecomputerdialog.cpp b/qt-ui/configuredivecomputerdialog.cpp index 39ec9fbc2..635740a24 100644 --- a/qt-ui/configuredivecomputerdialog.cpp +++ b/qt-ui/configuredivecomputerdialog.cpp @@ -115,6 +115,18 @@ void ConfigureDiveComputerDialog::fill_computer_list() } void ConfigureDiveComputerDialog::populateDeviceDetails() +{ + switch(ui->dcStackedWidget->currentIndex()) { + case 0: + populateDeviceDetailsOSTC3(); + break; + case 1: + populateDeviceDetailsSuuntoVyper(); + break; + } +} + +void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC3() { deviceDetails->setCustomText(ui->customTextLlineEdit->text()); deviceDetails->setDiveMode(ui->diveModeComboBox->currentIndex()); @@ -236,6 +248,23 @@ void ConfigureDiveComputerDialog::populateDeviceDetails() deviceDetails->setSp5(sp5); } +void ConfigureDiveComputerDialog::populateDeviceDetailsSuuntoVyper() +{ + deviceDetails->setCustomText(ui->customTextLlineEdit_1->text()); + deviceDetails->setSamplingRate(ui->samplingRateComboBox_1->currentIndex() == 3 ? 60 : (ui->samplingRateComboBox_1->currentIndex() + 1) * 10); + deviceDetails->setAltitude(ui->altitudeRangeComboBox->currentIndex()); + deviceDetails->setPersonalSafety(ui->personalSafetyComboBox->currentIndex()); + deviceDetails->setTimeFormat(ui->timeFormatComboBox->currentIndex()); + deviceDetails->setUnits(ui->unitsComboBox_1->currentIndex()); + deviceDetails->setDiveMode(ui->diveModeComboBox_1->currentIndex()); + deviceDetails->setLightEnabled(ui->lightCheckBox->isChecked()); + deviceDetails->setLight(ui->lightSpinBox->value()); + deviceDetails->setAlarmDepthEnabled(ui->alarmDepthCheckBox->isChecked()); + deviceDetails->setAlarmDepth(units_to_depth(ui->alarmDepthDoubleSpinBox->value())); + deviceDetails->setAlarmTimeEnabled(ui->alarmTimeCheckBox->isChecked()); + deviceDetails->setAlarmTime(ui->alarmTimeSpinBox->value()); +} + void ConfigureDiveComputerDialog::readSettings() { ui->statusLabel->clear(); @@ -292,6 +321,18 @@ void ConfigureDiveComputerDialog::deviceDetailsReceived(DeviceDetails *newDevice } void ConfigureDiveComputerDialog::reloadValues() +{ + switch(ui->dcStackedWidget->currentIndex()) { + case 0: + reloadValuesOSTC3(); + break; + case 1: + reloadValuesSuuntoVyper(); + break; + } +} + +void ConfigureDiveComputerDialog::reloadValuesOSTC3() { ui->serialNoLineEdit->setText(deviceDetails->serialNo()); ui->firmwareVersionLineEdit->setText(deviceDetails->firmwareVersion()); @@ -390,6 +431,31 @@ void ConfigureDiveComputerDialog::reloadValues() ui->ostc3SetPointTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails->sp5().depth))); } +void ConfigureDiveComputerDialog::reloadValuesSuuntoVyper() +{ + const char *depth_unit; + ui->maxDepthDoubleSpinBox->setValue(get_depth_units(deviceDetails->maxDepth(), NULL, &depth_unit)); + ui->maxDepthDoubleSpinBox->setSuffix(depth_unit); + ui->totalTimeSpinBox->setValue(deviceDetails->totalTime()); + ui->numberOfDivesSpinBox->setValue(deviceDetails->numberOfDives()); + ui->modelLineEdit->setText(deviceDetails->model()); + ui->firmwareVersionLineEdit_1->setText(deviceDetails->firmwareVersion()); + ui->serialNoLineEdit_1->setText(deviceDetails->serialNo()); + ui->customTextLlineEdit_1->setText(deviceDetails->customText()); + ui->samplingRateComboBox_1->setCurrentIndex(deviceDetails->samplingRate() == 60 ? 3 : (deviceDetails->samplingRate() / 10) - 1); + ui->altitudeRangeComboBox->setCurrentIndex(deviceDetails->altitude()); + ui->personalSafetyComboBox->setCurrentIndex(deviceDetails->personalSafety()); + ui->timeFormatComboBox->setCurrentIndex(deviceDetails->timeFormat()); + ui->unitsComboBox_1->setCurrentIndex(deviceDetails->units()); + ui->diveModeComboBox_1->setCurrentIndex(deviceDetails->diveMode()); + ui->lightCheckBox->setChecked(deviceDetails->lightEnabled()); + ui->lightSpinBox->setValue(deviceDetails->light()); + ui->alarmDepthCheckBox->setChecked(deviceDetails->alarmDepthEnabled()); + ui->alarmDepthDoubleSpinBox->setValue(get_depth_units(deviceDetails->alarmDepth(), NULL, &depth_unit)); + ui->alarmDepthDoubleSpinBox->setSuffix(depth_unit); + ui->alarmTimeCheckBox->setChecked(deviceDetails->alarmTimeEnabled()); + ui->alarmTimeSpinBox->setValue(deviceDetails->alarmTime()); +} void ConfigureDiveComputerDialog::on_backupButton_clicked() { diff --git a/qt-ui/configuredivecomputerdialog.h b/qt-ui/configuredivecomputerdialog.h index 66871efa3..c6e27735b 100644 --- a/qt-ui/configuredivecomputerdialog.h +++ b/qt-ui/configuredivecomputerdialog.h @@ -52,6 +52,10 @@ private: DeviceDetails *deviceDetails; void populateDeviceDetails(); + void populateDeviceDetailsOSTC3(); + void populateDeviceDetailsSuuntoVyper(); + void reloadValuesOSTC3(); + void reloadValuesSuuntoVyper(); QString selected_vendor; QString selected_product; -- cgit v1.2.3-70-g09d2