diff options
Diffstat (limited to 'notification.h')
-rw-r--r-- | notification.h | 64 |
1 files changed, 42 insertions, 22 deletions
diff --git a/notification.h b/notification.h index 46b6754..c6a9966 100644 --- a/notification.h +++ b/notification.h @@ -7,43 +7,63 @@ namespace watchfish { +class NotificationPrivate; + class Notification : public QObject { Q_OBJECT - Q_PROPERTY(uint id READ id CONSTANT) - Q_PROPERTY(QString sender READ sender) - Q_PROPERTY(QString summary READ summary NOTIFY summaryChanged) - Q_PROPERTY(QString body READ body NOTIFY bodyChanged) - Q_PROPERTY(QDateTime timestamp READ timestamp NOTIFY timestampChanged) - Q_PROPERTY(QString icon READ icon NOTIFY iconChanged) + Q_DECLARE_PRIVATE(Notification) - explicit Notification(QObject *parent = 0); + /** Notification ID */ + Q_PROPERTY(uint id READ id CONSTANT) + /** Name of sender program */ + Q_PROPERTY(QString sender READ sender WRITE setSender NOTIFY senderChanged) + Q_PROPERTY(QString summary READ summary WRITE setSummary NOTIFY summaryChanged) + Q_PROPERTY(QString body READ body WRITE setBody NOTIFY bodyChanged) + Q_PROPERTY(QDateTime timestamp READ timestamp WRITE setTimestamp NOTIFY timestampChanged) + /** Icon file path */ + Q_PROPERTY(QString icon READ icon WRITE setIcon NOTIFY iconChanged) + Q_ENUMS(CloseReason) public: - inline uint id() const { return _id; } - inline QString sender() const { return _sender; } - inline QString summary() const { return _summary; } - inline QString body() const { return _body; } - inline QDateTime timestamp() const { return _timestamp; } - inline QString icon() const { return _icon; } + explicit Notification(uint id, QObject *parent = 0); + ~Notification(); + + enum CloseReason { + Expired = 1, + DismissedByUser = 2, + DismissedByProgram = 3, + ClosedOther = 4 + }; + + uint id() const; + + QString sender() const; + void setSender(const QString &sender); + + QString summary() const; + void setSummary(const QString &summary); + + QString body() const; + void setBody(const QString &body); + + QDateTime timestamp() const; + void setTimestamp(const QDateTime &dt); + + QString icon() const; + void setIcon(const QString &icon); signals: + void senderChanged(); void summaryChanged(); void bodyChanged(); void timestampChanged(); void iconChanged(); - void closed(int reason); + void closed(CloseReason reason); private: - friend class NotificationMonitor; - - uint _id; - QString _sender; - QString _summary; - QString _body; - QDateTime _timestamp; - QString _icon; + NotificationPrivate * const d_ptr; }; } |