X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fabstractnotificationbackend.h;h=982855ff7318329d17ee8131f26b347932c6324f;hp=22c760034a83bd3e67025f76ffa41ee8d99e54a2;hb=b66b1d455e0a6c8c438cf2b8ceecdd738cbfcb04;hpb=2ab3040da0e42f4afdd282e34f0d8b089020a73d diff --git a/src/uisupport/abstractnotificationbackend.h b/src/uisupport/abstractnotificationbackend.h index 22c76003..982855ff 100644 --- a/src/uisupport/abstractnotificationbackend.h +++ b/src/uisupport/abstractnotificationbackend.h @@ -31,13 +31,29 @@ class SettingsPage; class AbstractNotificationBackend : public QObject { Q_OBJECT - public: - //AbstractNotificationBackend(QObject *parent); - //virtual ~AbstractNotificationBackend(); - - virtual void notify(BufferId bufId, const QString &sender, const QString &text) = 0; - virtual SettingsPage *configWidget() const = 0; - +public: + struct Notification { + uint notificationId; + BufferId bufferId; + QString sender; + QString message; + + Notification(uint id_, BufferId buf_, const QString &sender_, const QString &msg_) + : notificationId(id_), bufferId(buf_), sender(sender_), message(msg_) {}; + }; + + inline AbstractNotificationBackend(QObject *parent) : QObject(parent) {}; + virtual ~AbstractNotificationBackend() {}; + + virtual void notify(const Notification &) = 0; + virtual void close(uint notificationId) { Q_UNUSED(notificationId); } + + //! Factory to create a configuration widget suitable for a specific notification backend + /** + * AbstractNotification will not take ownership of that configWidget! + * In case you need to communicate with the configWidget directly, make your connections here + */ + virtual SettingsPage *createConfigWidget() const = 0; }; #endif