summaryrefslogtreecommitdiffstats
path: root/api/logic/tasks/ThreadTask.cpp
blob: ddd1dee5fc5f820ac1e460b68f1f0f340c8a9c50 (plain)
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();
}