diff options
author | Petr Mrázek <peterix@gmail.com> | 2015-09-27 22:31:52 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2015-09-27 22:31:52 +0200 |
commit | 33c3850b40aba095b056738448c235190aeb1aab (patch) | |
tree | 7f38782803ffeb20b10f6394840302fc35460cc9 /application/handlers/IconResourceHandler.cpp | |
parent | 271ad9e4fdb4f003abd33b59ca9cadfb5bab9823 (diff) | |
download | MultiMC-33c3850b40aba095b056738448c235190aeb1aab.tar MultiMC-33c3850b40aba095b056738448c235190aeb1aab.tar.gz MultiMC-33c3850b40aba095b056738448c235190aeb1aab.tar.lz MultiMC-33c3850b40aba095b056738448c235190aeb1aab.tar.xz MultiMC-33c3850b40aba095b056738448c235190aeb1aab.zip |
NOISSUE add missing files
Diffstat (limited to 'application/handlers/IconResourceHandler.cpp')
-rw-r--r-- | application/handlers/IconResourceHandler.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/application/handlers/IconResourceHandler.cpp b/application/handlers/IconResourceHandler.cpp new file mode 100644 index 00000000..b03553fd --- /dev/null +++ b/application/handlers/IconResourceHandler.cpp @@ -0,0 +1,37 @@ +#include "IconResourceHandler.h" +#include <xdgicon.h> + +#include <QDir> +#include <QDebug> + +QList<std::weak_ptr<IconResourceHandler>> IconResourceHandler::m_iconHandlers; + +IconResourceHandler::IconResourceHandler(const QString &key) + : m_key(key) +{ +} + +void IconResourceHandler::setTheme(const QString &theme) +{ + // notify everyone + for (auto handler : m_iconHandlers) + { + std::shared_ptr<IconResourceHandler> ptr = handler.lock(); + if (ptr) + { + ptr->setResult(ptr->get()); + } + } +} + +void IconResourceHandler::init(std::shared_ptr<ResourceHandler> &ptr) +{ + m_iconHandlers.append(std::dynamic_pointer_cast<IconResourceHandler>(ptr)); + // we always have a result, so lets report it now! + setResult(get()); +} + +QVariant IconResourceHandler::get() const +{ + return XdgIcon::fromTheme(m_key); +} |