mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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>
This commit is contained in:
parent
15bb4fccbb
commit
c7a5d0490f
8 changed files with 249 additions and 89 deletions
46
qt-ui/downloadfromdivecomputer.h
Normal file
46
qt-ui/downloadfromdivecomputer.h
Normal file
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue