diff options
Diffstat (limited to 'api/logic')
-rw-r--r-- | api/logic/Env.cpp | 10 | ||||
-rw-r--r-- | api/logic/Env.h | 6 | ||||
-rw-r--r-- | api/logic/icons/IIconList.h | 20 | ||||
-rw-r--r-- | api/logic/minecraft/ftb/FTBPlugin.cpp | 6 |
4 files changed, 41 insertions, 1 deletions
diff --git a/api/logic/Env.cpp b/api/logic/Env.cpp index cc0c5981..b8e07343 100644 --- a/api/logic/Env.cpp +++ b/api/logic/Env.cpp @@ -43,6 +43,16 @@ std::shared_ptr< QNetworkAccessManager > Env::qnam() return m_qnam; } +std::shared_ptr<IIconList> Env::icons() +{ + return m_iconlist; +} + +void Env::registerIconList(std::shared_ptr<IIconList> iconlist) +{ + m_iconlist = iconlist; +} + /* class NullVersion : public BaseVersion { diff --git a/api/logic/Env.h b/api/logic/Env.h index 4d8945d7..dcf1947f 100644 --- a/api/logic/Env.h +++ b/api/logic/Env.h @@ -1,6 +1,7 @@ #pragma once #include <memory> +#include "icons/IIconList.h" #include <QString> #include <QMap> @@ -32,6 +33,8 @@ public: std::shared_ptr<HttpMetaCache> metacache(); + std::shared_ptr<IIconList> icons(); + /// init the cache. FIXME: possible future hook point void initHttpMetaCache(); @@ -46,6 +49,8 @@ public: void registerVersionList(QString name, std::shared_ptr<BaseVersionList> vlist); + void registerIconList(std::shared_ptr<IIconList> iconlist); + std::shared_ptr<WonkoIndex> wonkoIndex(); QString wonkoRootUrl() const { return m_wonkoRootUrl; } @@ -54,6 +59,7 @@ public: protected: std::shared_ptr<QNetworkAccessManager> m_qnam; std::shared_ptr<HttpMetaCache> m_metacache; + std::shared_ptr<IIconList> m_iconlist; QMap<QString, std::shared_ptr<BaseVersionList>> m_versionLists; std::shared_ptr<WonkoIndex> m_wonkoIndex; QString m_wonkoRootUrl; diff --git a/api/logic/icons/IIconList.h b/api/logic/icons/IIconList.h new file mode 100644 index 00000000..a7e0fa07 --- /dev/null +++ b/api/logic/icons/IIconList.h @@ -0,0 +1,20 @@ +#pragma once + +#include <QString> + +enum IconType : unsigned +{ + Builtin, + Transient, + FileBased, + ICONS_TOTAL, + ToBeDeleted +}; + +class IIconList +{ +public: + virtual ~IIconList(){} + virtual bool addIcon(QString key, QString name, QString path, IconType type) = 0; +}; + diff --git a/api/logic/minecraft/ftb/FTBPlugin.cpp b/api/logic/minecraft/ftb/FTBPlugin.cpp index a142c106..134257bf 100644 --- a/api/logic/minecraft/ftb/FTBPlugin.cpp +++ b/api/logic/minecraft/ftb/FTBPlugin.cpp @@ -257,7 +257,11 @@ void FTBPlugin::loadInstances(SettingsObjectPtr globalSettings, QMap<QString, QS { qDebug() << "Loading FTB instance from " << record.instanceDir; QString iconKey = record.iconKey; - // MMC->icons()->addIcon(iconKey, iconKey, FS::PathCombine(record.templateDir, record.logo), MMCIcon::Transient); + auto icons = ENV.icons(); + if(icons) + { + icons->addIcon(iconKey, iconKey, FS::PathCombine(record.templateDir, record.logo), IconType::Transient); + } auto settingsFilePath = FS::PathCombine(record.instanceDir, "instance.cfg"); qDebug() << "ICON get!"; |