Sine Striker
2023-12-27 1571d7b43228a0ed4347f681a16b2b23defccda9
src/core/style/styleagent.cpp
@@ -5,12 +5,20 @@
namespace QWK {
    /*!
        \class StyleAgent
        \brief StyleAgent provides some features related to system theme.
    */
    StyleAgentPrivate::StyleAgentPrivate() {
    }
    StyleAgentPrivate::~StyleAgentPrivate() = default;
    StyleAgentPrivate::~StyleAgentPrivate() {
        removeSystemThemeHook();
    }
    void StyleAgentPrivate::init() {
        setupSystemThemeHook();
    }
    void StyleAgentPrivate::notifyThemeChanged(StyleAgent::SystemTheme theme) {
@@ -22,25 +30,40 @@
        Q_EMIT q->systemThemeChanged();
    }
    /*!
        Constructor. Since it is not related to a concrete window instance, it is better to be used
        as a singleton.
    */
    StyleAgent::StyleAgent(QObject *parent) : StyleAgent(*new StyleAgentPrivate(), parent) {
        Q_D(StyleAgent);
        d->setupSystemThemeHook();
    }
    /*!
        Destructor.
    */
    StyleAgent::~StyleAgent() {
        Q_D(StyleAgent);
        d->removeSystemThemeHook();
    }
    /*!
        Returns the system theme.
    */
    StyleAgent::SystemTheme StyleAgent::systemTheme() const {
        Q_D(const StyleAgent);
        return d->systemTheme;
    }
    /*!
        \internal
    */
    StyleAgent::StyleAgent(StyleAgentPrivate &d, QObject *parent) : QObject(parent), d_ptr(&d) {
        d.q_ptr = this;
        d.init();
    }
    /*!
        \fn void StyleAgent::systemThemeChanged()
        This signal is emitted when the system theme changes.
    */
}