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,
34 const QString &filename,
35 const QRect &captureRect,
36 bool recordAudio =
true);
37 virtual ~ScreenCaptureJob();
38 void start()
override;
42 void onOpenTriggered();
43 void onFinished(
int exitCode, QProcess::ExitStatus exitStatus)
override;
44#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
45 void onDBusRecordingTaken(
const QString &fileName);
46 void onDBusRecordingFailed();
50#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
51 enum DBusService { None, GNOME, KDE };
52 bool startWaylandRecording();
53 bool startGnomeScreencast();
54 bool startKdeSpectacle();
57 QString m_actualFilename;
61 QTimer m_progressTimer;
62#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
63 DBusService m_dbusService = DBusService::None;