2017-04-27 20:26:05 +02:00
|
|
|
// SPDX-License-Identifier: GPL-2.0
|
2014-05-29 18:54:19 +03:00
|
|
|
#ifndef CONFIGUREDIVECOMPUTERDIALOG_H
|
|
|
|
#define CONFIGUREDIVECOMPUTERDIALOG_H
|
|
|
|
|
|
|
|
#include <QDialog>
|
2014-05-29 19:16:34 +03:00
|
|
|
#include <QStringListModel>
|
2014-10-16 01:13:53 +02:00
|
|
|
#include "ui_configuredivecomputerdialog.h"
|
2016-04-04 22:02:03 -07:00
|
|
|
#include "core/libdivecomputer.h"
|
|
|
|
#include "core/configuredivecomputer.h"
|
2014-10-27 22:12:45 +01:00
|
|
|
#include <QStyledItemDelegate>
|
2014-12-28 10:22:46 -08:00
|
|
|
#include <QNetworkAccessManager>
|
2015-10-26 06:05:27 -07:00
|
|
|
#ifdef BT_SUPPORT
|
2016-04-04 22:02:03 -07:00
|
|
|
#include "desktop-widgets/btdeviceselectiondialog.h"
|
2015-10-26 06:05:27 -07:00
|
|
|
#endif
|
2014-10-27 22:12:45 +01:00
|
|
|
|
2014-12-28 20:56:58 -08:00
|
|
|
class GasSpinBoxItemDelegate : public QStyledItemDelegate {
|
2014-10-27 22:12:46 +01:00
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
enum column_type {
|
|
|
|
PERCENT,
|
|
|
|
DEPTH,
|
2015-09-11 00:13:56 +02:00
|
|
|
SETPOINT,
|
2014-10-27 22:12:46 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
GasSpinBoxItemDelegate(QObject *parent = 0, column_type type = PERCENT);
|
|
|
|
~GasSpinBoxItemDelegate();
|
|
|
|
|
2018-09-29 22:13:44 +02:00
|
|
|
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
|
|
|
void setEditorData(QWidget *editor, const QModelIndex &index) const override;
|
|
|
|
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override;
|
2014-12-28 20:56:58 -08:00
|
|
|
|
2014-10-27 22:12:46 +01:00
|
|
|
private:
|
|
|
|
column_type type;
|
|
|
|
};
|
|
|
|
|
2014-12-28 20:56:58 -08:00
|
|
|
class GasTypeComboBoxItemDelegate : public QStyledItemDelegate {
|
2014-10-27 22:12:45 +01:00
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
enum computer_type {
|
|
|
|
OSTC3,
|
|
|
|
OSTC,
|
|
|
|
};
|
|
|
|
|
|
|
|
GasTypeComboBoxItemDelegate(QObject *parent = 0, computer_type type = OSTC3);
|
|
|
|
~GasTypeComboBoxItemDelegate();
|
|
|
|
|
2018-09-29 22:13:44 +02:00
|
|
|
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
|
|
|
void setEditorData(QWidget *editor, const QModelIndex &index) const override;
|
|
|
|
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override;
|
2014-12-28 20:56:58 -08:00
|
|
|
|
2014-10-27 22:12:45 +01:00
|
|
|
private:
|
|
|
|
computer_type type;
|
|
|
|
};
|
2014-05-30 09:56:27 +03:00
|
|
|
|
2014-12-28 20:56:58 -08:00
|
|
|
class ConfigureDiveComputerDialog : public QDialog {
|
2014-05-29 18:54:19 +03:00
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
explicit ConfigureDiveComputerDialog(QWidget *parent = 0);
|
|
|
|
~ConfigureDiveComputerDialog();
|
|
|
|
|
2015-09-10 07:30:39 +02:00
|
|
|
protected:
|
|
|
|
void closeEvent(QCloseEvent *event);
|
|
|
|
|
2014-12-28 20:56:58 -08:00
|
|
|
private
|
|
|
|
slots:
|
2015-05-27 21:19:13 +02:00
|
|
|
void checkLogFile(int state);
|
|
|
|
void pickLogFile();
|
2014-05-30 09:56:27 +03:00
|
|
|
void readSettings();
|
2014-10-18 00:33:47 +02:00
|
|
|
void resetSettings();
|
2014-05-30 09:56:27 +03:00
|
|
|
void configMessage(QString msg);
|
|
|
|
void configError(QString err);
|
|
|
|
void on_cancel_clicked();
|
2014-06-10 15:03:26 +03:00
|
|
|
void on_saveSettingsPushButton_clicked();
|
2014-06-10 18:25:25 +03:00
|
|
|
void deviceDetailsReceived(DeviceDetails *newDeviceDetails);
|
|
|
|
void reloadValues();
|
2014-06-10 19:19:28 +03:00
|
|
|
void on_backupButton_clicked();
|
|
|
|
|
2014-06-11 09:37:27 +03:00
|
|
|
void on_restoreBackupButton_clicked();
|
|
|
|
|
2014-06-11 11:47:25 +03:00
|
|
|
|
2014-06-23 18:16:27 +03:00
|
|
|
void on_updateFirmwareButton_clicked();
|
|
|
|
|
2014-07-16 12:04:54 +03:00
|
|
|
void on_DiveComputerList_currentRowChanged(int currentRow);
|
|
|
|
|
2015-09-12 22:37:34 +02:00
|
|
|
void dc_open();
|
|
|
|
void dc_close();
|
|
|
|
|
2015-10-26 06:05:27 -07:00
|
|
|
#ifdef BT_SUPPORT
|
2015-09-12 22:37:35 +02:00
|
|
|
void bluetoothSelectionDialogIsFinished(int result);
|
|
|
|
void selectRemoteBluetoothDevice();
|
|
|
|
#endif
|
|
|
|
|
2014-05-29 18:54:19 +03:00
|
|
|
private:
|
2014-10-16 01:13:53 +02:00
|
|
|
Ui::ConfigureDiveComputerDialog ui;
|
2014-05-29 19:16:34 +03:00
|
|
|
|
2015-05-27 21:19:13 +02:00
|
|
|
QString logFile;
|
|
|
|
|
2014-05-30 09:56:27 +03:00
|
|
|
ConfigureDiveComputer *config;
|
|
|
|
device_data_t device_data;
|
|
|
|
void getDeviceData();
|
|
|
|
|
2018-08-27 10:32:14 -07:00
|
|
|
void fill_device_list(unsigned int transport);
|
2014-06-10 15:03:26 +03:00
|
|
|
|
|
|
|
DeviceDetails *deviceDetails;
|
2014-06-10 19:19:28 +03:00
|
|
|
void populateDeviceDetails();
|
2014-10-12 16:51:30 +02:00
|
|
|
void populateDeviceDetailsOSTC3();
|
2014-10-27 21:54:57 +01:00
|
|
|
void populateDeviceDetailsOSTC();
|
2014-10-12 16:51:30 +02:00
|
|
|
void populateDeviceDetailsSuuntoVyper();
|
2017-04-26 20:49:12 +02:00
|
|
|
void populateDeviceDetailsOSTC4();
|
2014-10-12 16:51:30 +02:00
|
|
|
void reloadValuesOSTC3();
|
2014-10-27 21:54:57 +01:00
|
|
|
void reloadValuesOSTC();
|
2014-10-12 16:51:30 +02:00
|
|
|
void reloadValuesSuuntoVyper();
|
2017-04-26 20:49:12 +02:00
|
|
|
void reloadValuesOSTC4();
|
2014-06-11 11:47:25 +03:00
|
|
|
|
|
|
|
QString selected_vendor;
|
|
|
|
QString selected_product;
|
2015-09-12 22:37:34 +02:00
|
|
|
bool fw_upgrade_possible;
|
2015-09-12 22:37:35 +02:00
|
|
|
|
2015-10-26 06:05:27 -07:00
|
|
|
#ifdef BT_SUPPORT
|
2015-09-12 22:37:35 +02:00
|
|
|
BtDeviceSelectionDialog *btDeviceSelectionDialog;
|
2015-10-26 06:05:27 -07:00
|
|
|
#endif
|
2014-12-27 08:31:51 -08:00
|
|
|
};
|
2014-12-26 22:39:53 +01:00
|
|
|
|
2020-10-04 21:44:41 +02:00
|
|
|
class OstcFirmwareCheck : public QObject {
|
2014-12-27 08:31:51 -08:00
|
|
|
Q_OBJECT
|
|
|
|
public:
|
2014-12-28 07:37:11 -08:00
|
|
|
explicit OstcFirmwareCheck(QString product);
|
2014-12-28 10:22:46 -08:00
|
|
|
void checkLatest(QWidget *parent, device_data_t *data);
|
2014-12-27 08:31:51 -08:00
|
|
|
public
|
|
|
|
slots:
|
2014-12-28 10:22:46 -08:00
|
|
|
void parseOstcFwVersion(QNetworkReply *reply);
|
2014-12-28 20:56:58 -08:00
|
|
|
void saveOstcFirmware(QNetworkReply *reply);
|
|
|
|
|
2014-12-27 08:31:51 -08:00
|
|
|
private:
|
2014-12-28 10:22:46 -08:00
|
|
|
void upgradeFirmware();
|
|
|
|
device_data_t devData;
|
2014-12-27 08:31:51 -08:00
|
|
|
QString latestFirmwareAvailable;
|
2014-12-28 10:22:46 -08:00
|
|
|
QString latestFirmwareHexFile;
|
|
|
|
QString storeFirmware;
|
|
|
|
QWidget *parent;
|
|
|
|
QNetworkAccessManager manager;
|
2014-05-29 18:54:19 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // CONFIGUREDIVECOMPUTERDIALOG_H
|