mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
a38ea971a0
Add an option for users to sync the dive computer time with the PC time every time dives are downloaded. Obviously this will only work on dive computers that have time synchronisation support in libdivecomputer, for other computers a notice is logged. The selection for this option is persisted as a preference. Signed-off-by: Michael Keller <github@ike.ch>
96 lines
2.1 KiB
C++
96 lines
2.1 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef DOWNLOADFROMDIVECOMPUTER_H
|
|
#define DOWNLOADFROMDIVECOMPUTER_H
|
|
|
|
#include <QDialog>
|
|
#include <QThread>
|
|
#include <QHash>
|
|
#include <QMap>
|
|
#include <QAbstractTableModel>
|
|
#include <memory>
|
|
|
|
#include "core/libdivecomputer.h"
|
|
#include "desktop-widgets/configuredivecomputerdialog.h"
|
|
|
|
#include "ui_downloadfromdivecomputer.h"
|
|
|
|
#if defined(BT_SUPPORT)
|
|
#include "btdeviceselectiondialog.h"
|
|
#endif
|
|
|
|
class QStringListModel;
|
|
class DiveImportedModel;
|
|
class BTDiscovery;
|
|
|
|
class DownloadFromDCWidget : public QDialog {
|
|
Q_OBJECT
|
|
public:
|
|
explicit DownloadFromDCWidget(QWidget *parent = 0);
|
|
void reject();
|
|
|
|
enum states {
|
|
INITIAL,
|
|
DOWNLOADING,
|
|
CANCELLING,
|
|
ERRORED,
|
|
DONE,
|
|
};
|
|
|
|
public
|
|
slots:
|
|
void on_downloadCancelRetryButton_clicked();
|
|
void on_ok_clicked();
|
|
void on_cancel_clicked();
|
|
void on_search_clicked();
|
|
void on_vendor_currentTextChanged(const QString &vendor);
|
|
void on_product_currentTextChanged(const QString &product);
|
|
void on_device_currentTextChanged(const QString &device);
|
|
|
|
void onDownloadThreadFinished();
|
|
void updateProgressBar();
|
|
void checkLogFile(int state);
|
|
void checkDumpFile(int state);
|
|
void pickDumpFile();
|
|
void pickLogFile();
|
|
void DC1Clicked();
|
|
void DC2Clicked();
|
|
void DC3Clicked();
|
|
void DC4Clicked();
|
|
int deviceIndex(QString deviceText);
|
|
|
|
#if defined(BT_SUPPORT)
|
|
void enableBluetoothMode(int state);
|
|
void selectRemoteBluetoothDevice();
|
|
void bluetoothSelectionDialogIsFinished(int result);
|
|
#endif
|
|
private:
|
|
void markChildrenAsDisabled();
|
|
void markChildrenAsEnabled();
|
|
void updateDeviceEnabled();
|
|
void showRememberedDCs();
|
|
|
|
QStringListModel vendorModel;
|
|
QStringListModel productModel;
|
|
Ui::DownloadFromDiveComputer ui;
|
|
bool downloading;
|
|
|
|
int previousLast;
|
|
|
|
void fill_device_list(unsigned int transport);
|
|
QTimer *timer;
|
|
bool dumpWarningShown;
|
|
std::unique_ptr<OstcFirmwareCheck> ostcFirmwareCheck;
|
|
DiveImportedModel *diveImportedModel;
|
|
#if defined(BT_SUPPORT)
|
|
BtDeviceSelectionDialog *btDeviceSelectionDialog;
|
|
BTDiscovery *btd;
|
|
#endif
|
|
void setSyncDiveComputerTime(bool value);
|
|
|
|
public:
|
|
bool preferDownloaded();
|
|
void updateState(states state);
|
|
states currentState;
|
|
};
|
|
|
|
#endif // DOWNLOADFROMDIVECOMPUTER_H
|