1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#include "ThreadTask.h"
#include <QtConcurrentRun>
ThreadTask::ThreadTask(Task * internal, QObject *parent) : Task(parent), m_internal(internal)
{
}
void ThreadTask::start()
{
connect(m_internal, SIGNAL(failed(QString)), SLOT(iternal_failed(QString)));
connect(m_internal, SIGNAL(progress(qint64,qint64)), SLOT(iternal_progress(qint64,qint64)));
connect(m_internal, SIGNAL(started()), SLOT(iternal_started()));
connect(m_internal, SIGNAL(status(QString)), SLOT(iternal_status(QString)));
connect(m_internal, SIGNAL(succeeded()), SLOT(iternal_succeeded()));
m_running = true;
QtConcurrent::run(m_internal, &Task::start);
}
void ThreadTask::iternal_failed(QString reason)
{
emitFailed(reason);
}
void ThreadTask::iternal_progress(qint64 current, qint64 total)
{
progress(current, total);
}
void ThreadTask::iternal_started()
{
emit started();
}
void ThreadTask::iternal_status(QString status)
{
setStatus(status);
}
void ThreadTask::iternal_succeeded()
{
emitSucceeded();
}
|