diff --git a/api/dbus/org.desktopspec.JobManager1.Job.xml b/api/dbus/org.desktopspec.JobManager1.Job.xml
index 53d849f..4848dc1 100644
--- a/api/dbus/org.desktopspec.JobManager1.Job.xml
+++ b/api/dbus/org.desktopspec.JobManager1.Job.xml
@@ -5,8 +5,8 @@
diff --git a/src/dbus/jobservice.cpp b/src/dbus/jobservice.cpp
index 9533854..37bf501 100644
--- a/src/dbus/jobservice.cpp
+++ b/src/dbus/jobservice.cpp
@@ -13,21 +13,32 @@ JobService::~JobService() {}
QString JobService::status() const
{
- // TODO: impl
- return {};
+ if (job.isFinished())
+ return "finished";
+ if (job.isCanceled())
+ return "canceled";
+ if (job.isSuspended())
+ return "suspended";
+ if (job.isSuspending())
+ return "suspending";
+ if (job.isStarted())
+ return "started";
+ if (job.isRunning())
+ return "running";
+ return "failed";
}
void JobService::Cancel()
{
- // TODO: impl
+ job.cancel();
}
void JobService::Pause()
{
- // TODO: impl
+ job.suspend();
}
void JobService::Resume()
{
- // TODO: impl
+ job.resume();
}
diff --git a/src/dbus/jobservice.h b/src/dbus/jobservice.h
index 146060c..fbf97d6 100644
--- a/src/dbus/jobservice.h
+++ b/src/dbus/jobservice.h
@@ -6,6 +6,8 @@
#define JOBSERVICE_H
#include
+#include
+#include
class JobService : public QObject
{
@@ -22,6 +24,9 @@ public Q_SLOTS:
void Cancel();
void Pause();
void Resume();
+
+private:
+ QFuture job;
};
#endif