summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/configuredivecomputerdialog.h
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2015-09-03 14:20:19 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-10-30 10:36:49 -0700
commite49d6213ad129284a45d53c3fcdc03249e84efe2 (patch)
tree2946a666ab38af3375e7bb2b8c5dd887d4a7f9a1 /desktop-widgets/configuredivecomputerdialog.h
parent588abd019fb2ed3f607682f2b6c7fe86a7a5bb90 (diff)
downloadsubsurface-e49d6213ad129284a45d53c3fcdc03249e84efe2.tar.gz
Move qt-ui to desktop-widgets
Since we have now destkop and mobile versions, 'qt-ui' was a very poor name choice for a folder that contains only destkop-enabled widgets. Also, move the graphicsview-common.h/cpp to subsurface-core because it doesn't depend on qgraphicsview, it merely implements all the colors that we use throughout Subsurface, and we will use colors on both desktop and mobile versions Same thing applies for metrics.h/cpp Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'desktop-widgets/configuredivecomputerdialog.h')
-rw-r--r--desktop-widgets/configuredivecomputerdialog.h149
1 files changed, 149 insertions, 0 deletions
diff --git a/desktop-widgets/configuredivecomputerdialog.h b/desktop-widgets/configuredivecomputerdialog.h
new file mode 100644
index 000000000..9ad30ac67
--- /dev/null
+++ b/desktop-widgets/configuredivecomputerdialog.h
@@ -0,0 +1,149 @@
+#ifndef CONFIGUREDIVECOMPUTERDIALOG_H
+#define CONFIGUREDIVECOMPUTERDIALOG_H
+
+#include <QDialog>
+#include <QStringListModel>
+#include "ui_configuredivecomputerdialog.h"
+#include "subsurface-core/libdivecomputer.h"
+#include "configuredivecomputer.h"
+#include <QStyledItemDelegate>
+#include <QNetworkAccessManager>
+#ifdef BT_SUPPORT
+#include "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