| 
									
										
										
										
											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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-28 20:56:58 -08:00
										 |  |  | class OstcFirmwareCheck : 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
 |