File indexing completed on 2024-04-28 05:36:53

0001 /*
0002  * SPDX-FileCopyrightText: 2018 Red Hat Inc
0003  *
0004  * SPDX-License-Identifier: LGPL-2.0-or-later
0005  *
0006  * SPDX-FileCopyrightText: 2018 Jan Grulich <jgrulich@redhat.com>
0007  */
0008 
0009 #ifndef XDG_DESKTOP_PORTAL_KDE_SCREENSHOT_DIALOG_H
0010 #define XDG_DESKTOP_PORTAL_KDE_SCREENSHOT_DIALOG_H
0011 
0012 #include "quickdialog.h"
0013 #include <QFuture>
0014 #include <QImage>
0015 
0016 class ScreenshotDialog : public QuickDialog
0017 {
0018     Q_OBJECT
0019 public:
0020     explicit ScreenshotDialog(QObject *parent = nullptr);
0021 
0022     enum Flags {
0023         Borders = 1,
0024         Cursor = 1 << 1,
0025     };
0026     Q_ENUM(Flags)
0027     enum ScreenshotType {
0028         FullScreen,
0029         CurrentScreen,
0030         ActiveWindow,
0031     };
0032     Q_ENUM(ScreenshotType)
0033 
0034     QImage image() const;
0035     void takeScreenshotNonInteractive();
0036 
0037 public Q_SLOTS:
0038     void takeScreenshotInteractive();
0039 
0040 Q_SIGNALS:
0041     void failed();
0042 
0043 private:
0044     QFuture<QImage> takeScreenshot();
0045 
0046     QImage m_image;
0047 };
0048 
0049 #endif // XDG_DESKTOP_PORTAL_KDE_SCREENSHOT_DIALOG_H