Warning, file /network/kdeconnect-kde/plugins/notifications/notificationsplugin.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /**
0002  * SPDX-FileCopyrightText: 2013 Albert Vaca <albertvaka@gmail.com>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 #pragma once
0008 
0009 #include <core/kdeconnectplugin.h>
0010 
0011 #include "notification.h"
0012 
0013 #define PACKET_TYPE_NOTIFICATION_REQUEST QStringLiteral("kdeconnect.notification.request")
0014 #define PACKET_TYPE_NOTIFICATION_REPLY QStringLiteral("kdeconnect.notification.reply")
0015 #define PACKET_TYPE_NOTIFICATION_ACTION QStringLiteral("kdeconnect.notification.action")
0016 
0017 class NotificationsPlugin : public KdeConnectPlugin
0018 {
0019     Q_OBJECT
0020     Q_CLASSINFO("D-Bus Interface", "org.kde.kdeconnect.device.notifications")
0021 
0022 public:
0023     using KdeConnectPlugin::KdeConnectPlugin;
0024 
0025     void receivePacket(const NetworkPacket &np) override;
0026     void connected() override;
0027     QString dbusPath() const override;
0028 
0029     void clearNotifications();
0030     void dismissRequested(const QString &notification);
0031     void replyRequested(Notification *noti);
0032     void addNotification(Notification *noti);
0033 
0034 public Q_SLOTS:
0035     Q_SCRIPTABLE QStringList activeNotifications();
0036     Q_SCRIPTABLE void sendReply(const QString &replyId, const QString &message);
0037     Q_SCRIPTABLE void sendAction(const QString &key, const QString &action);
0038 
0039 Q_SIGNALS:
0040     Q_SCRIPTABLE void notificationPosted(const QString &publicId);
0041     Q_SCRIPTABLE void notificationRemoved(const QString &publicId);
0042     Q_SCRIPTABLE void notificationUpdated(const QString &publicId);
0043     Q_SCRIPTABLE void allNotificationsRemoved();
0044 
0045 private:
0046     void removeNotification(const QString &internalId);
0047     QString newId(); // Generates successive identifiers to use as public ids
0048     void notificationReady();
0049 
0050     QHash<QString, QPointer<Notification>> m_notifications;
0051     QHash<QString, QString> m_internalIdToPublicId;
0052     int m_lastId = 0;
0053 };