- QtUi();
- ~QtUi();
-
- MessageModel *createMessageModel(QObject *parent);
- AbstractMessageProcessor *createMessageProcessor(QObject *parent);
-
- inline static QtUi *instance();
- inline static QtUiStyle *style();
- inline static MainWin *mainWindow();
-
- //! Access global ActionCollections.
- /** These ActionCollections are associated with the main window, i.e. they contain global
- * actions (and thus, shortcuts). Widgets providing application-wide shortcuts should
- * create appropriate Action objects using QtUi::actionCollection(cat)->add\<Action\>().
- * @param category The category (default: "General")
- */
- static ActionCollection *actionCollection(const QString &category = "General");
- inline AbstractActionProvider *actionProvider() const;
-
- /* Notifications */
-
- static void registerNotificationBackend(AbstractNotificationBackend *);
- static void unregisterNotificationBackend(AbstractNotificationBackend *);
- static void unregisterAllNotificationBackends();
- static const QList<AbstractNotificationBackend *> ¬ificationBackends();
- static uint invokeNotification(BufferId bufId, const QString &sender, const QString &text);
- static void closeNotification(uint notificationId);
- static void closeNotifications(BufferId bufferId = BufferId());
- static const QList<AbstractNotificationBackend::Notification> &activeNotifications();
+ QtUi();
+ ~QtUi() override;
+
+ MessageModel* createMessageModel(QObject* parent) override;
+ AbstractMessageProcessor* createMessageProcessor(QObject* parent) override;
+
+ static QtUi* instance();
+ inline static QtUiStyle* style();
+ inline static MainWin* mainWindow();
+
+ QString debugLog() const;
+
+ static bool haveSystemTray();
+
+ /* Notifications */
+
+ static void registerNotificationBackend(AbstractNotificationBackend*);
+ static void unregisterNotificationBackend(AbstractNotificationBackend*);
+ static void unregisterAllNotificationBackends();
+ static const QList<AbstractNotificationBackend*>& notificationBackends();
+ static const QList<AbstractNotificationBackend::Notification>& activeNotifications();
+
+ /**
+ * Determine available fallback icon themes.
+ *
+ * @returns The list of supported fallback themes (Breeze (Dark), Oxygen) that are available on the system
+ */
+ std::vector<std::pair<QString, QString>> availableIconThemes() const;
+
+ /**
+ * Determine the system icon theme set when Quassel was started.
+ *
+ * This property stores the icon theme initially configured in Qt when starting up (may be empty on platforms
+ * not supporting system icon themes). If the --icontheme option is given, uses that.
+ *
+ * Since Qt does not support notifications on theme changes, this property will not be updated when the theme
+ * changes at runtime.
+ *
+ * @returns The system icon theme at startup time
+ */
+ QString systemIconTheme() const;