summaryrefslogtreecommitdiffstats
path: root/api/dead/src/handlers/IconResourceHandler.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/dead/src/handlers/IconResourceHandler.h')
-rw-r--r--api/dead/src/handlers/IconResourceHandler.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/api/dead/src/handlers/IconResourceHandler.h b/api/dead/src/handlers/IconResourceHandler.h
new file mode 100644
index 00000000..0cc4de4f
--- /dev/null
+++ b/api/dead/src/handlers/IconResourceHandler.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include <memory>
+#include <resources/ResourceHandler.h>
+
+class 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;
+};