aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AppSettings.cpp73
-rw-r--r--AppSettings.h29
-rw-r--r--AppVersion.cpp46
-rw-r--r--CMakeLists.txt30
-rw-r--r--MultiMC.cpp242
-rw-r--r--MultiMC.h76
-rw-r--r--MultiMC.pro47
-rw-r--r--MultiMCVersion.h (renamed from AppVersion.h)24
-rw-r--r--depends/classparser/src/javautils.cpp1
-rw-r--r--depends/settings/include/settingsobject.h10
-rw-r--r--depends/settings/src/settingsobject.cpp2
-rw-r--r--gui/IconPickerDialog.cpp15
-rw-r--r--gui/aboutdialog.cpp8
-rw-r--r--gui/mainwindow.cpp56
-rw-r--r--gui/mainwindow.h1
-rw-r--r--gui/newinstancedialog.cpp9
-rw-r--r--gui/settingsdialog.cpp8
-rw-r--r--logic/BaseInstance.cpp3
-rw-r--r--logic/InstanceLauncher.cpp74
-rw-r--r--logic/InstanceLauncher.h28
-rw-r--r--logic/LegacyInstance.cpp8
-rw-r--r--logic/LegacyUpdate.cpp18
-rw-r--r--logic/OneSixAssets.cpp29
-rw-r--r--logic/OneSixUpdate.cpp20
-rw-r--r--logic/lists/IconList.cpp (renamed from logic/IconListModel.cpp)27
-rw-r--r--logic/lists/IconList.h (renamed from logic/IconListModel.h)9
-rw-r--r--logic/lists/InstanceList.cpp11
-rw-r--r--logic/lists/LwjglVersionList.cpp6
-rw-r--r--logic/lists/MinecraftVersionList.cpp6
-rw-r--r--logic/net/ByteArrayDownload.cpp62
-rw-r--r--logic/net/ByteArrayDownload.h24
-rw-r--r--logic/net/CacheDownload.cpp122
-rw-r--r--logic/net/CacheDownload.h34
-rw-r--r--logic/net/Download.h54
-rw-r--r--logic/net/DownloadJob.cpp153
-rw-r--r--logic/net/DownloadJob.h95
-rw-r--r--logic/net/FileDownload.cpp111
-rw-r--r--logic/net/FileDownload.h35
-rw-r--r--logic/net/HttpMetaCache.cpp231
-rw-r--r--logic/net/HttpMetaCache.h57
-rw-r--r--logic/net/NetWorker.cpp30
-rw-r--r--logic/net/NetWorker.h31
-rw-r--r--logic/tasks/LoginTask.cpp8
-rw-r--r--main.cpp224
-rw-r--r--multimc_pragma.h49
45 files changed, 1321 insertions, 915 deletions
diff --git a/AppSettings.cpp b/AppSettings.cpp
deleted file mode 100644
index 8b0265eb..00000000
--- a/AppSettings.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright 2013 MultiMC Contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "AppSettings.h"
-
-#include <setting.h>
-
-#include <QPoint>
-#include <QApplication>
-//#include <QColor>
-
-AppSettings::AppSettings(QObject *parent) :
- INISettingsObject(QApplication::applicationDirPath() + "/multimc.cfg",parent)
-{
- // Updates
- registerSetting(new Setting("UseDevBuilds", false));
- registerSetting(new Setting("AutoUpdate", true));
-
- // Folders
- registerSetting(new Setting("InstanceDir", "instances"));
- registerSetting(new Setting("CentralModsDir", "mods"));
- registerSetting(new Setting("LWJGLDir", "lwjgl"));
-
- // Console
- registerSetting(new Setting("ShowConsole", true));
- registerSetting(new Setting("AutoCloseConsole", true));
-
- // Toolbar settings
- registerSetting(new Setting("InstanceToolbarVisible", true));
- registerSetting(new Setting("InstanceToolbarPosition", QPoint()));
-
- // Console Colors
-// registerSetting(new Setting("SysMessageColor", QColor(Qt::blue)));
-// registerSetting(new Setting("StdOutColor", QColor(Qt::black)));
-// registerSetting(new Setting("StdErrColor", QColor(Qt::red)));
-
- // Window Size
- registerSetting(new Setting("LaunchMaximized", false));
- registerSetting(new Setting("MinecraftWinWidth", 854));
- registerSetting(new Setting("MinecraftWinHeight", 480));
-
- // Auto login
- registerSetting(new Setting("AutoLogin", false));
-
- // Memory
- registerSetting(new Setting("MinMemAlloc", 512));
- registerSetting(new Setting("MaxMemAlloc", 1024));
- registerSetting(new Setting("PermGen", 64));
-
- // Java Settings
- registerSetting(new Setting("JavaPath", "java"));
- registerSetting(new Setting("JvmArgs", ""));
-
- // Custom Commands
- registerSetting(new Setting("PreLaunchCommand", ""));
- registerSetting(new Setting("PostExitCommand", ""));
-
- // Misc
- registerSetting(new Setting("TheCat", false)); // The Cat
- registerSetting(new Setting("NoHide", false)); // Shall the main window hide on instance launch
-}
diff --git a/AppSettings.h b/AppSettings.h
deleted file mode 100644
index d8f21de1..00000000
--- a/AppSettings.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2013 MultiMC Contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <QObject>
-
-#include <inisettingsobject.h>
-
-class AppSettings : public INISettingsObject
-{
- Q_OBJECT
-public:
- explicit AppSettings(QObject *parent = 0);
-};
-
-
diff --git a/AppVersion.cpp b/AppVersion.cpp
deleted file mode 100644
index 86b00920..00000000
--- a/AppVersion.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright 2013 MultiMC Contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "AppVersion.h"
-
-#include "config.h"
-
-AppVersion AppVersion::current(VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, VERSION_BUILD);
-
-AppVersion::AppVersion(int major, int minor, int revision, int build, QObject *parent) :
- QObject(parent)
-{
- this->major = major;
- this->minor = minor;
- this->revision = revision;
- this->build = build;
-}
-
-AppVersion::AppVersion(const AppVersion& ver)
-{
- this->major = ver.major;
- this->minor = ver.minor;
- this->revision = ver.revision;
- this->build = ver.build;
-}
-
-QString AppVersion::toString() const
-{
- return QString("%1.%2.%3.%4").arg(
- QString::number(major),
- QString::number(minor),
- QString::number(revision),
- QString::number(build));
-}
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8c9cf983..cbc3d842 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -147,9 +147,8 @@ ADD_DEFINITIONS(-DLIBGROUPVIEW_STATIC)
######## Headers ########
SET(MULTIMC_HEADERS
-multimc_pragma.h
-AppVersion.h
-AppSettings.h
+MultiMC.h
+MultiMCVersion.h
gui/mainwindow.h
gui/settingsdialog.h
@@ -181,9 +180,16 @@ logic/MinecraftProcess.h
logic/Mod.h
logic/ModList.h
+# Basic instance launcher for starting from terminal
+logic/InstanceLauncher.h
+
# network stuffs
+logic/net/Download.h
+logic/net/FileDownload.h
+logic/net/ByteArrayDownload.h
+logic/net/CacheDownload.h
logic/net/DownloadJob.h
-logic/net/NetWorker.h
+logic/net/HttpMetaCache.h
# legacy instances
logic/LegacyInstance.h
@@ -207,7 +213,7 @@ logic/lists/InstanceList.h
logic/lists/InstVersionList.h
logic/lists/MinecraftVersionList.h
logic/lists/LwjglVersionList.h
-logic/IconListModel.h
+logic/lists/IconList.h
# Tasks
logic/tasks/Task.h
@@ -217,9 +223,7 @@ logic/tasks/LoginTask.h
######## Sources ########
SET(MULTIMC_SOURCES
-main.cpp
-AppVersion.cpp
-AppSettings.cpp
+MultiMC.cpp
gui/mainwindow.cpp
gui/settingsdialog.cpp
@@ -248,9 +252,15 @@ logic/MinecraftProcess.cpp
logic/Mod.cpp
logic/ModList.cpp
+# Basic instance launcher for starting from terminal
+logic/InstanceLauncher.cpp
+
# network stuffs - to be moved into a depend lib ~_~
-logic/net/NetWorker.cpp
+logic/net/FileDownload.cpp
+logic/net/ByteArrayDownload.cpp
+logic/net/CacheDownload.cpp
logic/net/DownloadJob.cpp
+logic/net/HttpMetaCache.cpp
# legacy instances
logic/LegacyInstance.cpp
@@ -272,7 +282,7 @@ logic/lists/InstanceList.cpp
logic/lists/InstVersionList.cpp
logic/lists/MinecraftVersionList.cpp
logic/lists/LwjglVersionList.cpp
-logic/IconListModel.cpp
+logic/lists/IconList.cpp
# Tasks
logic/tasks/Task.cpp
diff --git a/MultiMC.cpp b/MultiMC.cpp
new file mode 100644
index 00000000..c93701b8
--- /dev/null
+++ b/MultiMC.cpp
@@ -0,0 +1,242 @@
+
+#include "MultiMC.h"
+#include <iostream>
+#include <QDir>
+#include <QNetworkAccessManager>
+
+#include "gui/mainwindow.h"
+#include "logic/lists/InstanceList.h"
+#include "logic/lists/IconList.h"
+#include "logic/InstanceLauncher.h"
+#include "logic/net/HttpMetaCache.h"
+
+
+#include "pathutils.h"
+#include "cmdutils.h"
+#include <inisettingsobject.h>
+#include <setting.h>
+
+#include "config.h"
+using namespace Util::Commandline;
+
+MultiMC::MultiMC ( int& argc, char** argv )
+ :QApplication ( argc, argv )
+{
+ setOrganizationName("Forkk");
+ setApplicationName("MultiMC 5");
+
+ // Print app header
+ std::cout << "MultiMC 5" << std::endl;
+ std::cout << "(c) 2013 MultiMC Contributors" << std::endl << std::endl;
+
+ // Commandline parsing
+ QHash<QString, QVariant> args;
+ {
+ Parser parser(FlagStyle::GNU, ArgumentStyle::SpaceAndEquals);
+
+ // --help
+ parser.addSwitch("help");
+ parser.addShortOpt("help", 'h');
+ parser.addDocumentation("help", "display this help and exit.");
+ // --version
+ parser.addSwitch("version");
+ parser.addShortOpt("version", 'V');
+ parser.addDocumentation("version", "display program version and exit.");
+ // --dir
+ parser.addOption("dir", applicationDirPath());
+ parser.addShortOpt("dir", 'd');
+ parser.addDocumentation("dir", "use the supplied directory as MultiMC root instead of the binary location (use '.' for current)");
+ // --update
+ parser.addOption("update");
+ parser.addShortOpt("update", 'u');
+ parser.addDocumentation("update", "replaces the given file with the running executable", "<path>");
+ // --quietupdate
+ parser.addSwitch("quietupdate");
+ parser.addShortOpt("quietupdate", 'U');
+ parser.addDocumentation("quietupdate", "doesn't restart MultiMC after installing updates");
+ // --launch
+ parser.addOption("launch");
+ parser.addShortOpt("launch", 'l');
+ parser.addDocumentation("launch", "tries to launch the given instance", "<inst>");
+
+ // parse the arguments
+ try
+ {
+ args = parser.parse(arguments());
+ }
+ catch(ParsingError e)
+ {
+ std::cerr << "CommandLineError: " << e.what() << std::endl;
+ std::cerr << "Try '%1 -h' to get help on MultiMC's command line parameters." << std::endl;
+ m_status = MultiMC::Failed;
+ return;
+ }
+
+ // display help and exit
+ if (args["help"].toBool())
+ {
+ std::cout << qPrintable(parser.compileHelp(arguments()[0]));
+ m_status = MultiMC::Succeeded;
+ return;
+ }
+
+ // display version and exit
+ if (args["version"].toBool())
+ {
+ std::cout << "Version " << VERSION_STR << std::endl;
+ std::cout << "Git " << GIT_COMMIT << std::endl;
+ std::cout << "Tag: " << JENKINS_BUILD_TAG << " " << (ARCH==x64?"x86_64":"x86") << std::endl;
+ m_status = MultiMC::Succeeded;
+ return;
+ }
+
+ // update
+ // Note: cwd is always the current executable path!
+ if (!args["update"].isNull())
+ {
+ std::cout << "Performing MultiMC update: " << qPrintable(args["update"].toString()) << std::endl;
+ QString cwd = QDir::currentPath();
+ QDir::setCurrent(applicationDirPath());
+ QFile file(applicationFilePath());
+ file.copy(args["update"].toString());
+ if(args["quietupdate"].toBool())
+ {
+ m_status = MultiMC::Succeeded;
+ return;
+ }
+ QDir::setCurrent(cwd);
+ }
+ }
+
+ // change directory
+ QDir::setCurrent(args["dir"].toString());
+
+ // load settings
+ initGlobalSettings();
+
+ // and instances
+ m_instances = new InstanceList(m_settings->get("InstanceDir").toString(),this);
+ std::cout << "Loading Instances..." << std::endl;
+ m_instances->loadList();
+
+ // init the http meta cache
+ initHttpMetaCache();
+
+ // create the global network manager
+ m_qnam = new QNetworkAccessManager(this);
+
+ // Register meta types.
+ qRegisterMetaType<LoginResponse>("LoginResponse");
+
+ // launch instance, if that's what should be done
+ if (!args["launch"].isNull())
+ {
+ if(InstanceLauncher(args["launch"].toString()).launch())
+ m_status = MultiMC::Succeeded;
+ else
+ m_status = MultiMC::Failed;
+ return;
+ }
+ m_status = MultiMC::Initialized;
+}
+
+MultiMC::~MultiMC()
+{
+ delete m_settings;
+ delete m_metacache;
+}
+
+void MultiMC::initGlobalSettings()
+{
+ m_settings = new INISettingsObject("multimc.cfg", this);
+ // Updates
+ m_settings->registerSetting(new Setting("UseDevBuilds", false));
+ m_settings->registerSetting(new Setting("AutoUpdate", true));
+
+ // Folders
+ m_settings->registerSetting(new Setting("InstanceDir", "instances"));
+ m_settings->registerSetting(new Setting("CentralModsDir", "mods"));
+ m_settings->registerSetting(new Setting("LWJGLDir", "lwjgl"));
+
+ // Console
+ m_settings->registerSetting(new Setting("ShowConsole", true));
+ m_settings->registerSetting(new Setting("AutoCloseConsole", true));
+
+ // Toolbar settings
+ m_settings->registerSetting(new Setting("InstanceToolbarVisible", true));
+ m_settings->registerSetting(new Setting("InstanceToolbarPosition", QPoint()));
+
+ // Console Colors
+// m_settings->registerSetting(new Setting("SysMessageColor", QColor(Qt::blue)));
+// m_settings->registerSetting(new Setting("StdOutColor", QColor(Qt::black)));
+// m_settings->registerSetting(new Setting("StdErrColor", QColor(Qt::red)));
+
+ // Window Size
+ m_settings->registerSetting(new Setting("LaunchMaximized", false));
+ m_settings->registerSetting(new Setting("MinecraftWinWidth", 854));
+ m_settings->registerSetting(new Setting("MinecraftWinHeight", 480));
+
+ // Auto login
+ m_settings->registerSetting(new Setting("AutoLogin", false));
+
+ // Memory
+ m_settings->registerSetting(new Setting("MinMemAlloc", 512));
+ m_settings->registerSetting(new Setting("MaxMemAlloc", 1024));
+ m_settings->registerSetting(new Setting("PermGen", 64));
+
+ // Java Settings
+ m_settings->registerSetting(new Setting("JavaPath", "java"));
+ m_settings->registerSetting(new Setting("JvmArgs", ""));
+
+ // Custom Commands
+ m_settings->registerSetting(new Setting("PreLaunchCommand", ""));
+ m_settings->registerSetting(new Setting("PostExitCommand", ""));
+
+ // The cat
+ m_settings->registerSetting(new Setting("TheCat", false));
+
+ // Shall the main window hide on instance launch
+ m_settings->registerSetting(new Setting("NoHide", false));
+}
+
+void MultiMC::initHttpMetaCache()
+{
+ m_metacache = new HttpMetaCache("metacache");
+ m_metacache->addBase("assets", QDir("assets").absolutePath());
+ m_metacache->addBase("versions", QDir("versions").absolutePath());
+ m_metacache->addBase("libraries", QDir("libraries").absolutePath());
+ m_metacache->Load();
+}
+
+
+IconList* MultiMC::icons()
+{
+ if ( !m_icons )
+ {
+ m_icons = new IconList;
+ }
+ return m_icons;
+}
+
+
+int main(int argc, char *argv[])
+{
+ // initialize Qt
+ MultiMC app(argc, argv);
+
+ // show main window
+ MainWindow mainWin;
+ mainWin.show();
+
+ switch(app.status())
+ {
+ case MultiMC::Initialized:
+ return app.exec();
+ case MultiMC::Failed:
+ return 1;
+ case MultiMC::Succeeded:
+ return 0;
+ }
+}
+
+#include "MultiMC.moc" \ No newline at end of file
diff --git a/MultiMC.h b/MultiMC.h
new file mode 100644
index 00000000..0c8b673b
--- /dev/null
+++ b/MultiMC.h
@@ -0,0 +1,76 @@
+#pragma once
+
+#include <QApplication>
+#include "MultiMCVersion.h"
+#include "config.h"
+
+class HttpMetaCache;
+class SettingsObject;
+class InstanceList;
+class IconList;
+class QNetworkAccessManager;
+
+#if defined(MMC)
+#undef MMC
+#endif
+#define MMC (static_cast<MultiMC *>(QCoreApplication::instance()))
+
+class MultiMC : public QApplication
+{
+ Q_OBJECT
+public:
+ enum Status
+ {
+ Failed,
+ Succeeded,
+ Initialized,
+ };
+
+public:
+ MultiMC ( int& argc, char** argv );
+ virtual ~MultiMC();
+
+ SettingsObject * settings()
+ {
+ return m_settings;
+ };
+
+ InstanceList * instances()
+ {
+ return m_instances;
+ };
+
+ IconList * icons();
+
+ Status status()
+ {
+ return m_status;
+ }
+
+ MultiMCVersion version()
+ {
+ return m_version;
+ }
+
+ QNetworkAccessManager * qnam()
+ {
+ return m_qnam;
+ }
+
+ HttpMetaCache * metacache()
+ {
+ return m_metacache;
+ }
+private:
+ void initGlobalSettings();
+
+ void initHttpMetaCache();
+private:
+ SettingsObject * m_settings = nullptr;
+ InstanceList * m_instances = nullptr;
+ IconList * m_icons = nullptr;
+ QNetworkAccessManager * m_qnam = nullptr;
+ HttpMetaCache * m_metacache = nullptr;
+ Status m_status = MultiMC::Failed;
+ MultiMCVersion m_version = {VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, VERSION_BUILD};
+}; \ No newline at end of file
diff --git a/MultiMC.pro b/MultiMC.pro
deleted file mode 100644
index b82b2294..00000000
--- a/MultiMC.pro
+++ /dev/null
@@ -1,47 +0,0 @@
-#-------------------------------------------------
-#
-# Project created by QtCreator 2013-01-08T14:14:58
-#
-#-------------------------------------------------
-
-QT += core gui
-
-greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
-
-TARGET = MultiMC
-TEMPLATE = app
-
-
-SOURCES += main.cpp\
- gui/mainwindow.cpp \
- data/instancebase.cpp \
- util/pathutils.cpp \
- data/instancelist.cpp \
- data/stdinstance.cpp \
- data/inifile.cpp \
- gui/settingsdialog.cpp \
- gui/modeditwindow.cpp \
- util/appsettings.cpp \
- gui/instancesettings.cpp
-
-HEADERS += gui/mainwindow.h \
- data/instancebase.h \
- util/pathutils.h \
- data/instancelist.h \
- data/stdinstance.h \
- data/inifile.h \
- gui/settingsdialog.h \
- gui/modeditwindow.h \
- util/apputils.h \
- util/appsettings.h \
- gui/instancesettings.h
-
-FORMS += gui/mainwindow.ui \
- gui/settingsdialog.ui \
- gui/modeditwindow.ui \
- gui/instancesettings.ui \
- gui/logindialog.ui \
- gui/consolewindow.ui
-
-RESOURCES += \
- multimc.qrc
diff --git a/AppVersion.h b/MultiMCVersion.h
index 86f53950..70a2259e 100644
--- a/AppVersion.h
+++ b/MultiMCVersion.h
@@ -15,26 +15,26 @@
#pragma once
-#include <QObject>
+#include <QString>
/*!
* \brief The Version class represents a MultiMC version number.
*/
-class AppVersion : public QObject
+struct MultiMCVersion
{
- Q_OBJECT
-public:
- explicit AppVersion(int major = 0, int minor = 0, int revision = 0,
- int build = 0, QObject *parent = 0);
-
- AppVersion(const AppVersion& ver);
-
/*!
* \brief Converts the Version to a string.
* \return The version number in string format (major.minor.revision.build).
*/
- QString toString() const;
-
+ QString toString() const
+ {
+ return QString("%1.%2.%3.%4").arg(
+ QString::number(major),
+ QString::number(minor),
+ QString::number(revision),
+ QString::number(build));
+ }
+
/*!
* \brief The major version number.
* For MultiMC 5, this will always be 5.
@@ -59,7 +59,5 @@ public:
* a new build is run.
*/
int build;
-
- static AppVersion current;
};
diff --git a/depends/classparser/src/javautils.cpp b/depends/classparser/src/javautils.cpp
index 4a359031..3a5c6934 100644
--- a/depends/classparser/src/javautils.cpp
+++ b/depends/classparser/src/javautils.cpp
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include "multimc_pragma.h"
#include "classfile.h"
#include "javautils.h"
diff --git a/depends/settings/include/settingsobject.h b/depends/settings/include/settingsobject.h
index a2f03699..e8bf5c83 100644
--- a/depends/settings/include/settingsobject.h
+++ b/depends/settings/include/settingsobject.h
@@ -13,8 +13,7 @@
* limitations under the License.
*/
-#ifndef SETTINGSOBJECT_H
-#define SETTINGSOBJECT_H
+#pragma once
#include <QObject>
#include <QMap>
@@ -183,10 +182,3 @@ protected:
private:
QMap<QString, Setting *> m_settings;
};
-
-/*!
- * \brief A global settings object.
- */
-LIBSETTINGS_EXPORT extern SettingsObject *globalSettings;
-
-#endif // SETTINGSOBJECT_H
diff --git a/depends/settings/src/settingsobject.cpp b/depends/settings/src/settingsobject.cpp
index bf7b8825..2ca544ad 100644
--- a/depends/settings/src/settingsobject.cpp
+++ b/depends/settings/src/settingsobject.cpp
@@ -18,8 +18,6 @@
#include <QVariant>
-SettingsObject *globalSettings;
-
SettingsObject::SettingsObject(QObject *parent) :
QObject(parent)
{
diff --git a/gui/IconPickerDialog.cpp b/gui/IconPickerDialog.cpp
index b75eb30c..2dd80292 100644
--- a/gui/IconPickerDialog.cpp
+++ b/gui/IconPickerDialog.cpp
@@ -1,7 +1,8 @@
+#include <MultiMC.h>
#include "IconPickerDialog.h"
#include "instancedelegate.h"
#include "ui_IconPickerDialog.h"
-#include "logic/IconListModel.h"
+#include "logic/lists/IconList.h"
#include <QKeyEvent>
#include <QPushButton>
#include <QFileDialog>
@@ -38,8 +39,7 @@ IconPickerDialog::IconPickerDialog(QWidget *parent) :
contentsWidget->installEventFilter(this);
- IconList * list = IconList::instance();
- contentsWidget->setModel(list);
+ contentsWidget->setModel(MMC->icons());
auto buttonAdd = ui->buttonBox->addButton("Add Icon",QDialogButtonBox::ResetRole);
auto buttonRemove = ui->buttonBox->addButton("Remove Icon",QDialogButtonBox::ResetRole);
@@ -71,7 +71,6 @@ bool IconPickerDialog::eventFilter ( QObject* obj, QEvent* evt)
return QDialog::eventFilter(obj ,evt);
}
QKeyEvent *keyEvent = static_cast<QKeyEvent*>(evt);
- IconList * list = IconList::instance();
switch(keyEvent->key())
{
case Qt::Key_Delete:
@@ -89,14 +88,12 @@ bool IconPickerDialog::eventFilter ( QObject* obj, QEvent* evt)
void IconPickerDialog::addNewIcon()
{
QStringList fileNames = QFileDialog::getOpenFileNames(this, "Select Icons", QString(), "Icons (*.png *.jpg *.jpeg)");
- IconList * list = IconList::instance();
- list->installIcons(fileNames);
+ MMC->icons()->installIcons(fileNames);
}