X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fqtui.h;h=f85d225249173c2fc9d736326461e40c6c4efc28;hb=f18d6c40cd704e26734a77b371ae2c4a284bee38;hp=e54fb244d9ab5dd8f3d1682190b7ebf85393db95;hpb=9f0918fca1d858523104435690e5094bfe6244b7;p=quassel.git diff --git a/src/qtui/qtui.h b/src/qtui/qtui.h index e54fb244..f85d2252 100644 --- a/src/qtui/qtui.h +++ b/src/qtui/qtui.h @@ -24,7 +24,9 @@ #include #include -#include +#include +#include +#include #if QT_VERSION >= 0x050000 # include @@ -47,16 +49,17 @@ class QtUi : public GraphicalUi Q_OBJECT public: - QtUi(); ~QtUi(); MessageModel *createMessageModel(QObject *parent) override; AbstractMessageProcessor *createMessageProcessor(QObject *parent) override; - inline static QtUi *instance(); + static QtUi *instance(); inline static QtUiStyle *style(); inline static MainWin *mainWindow(); + QString debugLog() const; + static bool haveSystemTray(); /* Notifications */ @@ -74,6 +77,19 @@ public: */ std::vector> 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; + public slots: void init() override; @@ -106,13 +122,14 @@ private slots: void useSystemTrayChanged(const QVariant &); private: + QtUi(); + /** * Sets up icon theme handling. */ void setupIconTheme(); private: - static QtUi *_instance; static MainWin *_mainWin; static QList _notificationBackends; static QList _notifications; @@ -126,7 +143,5 @@ private: bool _useSystemTray; }; - -QtUi *QtUi::instance() { return _instance ? _instance : new QtUi(); } QtUiStyle *QtUi::style() { return qobject_cast(uiStyle()); } MainWin *QtUi::mainWindow() { return _mainWin; }