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)
|
ReadSettingsThread::ReadSettingsThread(QObject *parent, device_data_t *data) : DeviceThread(parent, data)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,8 +18,11 @@ public:
|
||||||
signals:
|
signals:
|
||||||
void error(QString err);
|
void error(QString err);
|
||||||
void message(QString msg);
|
void message(QString msg);
|
||||||
|
void progress(int value);
|
||||||
protected:
|
protected:
|
||||||
device_data_t *m_data;
|
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 {
|
class ReadSettingsThread : public DeviceThread {
|
||||||
|
|
Loading…
Add table
Reference in a new issue