mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Having subsurface-core as a directory name really messes with autocomplete and is obviously redundant. Simmilarly, qt-mobile caused an autocomplete conflict and also was inconsistent with the desktop-widget name for the directory containing the "other" UI. And while cleaning up the resulting change in the path name for include files, I decided to clean up those even more to make them consistent overall. This could have been handled in more commits, but since this requires a make clean before the build, it seemed more sensible to do it all in one. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
		
			
				
	
	
		
			149 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef CONFIGUREDIVECOMPUTERDIALOG_H
 | |
| #define CONFIGUREDIVECOMPUTERDIALOG_H
 | |
| 
 | |
| #include <QDialog>
 | |
| #include <QStringListModel>
 | |
| #include "ui_configuredivecomputerdialog.h"
 | |
| #include "core/libdivecomputer.h"
 | |
| #include "core/configuredivecomputer.h"
 | |
| #include <QStyledItemDelegate>
 | |
| #include <QNetworkAccessManager>
 | |
| #ifdef BT_SUPPORT
 | |
| #include "desktop-widgets/btdeviceselectiondialog.h"
 | |
| #endif
 | |
| 
 | |
| class GasSpinBoxItemDelegate : public QStyledItemDelegate {
 | |
| 	Q_OBJECT
 | |
| 
 | |
| public:
 | |
| 	enum column_type {
 | |
| 		PERCENT,
 | |
| 		DEPTH,
 | |
| 		SETPOINT,
 | |
| 	};
 | |
| 
 | |
| 	GasSpinBoxItemDelegate(QObject *parent = 0, column_type type = PERCENT);
 | |
| 	~GasSpinBoxItemDelegate();
 | |
| 
 | |
| 	virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
 | |
| 	virtual void setEditorData(QWidget *editor, const QModelIndex &index) const;
 | |
| 	virtual void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
 | |
| 
 | |
| private:
 | |
| 	column_type type;
 | |
| };
 | |
| 
 | |
| class GasTypeComboBoxItemDelegate : public QStyledItemDelegate {
 | |
| 	Q_OBJECT
 | |
| 
 | |
| public:
 | |
| 	enum computer_type {
 | |
| 		OSTC3,
 | |
| 		OSTC,
 | |
| 	};
 | |
| 
 | |
| 	GasTypeComboBoxItemDelegate(QObject *parent = 0, computer_type type = OSTC3);
 | |
| 	~GasTypeComboBoxItemDelegate();
 | |
| 
 | |
| 	virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
 | |
| 	virtual void setEditorData(QWidget *editor, const QModelIndex &index) const;
 | |
| 	virtual void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
 | |
| 
 | |
| private:
 | |
| 	computer_type type;
 | |
| };
 | |
| 
 | |
| class ConfigureDiveComputerDialog : public QDialog {
 | |
| 	Q_OBJECT
 | |
| 
 | |
| public:
 | |
| 	explicit ConfigureDiveComputerDialog(QWidget *parent = 0);
 | |
| 	~ConfigureDiveComputerDialog();
 | |
| 
 | |
| protected:
 | |
| 	void closeEvent(QCloseEvent *event);
 | |
| 
 | |
| private
 | |
| slots:
 | |
| 	void checkLogFile(int state);
 | |
| 	void pickLogFile();
 | |
| 	void readSettings();
 | |
| 	void resetSettings();
 | |
| 	void configMessage(QString msg);
 | |
| 	void configError(QString err);
 | |
| 	void on_cancel_clicked();
 | |
| 	void on_saveSettingsPushButton_clicked();
 | |
| 	void deviceDetailsReceived(DeviceDetails *newDeviceDetails);
 | |
| 	void reloadValues();
 | |
| 	void on_backupButton_clicked();
 | |
| 
 | |
| 	void on_restoreBackupButton_clicked();
 | |
| 
 | |
| 
 | |
| 	void on_updateFirmwareButton_clicked();
 | |
| 
 | |
| 	void on_DiveComputerList_currentRowChanged(int currentRow);
 | |
| 
 | |
| 	void dc_open();
 | |
| 	void dc_close();
 | |
| 
 | |
| #ifdef BT_SUPPORT
 | |
| 	void bluetoothSelectionDialogIsFinished(int result);
 | |
| 	void selectRemoteBluetoothDevice();
 | |
| #endif
 | |
| 
 | |
| private:
 | |
| 	Ui::ConfigureDiveComputerDialog ui;
 | |
| 
 | |
| 	QString logFile;
 | |
| 
 | |
| 	QStringList vendorList;
 | |
| 	QHash<QString, QStringList> productList;
 | |
| 
 | |
| 	ConfigureDiveComputer *config;
 | |
| 	device_data_t device_data;
 | |
| 	void getDeviceData();
 | |
| 
 | |
| 	QHash<QString, dc_descriptor_t *> descriptorLookup;
 | |
| 	void fill_device_list(int dc_type);
 | |
| 	void fill_computer_list();
 | |
| 
 | |
| 	DeviceDetails *deviceDetails;
 | |
| 	void populateDeviceDetails();
 | |
| 	void populateDeviceDetailsOSTC3();
 | |
| 	void populateDeviceDetailsOSTC();
 | |
| 	void populateDeviceDetailsSuuntoVyper();
 | |
| 	void reloadValuesOSTC3();
 | |
| 	void reloadValuesOSTC();
 | |
| 	void reloadValuesSuuntoVyper();
 | |
| 
 | |
| 	QString selected_vendor;
 | |
| 	QString selected_product;
 | |
| 	bool fw_upgrade_possible;
 | |
| 
 | |
| #ifdef BT_SUPPORT
 | |
| 	BtDeviceSelectionDialog *btDeviceSelectionDialog;
 | |
| #endif
 | |
| };
 | |
| 
 | |
| class OstcFirmwareCheck : QObject {
 | |
| 	Q_OBJECT
 | |
| public:
 | |
| 	explicit OstcFirmwareCheck(QString product);
 | |
| 	void checkLatest(QWidget *parent, device_data_t *data);
 | |
| public
 | |
| slots:
 | |
| 	void parseOstcFwVersion(QNetworkReply *reply);
 | |
| 	void saveOstcFirmware(QNetworkReply *reply);
 | |
| 
 | |
| private:
 | |
| 	void upgradeFirmware();
 | |
| 	device_data_t devData;
 | |
| 	QString latestFirmwareAvailable;
 | |
| 	QString latestFirmwareHexFile;
 | |
| 	QString storeFirmware;
 | |
| 	QWidget *parent;
 | |
| 	QNetworkAccessManager manager;
 | |
| };
 | |
| 
 | |
| #endif // CONFIGUREDIVECOMPUTERDIALOG_H
 |