summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2017-07-05 18:02:49 +0200
committerPetr Mrázek <peterix@gmail.com>2017-07-05 18:02:49 +0200
commitd6ab4b4a7fa9451963406911477316a1bc2c1cae (patch)
tree7248ded75c6b6e768bb2b7b7bcc37d88c1d5d7ab /api
parent74c455ff3572ed32c7538dde81d55c4f274ad5c4 (diff)
downloadMultiMC-d6ab4b4a7fa9451963406911477316a1bc2c1cae.tar
MultiMC-d6ab4b4a7fa9451963406911477316a1bc2c1cae.tar.gz
MultiMC-d6ab4b4a7fa9451963406911477316a1bc2c1cae.tar.lz
MultiMC-d6ab4b4a7fa9451963406911477316a1bc2c1cae.tar.xz
MultiMC-d6ab4b4a7fa9451963406911477316a1bc2c1cae.zip
NOISSUE rearrange global initialization
Diffstat (limited to 'api')
-rw-r--r--api/logic/Env.cpp42
-rw-r--r--api/logic/Env.h14
-rw-r--r--api/logic/minecraft/legacy/LegacyUpdate.cpp2
3 files changed, 19 insertions, 39 deletions
diff --git a/api/logic/Env.cpp b/api/logic/Env.cpp
index 59d4c4a8..3a484703 100644
--- a/api/logic/Env.cpp
+++ b/api/logic/Env.cpp
@@ -10,17 +10,18 @@
#include "tasks/Task.h"
#include "meta/Index.h"
#include "FileSystem.h"
+#include "minecraft/legacy/LwjglVersionList.h"
#include <QDebug>
-class Env::Private
+struct Env::Private
{
-public:
QNetworkAccessManager m_qnam;
shared_qobject_ptr<HttpMetaCache> m_metacache;
std::shared_ptr<IIconList> m_iconlist;
- QMap<QString, std::shared_ptr<BaseVersionList>> m_versionLists;
shared_qobject_ptr<Meta::Index> m_metadataIndex;
+ // FIXME: replace with mojang format LWJGL in meta store
+ std::shared_ptr<LWJGLVersionList> m_lwjgllist;
QString m_jarsPath;
};
@@ -75,32 +76,6 @@ void Env::registerIconList(std::shared_ptr<IIconList> iconlist)
d->m_iconlist = iconlist;
}
-BaseVersionPtr Env::getVersion(QString component, QString version)
-{
- auto list = getVersionList(component);
- if(!list)
- {
- return nullptr;
- }
- return list->findVersion(version);
-}
-
-std::shared_ptr< BaseVersionList > Env::getVersionList(QString component)
-{
- auto iter = d->m_versionLists.find(component);
- if(iter != d->m_versionLists.end())
- {
- return *iter;
- }
- //return std::make_shared<NullVersionList>();
- return nullptr;
-}
-
-void Env::registerVersionList(QString name, std::shared_ptr< BaseVersionList > vlist)
-{
- d->m_versionLists[name] = vlist;
-}
-
shared_qobject_ptr<Meta::Index> Env::metadataIndex()
{
if (!d->m_metadataIndex)
@@ -207,4 +182,13 @@ void Env::setJarsPath(const QString& path)
d->m_jarsPath = path;
}
+LWJGLVersionList *Env::getLegacyLWJGL()
+{
+ if(!d->m_lwjgllist)
+ {
+ d->m_lwjgllist.reset(new LWJGLVersionList());
+ }
+ return d->m_lwjgllist.get();
+}
+
#include "Env.moc"
diff --git a/api/logic/Env.h b/api/logic/Env.h
index 08b1dd0d..d42f13ce 100644
--- a/api/logic/Env.h
+++ b/api/logic/Env.h
@@ -13,6 +13,7 @@ class QNetworkAccessManager;
class HttpMetaCache;
class BaseVersionList;
class BaseVersion;
+class LWJGLVersionList;
namespace Meta
{
@@ -24,11 +25,12 @@ class Index;
#endif
#define ENV (Env::getInstance())
+
class MULTIMC_LOGIC_EXPORT Env
{
friend class MultiMC;
private:
- class Private;
+ struct Private;
Env();
~Env();
static void dispose();
@@ -47,18 +49,12 @@ public:
/// Updates the application proxy settings from the settings object.
void updateProxySettings(QString proxyTypeStr, QString addr, int port, QString user, QString password);
- /// get a version list by name
- std::shared_ptr<BaseVersionList> getVersionList(QString component);
-
- /// get a version by list name and version name
- std::shared_ptr<BaseVersion> getVersion(QString component, QString version);
-
- void registerVersionList(QString name, std::shared_ptr<BaseVersionList> vlist);
-
void registerIconList(std::shared_ptr<IIconList> iconlist);
shared_qobject_ptr<Meta::Index> metadataIndex();
+ LWJGLVersionList *getLegacyLWJGL();
+
QString getJarsPath();
void setJarsPath(const QString & path);
protected:
diff --git a/api/logic/minecraft/legacy/LegacyUpdate.cpp b/api/logic/minecraft/legacy/LegacyUpdate.cpp
index e263d0de..6ba0825d 100644
--- a/api/logic/minecraft/legacy/LegacyUpdate.cpp
+++ b/api/logic/minecraft/legacy/LegacyUpdate.cpp
@@ -164,7 +164,7 @@ void LegacyUpdate::lwjglStart()
{
LegacyInstance *inst = (LegacyInstance *)m_inst;
- auto list = std::dynamic_pointer_cast<LWJGLVersionList>(ENV.getVersionList("org.lwjgl.legacy"));
+ auto list = ENV.getLegacyLWJGL();
if (!list->isLoaded())
{
setStatus(tr("Checking the LWJGL version list..."));