mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Add infrastructure to emit progress from threads
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
ba525df766
commit
1d67bae745
2 changed files with 23 additions and 0 deletions
|
@ -1393,6 +1393,26 @@ DeviceThread::DeviceThread(QObject *parent, device_data_t *data) : QThread(paren
|
|||
{
|
||||
}
|
||||
|
||||
void DeviceThread::progressCB(int percent)
|
||||
{
|
||||
emit progress(percent);
|
||||
}
|
||||
|
||||
void DeviceThread::event_cb(dc_device_t *device, dc_event_type_t event, const void *data, void *userdata)
|
||||
{
|
||||
const dc_event_progress_t *progress = (dc_event_progress_t *) data;
|
||||
DeviceThread *dt = static_cast<DeviceThread*>(userdata);
|
||||
|
||||
switch (event) {
|
||||
case DC_EVENT_PROGRESS:
|
||||
dt->progressCB(100.0 * (double)progress->current / (double)progress->maximum);
|
||||
break;
|
||||
default:
|
||||
emit dt->error("Unexpected event recived");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ReadSettingsThread::ReadSettingsThread(QObject *parent, device_data_t *data) : DeviceThread(parent, data)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -18,8 +18,11 @@ public:
|
|||
signals:
|
||||
void error(QString err);
|
||||
void message(QString msg);
|
||||
void progress(int value);
|
||||
protected:
|
||||
device_data_t *m_data;
|
||||
void progressCB(int value);
|
||||
static void event_cb(dc_device_t *device, dc_event_type_t event, const void *data, void *userdata);
|
||||
};
|
||||
|
||||
class ReadSettingsThread : public DeviceThread {
|
||||
|
|
Loading…
Add table
Reference in a new issue