diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2013-05-20 16:43:33 -0300 |
---|---|---|
committer | Tomaz Canabrava <tcanabrava@kde.org> | 2013-05-20 16:43:33 -0300 |
commit | c7a5d0490fa5f4e8579e6a8e0fbdc7baf7c34145 (patch) | |
tree | 615ec1dbf0887d0e1ffeecf4ed7b1600ca0c0d6a /qt-ui/downloadfromdivecomputer.h | |
parent | 15bb4fccbb14c0e69637ca5920a1e68071700b8e (diff) | |
download | subsurface-c7a5d0490fa5f4e8579e6a8e0fbdc7baf7c34145.tar.gz |
Skeleton code for a non-blocking UI thread for downloading dives from the DC
This is the skeleton code for a non-blocking ui-thread
It already creates the first-thread ( 'do not block the ui' )
and the second thread ('download from the dive computer')
We can in the future merge both in the same place - I didn't
want to do that now because the download function is written
in the libdivecomputer.c code, and I cant just transform that
to a QThread and use signals, so I used two threads for that.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Diffstat (limited to 'qt-ui/downloadfromdivecomputer.h')
-rw-r--r-- | qt-ui/downloadfromdivecomputer.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/qt-ui/downloadfromdivecomputer.h b/qt-ui/downloadfromdivecomputer.h new file mode 100644 index 000000000..433d43779 --- /dev/null +++ b/qt-ui/downloadfromdivecomputer.h @@ -0,0 +1,46 @@ +#ifndef DOWNLOADFROMDIVECOMPUTER_H +#define DOWNLOADFROMDIVECOMPUTER_H +#include <QDialog> +#include <QThread> + +namespace Ui{ + class DownloadFromDiveComputer; +} +struct device_data_t; + +class DownloadThread : public QThread{ + Q_OBJECT +public: + explicit DownloadThread(device_data_t* data); + virtual void run(); +private: + device_data_t *data; +}; + +class InterfaceThread : public QThread{ + Q_OBJECT +public: + InterfaceThread(QObject *parent, device_data_t *data) ; + virtual void run(); + +Q_SIGNALS: + void updateInterface(int value); +private: + device_data_t *data; +}; + +class DownloadFromDCWidget : public QDialog{ + Q_OBJECT +public: + explicit DownloadFromDCWidget(QWidget* parent = 0, Qt::WindowFlags f = 0); + +public slots: + void on_ok_clicked(); + void on_cancel_clicked(); +private: + Ui::DownloadFromDiveComputer *ui; + InterfaceThread *thread; +}; + + +#endif
\ No newline at end of file |