X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fstatusnotifieritem.h;h=5a103b61992d4418e19d8ebce47e5f73128dcb79;hp=9a805be5b25ef70337c01a3d36777dd8e5098e5b;hb=00e1a9c29e792ba4d65dba21b7ba04131bcb13bc;hpb=9f0918fca1d858523104435690e5094bfe6244b7 diff --git a/src/qtui/statusnotifieritem.h b/src/qtui/statusnotifieritem.h index 9a805be5..5a103b61 100644 --- a/src/qtui/statusnotifieritem.h +++ b/src/qtui/statusnotifieritem.h @@ -25,11 +25,10 @@ #ifdef HAVE_DBUS -#include - -#if QT_VERSION >= 0x050000 -# include -#endif +#include +#include +#include +#include #include "notificationsclient.h" #include "systemtray.h" @@ -42,6 +41,8 @@ # include "legacysystemtray.h" #endif +class QDBusServiceWatcher; + class StatusNotifierItemDBus; class StatusNotifierItem : public StatusNotifierItemParent @@ -50,21 +51,14 @@ class StatusNotifierItem : public StatusNotifierItemParent public: explicit StatusNotifierItem(QWidget *parent); - ~StatusNotifierItem() override; bool isSystemTrayAvailable() const override; - bool isVisible() const override; public slots: - void setState(State state) override; - void setVisible(bool visible) override; void showMessage(const QString &title, const QString &message, MessageIcon icon = Information, int msTimeout = 10000, uint notificationId = 0) override; void closeMessage(uint notificationId) override; protected: - void init() override; - void setMode(Mode mode) override; - QString title() const; QString iconName() const; QString attentionIconName() const; @@ -78,19 +72,22 @@ private slots: void activated(const QPoint &pos); void serviceChange(const QString &name, const QString &oldOwner, const QString &newOwner); void checkForRegisteredHosts(); + void onDBusError(const QDBusError &error); void notificationClosed(uint id, uint reason); void notificationInvoked(uint id, const QString &action); void refreshIcons(); + void onModeChanged(Mode mode); + void onStateChanged(State state); + void onVisibilityChanged(bool isVisible); + private: - void registerToDaemon(); + void registerToWatcher(); - static const int _protocolVersion; - static const QString _statusNotifierWatcherServiceName; + QDBusServiceWatcher *_serviceWatcher{nullptr}; StatusNotifierItemDBus *_statusNotifierItemDBus{nullptr}; - org::kde::StatusNotifierWatcher *_statusNotifierWatcher{nullptr}; org::freedesktop::Notifications *_notificationsClient{nullptr}; bool _notificationsClientSupportsMarkup{false}; @@ -101,9 +98,7 @@ private: QString _iconThemePath; QString _menuObjectPath; -#if QT_VERSION >= 0x050000 QTemporaryDir _iconThemeDir; -#endif friend class StatusNotifierItemDBus; };