diff options
Diffstat (limited to 'application/handlers/IconResourceHandler.h')
-rw-r--r-- | application/handlers/IconResourceHandler.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/application/handlers/IconResourceHandler.h b/application/handlers/IconResourceHandler.h new file mode 100644 index 00000000..6219f856 --- /dev/null +++ b/application/handlers/IconResourceHandler.h @@ -0,0 +1,25 @@ +#pragma once + +#include <memory> +#include <resources/ResourceHandler.h> + +#include "multimc_logic_export.h" + +class MULTIMC_LOGIC_EXPORT IconResourceHandler : public ResourceHandler +{ +public: + explicit IconResourceHandler(const QString &key); + + /// Sets the current theme and notifies all IconResourceHandlers of the change + static void setTheme(const QString &theme); + +private: + // we need to keep track of all IconResourceHandlers so that we can update them if the theme changes + void init(std::shared_ptr<ResourceHandler> &ptr) override; + static QList<std::weak_ptr<IconResourceHandler>> m_iconHandlers; + + QString m_key; + + // the workhorse, returns QVariantMap (filename => size) for m_key/m_theme + QVariant get() const; +}; |