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

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_NOTIFICATION_H
0010 #define XDG_DESKTOP_PORTAL_KDE_NOTIFICATION_H
0011 
0012 #include <QDBusAbstractAdaptor>
0013 #include <QDBusObjectPath>
0014 
0015 #include <KNotification>
0016 
0017 class NotificationPortal : public QDBusAbstractAdaptor
0018 {
0019     Q_OBJECT
0020     Q_CLASSINFO("D-Bus Interface", "org.freedesktop.impl.portal.Notification")
0021 public:
0022     explicit NotificationPortal(QObject *parent);
0023 
0024 public Q_SLOTS:
0025     void AddNotification(const QString &app_id, const QString &id, const QVariantMap &notification);
0026     void RemoveNotification(const QString &app_id, const QString &id);
0027 private Q_SLOTS:
0028     void notificationClosed();
0029 
0030 private:
0031     QHash<QString, QPointer<KNotification>> m_notifications;
0032 };
0033 
0034 #endif // XDG_DESKTOP_PORTAL_KDE_NOTIFICATION_H