18#ifndef SCREENCAPTUREJOB_H
19#define SCREENCAPTUREJOB_H
21#include "abstractjob.h"
25#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
26#include <QDBusConnection>
29class ScreenCaptureJob :
public AbstractJob
33 ScreenCaptureJob(
const QString &name,
const QString &filename,
const QRect &captureRect);
34 virtual ~ScreenCaptureJob();
35 void start()
override;
39 void onOpenTriggered();
40 void onFinished(
int exitCode, QProcess::ExitStatus exitStatus)
override;
41#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
42 void onDBusRecordingTaken(
const QString &fileName);
43 void onDBusRecordingFailed();
47#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
48 enum DBusService { None, GNOME, KDE };
49 bool startWaylandRecording();
50 bool startGnomeScreencast();
51 bool startKdeSpectacle();
54 QString m_actualFilename;
57 QTimer m_progressTimer;
58#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
59 DBusService m_dbusService = DBusService::None;