summaryrefslogtreecommitdiff
path: root/notification.h
diff options
context:
space:
mode:
Diffstat (limited to 'notification.h')
-rw-r--r--notification.h64
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;
};
}