File indexing completed on 2024-04-28 16:55:44

0001 /*
0002  * SPDX-FileCopyrightText: 2016 Red Hat Inc
0003  *
0004  * SPDX-License-Identifier: LGPL-2.0-or-later
0005  *
0006  * SPDX-FileCopyrightText: 2016 Jan Grulich <jgrulich@redhat.com>
0007  */
0008 
0009 #ifndef XDG_DESKTOP_PORTAL_KDE_DESKTOP_PORTAL_H
0010 #define XDG_DESKTOP_PORTAL_KDE_DESKTOP_PORTAL_H
0011 
0012 #include <QDBusContext>
0013 #include <QObject>
0014 
0015 #include "access.h"
0016 #include "account.h"
0017 #include "appchooser.h"
0018 #include "background.h"
0019 #include "email.h"
0020 #include "filechooser.h"
0021 #include "inhibit.h"
0022 #include "notification.h"
0023 #include "print.h"
0024 #include "screenshot.h"
0025 #include "settings.h"
0026 #include "waylandintegration.h"
0027 
0028 #include "remotedesktop.h"
0029 #include "screencast.h"
0030 
0031 class DynamicLauncherPortal;
0032 
0033 class DesktopPortal : public QObject, public QDBusContext
0034 {
0035     Q_OBJECT
0036 public:
0037     explicit DesktopPortal(QObject *parent = nullptr);
0038     ~DesktopPortal() override;
0039 
0040 private:
0041     AccessPortal *const m_access;
0042     AccountPortal *const m_account;
0043     AppChooserPortal *const m_appChooser;
0044     BackgroundPortal *m_background = nullptr;
0045     EmailPortal *const m_email;
0046     FileChooserPortal *const m_fileChooser;
0047     InhibitPortal *const m_inhibit;
0048     NotificationPortal *const m_notification;
0049     PrintPortal *const m_print;
0050     ScreenshotPortal *m_screenshot = nullptr;
0051     SettingsPortal *const m_settings;
0052     ScreenCastPortal *m_screenCast = nullptr;
0053     RemoteDesktopPortal *m_remoteDesktop = nullptr;
0054     DynamicLauncherPortal *const m_dynamicLauncher;
0055 };
0056 
0057 #endif // XDG_DESKTOP_PORTAL_KDE_DESKTOP_PORTAL_H