+ /**
+ * Refresh the current icon theme.
+ *
+ * @note This will not detect changes in the system icon theme, so if that changes, a client restart
+ * is required for icons to work correctly.
+ */
+ void refreshIconTheme();
+
+signals:
+ void iconThemeRefreshed();
+
+protected slots:
+ void connectedToCore() override;
+ void disconnectedFromCore() override;
+ void notificationActivated(uint notificationId);
+ void bufferMarkedAsRead(BufferId);
+
+protected:
+ void minimizeRestore(bool show) override;
+ bool isHidingMainWidgetAllowed() const override;
+
+private slots:
+ void useSystemTrayChanged(const QVariant &);
+
+private:
+ /**
+ * Sets up icon theme handling.
+ */
+ void setupIconTheme();
+
+private:
+ static QtUi *_instance;
+ static MainWin *_mainWin;
+ static QList<AbstractNotificationBackend *> _notificationBackends;
+ static QList<AbstractNotificationBackend::Notification> _notifications;
+
+ QString _systemIconTheme;
+
+#if QT_VERSION >= 0x050000
+ std::unique_ptr<QTemporaryDir> _dummyThemeDir;