42 lines
990 B
C++
42 lines
990 B
C++
|
#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();
|
||
|
}
|