X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fstatusnotifieritem.h;h=016f4516d187ea868c4f820ef6f8d5bf7044577e;hp=2efbefda989fa4a3034b1a26934503696e62af51;hb=e7e5830395a443fe2c185385115774e6f85428f8;hpb=b858144c9d38623bdd9afaa02c404d9515243ab7 diff --git a/src/qtui/statusnotifieritem.h b/src/qtui/statusnotifieritem.h index 2efbefda..016f4516 100644 --- a/src/qtui/statusnotifieritem.h +++ b/src/qtui/statusnotifieritem.h @@ -5,10 +5,10 @@ * This contains code from KStatusNotifierItem, part of the KDE libs * * Copyright (C) 2009 Marco Martin * * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) version 3. * + * This file is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Library General Public License (LGPL) * + * as published by the Free Software Foundation; either version 2 of the * + * License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -26,6 +26,7 @@ #ifdef HAVE_DBUS +#include "notificationsclient.h" #include "systemtray.h" #include "statusnotifierwatcher.h" @@ -45,8 +46,14 @@ public: explicit StatusNotifierItem(QWidget *parent); virtual ~StatusNotifierItem(); + virtual bool isSystemTrayAvailable() const; + virtual bool isVisible() const; + public slots: virtual void setState(State state); + virtual void setVisible(bool visible); + virtual void showMessage(const QString &title, const QString &message, MessageIcon icon = Information, int msTimeout = 10000, uint notificationId = 0); + virtual void closeMessage(uint notificationId); protected: virtual void init(); @@ -56,21 +63,35 @@ protected: QString iconName() const; QString attentionIconName() const; QString toolTipIconName() const; + QString iconThemePath() const; + QString menuObjectPath() const; virtual bool eventFilter(QObject *watched, QEvent *event); private slots: void activated(const QPoint &pos); void serviceChange(const QString& name, const QString& oldOwner, const QString& newOwner); + void checkForRegisteredHosts(); + + void notificationClosed(uint id, uint reason); + void notificationInvoked(uint id, const QString &action); private: void registerToDaemon(); static const int _protocolVersion; + static const QString _statusNotifierWatcherServiceName; StatusNotifierItemDBus *_statusNotifierItemDBus; org::kde::StatusNotifierWatcher *_statusNotifierWatcher; - //org::freedesktop::Notifications *_notificationsClient; + org::freedesktop::Notifications *_notificationsClient; + bool _notificationsClientSupportsMarkup; + bool _notificationsClientSupportsActions; + quint32 _lastNotificationsDBusId; + QHash _notificationsIdMap; ///< Maps our own notification ID to the D-Bus one + + QString _iconThemePath; + QString _menuObjectPath; friend class StatusNotifierItemDBus; };