aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
Diffstat (limited to 'launcher')
-rw-r--r--launcher/BaseInstance.cpp3
-rw-r--r--launcher/BaseInstance.h4
-rw-r--r--launcher/CMakeLists.txt91
-rw-r--r--launcher/ColorCache.h2
-rw-r--r--launcher/Env.h2
-rw-r--r--launcher/FileSystem_test.cpp2
-rw-r--r--launcher/GuiUtil.cpp4
-rw-r--r--launcher/InstanceList.cpp6
-rw-r--r--launcher/InstanceProxyModel.cpp6
-rw-r--r--launcher/InstanceWindow.cpp18
-rw-r--r--launcher/LaunchController.cpp18
-rw-r--r--launcher/Launcher.cpp (renamed from launcher/MultiMC.cpp)181
-rw-r--r--launcher/Launcher.h (renamed from launcher/MultiMC.h)16
-rwxr-xr-xlauncher/Launcher.in (renamed from launcher/package/linux/MultiMC)37
-rw-r--r--launcher/LoggedProcess.cpp6
-rw-r--r--launcher/MainWindow.cpp273
-rw-r--r--launcher/MessageLevel.cpp4
-rw-r--r--launcher/MessageLevel.h2
-rw-r--r--launcher/UpdateController.cpp26
-rw-r--r--launcher/VersionProxyModel.cpp8
-rw-r--r--launcher/dialogs/AboutDialog.cpp19
-rw-r--r--launcher/dialogs/AboutDialog.ui72
-rw-r--r--launcher/dialogs/CopyInstanceDialog.cpp10
-rw-r--r--launcher/dialogs/CopyInstanceDialog.ui2
-rw-r--r--launcher/dialogs/ExportInstanceDialog.cpp4
-rw-r--r--launcher/dialogs/IconPickerDialog.cpp12
-rw-r--r--launcher/dialogs/NewComponentDialog.cpp4
-rw-r--r--launcher/dialogs/NewInstanceDialog.cpp24
-rw-r--r--launcher/dialogs/ProfileSelectDialog.cpp4
-rw-r--r--launcher/dialogs/UpdateDialog.cpp20
-rw-r--r--launcher/dialogs/VersionSelectDialog.cpp2
-rw-r--r--launcher/icons/IconList.cpp4
-rw-r--r--launcher/java/launch/CheckJava.cpp10
-rw-r--r--launcher/launch/LaunchTask.h4
-rw-r--r--launcher/launch/steps/LookupServerAddress.cpp4
-rw-r--r--launcher/launch/steps/PostLaunchCommand.cpp4
-rw-r--r--launcher/launch/steps/PreLaunchCommand.cpp4
-rw-r--r--launcher/main.cpp14
-rw-r--r--launcher/minecraft/MinecraftInstance.cpp2
-rw-r--r--launcher/minecraft/MojangVersionFormat.cpp7
-rw-r--r--launcher/minecraft/OneSixVersionFormat.cpp18
-rw-r--r--launcher/minecraft/auth/flows/Yggdrasil.cpp17
-rw-r--r--launcher/minecraft/launch/DirectJavaLaunch.cpp6
-rw-r--r--launcher/minecraft/launch/LauncherPartLaunch.cpp6
-rw-r--r--launcher/minecraft/launch/PrintInstanceInfo.cpp4
-rw-r--r--launcher/net/PasteUpload.cpp2
-rwxr-xr-xlauncher/package/linux/multimc.desktop11
-rw-r--r--launcher/package/ubuntu/multimc/usr/share/metainfo/multimc.metainfo.xml4
-rw-r--r--launcher/pagedialog/PageDialog.cpp6
-rw-r--r--launcher/pages/global/AccountListPage.cpp4
-rw-r--r--launcher/pages/global/AccountListPage.h6
-rw-r--r--launcher/pages/global/CustomCommandsPage.cpp4
-rw-r--r--launcher/pages/global/CustomCommandsPage.h4
-rw-r--r--launcher/pages/global/ExternalToolsPage.cpp18
-rw-r--r--launcher/pages/global/ExternalToolsPage.h6
-rw-r--r--launcher/pages/global/JavaPage.cpp8
-rw-r--r--launcher/pages/global/JavaPage.h4
-rw-r--r--launcher/pages/global/LanguagePage.cpp2
-rw-r--r--launcher/pages/global/LanguagePage.h4
-rw-r--r--launcher/pages/global/LauncherPage.cpp (renamed from launcher/pages/global/MultiMCPage.cpp)58
-rw-r--r--launcher/pages/global/LauncherPage.h (renamed from launcher/pages/global/MultiMCPage.h)20
-rw-r--r--launcher/pages/global/LauncherPage.ui (renamed from launcher/pages/global/MultiMCPage.ui)14
-rw-r--r--launcher/pages/global/MinecraftPage.cpp6
-rw-r--r--launcher/pages/global/MinecraftPage.h4
-rw-r--r--launcher/pages/global/PasteEEPage.cpp6
-rw-r--r--launcher/pages/global/PasteEEPage.h4
-rw-r--r--launcher/pages/global/ProxyPage.cpp6
-rw-r--r--launcher/pages/global/ProxyPage.h4
-rw-r--r--launcher/pages/global/ProxyPage.ui4
-rw-r--r--launcher/pages/instance/GameOptionsPage.h4
-rw-r--r--launcher/pages/instance/InstanceSettingsPage.cpp14
-rw-r--r--launcher/pages/instance/InstanceSettingsPage.h4
-rw-r--r--launcher/pages/instance/LegacyUpgradePage.cpp6
-rw-r--r--launcher/pages/instance/LegacyUpgradePage.h4
-rw-r--r--launcher/pages/instance/LegacyUpgradePage.ui2
-rw-r--r--launcher/pages/instance/LogPage.cpp30
-rw-r--r--launcher/pages/instance/LogPage.h4
-rw-r--r--launcher/pages/instance/ModFolderPage.cpp4
-rw-r--r--launcher/pages/instance/ModFolderPage.h4
-rw-r--r--launcher/pages/instance/NotesPage.h6
-rw-r--r--launcher/pages/instance/OtherLogsPage.cpp4
-rw-r--r--launcher/pages/instance/OtherLogsPage.h4
-rw-r--r--launcher/pages/instance/ScreenshotsPage.cpp4
-rw-r--r--launcher/pages/instance/ScreenshotsPage.h4
-rw-r--r--launcher/pages/instance/ServersPage.cpp4
-rw-r--r--launcher/pages/instance/ServersPage.h4
-rw-r--r--launcher/pages/instance/VersionPage.cpp18
-rw-r--r--launcher/pages/instance/WorldListPage.cpp8
-rw-r--r--launcher/pages/instance/WorldListPage.h4
-rw-r--r--launcher/pages/modplatform/ImportPage.cpp2
-rw-r--r--launcher/pages/modplatform/ImportPage.h4
-rw-r--r--launcher/pages/modplatform/VanillaPage.cpp2
-rw-r--r--launcher/pages/modplatform/VanillaPage.h4
-rw-r--r--launcher/pages/modplatform/atlauncher/AtlListModel.cpp4
-rw-r--r--launcher/pages/modplatform/atlauncher/AtlPage.cpp2
-rw-r--r--launcher/pages/modplatform/atlauncher/AtlPage.h4
-rw-r--r--launcher/pages/modplatform/flame/FlameModel.cpp4
-rw-r--r--launcher/pages/modplatform/flame/FlamePage.cpp2
-rw-r--r--launcher/pages/modplatform/flame/FlamePage.h4
-rw-r--r--launcher/pages/modplatform/ftb/FtbListModel.cpp4
-rw-r--r--launcher/pages/modplatform/ftb/FtbPage.h4
-rw-r--r--launcher/pages/modplatform/legacy_ftb/ListModel.cpp4
-rw-r--r--launcher/pages/modplatform/legacy_ftb/Page.cpp2
-rw-r--r--launcher/pages/modplatform/legacy_ftb/Page.h4
-rw-r--r--launcher/pages/modplatform/technic/TechnicModel.cpp4
-rw-r--r--launcher/pages/modplatform/technic/TechnicPage.cpp2
-rw-r--r--launcher/pages/modplatform/technic/TechnicPage.h4
-rw-r--r--launcher/resources/MultiMC.icnsbin782703 -> 0 bytes
-rw-r--r--launcher/resources/MultiMC.icobin55224 -> 0 bytes
-rw-r--r--launcher/resources/MultiMC.manifest31
-rw-r--r--launcher/resources/OSX/OSX.qrc3
-rw-r--r--launcher/resources/OSX/scalable/launcher.svg (renamed from launcher/resources/OSX/scalable/quickmods.svg)0
-rw-r--r--launcher/resources/OSX/scalable/multimc.svg18
-rw-r--r--launcher/resources/flat/flat.qrc2
-rw-r--r--launcher/resources/flat/scalable/launcher.svg2
-rw-r--r--launcher/resources/iOS/iOS.qrc3
-rw-r--r--launcher/resources/iOS/scalable/launcher.svg (renamed from launcher/resources/iOS/scalable/quickmods.svg)0
-rw-r--r--launcher/resources/multimc.rc29
-rw-r--r--launcher/resources/multimc/128x128/instances/infinity.pngbin15151 -> 8012 bytes
-rw-r--r--launcher/resources/multimc/index.theme2
-rw-r--r--launcher/resources/multimc/multimc.qrc11
-rw-r--r--launcher/resources/multimc/scalable/launcher.svg187
-rw-r--r--launcher/resources/multimc/scalable/logo.svg353
-rw-r--r--launcher/resources/multimc/scalable/multimc.svg353
-rw-r--r--launcher/resources/pe_blue/pe_blue.qrc3
-rw-r--r--launcher/resources/pe_blue/scalable/launcher.svg (renamed from launcher/resources/pe_blue/scalable/quickmods.svg)0
-rw-r--r--launcher/resources/pe_blue/scalable/multimc.svg61
-rw-r--r--launcher/resources/pe_colored/pe_colored.qrc3
-rw-r--r--launcher/resources/pe_colored/scalable/launcher.svg (renamed from launcher/resources/pe_colored/scalable/quickmods.svg)0
-rw-r--r--launcher/resources/pe_colored/scalable/multimc.svg32
-rw-r--r--launcher/resources/pe_dark/pe_dark.qrc3
-rw-r--r--launcher/resources/pe_dark/scalable/launcher.svg (renamed from launcher/resources/pe_dark/scalable/quickmods.svg)0
-rw-r--r--launcher/resources/pe_dark/scalable/multimc.svg61
-rw-r--r--launcher/resources/pe_light/pe_light.qrc3
-rw-r--r--launcher/resources/pe_light/scalable/launcher.svg (renamed from launcher/resources/pe_light/scalable/quickmods.svg)0
-rw-r--r--launcher/resources/pe_light/scalable/multimc.svg61
-rw-r--r--launcher/resources/sources/multimc-discord.svg265
-rw-r--r--launcher/setupwizard/AnalyticsWizardPage.cpp12
-rw-r--r--launcher/setupwizard/JavaWizardPage.cpp6
-rw-r--r--launcher/setupwizard/LanguageWizardPage.cpp9
-rw-r--r--launcher/setupwizard/SetupWizard.cpp5
-rw-r--r--launcher/tasks/Task.cpp2
-rw-r--r--launcher/themes/ITheme.cpp6
-rw-r--r--launcher/updater/DownloadTask.cpp2
-rw-r--r--launcher/updater/DownloadTask_test.cpp4
-rw-r--r--launcher/updater/UpdateChecker.cpp8
-rw-r--r--launcher/widgets/CustomCommands.ui2
-rw-r--r--launcher/widgets/JavaSettingsWidget.cpp17
-rw-r--r--launcher/widgets/LanguageSelectionWidget.cpp10
-rw-r--r--launcher/widgets/PageContainer.cpp12
150 files changed, 970 insertions, 2002 deletions
diff --git a/launcher/BaseInstance.cpp b/launcher/BaseInstance.cpp
index 46b45827..374d4a29 100644
--- a/launcher/BaseInstance.cpp
+++ b/launcher/BaseInstance.cpp
@@ -25,6 +25,7 @@
#include "FileSystem.h"
#include "Commandline.h"
+#include "BuildConfig.h"
BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr settings, const QString &rootDir)
: QObject()
@@ -260,7 +261,7 @@ QString BaseInstance::name() const
QString BaseInstance::windowTitle() const
{
- return "MultiMC: " + name().replace(QRegExp("[ \n\r\t]+"), " ");
+ return BuildConfig.LAUNCHER_NAME + ": " + name().replace(QRegExp("[ \n\r\t]+"), " ");
}
// FIXME: why is this here? move it to MinecraftInstance!!!
diff --git a/launcher/BaseInstance.h b/launcher/BaseInstance.h
index 8c08dc05..253d2130 100644
--- a/launcher/BaseInstance.h
+++ b/launcher/BaseInstance.h
@@ -71,14 +71,14 @@ public:
virtual void saveNow() = 0;
/***
- * the instance has been invalidated - it is no longer tracked by MultiMC for some reason,
+ * the instance has been invalidated - it is no longer tracked by the launcher for some reason,
* but it has not necessarily been deleted.
*
* Happens when the instance folder changes to some other location, or the instance is removed by external means.
*/
void invalidate();
- /// The instance's ID. The ID SHALL be determined by MMC internally. The ID IS guaranteed to
+ /// The instance's ID. The ID SHALL be determined by LAUNCHER internally. The ID IS guaranteed to
/// be unique.
virtual QString id() const;
diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt
index 4ec6a7d1..5c45273b 100644
--- a/launcher/CMakeLists.txt
+++ b/launcher/CMakeLists.txt
@@ -88,13 +88,13 @@ set(CORE_SOURCES
add_unit_test(FileSystem
SOURCES FileSystem_test.cpp
- LIBS MultiMC_logic
+ LIBS Launcher_logic
DATA testdata
)
add_unit_test(GZip
SOURCES GZip_test.cpp
- LIBS MultiMC_logic
+ LIBS Launcher_logic
)
set(PATHMATCHER_SOURCES
@@ -158,13 +158,13 @@ set(UPDATE_SOURCES
add_unit_test(UpdateChecker
SOURCES updater/UpdateChecker_test.cpp
- LIBS MultiMC_logic
+ LIBS Launcher_logic
DATA updater/testdata
)
add_unit_test(DownloadTask
SOURCES updater/DownloadTask_test.cpp
- LIBS MultiMC_logic
+ LIBS Launcher_logic
DATA updater/testdata
)
@@ -337,14 +337,14 @@ set(MINECRAFT_SOURCES
add_unit_test(GradleSpecifier
SOURCES minecraft/GradleSpecifier_test.cpp
- LIBS MultiMC_logic
+ LIBS Launcher_logic
)
add_executable(PackageManifest
mojang/PackageManifest_test.cpp
)
target_link_libraries(PackageManifest
- MultiMC_logic
+ Launcher_logic
Qt5::Test
)
target_include_directories(PackageManifest
@@ -358,25 +358,25 @@ add_test(
add_unit_test(MojangVersionFormat
SOURCES minecraft/MojangVersionFormat_test.cpp
- LIBS MultiMC_logic
+ LIBS Launcher_logic
DATA minecraft/testdata
)
add_unit_test(Library
SOURCES minecraft/Library_test.cpp
- LIBS MultiMC_logic
+ LIBS Launcher_logic
)
# FIXME: shares data with FileSystem test
add_unit_test(ModFolderModel
SOURCES minecraft/mod/ModFolderModel_test.cpp
DATA testdata
- LIBS MultiMC_logic
+ LIBS Launcher_logic
)
add_unit_test(ParseUtils
SOURCES minecraft/ParseUtils_test.cpp
- LIBS MultiMC_logic
+ LIBS Launcher_logic
)
# the screenshots feature
@@ -414,7 +414,7 @@ set(SETTINGS_SOURCES
add_unit_test(INIFile
SOURCES settings/INIFile_test.cpp
- LIBS MultiMC_logic
+ LIBS Launcher_logic
)
set(JAVA_SOURCES
@@ -437,7 +437,7 @@ set(JAVA_SOURCES
add_unit_test(JavaVersion
SOURCES java/JavaVersion_test.cpp
- LIBS MultiMC_logic
+ LIBS Launcher_logic
)
set(TRANSLATIONS_SOURCES
@@ -523,7 +523,7 @@ set(ATLAUNCHER_SOURCES
add_unit_test(Index
SOURCES meta/Index_test.cpp
- LIBS MultiMC_logic
+ LIBS Launcher_logic
)
################################ COMPILE ################################
@@ -555,10 +555,10 @@ set(LOGIC_SOURCES
${ATLAUNCHER_SOURCES}
)
-SET(MULTIMC_SOURCES
+SET(LAUNCHER_SOURCES
# Application base
- MultiMC.h
- MultiMC.cpp
+ Launcher.h
+ Launcher.cpp
UpdateController.cpp
UpdateController.h
@@ -678,8 +678,8 @@ SET(MULTIMC_SOURCES
pages/global/LanguagePage.h
pages/global/MinecraftPage.cpp
pages/global/MinecraftPage.h
- pages/global/MultiMCPage.cpp
- pages/global/MultiMCPage.h
+ pages/global/LauncherPage.cpp
+ pages/global/LauncherPage.h
pages/global/ProxyPage.cpp
pages/global/ProxyPage.h
pages/global/PasteEEPage.cpp
@@ -812,7 +812,7 @@ SET(MULTIMC_SOURCES
)
######## UIs ########
-SET(MULTIMC_UIS
+SET(LAUNCHER_UIS
# Instance pages
pages/instance/GameOptionsPage.ui
pages/instance/VersionPage.ui
@@ -831,7 +831,7 @@ SET(MULTIMC_UIS
pages/global/ExternalToolsPage.ui
pages/global/JavaPage.ui
pages/global/MinecraftPage.ui
- pages/global/MultiMCPage.ui
+ pages/global/LauncherPage.ui
pages/global/ProxyPage.ui
pages/global/PasteEEPage.ui
@@ -868,7 +868,7 @@ SET(MULTIMC_UIS
widgets/MCModInfoFrame.ui
)
-set(MULTIMC_QRCS
+set(LAUNCHER_QRCS
resources/backgrounds/backgrounds.qrc
resources/multimc/multimc.qrc
resources/pe_dark/pe_dark.qrc
@@ -879,23 +879,24 @@ set(MULTIMC_QRCS
resources/iOS/iOS.qrc
resources/flat/flat.qrc
resources/documents/documents.qrc
+ ../${Launcher_Branding_LogoQRC}
)
######## Windows resource files ########
if(WIN32)
- set(MULTIMC_RCS resources/multimc.rc)
+ set(LAUNCHER_RCS ../${Launcher_Branding_WindowsRC})
endif()
# Qt 5 stuff
-qt5_wrap_ui(MULTIMC_UI ${MULTIMC_UIS})
-qt5_add_resources(MULTIMC_RESOURCES ${MULTIMC_QRCS})
+qt5_wrap_ui(LAUNCHER_UI ${LAUNCHER_UIS})
+qt5_add_resources(LAUNCHER_RESOURCES ${LAUNCHER_QRCS})
# Add executable
-add_library(MultiMC_logic STATIC ${LOGIC_SOURCES} ${MULTIMC_SOURCES} ${MULTIMC_UI} ${MULTIMC_RESOURCES})
-target_link_libraries(MultiMC_logic
+add_library(Launcher_logic STATIC ${LOGIC_SOURCES} ${LAUNCHER_SOURCES} ${LAUNCHER_UI} ${LAUNCHER_RESOURCES})
+target_link_libraries(Launcher_logic
systeminfo
- MultiMC_quazip
- MultiMC_classparser
+ Launcher_quazip
+ Launcher_classparser
${NBT_NAME}
${ZLIB_LIBRARIES}
optional-bare
@@ -903,46 +904,46 @@ target_link_libraries(MultiMC_logic
BuildConfig
Katabasis
)
-target_link_libraries(MultiMC_logic
+target_link_libraries(Launcher_logic
Qt5::Core
Qt5::Xml
Qt5::Network
Qt5::Concurrent
Qt5::Gui
)
-target_link_libraries(MultiMC_logic
- MultiMC_iconfix
+target_link_libraries(Launcher_logic
+ Launcher_iconfix
${QUAZIP_LIBRARIES}
hoedown
- MultiMC_rainbow
+ Launcher_rainbow
LocalPeer
ganalytics
)
-add_executable(MultiMC MACOSX_BUNDLE WIN32 main.cpp ${MULTIMC_RCS})
-target_link_libraries(MultiMC MultiMC_logic)
+target_link_libraries(Launcher_logic secrets)
-if(DEFINED MultiMC_APP_BINARY_NAME)
- set_target_properties(MultiMC PROPERTIES OUTPUT_NAME "${MultiMC_APP_BINARY_NAME}")
+add_executable(${Launcher_Name} MACOSX_BUNDLE WIN32 main.cpp ${LAUNCHER_RCS})
+target_link_libraries(${Launcher_Name} Launcher_logic)
+
+if(DEFINED Launcher_APP_BINARY_NAME)
+ set_target_properties(${Launcher_Name} PROPERTIES OUTPUT_NAME "${Launcher_APP_BINARY_NAME}")
endif()
-if(DEFINED MultiMC_BINARY_RPATH)
- SET_TARGET_PROPERTIES(MultiMC PROPERTIES INSTALL_RPATH "${MultiMC_BINARY_RPATH}")
+if(DEFINED Launcher_BINARY_RPATH)
+ SET_TARGET_PROPERTIES(${Launcher_Name} PROPERTIES INSTALL_RPATH "${Launcher_BINARY_RPATH}")
endif()
-if(DEFINED MultiMC_APP_BINARY_DEFS)
- target_compile_definitions(MultiMC PRIVATE ${MultiMC_APP_BINARY_DEFS})
- target_compile_definitions(MultiMC_logic PRIVATE ${MultiMC_APP_BINARY_DEFS})
+if(DEFINED Launcher_APP_BINARY_DEFS)
+ target_compile_definitions(${Launcher_Name} PRIVATE ${Launcher_APP_BINARY_DEFS})
+ target_compile_definitions(Launcher_logic PRIVATE ${Launcher_APP_BINARY_DEFS})
endif()
-install(TARGETS MultiMC
+install(TARGETS ${Launcher_Name}
BUNDLE DESTINATION ${BUNDLE_DEST_DIR} COMPONENT Runtime
LIBRARY DESTINATION ${LIBRARY_DEST_DIR} COMPONENT Runtime
RUNTIME DESTINATION ${BINARY_DEST_DIR} COMPONENT Runtime
)
-target_link_libraries(MultiMC_logic secrets)
-
-#### The MultiMC bundle mess! ####
+#### The bundle mess! ####
# Bundle utilities are used to complete the portable packages - they add all the libraries that would otherwise be missing on the target system.
# NOTE: it seems that this absolutely has to be here, and nowhere else.
if(INSTALL_BUNDLE STREQUAL "full")
diff --git a/launcher/ColorCache.h b/launcher/ColorCache.h
index 6ae633b9..a840664d 100644
--- a/launcher/ColorCache.h
+++ b/launcher/ColorCache.h
@@ -91,7 +91,7 @@ public:
LogColorCache(QColor front, QColor back)
: ColorCache(front, back, 1.0)
{
- addColor((int)MessageLevel::MultiMC, QColor("purple"));
+ addColor((int)MessageLevel::Launcher, QColor("purple"));
addColor((int)MessageLevel::Debug, QColor("green"));
addColor((int)MessageLevel::Warning, QColor("orange"));
addColor((int)MessageLevel::Error, QColor("red"));
diff --git a/launcher/Env.h b/launcher/Env.h
index 7d1a8bc9..52427696 100644
--- a/launcher/Env.h
+++ b/launcher/Env.h
@@ -25,7 +25,7 @@ class Index;
class Env
{
- friend class MultiMC;
+ friend class Launcher;
private:
struct Private;
Env();
diff --git a/launcher/FileSystem_test.cpp b/launcher/FileSystem_test.cpp
index df653ea1..90ddc499 100644
--- a/launcher/FileSystem_test.cpp
+++ b/launcher/FileSystem_test.cpp
@@ -135,7 +135,7 @@ slots:
<< "asdf"
<< QString()
#if defined(Q_OS_LINUX)
- << MULTIMC_GET_TEST_FILE("data/FileSystem-test_createShortcut-unix")
+ << GET_TEST_FILE("data/FileSystem-test_createShortcut-unix")
#elif defined(Q_OS_WIN)
<< QByteArray()
#endif
diff --git a/launcher/GuiUtil.cpp b/launcher/GuiUtil.cpp
index 302206f5..3dd31c7a 100644
--- a/launcher/GuiUtil.cpp
+++ b/launcher/GuiUtil.cpp
@@ -8,7 +8,7 @@
#include "net/PasteUpload.h"
#include "dialogs/CustomMessageBox.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include <settings/SettingsObject.h>
#include <DesktopServices.h>
#include <BuildConfig.h>
@@ -16,7 +16,7 @@
QString GuiUtil::uploadPaste(const QString &text, QWidget *parentWidget)
{
ProgressDialog dialog(parentWidget);
- auto APIKeySetting = MMC->settings()->get("PasteEEAPIKey").toString();
+ auto APIKeySetting = LAUNCHER->settings()->get("PasteEEAPIKey").toString();
if(APIKeySetting == "multimc")
{
APIKeySetting = BuildConfig.PASTE_EE_KEY;
diff --git a/launcher/InstanceList.cpp b/launcher/InstanceList.cpp
index cb38853b..ae905414 100644
--- a/launcher/InstanceList.cpp
+++ b/launcher/InstanceList.cpp
@@ -259,7 +259,7 @@ void InstanceList::deleteInstance(const InstanceId& id)
return;
}
- qDebug() << "Instance" << id << "has been deleted by MultiMC.";
+ qDebug() << "Instance" << id << "has been deleted by the launcher.";
}
static QMap<InstanceId, InstanceLocator> getIdMapping(const QList<InstancePtr> &list)
@@ -799,7 +799,7 @@ private slots:
private:
/*
* WHY: the whole reason why this uses an exponential backoff retry scheme is antivirus on Windows.
- * Basically, it starts messing things up while MultiMC is extracting/creating instances
+ * Basically, it starts messing things up while the launcher is extracting/creating instances
* and causes that horrible failure that is NTFS to lock files in place because they are open.
*/
ExponentialSeries backoff;
@@ -822,7 +822,7 @@ Task * InstanceList::wrapInstanceTask(InstanceTask * task)
QString InstanceList::getStagedInstancePath()
{
QString key = QUuid::createUuid().toString();
- QString relPath = FS::PathCombine("_MMC_TEMP/" , key);
+ QString relPath = FS::PathCombine("_LAUNCHER_TEMP/" , key);
QDir rootPath(m_instDir);
auto path = FS::PathCombine(m_instDir, relPath);
if(!rootPath.mkpath(relPath))
diff --git a/launcher/InstanceProxyModel.cpp b/launcher/InstanceProxyModel.cpp
index 5317f60c..0311c239 100644
--- a/launcher/InstanceProxyModel.cpp
+++ b/launcher/InstanceProxyModel.cpp
@@ -1,5 +1,5 @@
#include "InstanceProxyModel.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include <BaseInstance.h>
#include <icons/IconList.h>
@@ -12,7 +12,7 @@ QVariant InstanceProxyModel::data(const QModelIndex & index, int role) const
QVariant data = QSortFilterProxyModel::data(index, role);
if(role == Qt::DecorationRole)
{
- return QVariant(MMC->icons()->getIcon(data.toString()));
+ return QVariant(LAUNCHER->icons()->getIcon(data.toString()));
}
return data;
}
@@ -22,7 +22,7 @@ bool InstanceProxyModel::subSortLessThan(const QModelIndex &left,
{
BaseInstance *pdataLeft = static_cast<BaseInstance *>(left.internalPointer());
BaseInstance *pdataRight = static_cast<BaseInstance *>(right.internalPointer());
- QString sortMode = MMC->settings()->get("InstSortMode").toString();
+ QString sortMode = LAUNCHER->settings()->get("InstSortMode").toString();
if (sortMode == "LastLaunch")
{
return pdataLeft->lastLaunch() > pdataRight->lastLaunch();
diff --git a/launcher/InstanceWindow.cpp b/launcher/InstanceWindow.cpp
index 015ffe1c..8f73671b 100644
--- a/launcher/InstanceWindow.cpp
+++ b/launcher/InstanceWindow.cpp
@@ -14,7 +14,7 @@
*/
#include "InstanceWindow.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include <QScrollBar>
#include <QMessageBox>
@@ -35,7 +35,7 @@ InstanceWindow::InstanceWindow(InstancePtr instance, QWidget *parent)
{
setAttribute(Qt::WA_DeleteOnClose);
- auto icon = MMC->icons()->getIcon(m_instance->iconKey());
+ auto icon = LAUNCHER->icons()->getIcon(m_instance->iconKey());
QString windowTitle = tr("Console window for ") + m_instance->name();
// Set window properties
@@ -87,9 +87,9 @@ InstanceWindow::InstanceWindow(InstancePtr instance, QWidget *parent)
// restore window state
{
- auto base64State = MMC->settings()->get("ConsoleWindowState").toByteArray();
+ auto base64State = LAUNCHER->settings()->get("ConsoleWindowState").toByteArray();
restoreState(QByteArray::fromBase64(base64State));
- auto base64Geometry = MMC->settings()->get("ConsoleWindowGeometry").toByteArray();
+ auto base64Geometry = LAUNCHER->settings()->get("ConsoleWindowGeometry").toByteArray();
restoreGeometry(QByteArray::fromBase64(base64Geometry));
}
@@ -148,7 +148,7 @@ void InstanceWindow::updateLaunchButtons()
void InstanceWindow::on_btnLaunchMinecraftOffline_clicked()
{
- MMC->launch(m_instance, false, nullptr);
+ LAUNCHER->launch(m_instance, false, nullptr);
}
void InstanceWindow::on_InstanceLaunchTask_changed(shared_qobject_ptr<LaunchTask> proc)
@@ -183,8 +183,8 @@ void InstanceWindow::closeEvent(QCloseEvent *event)
return;
}
- MMC->settings()->set("ConsoleWindowState", saveState().toBase64());
- MMC->settings()->set("ConsoleWindowGeometry", saveGeometry().toBase64());
+ LAUNCHER->settings()->set("ConsoleWindowState", saveState().toBase64());
+ LAUNCHER->settings()->set("ConsoleWindowGeometry", saveGeometry().toBase64());
emit isClosing();
event->accept();
}
@@ -198,11 +198,11 @@ void InstanceWindow::on_btnKillMinecraft_clicked()
{
if(m_instance->isRunning())
{
- MMC->kill(m_instance);
+ LAUNCHER->kill(m_instance);
}
else
{
- MMC->launch(m_instance, true, nullptr);
+ LAUNCHER->launch(m_instance, true, nullptr);
}
}
diff --git a/launcher/LaunchController.cpp b/launcher/LaunchController.cpp
index 190605fd..a865caab 100644
--- a/launcher/LaunchController.cpp
+++ b/launcher/LaunchController.cpp
@@ -1,7 +1,7 @@
#include "LaunchController.h"
#include "MainWindow.h"
#include <minecraft/auth/AccountList.h>
-#include "MultiMC.h"
+#include "Launcher.h"
#include "dialogs/CustomMessageBox.h"
#include "dialogs/ProfileSelectDialog.h"
#include "dialogs/ProgressDialog.h"
@@ -39,7 +39,7 @@ void LaunchController::login() {
JavaCommon::checkJVMArgs(m_instance->settings()->get("JvmArgs").toString(), m_parentWidget);
// Find an account to use.
- std::shared_ptr<AccountList> accounts = MMC->accounts();
+ std::shared_ptr<AccountList> accounts = LAUNCHER->accounts();
if (accounts->count() <= 0)
{
// Tell the user they need to log in at least one account in order to play.
@@ -47,7 +47,7 @@ void LaunchController::login() {
m_parentWidget,
tr("No Accounts"),
tr("In order to play Minecraft, you must have at least one Mojang or Minecraft "
- "account logged in to MultiMC."
+ "account logged in."
"Would you like to open the account manager to add an account now?"),
QMessageBox::Information,
QMessageBox::Yes | QMessageBox::No
@@ -56,7 +56,7 @@ void LaunchController::login() {
if (reply == QMessageBox::Yes)
{
// Open the account manager.
- MMC->ShowGlobalSettings(m_parentWidget, "accounts");
+ LAUNCHER->ShowGlobalSettings(m_parentWidget, "accounts");
}
}
@@ -254,7 +254,7 @@ void LaunchController::launchInstance()
auto showConsole = m_instance->settings()->get("ShowConsole").toBool();
if(!console && showConsole)
{
- MMC->showInstanceWindow(m_instance);
+ LAUNCHER->showInstanceWindow(m_instance);
}
connect(m_launcher.get(), &LaunchTask::readyForLaunch, this, &LaunchController::readyForLaunch);
connect(m_launcher.get(), &LaunchTask::succeeded, this, &LaunchController::onSucceeded);
@@ -286,7 +286,7 @@ void LaunchController::launchInstance()
}
resolved_servers = resolved_servers + "]\n\n";
}
- m_launcher->prependStep(new TextPrint(m_launcher.get(), resolved_servers, MessageLevel::MultiMC));
+ m_launcher->prependStep(new TextPrint(m_launcher.get(), resolved_servers, MessageLevel::Launcher));
} else {
online_mode = "offline";
}
@@ -298,10 +298,10 @@ void LaunchController::launchInstance()
auth_server_status = "offline";
}
- m_launcher->prependStep(new TextPrint(m_launcher.get(), "Launched instance in " + online_mode + " mode\nAuthentication server is " + auth_server_status + "\n", MessageLevel::MultiMC));
+ m_launcher->prependStep(new TextPrint(m_launcher.get(), "Launched instance in " + online_mode + " mode\nAuthentication server is " + auth_server_status + "\n", MessageLevel::Launcher));
// Prepend Version
- m_launcher->prependStep(new TextPrint(m_launcher.get(), "MultiMC version: " + BuildConfig.printableVersionString() + "\n\n", MessageLevel::MultiMC));
+ m_launcher->prependStep(new TextPrint(m_launcher.get(), BuildConfig.LAUNCHER_NAME + " version: " + BuildConfig.printableVersionString() + "\n\n", MessageLevel::Launcher));
m_launcher->start();
}
@@ -360,7 +360,7 @@ void LaunchController::onFailed(QString reason)
{
if(m_instance->settings()->get("ShowConsoleOnError").toBool())
{
- MMC->showInstanceWindow(m_instance, "console");
+ LAUNCHER->showInstanceWindow(m_instance, "console");
}
emitFailed(reason);
}
diff --git a/launcher/MultiMC.cpp b/launcher/Launcher.cpp
index c532ce82..9a1d1ca3 100644
--- a/launcher/MultiMC.cpp
+++ b/launcher/Launcher.cpp
@@ -1,4 +1,4 @@
-#include "MultiMC.h"
+#include "Launcher.h"
#include "BuildConfig.h"
#include "MainWindow.h"
#include "InstanceWindow.h"
@@ -7,7 +7,7 @@
#include <QAccessible>
#include "pages/BasePageProvider.h"
-#include "pages/global/MultiMCPage.h"
+#include "pages/global/LauncherPage.h"
#include "pages/global/MinecraftPage.h"
#include "pages/global/JavaPage.h"
#include "pages/global/LanguagePage.h"
@@ -87,7 +87,7 @@ static const QLatin1String liveCheckFile("live.check");
using namespace Commandline;
-#define MACOS_HINT "If you are on macOS Sierra, you might have to move MultiMC.app to your /Applications or ~/Applications folder. "\
+#define MACOS_HINT "If you are on macOS Sierra, you might have to move the app to your /Applications or ~/Applications folder. "\
"This usually fixes the problem and you can move the application elsewhere afterwards.\n"\
"\n"
@@ -97,7 +97,7 @@ void appDebugOutput(QtMsgType type, const QMessageLogContext &context, const QSt
const char *levels = "DWCFIS";
const QString format("%1 %2 %3\n");
- qint64 msecstotal = MMC->timeSinceStart();
+ qint64 msecstotal = LAUNCHER->timeSinceStart();
qint64 seconds = msecstotal / 1000;
qint64 msecs = msecstotal % 1000;
QString foo;
@@ -106,8 +106,8 @@ void appDebugOutput(QtMsgType type, const QMessageLogContext &context, const QSt
QString out = format.arg(buf).arg(levels[type]).arg(msg);
- MMC->logFile->write(out.toUtf8());
- MMC->logFile->flush();
+ LAUNCHER->logFile->write(out.toUtf8());
+ LAUNCHER->logFile->flush();
QTextStream(stderr) << out.toLocal8Bit();
fflush(stderr);
}
@@ -153,7 +153,7 @@ QString getIdealPlatform(QString currentPlatform) {
}
-MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
+Launcher::Launcher(int &argc, char **argv) : QApplication(argc, argv)
{
#if defined Q_OS_WIN32
// attach the parent console
@@ -179,10 +179,10 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
consoleAttached = true;
}
#endif
- setOrganizationName("MultiMC");
- setOrganizationDomain("multimc.org");
- setApplicationName("MultiMC5");
- setApplicationDisplayName("MultiMC 5");
+ setOrganizationName(BuildConfig.LAUNCHER_NAME);
+ setOrganizationDomain(BuildConfig.LAUNCHER_DOMAIN);
+ setApplicationName(BuildConfig.LAUNCHER_NAME);
+ setApplicationDisplayName(BuildConfig.LAUNCHER_DISPLAYNAME);
setApplicationVersion(BuildConfig.printableVersionString());
startTime = QDateTime::currentDateTime();
@@ -200,7 +200,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
showFatalErrorMessage(
"Unsupported system detected!",
"Linux-on-Windows distributions are not supported.\n\n"
- "Please use the Windows MultiMC binary when playing on Windows."
+ "Please use the Windows binary when playing on Windows."
);
return;
}
@@ -227,7 +227,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
// --dir
parser.addOption("dir");
parser.addShortOpt("dir", 'd');
- parser.addDocumentation("dir", "Use the supplied folder as MultiMC root instead of "
+ parser.addDocumentation("dir", "Use the supplied folder as application root instead of "
"the binary location (use '.' for current)");
// --launch
parser.addOption("launch");
@@ -240,7 +240,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
"(only valid in combination with --launch)");
// --alive
parser.addSwitch("alive");
- parser.addDocumentation("alive", "Write a small '" + liveCheckFile + "' file after MultiMC starts");
+ parser.addDocumentation("alive", "Write a small '" + liveCheckFile + "' file after the launcher starts");
// --import
parser.addOption("import");
parser.addShortOpt("import", 'I');
@@ -255,9 +255,9 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
{
std::cerr << "CommandLineError: " << e.what() << std::endl;
if(argc > 0)
- std::cerr << "Try '" << argv[0] << " -h' to get help on MultiMC's command line parameters."
+ std::cerr << "Try '" << argv[0] << " -h' to get help on command line parameters."
<< std::endl;
- m_status = MultiMC::Failed;
+ m_status = Launcher::Failed;
return;
}
@@ -265,7 +265,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
if (args["help"].toBool())
{
std::cout << qPrintable(parser.compileHelp(arguments()[0]));
- m_status = MultiMC::Succeeded;
+ m_status = Launcher::Succeeded;
return;
}
@@ -274,7 +274,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
{
std::cout << "Version " << BuildConfig.printableVersionString().toStdString() << std::endl;
std::cout << "Git " << BuildConfig.GIT_COMMIT.toStdString() << std::endl;
- m_status = MultiMC::Succeeded;
+ m_status = Launcher::Succeeded;
return;
}
}
@@ -298,13 +298,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
}
else
{
-#ifdef MULTIMC_LINUX_DATADIR
- QString xdgDataHome = QFile::decodeName(qgetenv("XDG_DATA_HOME"));
- if (xdgDataHome.isEmpty())
- xdgDataHome = QDir::homePath() + QLatin1String("/.local/share");
- dataPath = xdgDataHome + "/multimc";
- adjustedBy += "XDG standard " + dataPath;
-#elif defined(Q_OS_MAC)
+#if defined(Q_OS_MAC)
QDir foo(FS::PathCombine(applicationDirPath(), "../../Data"));
dataPath = foo.absolutePath();
adjustedBy += "Fallback to special Mac location " + dataPath;
@@ -317,30 +311,30 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
if (!FS::ensureFolderPathExists(dataPath))
{
showFatalErrorMessage(
- "MultiMC data folder could not be created.",
- "MultiMC data folder could not be created.\n"
+ "The launcher data folder could not be created.",
+ "The launcher data folder could not be created.\n"
"\n"
#if defined(Q_OS_MAC)
MACOS_HINT
#endif
- "Make sure you have the right permissions to the MultiMC data folder and any folder needed to access it.\n"
+ "Make sure you have the right permissions to the launcher data folder and any folder needed to access it.\n"
"\n"
- "MultiMC cannot continue until you fix this problem."
+ "The launcher cannot continue until you fix this problem."
);
return;
}
if (!QDir::setCurrent(dataPath))
{
showFatalErrorMessage(
- "MultiMC data folder could not be opened.",
- "MultiMC data folder could not be opened.\n"
+ "The launcher data folder could not be opened.",
+ "The launcher data folder could not be opened.\n"
"\n"
#if defined(Q_OS_MAC)
MACOS_HINT
#endif
- "Make sure you have the right permissions to the MultiMC data folder.\n"
+ "Make sure you have the right permissions to the launcher data folder.\n"
"\n"
- "MultiMC cannot continue until you fix this problem."
+ "The launcher cannot continue until you fix this problem."
);
return;
}
@@ -348,7 +342,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
if(m_instanceIdToLaunch.isEmpty() && !m_serverToJoin.isEmpty())
{
std::cerr << "--server can only be used in combination with --launch!" << std::endl;
- m_status = MultiMC::Failed;
+ m_status = Launcher::Failed;
return;
}
@@ -357,18 +351,24 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
QDir fi(applicationDirPath());
QString originalData = fi.absolutePath();
// if the config file exists in Contents/MacOS, then user data is still there and needs to moved
- if (QFileInfo::exists(FS::PathCombine(originalData, "multimc.cfg")))
+ if (QFileInfo::exists(FS::PathCombine(originalData, BuildConfig.LAUNCHER_CONFIGFILE)))
{
if (!QFileInfo::exists(FS::PathCombine(originalData, "dontmovemacdata")))
{
QMessageBox::StandardButton askMoveDialogue;
- askMoveDialogue = QMessageBox::question(nullptr, "MultiMC 5", "Would you like to move application data to a new data location? It will improve MultiMC's performance, but if you switch to older versions it will look like instances have disappeared. If you select no, you can migrate later in settings. You should select yes unless you're commonly switching between different versions of MultiMC (eg. develop and stable).", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
+ askMoveDialogue = QMessageBox::question(
+ nullptr,
+ BuildConfig.LAUNCHER_DISPLAYNAME,
+ "Would you like to move application data to a new data location? It will improve the launcher's performance, but if you switch to older versions it will look like instances have disappeared. If you select no, you can migrate later in settings. You should select yes unless you're commonly switching between different versions (eg. develop and stable).",
+ QMessageBox::Yes | QMessageBox::No,
+ QMessageBox::Yes
+ );
if (askMoveDialogue == QMessageBox::Yes)
{
qDebug() << "On macOS and found config file in old location, moving user data...";
QDir dir;
QStringList dataFiles {
- "*.log", // MultiMC-@.log
+ "*.log", // Launcher log files: ${Launcher_Name}-@.log
"accounts.json",
"accounts",
"assets",
@@ -379,7 +379,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
"meta",
"metacache",
"mods",
- "multimc.cfg",
+ BuildConfig.LAUNCHER_CONFIGFILE,
"themes",
"translations"
};
@@ -418,7 +418,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
{
// FIXME: you can run the same binaries with multiple data dirs and they won't clash. This could cause issues for updates.
m_peerInstance = new LocalPeer(this, appID);
- connect(m_peerInstance, &LocalPeer::messageReceived, this, &MultiMC::messageReceived);
+ connect(m_peerInstance, &LocalPeer::messageReceived, this, &Launcher::messageReceived);
if(m_peerInstance->isClient())
{
int timeout = 2000;
@@ -444,14 +444,14 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
m_peerInstance->sendMessage("launch " + m_instanceIdToLaunch, timeout);
}
}
- m_status = MultiMC::Succeeded;
+ m_status = Launcher::Succeeded;
return;
}
}
// init the logger
{
- static const QString logBase = "MultiMC-%0.log";
+ static const QString logBase = BuildConfig.LAUNCHER_NAME + "-%0.log";
auto moveFile = [](const QString &oldName, const QString &newName)
{
QFile::remove(newName);
@@ -468,15 +468,15 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
if(!logFile->open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate))
{
showFatalErrorMessage(
- "MultiMC data folder is not writable!",
- "MultiMC couldn't create a log file - the MultiMC data folder is not writable.\n"
+ "The launcher data folder is not writable!",
+ "The launcher couldn't create a log file - the data folder is not writable.\n"
"\n"
#if defined(Q_OS_MAC)
MACOS_HINT
#endif
- "Make sure you have write permissions to the MultiMC data folder.\n"
+ "Make sure you have write permissions to the data folder.\n"
"\n"
- "MultiMC cannot continue until you fix this problem."
+ "The launcher cannot continue until you fix this problem."
);
return;
}
@@ -503,7 +503,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
ENV.setJarsPath( TOSTRING(MULTIMC_JARS_LOCATION) );
#endif
- qDebug() << "MultiMC 5, (c) 2013-2021 MultiMC Contributors";
+ qDebug() << BuildConfig.LAUNCHER_DISPLAYNAME << ", (c) 2013-2021 " << BuildConfig.LAUNCHER_COPYRIGHT;
qDebug() << "Version : " << BuildConfig.printableVersionString();
qDebug() << "Git commit : " << BuildConfig.GIT_COMMIT;
qDebug() << "Git refspec : " << BuildConfig.GIT_REFSPEC;
@@ -553,7 +553,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
// Initialize application settings
{
- m_settings.reset(new INISettingsObject("multimc.cfg", this));
+ m_settings.reset(new INISettingsObject(BuildConfig.LAUNCHER_CONFIGFILE, this));
// Updates
m_settings->registerSetting("UpdateChannel", BuildConfig.VERSION_CHANNEL);
m_settings->registerSetting("AutoUpdate", true);
@@ -691,7 +691,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
// Init page provider
{
m_globalSettingsProvider = std::make_shared<GenericPageProvider>(tr("Settings"));
- m_globalSettingsProvider->addPage<MultiMCPage>();
+ m_globalSettingsProvider->addPage<LauncherPage>();
m_globalSettingsProvider->addPage<MinecraftPage>();
m_globalSettingsProvider->addPage<JavaPage>();
m_globalSettingsProvider->addPage<LanguagePage>();
@@ -729,7 +729,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
// Instance icons
{
- auto setting = MMC->settings()->getSetting("IconsDir");
+ auto setting = LAUNCHER->settings()->getSetting("IconsDir");
QStringList instFolders =
{
":/icons/multimc/32x32/instances/",
@@ -830,7 +830,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
m_mcedit.reset(new MCEditTool(m_settings));
}
- connect(this, &MultiMC::aboutToQuit, [this](){
+ connect(this, &Launcher::aboutToQuit, [this](){
if(m_instances)
{
// save any remaining instance state
@@ -860,7 +860,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
}
auto analyticsSetting = m_settings->getSetting("Analytics");
- connect(analyticsSetting.get(), &Setting::SettingChanged, this, &MultiMC::analyticsSettingChanged);
+ connect(analyticsSetting.get(), &Setting::SettingChanged, this, &Launcher::analyticsSettingChanged);
QString clientID = m_settings->get("AnalyticsClientID").toString();
if(clientID.isEmpty())
{
@@ -896,7 +896,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
performMainStartupAction();
}
-bool MultiMC::createSetupWizard()
+bool Launcher::createSetupWizard()
{
bool javaRequired = [&]()
{
@@ -954,22 +954,22 @@ bool MultiMC::createSetupWizard()
{
m_setupWizard->addPage(new AnalyticsWizardPage(m_setupWizard));
}
- connect(m_setupWizard, &QDialog::finished, this, &MultiMC::setupWizardFinished);
+ connect(m_setupWizard, &QDialog::finished, this, &Launcher::setupWizardFinished);
m_setupWizard->show();
return true;
}
return false;
}
-void MultiMC::setupWizardFinished(int status)
+void Launcher::setupWizardFinished(int status)
{
qDebug() << "Wizard result =" << status;
performMainStartupAction();
}
-void MultiMC::performMainStartupAction()
+void Launcher::performMainStartupAction()
{
- m_status = MultiMC::Initialized;
+ m_status = Launcher::Initialized;
if(!m_instanceIdToLaunch.isEmpty())
{
auto inst = instances()->getInstanceById(m_instanceIdToLaunch);
@@ -1004,14 +1004,14 @@ void MultiMC::performMainStartupAction()
}
}
-void MultiMC::showFatalErrorMessage(const QString& title, const QString& content)
+void Launcher::showFatalErrorMessage(const QString& title, const QString& content)
{
- m_status = MultiMC::Failed;
+ m_status = Launcher::Failed;
auto dialog = CustomMessageBox::selectable(nullptr, title, content, QMessageBox::Critical);
dialog->exec();
}
-MultiMC::~MultiMC()
+Launcher::~Launcher()
{
// kill the other globals.
Env::dispose();
@@ -1031,7 +1031,7 @@ MultiMC::~MultiMC()
#endif
}
-void MultiMC::messageReceived(const QString& message)
+void Launcher::messageReceived(const QString& message)
{
if(status() != Initialized)
{
@@ -1100,7 +1100,7 @@ void MultiMC::messageReceived(const QString& message)
}
}
-void MultiMC::analyticsSettingChanged(const Setting&, QVariant value)
+void Launcher::analyticsSettingChanged(const Setting&, QVariant value)
{
if(!m_analytics)
return;
@@ -1116,12 +1116,12 @@ void MultiMC::analyticsSettingChanged(const Setting&, QVariant value)
m_analytics->enable(enabled);
}
-std::shared_ptr<TranslationsModel> MultiMC::translations()
+std::shared_ptr<TranslationsModel> Launcher::translations()
{
return m_translations;
}
-std::shared_ptr<JavaInstallList> MultiMC::javalist()
+std::shared_ptr<JavaInstallList> Launcher::javalist()
{
if (!m_javalist)
{
@@ -1130,7 +1130,7 @@ std::shared_ptr<JavaInstallList> MultiMC::javalist()
return m_javalist;
}
-std::vector<ITheme *> MultiMC::getValidApplicationThemes()
+std::vector<ITheme *> Launcher::getValidApplicationThemes()
{
std::vector<ITheme *> ret;
auto iter = m_themes.cbegin();
@@ -1142,7 +1142,7 @@ std::vector<ITheme *> MultiMC::getValidApplicationThemes()
return ret;
}
-void MultiMC::setApplicationTheme(const QString& name, bool initial)
+void Launcher::setApplicationTheme(const QString& name, bool initial)
{
auto systemPalette = qApp->palette();
auto themeIter = m_themes.find(name);
@@ -1157,17 +1157,20 @@ void MultiMC::setApplicationTheme(const QString& name, bool initial)
}
}
-void MultiMC::setIconTheme(const QString& name)
+void Launcher::setIconTheme(const QString& name)
{
XdgIcon::setThemeName(name);
}
-QIcon MultiMC::getThemedIcon(const QString& name)
+QIcon Launcher::getThemedIcon(const QString& name)
{
+ if(name == "logo") {
+ return QIcon(":/logo.svg");
+ }
return XdgIcon::fromTheme(name);
}
-bool MultiMC::openJsonEditor(const QString &filename)
+bool Launcher::openJsonEditor(const QString &filename)
{
const QString file = QDir::current().absoluteFilePath(filename);
if (m_settings->get("JsonEditor").toString().isEmpty())
@@ -1181,7 +1184,7 @@ bool MultiMC::openJsonEditor(const QString &filename)
}
}
-bool MultiMC::launch(
+bool Launcher::launch(
InstancePtr instance,
bool online,
BaseProfilerFactory *profiler,
@@ -1216,8 +1219,8 @@ bool MultiMC::launch(
{
controller->setParentWidget(m_mainWindow);
}
- connect(controller.get(), &LaunchController::succeeded, this, &MultiMC::controllerSucceeded);
- connect(controller.get(), &LaunchController::failed, this, &MultiMC::controllerFailed);
+ connect(controller.get(), &LaunchController::succeeded, this, &Launcher::controllerSucceeded);
+ connect(controller.get(), &LaunchController::failed, this, &Launcher::controllerFailed);
addRunningInstance();
controller->start();
return true;
@@ -1235,7 +1238,7 @@ bool MultiMC::launch(
return false;
}
-bool MultiMC::kill(InstancePtr instance)
+bool Launcher::kill(InstancePtr instance)
{
if (!instance->isRunning())
{
@@ -1252,7 +1255,7 @@ bool MultiMC::kill(InstancePtr instance)
return true;
}
-void MultiMC::addRunningInstance()
+void Launcher::addRunningInstance()
{
m_runningInstances ++;
if(m_runningInstances == 1)
@@ -1261,7 +1264,7 @@ void MultiMC::addRunningInstance()
}
}
-void MultiMC::subRunningInstance()
+void Launcher::subRunningInstance()
{
if(m_runningInstances == 0)
{
@@ -1275,23 +1278,23 @@ void MultiMC::subRunningInstance()
}
}
-bool MultiMC::shouldExitNow() const
+bool Launcher::shouldExitNow() const
{
return m_runningInstances == 0 && m_openWindows == 0;
}
-bool MultiMC::updatesAreAllowed()
+bool Launcher::updatesAreAllowed()
{
return m_runningInstances == 0;
}
-void MultiMC::updateIsRunning(bool running)
+void Launcher::updateIsRunning(bool running)
{
m_updateRunning = running;
}
-void MultiMC::controllerSucceeded()
+void Launcher::controllerSucceeded()
{
auto controller = qobject_cast<LaunchController *>(QObject::sender());
if(!controller)
@@ -1318,7 +1321,7 @@ void MultiMC::controllerSucceeded()
}
}
-void MultiMC::controllerFailed(const QString& error)
+void Launcher::controllerFailed(const QString& error)
{
Q_UNUSED(error);
auto controller = qobject_cast<LaunchController *>(QObject::sender());
@@ -1339,21 +1342,21 @@ void MultiMC::controllerFailed(const QString& error)
}
}
-void MultiMC::ShowGlobalSettings(class QWidget* parent, QString open_page)
+void Launcher::ShowGlobalSettings(class QWidget* parent, QString open_page)
{
if(!m_globalSettingsProvider) {
return;
}
emit globalSettingsAboutToOpen();
{
- SettingsObject::Lock lock(MMC->settings());
+ SettingsObject::Lock lock(LAUNCHER->settings());
PageDialog dlg(m_globalSettingsProvider.get(), open_page, parent);
dlg.exec();
}
emit globalSettingsClosed();
}
-MainWindow* MultiMC::showMainWindow(bool minimized)
+MainWindow* Launcher::showMainWindow(bool minimized)
{
if(m_mainWindow)
{
@@ -1364,8 +1367,8 @@ MainWindow* MultiMC::showMainWindow(bool minimized)
else
{
m_mainWindow = new MainWindow();
- m_mainWindow->restoreState(QByteArray::fromBase64(MMC->settings()->get("MainWindowState").toByteArray()));
- m_mainWindow->restoreGeometry(QByteArray::fromBase64(MMC->settings()->get("MainWindowGeometry").toByteArray()));
+ m_mainWindow->restoreState(QByteArray::fromBase64(LAUNCHER->settings()->get("MainWindowState").toByteArray()));
+ m_mainWindow->restoreGeometry(QByteArray::fromBase64(LAUNCHER->settings()->get("MainWindowGeometry").toByteArray()));
if(minimized)
{
m_mainWindow->showMinimized();
@@ -1376,8 +1379,8 @@ MainWindow* MultiMC::showMainWindow(bool minimized)
}
m_mainWindow->checkInstancePathForProblems();
- connect(this, &MultiMC::updateAllowedChanged, m_mainWindow, &MainWindow::updatesAllowedChanged);
- connect(m_mainWindow, &MainWindow::isClosing, this, &MultiMC::on_windowClose);
+ connect(this, &Launcher::updateAllowedChanged, m_mainWindow, &MainWindow::updatesAllowedChanged);
+ connect(m_mainWindow, &MainWindow::isClosing, this, &Launcher::on_windowClose);
m_openWindows++;
}
// FIXME: move this somewhere else...
@@ -1437,7 +1440,7 @@ MainWindow* MultiMC::showMainWindow(bool minimized)
return m_mainWindow;
}
-InstanceWindow *MultiMC::showInstanceWindow(InstancePtr instance, QString page)
+InstanceWindow *Launcher::showInstanceWindow(InstancePtr instance, QString page)
{
if(!instance)
return nullptr;
@@ -1454,7 +1457,7 @@ InstanceWindow *MultiMC::showInstanceWindow(InstancePtr instance, QString page)
{
window = new InstanceWindow(instance);
m_openWindows ++;
- connect(window, &InstanceWindow::isClosing, this, &MultiMC::on_windowClose);
+ connect(window, &InstanceWindow::isClosing, this, &Launcher::on_windowClose);
}
if(!page.isEmpty())
{
@@ -1467,7 +1470,7 @@ InstanceWindow *MultiMC::showInstanceWindow(InstancePtr instance, QString page)
return window;
}
-void MultiMC::on_windowClose()
+void Launcher::on_windowClose()
{
m_openWindows--;
auto instWindow = qobject_cast<InstanceWindow *>(QObject::sender());
diff --git a/launcher/MultiMC.h b/launcher/Launcher.h
index 59fd7345..f4a20122 100644
--- a/launcher/MultiMC.h
+++ b/launcher/Launcher.h
@@ -36,12 +36,12 @@ class ITheme;
class MCEditTool;
class GAnalytics;
-#if defined(MMC)
-#undef MMC
+#if defined(LAUNCHER)
+#undef LAUNCHER
#endif
-#define MMC (static_cast<MultiMC *>(QCoreApplication::instance()))
+#define LAUNCHER (static_cast<Launcher *>(QCoreApplication::instance()))
-class MultiMC : public QApplication
+class Launcher : public QApplication
{
// friends for the purpose of limiting access to deprecated stuff
Q_OBJECT
@@ -55,8 +55,8 @@ public:
};
public:
- MultiMC(int &argc, char **argv);
- virtual ~MultiMC();
+ Launcher(int &argc, char **argv);
+ virtual ~Launcher();
GAnalytics *analytics() const
{
@@ -198,7 +198,7 @@ private:
QMap<QString, std::shared_ptr<BaseProfilerFactory>> m_profilers;
QString m_rootPath;
- Status m_status = MultiMC::StartingUp;
+ Status m_status = Launcher::StartingUp;
#if defined Q_OS_WIN32
// used on Windows to attach the standard IO streams
@@ -221,7 +221,7 @@ private:
// main window, if any
MainWindow * m_mainWindow = nullptr;
- // peer MultiMC instance connector - used to implement single instance MultiMC and signalling
+ // peer launcher instance connector - used to implement single instance launcher and signalling
LocalPeer * m_peerInstance = nullptr;
GAnalytics * m_analytics = nullptr;
diff --git a/launcher/package/linux/MultiMC b/launcher/Launcher.in
index be35e83c..b79b276b 100755
--- a/launcher/package/linux/MultiMC
+++ b/launcher/Launcher.in
@@ -1,5 +1,5 @@
#!/bin/bash
-# Basic start script for running MultiMC with the libs packaged with it.
+# Basic start script for running the launcher with the libs packaged with it.
function printerror {
printf "$1"
@@ -14,37 +14,38 @@ if [[ $EUID -eq 0 ]]; then
fi
-MMC_DIR="$(dirname "$(readlink -f "$0")")"
-echo "MultiMC Dir: ${MMC_DIR}"
+LAUNCHER_NAME=@Launcher_Name@
+LAUNCHER_DIR="$(dirname "$(readlink -f "$0")")"
+echo "Launcher Dir: ${LAUNCHER_DIR}"
# Set up env - filter out input LD_ variables but pass them in under different names
export GAME_LIBRARY_PATH=${GAME_LIBRARY_PATH-${LD_LIBRARY_PATH}}
export GAME_PRELOAD=${GAME_PRELOAD-${LD_PRELOAD}}
-export LD_LIBRARY_PATH="${MMC_DIR}/bin":$MMC_LIBRARY_PATH
-export LD_PRELOAD=$MMC_PRELOAD
-export QT_PLUGIN_PATH="${MMC_DIR}/plugins"
-export QT_FONTPATH="${MMC_DIR}/fonts"
+export LD_LIBRARY_PATH="${LAUNCHER_DIR}/bin":$LAUNCHER_LIBRARY_PATH
+export LD_PRELOAD=$LAUNCHER_PRELOAD
+export QT_PLUGIN_PATH="${LAUNCHER_DIR}/plugins"
+export QT_FONTPATH="${LAUNCHER_DIR}/fonts"
# Detect missing dependencies...
-DEPS_LIST=`ldd "${MMC_DIR}"/plugins/*/*.so 2>/dev/null | grep "not found" | sort -u | awk -vORS=", " '{ print $1 }'`
+DEPS_LIST=`ldd "${LAUNCHER_DIR}"/plugins/*/*.so 2>/dev/null | grep "not found" | sort -u | awk -vORS=", " '{ print $1 }'`
if [ "x$DEPS_LIST" = "x" ]; then
- # We have all our dependencies. Run MultiMC.
+ # We have all our dependencies. Run the launcher.
echo "No missing dependencies found."
# Just to be sure...
- chmod +x "${MMC_DIR}/bin/MultiMC"
+ chmod +x "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}"
- # Run MultiMC
- exec -a "${MMC_DIR}/MultiMC" "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" "$@"
+ # Run the launcher
+ exec -a "${LAUNCHER_DIR}/${LAUNCHER_NAME}" "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}" -d "${LAUNCHER_DIR}" "$@"
- # Run MultiMC in valgrind
- # valgrind --log-file="valgrind.log" --leak-check=full --track-origins=yes "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" "$@"
+ # Run the launcher in valgrind
+ # valgrind --log-file="valgrind.log" --leak-check=full --track-origins=yes "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}" -d "${LAUNCHER_DIR}" "$@"
- # Run MultiMC with callgrind, delay instrumentation
- # valgrind --log-file="valgrind.log" --tool=callgrind --instr-atstart=no "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" "$@"
+ # Run the launcher with callgrind, delay instrumentation
+ # valgrind --log-file="valgrind.log" --tool=callgrind --instr-atstart=no "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}" -d "${LAUNCHER_DIR}" "$@"
# use callgrind_control -i on/off to profile actions
- # Exit with MultiMC's exit code.
+ # Exit with launcher's exit code.
# exit $?
else
# apt
@@ -85,7 +86,7 @@ else
INSTALL_CMD="sudo emerge $COMMAND_LIBS"
fi
- MESSAGE="Error: MultiMC is missing the following libraries that it needs to work correctly:\n\t${DEPS_LIST}\nPlease install them from your distribution's package manager."
+ MESSAGE="Error: The launcher is missing the following libraries that it needs to work correctly:\n\t${DEPS_LIST}\nPlease install them from your distribution's package manager."
MESSAGE="$MESSAGE\n\nHint (please apply common sense): $INSTALL_CMD\n"
printerror "$MESSAGE"
diff --git a/launcher/LoggedProcess.cpp b/launcher/LoggedProcess.cpp
index 822c0f04..2479f4ff 100644
--- a/launcher/LoggedProcess.cpp
+++ b/launcher/LoggedProcess.cpp
@@ -65,16 +65,16 @@ void LoggedProcess::on_exit(int exit_code, QProcess::ExitStatus status)
if (status == QProcess::NormalExit)
{
//: Message displayed on instance exit
- emit log({tr("Process exited with code %1.").arg(exit_code)}, MessageLevel::MultiMC);
+ emit log({tr("Process exited with code %1.").arg(exit_code)}, MessageLevel::Launcher);
changeState(LoggedProcess::Finished);
}
else
{
//: Message displayed on instance crashed
if(exit_code == -1)
- emit log({tr("Process crashed.")}, MessageLevel::MultiMC);
+ emit log({tr("Process crashed.")}, MessageLevel::Launcher);
else
- emit log({tr("Process crashed with exitcode %1.").arg(exit_code)}, MessageLevel::MultiMC);
+ emit log({tr("Process crashed with exitcode %1.").arg(exit_code)}, MessageLevel::Launcher);
changeState(LoggedProcess::Crashed);
}
}
diff --git a/launcher/MainWindow.cpp b/launcher/MainWindow.cpp
index 67590946..c3cc6b8d 100644
--- a/launcher/MainWindow.cpp
+++ b/launcher/MainWindow.cpp
@@ -16,7 +16,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include "MultiMC.h"
+#include "Launcher.h"
#include "BuildConfig.h"
#include "MainWindow.h"
@@ -133,11 +133,21 @@ public:
{
if(m_text)
{
- m_contained->setText(QApplication::translate("MainWindow", m_text));
+ QString result;
+ result = QApplication::translate("MainWindow", m_text);
+ if(result.contains("%1")) {
+ result = result.arg(BuildConfig.LAUNCHER_NAME);
+ }
+ m_contained->setText(result);
}
if(m_tooltip)
{
- m_contained->setToolTip(QApplication::translate("MainWindow", m_tooltip));
+ QString result;
+ result = QApplication::translate("MainWindow", m_tooltip);
+ if(result.contains("%1")) {
+ result = result.arg(BuildConfig.LAUNCHER_NAME);
+ }
+ m_contained->setToolTip(result);
}
}
private:
@@ -267,7 +277,7 @@ public:
actionAddInstance = TranslatedAction(MainWindow);
actionAddInstance->setObjectName(QStringLiteral("actionAddInstance"));
- actionAddInstance->setIcon(MMC->getThemedIcon("new"));
+ actionAddInstance->setIcon(LAUNCHER->getThemedIcon("new"));
actionAddInstance.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Add Instance"));
actionAddInstance.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Add a new instance."));
all_actions.append(&actionAddInstance);
@@ -280,7 +290,7 @@ public:
actionViewInstanceFolder = TranslatedAction(MainWindow);
actionViewInstanceFolder->setObjectName(QStringLiteral("actionViewInstanceFolder"));
- actionViewInstanceFolder->setIcon(MMC->getThemedIcon("viewfolder"));
+ actionViewInstanceFolder->setIcon(LAUNCHER->getThemedIcon("viewfolder"));
actionViewInstanceFolder.setTextId(QT_TRANSLATE_NOOP("MainWindow", "View Instance Folder"));
actionViewInstanceFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the instance folder in a file browser."));
all_actions.append(&actionViewInstanceFolder);
@@ -288,7 +298,7 @@ public:
actionViewCentralModsFolder = TranslatedAction(MainWindow);
actionViewCentralModsFolder->setObjectName(QStringLiteral("actionViewCentralModsFolder"));
- actionViewCentralModsFolder->setIcon(MMC->getThemedIcon("centralmods"));
+ actionViewCentralModsFolder->setIcon(LAUNCHER->getThemedIcon("centralmods"));
actionViewCentralModsFolder.setTextId(QT_TRANSLATE_NOOP("MainWindow", "View Central Mods Folder"));
actionViewCentralModsFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the central mods folder in a file browser."));
all_actions.append(&actionViewCentralModsFolder);
@@ -300,7 +310,7 @@ public:
foldersMenuButton->setMenu(foldersMenu);
foldersMenuButton->setPopupMode(QToolButton::InstantPopup);
foldersMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
- foldersMenuButton->setIcon(MMC->getThemedIcon("viewfolder"));
+ foldersMenuButton->setIcon(LAUNCHER->getThemedIcon("viewfolder"));
foldersMenuButton->setFocusPolicy(Qt::NoFocus);
all_toolbuttons.append(&foldersMenuButton);
QWidgetAction* foldersButtonAction = new QWidgetAction(MainWindow);
@@ -309,7 +319,7 @@ public:
actionSettings = TranslatedAction(MainWindow);
actionSettings->setObjectName(QStringLiteral("actionSettings"));
- actionSettings->setIcon(MMC->getThemedIcon("settings"));
+ actionSettings->setIcon(LAUNCHER->getThemedIcon("settings"));
actionSettings->setMenuRole(QAction::PreferencesRole);
actionSettings.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Settings"));
actionSettings.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Change settings."));
@@ -322,9 +332,9 @@ public:
if (!BuildConfig.BUG_TRACKER_URL.isEmpty()) {
actionReportBug = TranslatedAction(MainWindow);
actionReportBug->setObjectName(QStringLiteral("actionReportBug"));
- actionReportBug->setIcon(MMC->getThemedIcon("bug"));
+ actionReportBug->setIcon(LAUNCHER->getThemedIcon("bug"));
actionReportBug.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Report a Bug"));
- actionReportBug.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the bug tracker to report a bug with MultiMC."));
+ actionReportBug.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the bug tracker to report a bug with %1."));
all_actions.append(&actionReportBug);
helpMenu->addAction(actionReportBug);
}
@@ -332,9 +342,9 @@ public:
if (!BuildConfig.DISCORD_URL.isEmpty()) {
actionDISCORD = TranslatedAction(MainWindow);
actionDISCORD->setObjectName(QStringLiteral("actionDISCORD"));
- actionDISCORD->setIcon(MMC->getThemedIcon("discord"));
+ actionDISCORD->setIcon(LAUNCHER->getThemedIcon("discord"));
actionDISCORD.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Discord"));
- actionDISCORD.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open MultiMC discord voice chat."));
+ actionDISCORD.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open %1 discord voice chat."));
all_actions.append(&actionDISCORD);
helpMenu->addAction(actionDISCORD);
}
@@ -342,29 +352,29 @@ public:
if (!BuildConfig.SUBREDDIT_URL.isEmpty()) {
actionREDDIT = TranslatedAction(MainWindow);
actionREDDIT->setObjectName(QStringLiteral("actionREDDIT"));
- actionREDDIT->setIcon(MMC->getThemedIcon("reddit-alien"));
+ actionREDDIT->setIcon(LAUNCHER->getThemedIcon("reddit-alien"));
actionREDDIT.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Reddit"));
- actionREDDIT.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open MultiMC subreddit."));
+ actionREDDIT.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open %1 subreddit."));
all_actions.append(&actionREDDIT);
helpMenu->addAction(actionREDDIT);
}
actionAbout = TranslatedAction(MainWindow);
actionAbout->setObjectName(QStringLiteral("actionAbout"));
- actionAbout->setIcon(MMC->getThemedIcon("about"));
+ actionAbout->setIcon(LAUNCHER->getThemedIcon("about"));
actionAbout->setMenuRole(QAction::AboutRole);
- actionAbout.setTextId(QT_TRANSLATE_NOOP("MainWindow", "About MultiMC"));
- actionAbout.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "View information about MultiMC."));
+ actionAbout.setTextId(QT_TRANSLATE_NOOP("MainWindow", "About %1"));
+ actionAbout.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "View information about %1."));
all_actions.append(&actionAbout);
helpMenu->addAction(actionAbout);
helpMenuButton = TranslatedToolButton(MainWindow);
helpMenuButton.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Help"));
- helpMenuButton.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Get help with MultiMC or Minecraft."));
+ helpMenuButton.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Get help with %1 or Minecraft."));
helpMenuButton->setMenu(helpMenu);
helpMenuButton->setPopupMode(QToolButton::InstantPopup);
helpMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
- helpMenuButton->setIcon(MMC->getThemedIcon("help"));
+ helpMenuButton->setIcon(LAUNCHER->getThemedIcon("help"));
helpMenuButton->setFocusPolicy(Qt::NoFocus);
all_toolbuttons.append(&helpMenuButton);
QWidgetAction* helpButtonAction = new QWidgetAction(MainWindow);
@@ -375,9 +385,9 @@ public:
{
actionCheckUpdate = TranslatedAction(MainWindow);
actionCheckUpdate->setObjectName(QStringLiteral("actionCheckUpdate"));
- actionCheckUpdate->setIcon(MMC->getThemedIcon("checkupdate"));
+ actionCheckUpdate->setIcon(LAUNCHER->getThemedIcon("checkupdate"));
actionCheckUpdate.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Update"));
- actionCheckUpdate.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Check for new updates for MultiMC."));
+ actionCheckUpdate.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Check for new updates for %1."));
all_actions.append(&actionCheckUpdate);
mainToolBar->addAction(actionCheckUpdate);
}
@@ -386,16 +396,16 @@ public:
actionPatreon = TranslatedAction(MainWindow);
actionPatreon->setObjectName(QStringLiteral("actionPatreon"));
- actionPatreon->setIcon(MMC->getThemedIcon("patreon"));
- actionPatreon.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Support MultiMC"));
- actionPatreon.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the MultiMC Patreon page."));
+ actionPatreon->setIcon(LAUNCHER->getThemedIcon("patreon"));
+ actionPatreon.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Support %1"));
+ actionPatreon.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the %1 Patreon page."));
all_actions.append(&actionPatreon);
mainToolBar->addAction(actionPatreon);
actionCAT = TranslatedAction(MainWindow);
actionCAT->setObjectName(QStringLiteral("actionCAT"));
actionCAT->setCheckable(true);
- actionCAT->setIcon(MMC->getThemedIcon("cat"));
+ actionCAT->setIcon(LAUNCHER->getThemedIcon("cat"));
actionCAT.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Meow"));
actionCAT.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "It's a fluffy kitty :3"));
actionCAT->setPriority(QAction::LowPriority);
@@ -408,7 +418,7 @@ public:
actionManageAccounts.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Manage Accounts"));
// FIXME: no tooltip!
actionManageAccounts->setCheckable(false);
- actionManageAccounts->setIcon(MMC->getThemedIcon("accounts"));
+ actionManageAccounts->setIcon(LAUNCHER->getThemedIcon("accounts"));
all_actions.append(&actionManageAccounts);
all_toolbars.append(&mainToolBar);
@@ -435,9 +445,9 @@ public:
actionMoreNews = TranslatedAction(MainWindow);
actionMoreNews->setObjectName(QStringLiteral("actionMoreNews"));
- actionMoreNews->setIcon(MMC->getThemedIcon("news"));
+ actionMoreNews->setIcon(LAUNCHER->getThemedIcon("news"));
actionMoreNews.setTextId(QT_TRANSLATE_NOOP("MainWindow", "More news..."));
- actionMoreNews.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the MultiMC development blog to read more news about MultiMC."));
+ actionMoreNews.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the development blog to read more news about %1."));
all_actions.append(&actionMoreNews);
newsToolBar->addAction(actionMoreNews);
@@ -459,7 +469,7 @@ public:
// NOTE: not added to toolbar, but used for instance context menu (right click)
actionChangeInstIcon = TranslatedAction(MainWindow);
actionChangeInstIcon->setObjectName(QStringLiteral("actionChangeInstIcon"));
- actionChangeInstIcon->setIcon(QIcon(":/icons/instances/infinity"));
+ actionChangeInstIcon->setIcon(QIcon(":/icons/instances/grass"));
actionChangeInstIcon->setIconVisibleInMenu(true);
actionChangeInstIcon.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Change Icon"));
actionChangeInstIcon.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Change the selected instance's icon."));
@@ -467,7 +477,7 @@ public:
changeIconButton = new LabeledToolButton(MainWindow);
changeIconButton->setObjectName(QStringLiteral("changeIconButton"));
- changeIconButton->setIcon(MMC->getThemedIcon("news"));
+ changeIconButton->setIcon(LAUNCHER->getThemedIcon("news"));
changeIconButton->setToolTip(actionChangeInstIcon->toolTip());
changeIconButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
instanceToolBar->addWidget(changeIconButton);
@@ -578,7 +588,7 @@ public:
actionCopyInstance = TranslatedAction(MainWindow);
actionCopyInstance->setObjectName(QStringLiteral("actionCopyInstance"));
- actionCopyInstance->setIcon(MMC->getThemedIcon("copy"));
+ actionCopyInstance->setIcon(LAUNCHER->getThemedIcon("copy"));
actionCopyInstance.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Copy Instance"));
actionCopyInstance.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Copy the selected instance."));
all_actions.append(&actionCopyInstance);
@@ -595,10 +605,10 @@ public:
MainWindow->setObjectName(QStringLiteral("MainWindow"));
}
MainWindow->resize(800, 600);
- MainWindow->setWindowIcon(MMC->getThemedIcon("logo"));
- MainWindow->setWindowTitle("MultiMC 5");
+ MainWindow->setWindowIcon(LAUNCHER->getThemedIcon("logo"));
+ MainWindow->setWindowTitle(BuildConfig.LAUNCHER_DISPLAYNAME);
#ifndef QT_NO_ACCESSIBILITY
- MainWindow->setAccessibleName("MultiMC");
+ MainWindow->setAccessibleName(BuildConfig.LAUNCHER_NAME);
#endif
createMainToolbar(MainWindow);
@@ -623,7 +633,7 @@ public:
void retranslateUi(QMainWindow *MainWindow)
{
- QString winTitle = tr("MultiMC 5 - Version %1").arg(BuildConfig.printableVersionString());
+ QString winTitle = tr("%1 - Version %2", "Launcher - Version X").arg(BuildConfig.LAUNCHER_DISPLAYNAME, BuildConfig.printableVersionString());
if (!BuildConfig.BUILD_PLATFORM.isEmpty())
{
winTitle += tr(" on %1", "on platform, as in operating system").arg(BuildConfig.BUILD_PLATFORM);
@@ -672,7 +682,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
{
m_newsChecker.reset(new NewsChecker(BuildConfig.NEWS_RSS_URL));
newsLabel = new QToolButton();
- newsLabel->setIcon(MMC->getThemedIcon("news"));
+ newsLabel->setIcon(LAUNCHER->getThemedIcon("news"));
newsLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
newsLabel->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
newsLabel->setFocusPolicy(Qt::NoFocus);
@@ -699,20 +709,20 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
connect(view, &GroupView::droppedURLs, this, &MainWindow::droppedURLs, Qt::QueuedConnection);
proxymodel = new InstanceProxyModel(this);
- proxymodel->setSourceModel(MMC->instances().get());
+ proxymodel->setSourceModel(LAUNCHER->instances().get());
proxymodel->sort(0);
connect(proxymodel, &InstanceProxyModel::dataChanged, this, &MainWindow::instanceDataChanged);
view->setModel(proxymodel);
view->setSourceOfGroupCollapseStatus([](const QString & groupName)->bool {
- return MMC->instances()->isGroupCollapsed(groupName);
+ return LAUNCHER->instances()->isGroupCollapsed(groupName);
});
- connect(view, &GroupView::groupStateChanged, MMC->instances().get(), &InstanceList::on_GroupStateChanged);
+ connect(view, &GroupView::groupStateChanged, LAUNCHER->instances().get(), &InstanceList::on_GroupStateChanged);
ui->horizontalLayout->addWidget(view);
}
// The cat background
{
- bool cat_enable = MMC->settings()->get("TheCat").toBool();
+ bool cat_enable = LAUNCHER->settings()->get("TheCat").toBool();
ui->actionCAT->setChecked(cat_enable);
// NOTE: calling the operator like that is an ugly hack to appease ancient gcc...
connect(ui->actionCAT.operator->(), SIGNAL(toggled(bool)), SLOT(onCatToggled(bool)));
@@ -725,21 +735,21 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
connect(view->selectionModel(), &QItemSelectionModel::currentChanged, this, &MainWindow::instanceChanged);
// track icon changes and update the toolbar!
- connect(MMC->icons().get(), &IconList::iconUpdated, this, &MainWindow::iconUpdated);
+ connect(LAUNCHER->icons().get(), &IconList::iconUpdated, this, &MainWindow::iconUpdated);
// model reset -> selection is invalid. All the instance pointers are wrong.
- connect(MMC->instances().get(), &InstanceList::dataIsInvalid, this, &MainWindow::selectionBad);
+ connect(LAUNCHER->instances().get(), &InstanceList::dataIsInvalid, this, &MainWindow::selectionBad);
// handle newly added instances
- connect(MMC->instances().get(), &InstanceList::instanceSelectRequest, this, &MainWindow::instanceSelectRequest);
+ connect(LAUNCHER->instances().get(), &InstanceList::instanceSelectRequest, this, &MainWindow::instanceSelectRequest);
// When the global settings page closes, we want to know about it and update our state
- connect(MMC, &MultiMC::globalSettingsClosed, this, &MainWindow::globalSettingsClosed);
+ connect(LAUNCHER, &Launcher::globalSettingsClosed, this, &MainWindow::globalSettingsClosed);
m_statusLeft = new QLabel(tr("No instance selected"), this);
m_statusCenter = new QLabel(tr("Total playtime: 0s."), this);
statusBar()->addPermanentWidget(m_statusLeft, 1);
- statusBar()->addPermanentWidget(m_statusCenter, 1);
+ statusBar()->addPermanentWidget(m_statusCenter, 0);
// Add "manage accounts" button, right align
QWidget *spacer = new QWidget();
@@ -754,7 +764,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
accountMenuButton->setMenu(accountMenu);
accountMenuButton->setPopupMode(QToolButton::InstantPopup);
accountMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
- accountMenuButton->setIcon(MMC->getThemedIcon("noaccount"));
+ accountMenuButton->setIcon(LAUNCHER->getThemedIcon("noaccount"));
QWidgetAction *accountMenuButtonAction = new QWidgetAction(this);
accountMenuButtonAction->setDefaultWidget(accountMenuButton);
@@ -765,14 +775,14 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
// Shouldn't have to use lambdas here like this, but if I don't, the compiler throws a fit.
// Template hell sucks...
connect(
- MMC->accounts().get(),
+ LAUNCHER->accounts().get(),
&AccountList::activeAccountChanged,
[this] {
activeAccountChanged();
}
);
connect(
- MMC->accounts().get(),
+ LAUNCHER->accounts().get(),
&AccountList::listChanged,
[this]
{
@@ -784,7 +794,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
activeAccountChanged();
// TODO: refresh accounts here?
- // auto accounts = MMC->accounts();
+ // auto accounts = LAUNCHER->accounts();
// load the news
{
@@ -795,20 +805,20 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
if(BuildConfig.UPDATER_ENABLED)
{
- bool updatesAllowed = MMC->updatesAreAllowed();
+ bool updatesAllowed = LAUNCHER->updatesAreAllowed();
updatesAllowedChanged(updatesAllowed);
// NOTE: calling the operator like that is an ugly hack to appease ancient gcc...
connect(ui->actionCheckUpdate.operator->(), &QAction::triggered, this, &MainWindow::checkForUpdates);
// set up the updater object.
- auto updater = MMC->updateChecker();
+ auto updater = LAUNCHER->updateChecker();
connect(updater.get(), &UpdateChecker::updateAvailable, this, &MainWindow::updateAvailable);
connect(updater.get(), &UpdateChecker::noUpdateFound, this, &MainWindow::updateNotAvailable);
// if automatic update checks are allowed, start one.
- if (MMC->settings()->get("AutoUpdate").toBool() && updatesAllowed)
+ if (LAUNCHER->settings()->get("AutoUpdate").toBool() && updatesAllowed)
{
- updater->checkForUpdate(MMC->settings()->get("UpdateChannel").toString(), false);
+ updater->checkForUpdate(LAUNCHER->settings()->get("UpdateChannel").toString(), false);
}
}
@@ -823,7 +833,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
checker->checkForNotifications();
}
- setSelectedInstanceById(MMC->settings()->get("SelectedInstance").toString());
+ setSelectedInstanceById(LAUNCHER->settings()->get("SelectedInstance").toString());
// removing this looks stupid
view->setFocus();
@@ -833,7 +843,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
void MainWindow::retranslateUi()
{
- std::shared_ptr<AccountList> accounts = MMC->accounts();
+ std::shared_ptr<AccountList> accounts = LAUNCHER->accounts();
MinecraftAccountPtr active_account = accounts->activeAccount();
if(active_account) {
auto profileLabel = profileInUseFilter(active_account->profileName(), active_account->isInUse());
@@ -897,7 +907,7 @@ void MainWindow::showInstanceContextMenu(const QPoint &pos)
{
auto group = view->groupNameAt(pos);
- QAction *actionVoid = new QAction("MultiMC", this);
+ QAction *actionVoid = new QAction(BuildConfig.LAUNCHER_NAME, this);
actionVoid->setEnabled(false);
QAction *actionCreateInstance = new QAction(tr("Create instance"), this);
@@ -971,16 +981,16 @@ void MainWindow::updateToolsMenu()
QAction *normalLaunchOffline = launchOfflineMenu->addAction(tr("Launch Offline"));
connect(normalLaunch, &QAction::triggered, [this]()
{
- MMC->launch(m_selectedInstance, true);
+ LAUNCHER->launch(m_selectedInstance, true);
});
connect(normalLaunchOffline, &QAction::triggered, [this]()
{
- MMC->launch(m_selectedInstance, false);
+ LAUNCHER->launch(m_selectedInstance, false);
});
QString profilersTitle = tr("Profilers");
launchMenu->addSeparator()->setText(profilersTitle);
launchOfflineMenu->addSeparator()->setText(profilersTitle);
- for (auto profiler : MMC->profilers().values())
+ for (auto profiler : LAUNCHER->profilers().values())
{
QAction *profilerAction = launchMenu->addAction(profiler->name());
QAction *profilerOfflineAction = launchOfflineMenu->addAction(profiler->name());
@@ -997,11 +1007,11 @@ void MainWindow::updateToolsMenu()
{
connect(profilerAction, &QAction::triggered, [this, profiler]()
{
- MMC->launch(m_selectedInstance, true, profiler.get());
+ LAUNCHER->launch(m_selectedInstance, true, profiler.get());
});
connect(profilerOfflineAction, &QAction::triggered, [this, profiler]()
{
- MMC->launch(m_selectedInstance, false, profiler.get());
+ LAUNCHER->launch(m_selectedInstance, false, profiler.get());
});
}
}
@@ -1013,7 +1023,7 @@ void MainWindow::repopulateAccountsMenu()
{
accountMenu->clear();
- std::shared_ptr<AccountList> accounts = MMC->accounts();
+ std::shared_ptr<AccountList> accounts = LAUNCHER->accounts();
MinecraftAccountPtr active_account = accounts->activeAccount();
QString active_profileId = "";
@@ -1059,7 +1069,7 @@ void MainWindow::repopulateAccountsMenu()
QAction *action = new QAction(tr("No Default Account"), this);
action->setCheckable(true);
- action->setIcon(MMC->getThemedIcon("noaccount"));
+ action->setIcon(LAUNCHER->getThemedIcon("noaccount"));
action->setData("");
if (active_profileId.isEmpty()) {
action->setChecked(true);
@@ -1099,7 +1109,7 @@ void MainWindow::changeActiveAccount()
id = data.toString();
}
- MMC->accounts()->setActiveAccount(id);
+ LAUNCHER->accounts()->setActiveAccount(id);
activeAccountChanged();
}
@@ -1108,7 +1118,7 @@ void MainWindow::activeAccountChanged()
{
repopulateAccountsMenu();
- MinecraftAccountPtr account = MMC->accounts()->activeAccount();
+ MinecraftAccountPtr account = LAUNCHER->accounts()->activeAccount();
// FIXME: this needs adjustment for MSA
if (account != nullptr && account->profileName() != "")
@@ -1120,7 +1130,7 @@ void MainWindow::activeAccountChanged()
}
// Set the icon to the "no account" icon.
- accountMenuButton->setIcon(MMC->getThemedIcon("noaccount"));
+ accountMenuButton->setIcon(LAUNCHER->getThemedIcon("noaccount"));
accountMenuButton->setText(tr("Profiles"));
}
@@ -1182,7 +1192,7 @@ void MainWindow::updateNewsLabel()
void MainWindow::updateAvailable(GoUpdate::Status status)
{
- if(!MMC->updatesAreAllowed())
+ if(!LAUNCHER->updatesAreAllowed())
{
updateNotAvailable();
return;
@@ -1228,7 +1238,7 @@ QString intListToString(const QList<int> &list)
void MainWindow::notificationsChanged()
{
QList<NotificationChecker::NotificationEntry> entries = m_notificationChecker->notificationEntries();
- QList<int> shownNotifications = stringToIntList(MMC->settings()->get("ShownNotifications").toString());
+ QList<int> shownNotifications = stringToIntList(LAUNCHER->settings()->get("ShownNotifications").toString());
for (auto it = entries.begin(); it != entries.end(); ++it)
{
NotificationChecker::NotificationEntry entry = *it;
@@ -1241,20 +1251,20 @@ void MainWindow::notificationsChanged()
}
}
}
- MMC->settings()->set("ShownNotifications", intListToString(shownNotifications));
+ LAUNCHER->settings()->set("ShownNotifications", intListToString(shownNotifications));
}
void MainWindow::downloadUpdates(GoUpdate::Status status)
{
- if(!MMC->updatesAreAllowed())
+ if(!LAUNCHER->updatesAreAllowed())
{
return;
}
qDebug() << "Downloading updates.";
ProgressDialog updateDlg(this);
- status.rootPath = MMC->root();
+ status.rootPath = LAUNCHER->root();
- auto dlPath = FS::PathCombine(MMC->root(), "update", "XXXXXX");
+ auto dlPath = FS::PathCombine(LAUNCHER->root(), "update", "XXXXXX");
if (!FS::ensureFilePathExists(dlPath))
{
CustomMessageBox::selectable(this, tr("Error"), tr("Couldn't create folder for update downloads:\n%1").arg(dlPath), QMessageBox::Warning)->show();
@@ -1267,10 +1277,10 @@ void MainWindow::downloadUpdates(GoUpdate::Status status)
* NOTE: This disables launching instances until the update either succeeds (and this process exits)
* or the update fails (and the control leaves this scope).
*/
- MMC->updateIsRunning(true);
- UpdateController update(this, MMC->root(), updateTask.updateFilesDir(), updateTask.operations());
+ LAUNCHER->updateIsRunning(true);
+ UpdateController update(this, LAUNCHER->root(), updateTask.updateFilesDir(), updateTask.operations());
update.installUpdates();
- MMC->updateIsRunning(false);
+ LAUNCHER->updateIsRunning(false);
}
else
{
@@ -1281,7 +1291,7 @@ void MainWindow::downloadUpdates(GoUpdate::Status status)
void MainWindow::onCatToggled(bool state)
{
setCatBackground(state);
- MMC->settings()->set("TheCat", state);
+ LAUNCHER->settings()->set("TheCat", state);
}
namespace {
@@ -1339,7 +1349,7 @@ void MainWindow::runModalTask(Task *task)
void MainWindow::instanceFromInstanceTask(InstanceTask *rawTask)
{
- unique_qobject_ptr<Task> task(MMC->instances()->wrapInstanceTask(rawTask));
+ unique_qobject_ptr<Task> task(LAUNCHER->instances()->wrapInstanceTask(rawTask));
runModalTask(task.get());
}
@@ -1356,7 +1366,7 @@ void MainWindow::on_actionCopyInstance_triggered()
copyTask->setName(copyInstDlg.instName());
copyTask->setGroup(copyInstDlg.instGroup());
copyTask->setIcon(copyInstDlg.iconKey());
- unique_qobject_ptr<Task> task(MMC->instances()->wrapInstanceTask(copyTask));
+ unique_qobject_ptr<Task> task(LAUNCHER->instances()->wrapInstanceTask(copyTask));
runModalTask(task.get());
}
@@ -1364,7 +1374,7 @@ void MainWindow::finalizeInstance(InstancePtr inst)
{
view->updateGeometries();
setSelectedInstanceById(inst->id());
- if (MMC->accounts()->anyAccountIsValid())
+ if (LAUNCHER->accounts()->anyAccountIsValid())
{
ProgressDialog loadDialog(this);
auto update = inst->createUpdateTask(Net::Mode::Online);
@@ -1381,10 +1391,13 @@ void MainWindow::finalizeInstance(InstancePtr inst)
}
else
{
- CustomMessageBox::selectable(this, tr("Error"), tr("MultiMC cannot download Minecraft or update instances unless you have at least "
- "one account added.\nPlease add your Mojang or Minecraft account."),
- QMessageBox::Warning)
- ->show();
+ CustomMessageBox::selectable(
+ this,
+ tr("Error"),
+ tr("The launcher cannot download Minecraft or update instances unless you have at least "
+ "one account added.\nPlease add your Mojang or Minecraft account."),
+ QMessageBox::Warning
+ )->show();
}
}
@@ -1407,14 +1420,14 @@ void MainWindow::addInstance(QString url)
if(groupName.isEmpty())
{
- groupName = MMC->settings()->get("LastUsedGroupForNewInstance").toString();
+ groupName = LAUNCHER->settings()->get("LastUsedGroupForNewInstance").toString();
}
NewInstanceDialog newInstDlg(groupName, url, this);
if (!newInstDlg.exec())
return;
- MMC->settings()->set("LastUsedGroupForNewInstance", newInstDlg.instGroup());
+ LAUNCHER->settings()->set("LastUsedGroupForNewInstance", newInstDlg.instGroup());
InstanceTask * creationTask = newInstDlg.extractTask();
if(creationTask)
@@ -1465,7 +1478,7 @@ void MainWindow::on_actionChangeInstIcon_triggered()
if (dlg.result() == QDialog::Accepted)
{
m_selectedInstance->setIconKey(dlg.selectedIconKey);
- auto icon = MMC->icons()->getIcon(dlg.selectedIconKey);
+ auto icon = LAUNCHER->icons()->getIcon(dlg.selectedIconKey);
ui->actionChangeInstIcon->setIcon(icon);
ui->changeIconButton->setIcon(icon);
}
@@ -1475,7 +1488,7 @@ void MainWindow::iconUpdated(QString icon)
{
if (icon == m_currentInstIcon)
{
- auto icon = MMC->icons()->getIcon(m_currentInstIcon);
+ auto icon = LAUNCHER->icons()->getIcon(m_currentInstIcon);
ui->actionChangeInstIcon->setIcon(icon);
ui->changeIconButton->setIcon(icon);
}
@@ -1484,7 +1497,7 @@ void MainWindow::iconUpdated(QString icon)
void MainWindow::updateInstanceToolIcon(QString new_icon)
{
m_currentInstIcon = new_icon;
- auto icon = MMC->icons()->getIcon(m_currentInstIcon);
+ auto icon = LAUNCHER->icons()->getIcon(m_currentInstIcon);
ui->actionChangeInstIcon->setIcon(icon);
ui->changeIconButton->setIcon(icon);
}
@@ -1493,7 +1506,7 @@ void MainWindow::setSelectedInstanceById(const QString &id)
{
if (id.isNull())
return;
- const QModelIndex index = MMC->instances()->getInstanceIndexById(id);
+ const QModelIndex index = LAUNCHER->instances()->getInstanceIndexById(id);
if (index.isValid())
{
QModelIndex selectionIndex = proxymodel->mapFromSource(index);
@@ -1509,8 +1522,8 @@ void MainWindow::on_actionChangeInstGroup_triggered()
bool ok = false;
InstanceId instId = m_selectedInstance->id();
- QString name(MMC->instances()->getInstanceGroup(instId));
- auto groups = MMC->instances()->getGroups();
+ QString name(LAUNCHER->instances()->getInstanceGroup(instId));
+ auto groups = LAUNCHER->instances()->getGroups();
groups.insert(0, "");
groups.sort(Qt::CaseInsensitive);
int foo = groups.indexOf(name);
@@ -1519,7 +1532,7 @@ void MainWindow::on_actionChangeInstGroup_triggered()
name = name.simplified();
if (ok)
{
- MMC->instances()->setInstanceGroup(instId, name);
+ LAUNCHER->instances()->setInstanceGroup(instId, name);
}
}
@@ -1541,25 +1554,25 @@ void MainWindow::deleteGroup()
.arg(groupName), QMessageBox::Yes | QMessageBox::No);
if(reply == QMessageBox::Yes)
{
- MMC->instances()->deleteGroup(groupName);
+ LAUNCHER->instances()->deleteGroup(groupName);
}
}
}
void MainWindow::on_actionViewInstanceFolder_triggered()
{
- QString str = MMC->settings()->get("InstanceDir").toString();
+ QString str = LAUNCHER->settings()->get("InstanceDir").toString();
DesktopServices::openDirectory(str);
}
void MainWindow::refreshInstances()
{
- MMC->instances()->loadList();
+ LAUNCHER->instances()->loadList();
}
void MainWindow::on_actionViewCentralModsFolder_triggered()
{
- DesktopServices::openDirectory(MMC->settings()->get("CentralModsDir").toString(), true);
+ DesktopServices::openDirectory(LAUNCHER->settings()->get("CentralModsDir").toString(), true);
}
void MainWindow::on_actionConfig_Folder_triggered()
@@ -1575,8 +1588,8 @@ void MainWindow::checkForUpdates()
{
if(BuildConfig.UPDATER_ENABLED)
{
- auto updater = MMC->updateChecker();
- updater->checkForUpdate(MMC->settings()->get("UpdateChannel").toString(), true);
+ auto updater = LAUNCHER->updateChecker();
+ updater->checkForUpdate(LAUNCHER->settings()->get("UpdateChannel").toString(), true);
}
else
{
@@ -1586,13 +1599,13 @@ void MainWindow::checkForUpdates()
void MainWindow::on_actionSettings_triggered()
{
- MMC->ShowGlobalSettings(this, "global-settings");
+ LAUNCHER->ShowGlobalSettings(this, "global-settings");
}
void MainWindow::globalSettingsClosed()
{
// FIXME: quick HACK to make this work. improve, optimize.
- MMC->instances()->loadList();
+ LAUNCHER->instances()->loadList();
proxymodel->invalidate();
proxymodel->sort(0);
updateToolsMenu();
@@ -1601,32 +1614,32 @@ void MainWindow::globalSettingsClosed()
void MainWindow::on_actionInstanceSettings_triggered()
{
- MMC->showInstanceWindow(m_selectedInstance, "settings");
+ LAUNCHER->showInstanceWindow(m_selectedInstance, "settings");
}
void MainWindow::on_actionEditInstNotes_triggered()
{
- MMC->showInstanceWindow(m_selectedInstance, "notes");
+ LAUNCHER->showInstanceWindow(m_selectedInstance, "notes");
}
void MainWindow::on_actionWorlds_triggered()
{
- MMC->showInstanceWindow(m_selectedInstance, "worlds");
+ LAUNCHER->showInstanceWindow(m_selectedInstance, "worlds");
}
void MainWindow::on_actionEditInstance_triggered()
{
- MMC->showInstanceWindow(m_selectedInstance);
+ LAUNCHER->showInstanceWindow(m_selectedInstance);
}
void MainWindow::on_actionScreenshots_triggered()
{
- MMC->showInstanceWindow(m_selectedInstance, "screenshots");
+ LAUNCHER->showInstanceWindow(m_selectedInstance, "screenshots");
}
void MainWindow::on_actionManageAccounts_triggered()
{
- MMC->ShowGlobalSettings(this, "accounts");
+ LAUNCHER->ShowGlobalSettings(this, "accounts");
}
void MainWindow::on_actionReportBug_triggered()
@@ -1680,7 +1693,7 @@ void MainWindow::on_actionDeleteInstance_triggered()
)->exec();
if (response == QMessageBox::Yes)
{
- MMC->instances()->deleteInstance(id);
+ LAUNCHER->instances()->deleteInstance(id);
}
}
@@ -1728,8 +1741,8 @@ void MainWindow::on_actionViewSelectedMCFolder_triggered()
void MainWindow::closeEvent(QCloseEvent *event)
{
// Save the window state and geometry.
- MMC->settings()->set("MainWindowState", saveState().toBase64());
- MMC->settings()->set("MainWindowGeometry", saveGeometry().toBase64());
+ LAUNCHER->settings()->set("MainWindowState", saveState().toBase64());
+ LAUNCHER->settings()->set("MainWindowGeometry", saveGeometry().toBase64());
event->accept();
emit isClosing();
}
@@ -1748,7 +1761,7 @@ void MainWindow::instanceActivated(QModelIndex index)
if (!index.isValid())
return;
QString id = index.data(InstanceList::InstanceIDRole).toString();
- InstancePtr inst = MMC->instances()->getInstanceById(id);
+ InstancePtr inst = LAUNCHER->instances()->getInstanceById(id);
if (!inst)
return;
@@ -1763,24 +1776,24 @@ void MainWindow::on_actionLaunchInstance_triggered()
}
if(m_selectedInstance->isRunning())
{
- MMC->kill(m_selectedInstance);
+ LAUNCHER->kill(m_selectedInstance);
}
else
{
- MMC->launch(m_selectedInstance);
+ LAUNCHER->launch(m_selectedInstance);
}
}
void MainWindow::activateInstance(InstancePtr instance)
{
- MMC->launch(instance);
+ LAUNCHER->launch(instance);
}
void MainWindow::on_actionLaunchInstanceOffline_triggered()
{
if (m_selectedInstance)
{
- MMC->launch(m_selectedInstance, false);
+ LAUNCHER->launch(m_selectedInstance, false);
}
}
@@ -1804,12 +1817,12 @@ void MainWindow::instanceChanged(const QModelIndex &current, const QModelIndex &
{
if (!current.isValid())
{
- MMC->settings()->set("SelectedInstance", QString());
+ LAUNCHER->settings()->set("SelectedInstance", QString());
selectionBad();
return;
}
QString id = current.data(InstanceList::InstanceIDRole).toString();
- m_selectedInstance = MMC->instances()->getInstanceById(id);
+ m_selectedInstance = LAUNCHER->instances()->getInstanceById(id);
if (m_selectedInstance)
{
ui->instanceToolBar->setEnabled(true);
@@ -1832,12 +1845,12 @@ void MainWindow::instanceChanged(const QModelIndex &current, const QModelIndex &
updateToolsMenu();
- MMC->settings()->set("SelectedInstance", m_selectedInstance->id());
+ LAUNCHER->settings()->set("SelectedInstance", m_selectedInstance->id());
}
else
{
ui->instanceToolBar->setEnabled(false);
- MMC->settings()->set("SelectedInstance", QString());
+ LAUNCHER->settings()->set("SelectedInstance", QString());
selectionBad();
return;
}
@@ -1866,33 +1879,37 @@ void MainWindow::selectionBad()
statusBar()->clearMessage();
ui->instanceToolBar->setEnabled(false);
ui->renameButton->setText(tr("Rename Instance"));
- updateInstanceToolIcon("infinity");
+ updateInstanceToolIcon("grass");
// ...and then see if we can enable the previously selected instance
- setSelectedInstanceById(MMC->settings()->get("SelectedInstance").toString());
+ setSelectedInstanceById(LAUNCHER->settings()->get("SelectedInstance").toString());
}
void MainWindow::checkInstancePathForProblems()
{
- QString instanceFolder = MMC->settings()->get("InstanceDir").toString();
+ QString instanceFolder = LAUNCHER->settings()->get("InstanceDir").toString();
if (FS::checkProblemticPathJava(QDir(instanceFolder)))
{
QMessageBox warning(this);
warning.setText(tr("Your instance folder contains \'!\' and this is known to cause Java problems!"));
- warning.setInformativeText(tr("You have now two options: <br/>"
- " - change the instance folder in the settings <br/>"
- " - move this installation of MultiMC5 to a different folder"));
+ warning.setInformativeText(
+ tr(
+ "You have now two options: <br/>"
+ " - change the instance folder in the settings <br/>"
+ " - move this installation of %1 to a different folder"
+ ).arg(BuildConfig.LAUNCHER_NAME)
+ );
warning.setDefaultButton(QMessageBox::Ok);
warning.exec();
}
auto tempFolderText = tr("This is a problem: <br/>"
- " - MultiMC will likely be deleted without warning by the operating system <br/>"
- " - close MultiMC now and extract it to a real location, not a temporary folder");
+ " - The launcher will likely be deleted without warning by the operating system <br/>"
+ " - close the launcher now and extract it to a real location, not a temporary folder");
QString pathfoldername = QDir(instanceFolder).absolutePath();
if (pathfoldername.contains("Rar$", Qt::CaseInsensitive))
{
QMessageBox warning(this);
- warning.setText(tr("Your instance folder contains \'Rar$\' - that means you haven't extracted the MultiMC zip!"));
+ warning.setText(tr("Your instance folder contains \'Rar$\' - that means you haven't extracted the launcher archive!"));
warning.setInformativeText(tempFolderText);
warning.setDefaultButton(QMessageBox::Ok);
warning.exec();
@@ -1909,7 +1926,7 @@ void MainWindow::checkInstancePathForProblems()
void MainWindow::updateStatusCenter()
{
- int timeplayed = MMC->instances()->getTotalPlayTime();
+ int timeplayed = LAUNCHER->instances()->getTotalPlayTime();
int minutesTotal = timeplayed / 60;
int seconds = timeplayed % 60;
int minutes = minutesTotal % 60;
diff --git a/launcher/MessageLevel.cpp b/launcher/MessageLevel.cpp
index 0a2cd23d..135ef463 100644
--- a/launcher/MessageLevel.cpp
+++ b/launcher/MessageLevel.cpp
@@ -2,8 +2,8 @@
MessageLevel::Enum MessageLevel::getLevel(const QString& levelName)
{
- if (levelName == "MultiMC")
- return MessageLevel::MultiMC;
+ if (levelName == "Launcher")
+ return MessageLevel::Launcher;
else if (levelName == "Debug")
return MessageLevel::Debug;
else if (levelName == "Info")
diff --git a/launcher/MessageLevel.h b/launcher/MessageLevel.h
index f19048e3..227ad25d 100644
--- a/launcher/MessageLevel.h
+++ b/launcher/MessageLevel.h
@@ -13,7 +13,7 @@ enum Enum
Unknown, /**< No idea what this is or where it came from */
StdOut, /**< Undetermined stderr messages */
StdErr, /**< Undetermined stdout messages */
- MultiMC, /**< MultiMC Messages */
+ Launcher, /**< Launcher Messages */
Debug, /**< Debug Messages */
Info, /**< Info Messages */
Message, /**< Standard Messages */
diff --git a/launcher/UpdateController.cpp b/launcher/UpdateController.cpp
index 0309ad93..136e22fd 100644
--- a/launcher/UpdateController.cpp
+++ b/launcher/UpdateController.cpp
@@ -8,6 +8,9 @@
#include <chrono>
#include <LocalPeer.h>
+#include "BuildConfig.h"
+
+
// from <sys/stat.h>
#ifndef S_IRUSR
#define __S_IREAD 0400 /* Read by owner. */
@@ -91,7 +94,7 @@ void UpdateController::installUpdates()
#ifdef Q_OS_WIN
QString finishCmd = QApplication::applicationFilePath();
#elif defined Q_OS_LINUX
- QString finishCmd = FS::PathCombine(m_root, "MultiMC");
+ QString finishCmd = FS::PathCombine(m_root, BuildConfig.LAUNCHER_NAME);
#elif defined Q_OS_MAC
QString finishCmd = QApplication::applicationFilePath();
#else
@@ -127,8 +130,9 @@ void UpdateController::installUpdates()
case GoUpdate::Operation::OP_REPLACE:
{
#ifdef Q_OS_WIN32
+ QString windowsExeName = BuildConfig.LAUNCHER_NAME + ".exe";
// hack for people renaming the .exe because ... reasons :)
- if(op.destination == "MultiMC.exe")
+ if(op.destination == windowsExeName)
{
op.destination = QFileInfo(QApplication::applicationFilePath()).fileName();
}
@@ -137,7 +141,7 @@ void UpdateController::installUpdates()
#ifdef Q_OS_WIN32
if(QSysInfo::windowsVersion() < QSysInfo::WV_VISTA)
{
- if(destination.fileName() == "MultiMC.exe")
+ if(destination.fileName() == windowsExeName)
{
QDir rootDir(m_root);
exeOrigin = rootDir.relativeFilePath(op.source);
@@ -365,16 +369,20 @@ void UpdateController::fail()
{
case Replace:
{
- msg = QObject::tr("Couldn't replace file %1. Changes will be reverted.\n"
- "See the MultiMC log file for details.").arg(m_failedFile);
+ msg = QObject::tr(
+ "Couldn't replace file %1. Changes will be reverted.\n"
+ "See the %2 log file for details."
+ ).arg(m_failedFile, BuildConfig.LAUNCHER_NAME);
doRollback = true;
QMessageBox::critical(m_parent, failTitle, msg);
break;
}
case Delete:
{
- msg = QObject::tr("Couldn't remove file %1. Changes will be reverted.\n"
- "See the MultiMC log file for details.").arg(m_failedFile);
+ msg = QObject::tr(
+ "Couldn't remove file %1. Changes will be reverted.\n"
+ "See the %2 log file for details."
+ ).arg(m_failedFile, BuildConfig.LAUNCHER_NAME);
doRollback = true;
QMessageBox::critical(m_parent, failTitle, msg);
break;
@@ -404,8 +412,8 @@ void UpdateController::fail()
if(!rollbackOK)
{
msg = QObject::tr("The rollback failed too.\n"
- "You will have to repair MultiMC manually.\n"
- "Please let us know why and how this happened.").arg(m_failedFile);
+ "You will have to repair %1 manually.\n"
+ "Please let us know why and how this happened.").arg(BuildConfig.LAUNCHER_NAME);
QMessageBox::critical(m_parent, rollFailTitle, msg);
qApp->quit();
}
diff --git a/launcher/VersionProxyModel.cpp b/launcher/VersionProxyModel.cpp
index 5587136f..12f9bdd8 100644
--- a/launcher/VersionProxyModel.cpp
+++ b/launcher/VersionProxyModel.cpp
@@ -1,5 +1,5 @@
#include "VersionProxyModel.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include <QSortFilterProxyModel>
#include <QPixmapCache>
#include <Version.h>
@@ -194,19 +194,19 @@ QVariant VersionProxyModel::data(const QModelIndex &index, int role) const
auto value = sourceModel()->data(parentIndex, BaseVersionList::RecommendedRole);
if(value.toBool())
{
- return MMC->getThemedIcon("star");
+ return LAUNCHER->getThemedIcon("star");
}
else if(hasLatest)
{
auto value = sourceModel()->data(parentIndex, BaseVersionList::LatestRole);
if(value.toBool())
{
- return MMC->getThemedIcon("bug");
+ return LAUNCHER->getThemedIcon("bug");
}
}
else if(index.row() == 0)
{
- return MMC->getThemedIcon("bug");
+ return LAUNCHER->getThemedIcon("bug");
}
auto pixmap = QPixmapCache::find("placeholder");
if(!pixmap)
diff --git a/launcher/dialogs/AboutDialog.cpp b/launcher/dialogs/AboutDialog.cpp
index c97c471e..0c3f07db 100644
--- a/launcher/dialogs/AboutDialog.cpp
+++ b/launcher/dialogs/AboutDialog.cpp
@@ -16,7 +16,7 @@
#include "AboutDialog.h"
#include "ui_AboutDialog.h"
#include <QIcon>
-#include "MultiMC.h"
+#include "Launcher.h"
#include "BuildConfig.h"
#include <net/NetJob.h>
@@ -31,9 +31,10 @@ QString getCreditsHtml(QStringList patrons)
QString patronsHeading = QObject::tr("Patrons", "About Credits");
QString output;
QTextStream stream(&output);
+ stream.setCodec(QTextCodec::codecForName("UTF-8"));
stream << "<center>\n";
// TODO: possibly retrieve from git history at build time?
- stream << "<h3>" << QObject::tr("MultiMC Developers", "About Credits") << "</h3>\n";
+ stream << "<h3>" << QObject::tr("Developers", "About Credits") << "</h3>\n";
stream << "<p>Andrew Okin &lt;<a href='mailto:forkk@forkk.net'>forkk@forkk.net</a>&gt;</p>\n";
stream << "<p>Petr Mrázek &lt;<a href='mailto:peterix@gmail.com'>peterix@gmail.com</a>&gt;</p>\n";
stream << "<p>Sky Welch &lt;<a href='mailto:multimc@bunnies.io'>multimc@bunnies.io</a>&gt;</p>\n";
@@ -75,6 +76,10 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDia
{
ui->setupUi(this);
+ QString launcherName = BuildConfig.LAUNCHER_NAME;
+
+ setWindowTitle(tr("About %1").arg(launcherName));
+
QString chtml = getCreditsHtml(QStringList());
ui->creditsText->setHtml(chtml);
@@ -83,8 +88,8 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDia
ui->urlLabel->setOpenExternalLinks(true);
- ui->icon->setPixmap(MMC->getThemedIcon("logo").pixmap(64));
- ui->title->setText("MultiMC 5");
+ ui->icon->setPixmap(LAUNCHER->getThemedIcon("logo").pixmap(64));
+ ui->title->setText(launcherName);
ui->versionLabel->setText(tr("Version") +": " + BuildConfig.printableVersionString());
ui->platformLabel->setText(tr("Platform") +": " + BuildConfig.BUILD_PLATFORM);
@@ -108,6 +113,12 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDia
"However, it should be abundantly clear that the project is a fork <b>without</b> implying that you have our blessing.</p>"
));
+ QString urlText("<html><head/><body><p><a href=\"%1\">%1</a></p></body></html>");
+ ui->urlLabel->setText(urlText.arg(BuildConfig.LAUNCHER_GIT));
+
+ QString copyText("© 2012-2021 %1");
+ ui->copyLabel->setText(copyText.arg(BuildConfig.LAUNCHER_COPYRIGHT));
+
connect(ui->closeButton, SIGNAL(clicked()), SLOT(close()));
connect(ui->aboutQt, &QPushButton::clicked, &QApplication::aboutQt);
diff --git a/launcher/dialogs/AboutDialog.ui b/launcher/dialogs/AboutDialog.ui
index c6de9ebb..422e877b 100644
--- a/launcher/dialogs/AboutDialog.ui
+++ b/launcher/dialogs/AboutDialog.ui
@@ -16,9 +16,6 @@
<height>400</height>
</size>
</property>
- <property name="windowTitle">
- <string>About MultiMC</string>
- </property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
@@ -101,19 +98,30 @@
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
- <widget class="QLabel" name="versionLabel">
+ <widget class="QLabel" name="aboutLabel">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
<property name="text">
- <string>Version:</string>
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;A custom launcher that makes managing Minecraft easier by allowing you to have multiple instances of Minecraft at once.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
</widget>
</item>
<item>
- <widget class="QLabel" name="platformLabel">
+ <widget class="QLabel" name="urlLabel">
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
<property name="text">
- <string>Platform:</string>
+ <string notr="true">GIT URL</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -121,9 +129,15 @@
</widget>
</item>
<item>
- <widget class="QLabel" name="buildNumLabel">
+ <widget class="QLabel" name="copyLabel">
+ <property name="font">
+ <font>
+ <pointsize>8</pointsize>
+ <kerning>true</kerning>
+ </font>
+ </property>
<property name="text">
- <string>Build Number:</string>
+ <string notr="true">COPYRIGHT</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -131,9 +145,16 @@
</widget>
</item>
<item>
- <widget class="QLabel" name="channelLabel">
+ <widget class="Line" name="line">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="versionLabel">
<property name="text">
- <string>Channel:</string>
+ <string>Version:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -141,31 +162,19 @@
</widget>
</item>
<item>
- <widget class="QLabel" name="aboutLabel">
- <property name="enabled">
- <bool>true</bool>
- </property>
+ <widget class="QLabel" name="platformLabel">
<property name="text">
- <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;MultiMC is a custom launcher that makes managing Minecraft easier by allowing you to have multiple instances of Minecraft at once.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ <string>Platform:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
- <property name="wordWrap">
- <bool>true</bool>
- </property>
</widget>
</item>
<item>
- <widget class="QLabel" name="copyLabel">
- <property name="font">
- <font>
- <pointsize>8</pointsize>
- <kerning>true</kerning>
- </font>
- </property>
+ <widget class="QLabel" name="buildNumLabel">
<property name="text">
- <string>© 2012-2021 MultiMC Contributors</string>
+ <string>Build Number:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -173,14 +182,9 @@
</widget>
</item>
<item>
- <widget class="QLabel" name="urlLabel">
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
+ <widget class="QLabel" name="channelLabel">
<property name="text">
- <string notr="true">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/MultiMC/MultiMC5&quot;&gt;https://github.com/MultiMC/MultiMC5&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ <string>Channel:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
diff --git a/launcher/dialogs/CopyInstanceDialog.cpp b/launcher/dialogs/CopyInstanceDialog.cpp
index 5fe90334..802016d9 100644
--- a/launcher/dialogs/CopyInstanceDialog.cpp
+++ b/launcher/dialogs/CopyInstanceDialog.cpp
@@ -16,7 +16,7 @@
#include <QLayout>
#include <QPushButton>
-#include "MultiMC.h"
+#include "Launcher.h"
#include "CopyInstanceDialog.h"
#include "ui_CopyInstanceDialog.h"
@@ -36,16 +36,16 @@ CopyInstanceDialog::CopyInstanceDialog(InstancePtr original, QWidget *parent)
layout()->setSizeConstraint(QLayout::SetFixedSize);
InstIconKey = original->iconKey();
- ui->iconButton->setIcon(MMC->icons()->getIcon(InstIconKey));
+ ui->iconButton->setIcon(LAUNCHER->icons()->getIcon(InstIconKey));
ui->instNameTextBox->setText(original->name());
ui->instNameTextBox->setFocus();
- auto groups = MMC->instances()->getGroups().toSet();
+ auto groups = LAUNCHER->instances()->getGroups().toSet();
auto groupList = QStringList(groups.toList());
groupList.sort(Qt::CaseInsensitive);
groupList.removeOne("");
groupList.push_front("");
ui->groupBox->addItems(groupList);
- int index = groupList.indexOf(MMC->instances()->getInstanceGroup(m_original->id()));
+ int index = groupList.indexOf(LAUNCHER->instances()->getInstanceGroup(m_original->id()));
if(index == -1)
{
index = 0;
@@ -99,7 +99,7 @@ void CopyInstanceDialog::on_iconButton_clicked()
if (dlg.result() == QDialog::Accepted)
{
InstIconKey = dlg.selectedIconKey;
- ui->iconButton->setIcon(MMC->icons()->getIcon(InstIconKey));
+ ui->iconButton->setIcon(LAUNCHER->icons()->getIcon(InstIconKey));
}
}
diff --git a/launcher/dialogs/CopyInstanceDialog.ui b/launcher/dialogs/CopyInstanceDialog.ui
index fa675455..f4b191e2 100644
--- a/launcher/dialogs/CopyInstanceDialog.ui
+++ b/launcher/dialogs/CopyInstanceDialog.ui
@@ -43,7 +43,7 @@
<widget class="QToolButton" name="iconButton">
<property name="icon">
<iconset>
- <normaloff>:/icons/instances/infinity</normaloff>:/icons/instances/infinity</iconset>
+ <normaloff>:/icons/instances/grass</normaloff>:/icons/instances/grass</iconset>
</property>
<property name="iconSize">
<size>
diff --git a/launcher/dialogs/ExportInstanceDialog.cpp b/launcher/dialogs/ExportInstanceDialog.cpp
index a42779d4..639b7043 100644
--- a/launcher/dialogs/ExportInstanceDialog.cpp
+++ b/launcher/dialogs/ExportInstanceDialog.cpp
@@ -27,7 +27,7 @@
#include <QSaveFile>
#include "MMCStrings.h"
#include "SeparatorPrefixTree.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include <icons/IconList.h>
#include <FileSystem.h>
@@ -341,7 +341,7 @@ ExportInstanceDialog::~ExportInstanceDialog()
void SaveIcon(InstancePtr m_instance)
{
auto iconKey = m_instance->iconKey();
- auto iconList = MMC->icons();
+ auto iconList = LAUNCHER->icons();
auto mmcIcon = iconList->icon(iconKey);
if(!mmcIcon || mmcIcon->isBuiltIn()) {
return;
diff --git a/launcher/dialogs/IconPickerDialog.cpp b/launcher/dialogs/IconPickerDialog.cpp
index 90436554..3878d8e3 100644
--- a/launcher/dialogs/IconPickerDialog.cpp
+++ b/launcher/dialogs/IconPickerDialog.cpp
@@ -17,7 +17,7 @@
#include <QPushButton>
#include <QFileDialog>
-#include "MultiMC.h"
+#include "Launcher.h"
#include "IconPickerDialog.h"
#include "ui_IconPickerDialog.h"
@@ -59,7 +59,7 @@ IconPickerDialog::IconPickerDialog(QWidget *parent)
contentsWidget->installEventFilter(this);
- contentsWidget->setModel(MMC->icons().get());
+ contentsWidget->setModel(LAUNCHER->icons().get());
// NOTE: ResetRole forces the button to be on the left, while the OK/Cancel ones are on the right. We win.
auto buttonAdd = ui->buttonBox->addButton(tr("Add Icon"), QDialogButtonBox::ResetRole);
@@ -106,12 +106,12 @@ void IconPickerDialog::addNewIcon()
//: The type of icon files
auto filter = IconUtils::getIconFilter();
QStringList fileNames = QFileDialog::getOpenFileNames(this, selectIcons, QString(), tr("Icons %1").arg(filter));
- MMC->icons()->installIcons(fileNames);
+ LAUNCHER->icons()->installIcons(fileNames);
}
void IconPickerDialog::removeSelectedIcon()
{
- MMC->icons()->deleteIcon(selectedIconKey);
+ LAUNCHER->icons()->deleteIcon(selectedIconKey);
}
void IconPickerDialog::activated(QModelIndex index)
@@ -132,7 +132,7 @@ void IconPickerDialog::selectionChanged(QItemSelection selected, QItemSelection
int IconPickerDialog::execWithSelection(QString selection)
{
- auto list = MMC->icons();
+ auto list = LAUNCHER->icons();
auto contentsWidget = ui->iconView;
selectedIconKey = selection;
@@ -159,5 +159,5 @@ IconPickerDialog::~IconPickerDialog()
void IconPickerDialog::openFolder()
{
- DesktopServices::openDirectory(MMC->icons()->getDirectory(), true);
+ DesktopServices::openDirectory(LAUNCHER->icons()->getDirectory(), true);
}
diff --git a/launcher/dialogs/NewComponentDialog.cpp b/launcher/dialogs/NewComponentDialog.cpp
index f4d6274f..1cea54f4 100644
--- a/launcher/dialogs/NewComponentDialog.cpp
+++ b/launcher/dialogs/NewComponentDialog.cpp
@@ -13,7 +13,7 @@
* limitations under the License.
*/
-#include "MultiMC.h"
+#include "Launcher.h"
#include "NewComponentDialog.h"
#include "ui_NewComponentDialog.h"
@@ -46,7 +46,7 @@ NewComponentDialog::NewComponentDialog(const QString & initialName, const QStrin
connect(ui->nameTextBox, &QLineEdit::textChanged, this, &NewComponentDialog::updateDialogState);
connect(ui->uidTextBox, &QLineEdit::textChanged, this, &NewComponentDialog::updateDialogState);
- auto groups = MMC->instances()->getGroups().toSet();
+ auto groups = LAUNCHER->instances()->getGroups().toSet();
ui->nameTextBox->setFocus();
originalPlaceholderText = ui->uidTextBox->placeholderText();
diff --git a/launcher/dialogs/NewInstanceDialog.cpp b/launcher/dialogs/NewInstanceDialog.cpp
index 86963149..d18eb3d5 100644
--- a/launcher/dialogs/NewInstanceDialog.cpp
+++ b/launcher/dialogs/NewInstanceDialog.cpp
@@ -13,7 +13,7 @@
* limitations under the License.
*/
-#include "MultiMC.h"
+#include "Launcher.h"
#include "NewInstanceDialog.h"
#include "ui_NewInstanceDialog.h"
@@ -48,12 +48,12 @@ NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString
{
ui->setupUi(this);
- setWindowIcon(MMC->getThemedIcon("new"));
+ setWindowIcon(LAUNCHER->getThemedIcon("new"));
InstIconKey = "default";
- ui->iconButton->setIcon(MMC->icons()->getIcon(InstIconKey));
+ ui->iconButton->setIcon(LAUNCHER->icons()->getIcon(InstIconKey));
- auto groups = MMC->instances()->getGroups().toSet();
+ auto groups = LAUNCHER->instances()->getGroups().toSet();
auto groupList = QStringList(groups.toList());
groupList.sort(Qt::CaseInsensitive);
groupList.removeOne("");
@@ -105,18 +105,18 @@ NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString
updateDialogState();
- restoreGeometry(QByteArray::fromBase64(MMC->settings()->get("NewInstanceGeometry").toByteArray()));
+ restoreGeometry(QByteArray::fromBase64(LAUNCHER->settings()->get("NewInstanceGeometry").toByteArray()));
}
void NewInstanceDialog::reject()
{
- MMC->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
+ LAUNCHER->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
QDialog::reject();
}
void NewInstanceDialog::accept()
{
- MMC->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
+ LAUNCHER->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
importIconNow();
QDialog::accept();
}
@@ -155,7 +155,7 @@ void NewInstanceDialog::setSuggestedPack(const QString& name, InstanceTask* task
if(!task)
{
- ui->iconButton->setIcon(MMC->icons()->getIcon("default"));
+ ui->iconButton->setIcon(LAUNCHER->icons()->getIcon("default"));
importIcon = false;
}
@@ -175,7 +175,7 @@ void NewInstanceDialog::setSuggestedIconFromFile(const QString &path, const QStr
void NewInstanceDialog::setSuggestedIcon(const QString &key)
{
- auto icon = MMC->icons()->getIcon(key);
+ auto icon = LAUNCHER->icons()->getIcon(key);
importIcon = false;
ui->iconButton->setIcon(icon);
@@ -234,7 +234,7 @@ void NewInstanceDialog::on_iconButton_clicked()
if (dlg.result() == QDialog::Accepted)
{
InstIconKey = dlg.selectedIconKey;
- ui->iconButton->setIcon(MMC->icons()->getIcon(InstIconKey));
+ ui->iconButton->setIcon(LAUNCHER->icons()->getIcon(InstIconKey));
importIcon = false;
}
}
@@ -247,9 +247,9 @@ void NewInstanceDialog::on_instNameTextBox_textChanged(const QString &arg1)
void NewInstanceDialog::importIconNow()
{
if(importIcon) {
- MMC->icons()->installIcon(importIconPath, importIconName);
+ LAUNCHER->icons()->installIcon(importIconPath, importIconName);
InstIconKey = importIconName;
importIcon = false;
}
- MMC->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
+ LAUNCHER->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
}
diff --git a/launcher/dialogs/ProfileSelectDialog.cpp b/launcher/dialogs/ProfileSelectDialog.cpp
index e2ad73e4..1082748f 100644
--- a/launcher/dialogs/ProfileSelectDialog.cpp
+++ b/launcher/dialogs/ProfileSelectDialog.cpp
@@ -23,14 +23,14 @@
#include <dialogs/ProgressDialog.h>
-#include <MultiMC.h>
+#include <Launcher.h>
ProfileSelectDialog::ProfileSelectDialog(const QString &message, int flags, QWidget *parent)
: QDialog(parent), ui(new Ui::ProfileSelectDialog)
{
ui->setupUi(this);
- m_accounts = MMC->accounts();
+ m_accounts = LAUNCHER->accounts();
auto view = ui->listView;
//view->setModel(m_accounts.get());
//view->hideColumn(AccountList::ActiveColumn);
diff --git a/launcher/dialogs/UpdateDialog.cpp b/launcher/dialogs/UpdateDialog.cpp
index 2baaf5e9..ca3bd915 100644
--- a/launcher/dialogs/UpdateDialog.cpp
+++ b/launcher/dialogs/UpdateDialog.cpp
@@ -1,7 +1,7 @@
#include "UpdateDialog.h"
#include "ui_UpdateDialog.h"
#include <QDebug>
-#include "MultiMC.h"
+#include "Launcher.h"
#include <settings/SettingsObject.h>
#include <Json.h>
@@ -11,7 +11,7 @@
UpdateDialog::UpdateDialog(bool hasUpdate, QWidget *parent) : QDialog(parent), ui(new Ui::UpdateDialog)
{
ui->setupUi(this);
- auto channel = MMC->settings()->get("UpdateChannel").toString();
+ auto channel = LAUNCHER->settings()->get("UpdateChannel").toString();
if(hasUpdate)
{
ui->label->setText(tr("A new %1 update is available!").arg(channel));
@@ -24,7 +24,7 @@ UpdateDialog::UpdateDialog(bool hasUpdate, QWidget *parent) : QDialog(parent), u
}
ui->changelogBrowser->setHtml(tr("<center><h1>Loading changelog...</h1></center>"));
loadChangelog();
- restoreGeometry(QByteArray::fromBase64(MMC->settings()->get("UpdateDialogGeometry").toByteArray()));
+ restoreGeometry(QByteArray::fromBase64(LAUNCHER->settings()->get("UpdateDialogGeometry").toByteArray()));
}
UpdateDialog::~UpdateDialog()
@@ -33,17 +33,17 @@ UpdateDialog::~UpdateDialog()
void UpdateDialog::loadChangelog()
{
- auto channel = MMC->settings()->get("UpdateChannel").toString();
+ auto channel = LAUNCHER->settings()->get("UpdateChannel").toString();
dljob.reset(new NetJob("Changelog"));
QString url;
if(channel == "stable")
{
- url = QString("https://raw.githubusercontent.com/MultiMC/MultiMC5/%1/changelog.md").arg(channel);
+ url = QString("https://raw.githubusercontent.com/MultiMC/Launcher/%1/changelog.md").arg(channel);
m_changelogType = CHANGELOG_MARKDOWN;
}
else
{
- url = QString("https://api.github.com/repos/MultiMC/MultiMC5/compare/%1...%2").arg(BuildConfig.GIT_COMMIT, channel);
+ url = QString("https://api.github.com/repos/MultiMC/Launcher/compare/%1...%2").arg(BuildConfig.GIT_COMMIT, channel);
m_changelogType = CHANGELOG_COMMITS;
}
dljob->addNetAction(Net::Download::makeByteArray(QUrl(url), &changelogData));
@@ -58,14 +58,14 @@ QString reprocessMarkdown(QByteArray markdown)
QString output = hoedown.process(markdown);
// HACK: easier than customizing hoedown
- output.replace(QRegExp("GH-([0-9]+)"), "<a href=\"https://github.com/MultiMC/MultiMC5/issues/\\1\">GH-\\1</a>");
+ output.replace(QRegExp("GH-([0-9]+)"), "<a href=\"https://github.com/MultiMC/Launcher/issues/\\1\">GH-\\1</a>");
qDebug() << output;
return output;
}
QString reprocessCommits(QByteArray json)
{
- auto channel = MMC->settings()->get("UpdateChannel").toString();
+ auto channel = LAUNCHER->settings()->get("UpdateChannel").toString();
try
{
QString result;
@@ -100,7 +100,7 @@ QString reprocessCommits(QByteArray json)
result += "<tr><td>";
if(issuenr.length())
{
- result += QString("<a href=\"https://github.com/MultiMC/MultiMC5/issues/%1\">GH-%2</a>").arg(issuenr, issuenr);
+ result += QString("<a href=\"https://github.com/MultiMC/Launcher/issues/%1\">GH-%2</a>").arg(issuenr, issuenr);
}
else if(prefix.length())
{
@@ -177,6 +177,6 @@ void UpdateDialog::on_btnUpdateNow_clicked()
void UpdateDialog::closeEvent(QCloseEvent* evt)
{
- MMC->settings()->set("UpdateDialogGeometry", saveGeometry().toBase64());
+ LAUNCHER->settings()->set("UpdateDialogGeometry", saveGeometry().toBase64());
QDialog::closeEvent(evt);
}
diff --git a/launcher/dialogs/VersionSelectDialog.cpp b/launcher/dialogs/VersionSelectDialog.cpp
index ed1210ba..82eb70f4 100644
--- a/launcher/dialogs/VersionSelectDialog.cpp
+++ b/launcher/dialogs/VersionSelectDialog.cpp
@@ -28,7 +28,7 @@
#include <BaseVersionList.h>
#include <tasks/Task.h>
#include <QDebug>
-#include "MultiMC.h"
+#include "Launcher.h"
#include <VersionProxyModel.h>
#include <widgets/VersionSelectWidget.h>
diff --git a/launcher/icons/IconList.cpp b/launcher/icons/IconList.cpp
index 70350534..584edd69 100644
--- a/launcher/icons/IconList.cpp
+++ b/launcher/icons/IconList.cpp
@@ -395,7 +395,7 @@ QIcon IconList::getIcon(const QString &key) const
return icons[icon_index].icon();
// Fallback for icons that don't exist.
- icon_index = getIconIndex("infinity");
+ icon_index = getIconIndex("grass");
if (icon_index != -1)
return icons[icon_index].icon();
@@ -404,7 +404,7 @@ QIcon IconList::getIcon(const QString &key) const
int IconList::getIconIndex(const QString &key) const
{
- auto iter = name_index.find(key == "default" ? "infinity" : key);
+ auto iter = name_index.find(key == "default" ? "grass" : key);
if (iter != name_index.end())
return *iter;
diff --git a/launcher/java/launch/CheckJava.cpp b/launcher/java/launch/CheckJava.cpp
index f58602f0..fb338231 100644
--- a/launcher/java/launch/CheckJava.cpp
+++ b/launcher/java/launch/CheckJava.cpp
@@ -48,7 +48,7 @@ void CheckJava::executeTask()
}
else
{
- emit logLine("Java path is:\n" + m_javaPath + "\n\n", MessageLevel::MultiMC);
+ emit logLine("Java path is:\n" + m_javaPath + "\n\n", MessageLevel::Launcher);
}
QFileInfo javaInfo(realJavaPath);
@@ -62,7 +62,7 @@ void CheckJava::executeTask()
if (javaUnixTime != storedUnixTime || storedVersion.size() == 0 || storedArchitecture.size() == 0 || storedVendor.size() == 0)
{
m_JavaChecker = new JavaChecker();
- emit logLine(QString("Checking Java version..."), MessageLevel::MultiMC);
+ emit logLine(QString("Checking Java version..."), MessageLevel::Launcher);
connect(m_JavaChecker.get(), &JavaChecker::checkFinished, this, &CheckJava::checkJavaFinished);
m_JavaChecker->m_path = realJavaPath;
m_JavaChecker->performCheck();
@@ -87,7 +87,7 @@ void CheckJava::checkJavaFinished(JavaCheckResult result)
// Error message displayed if java can't start
emit logLine(QString("Could not start java:"), MessageLevel::Error);
emit logLines(result.errorLog.split('\n'), MessageLevel::Error);
- emit logLine("\nCheck your MultiMC Java settings.", MessageLevel::MultiMC);
+ emit logLine("\nCheck your MultiMC Java settings.", MessageLevel::Launcher);
printSystemInfo(false, false);
emitFailed(QString("Could not start java!"));
return;
@@ -96,7 +96,7 @@ void CheckJava::checkJavaFinished(JavaCheckResult result)
{
emit logLine(QString("Java checker returned some invalid data MultiMC doesn't understand:"), MessageLevel::Error);
emit logLines(result.outLog.split('\n'), MessageLevel::Warning);
- emit logLine("\nMinecraft might not start properly.", MessageLevel::MultiMC);
+ emit logLine("\nMinecraft might not start properly.", MessageLevel::Launcher);
printSystemInfo(false, false);
emitSucceeded();
return;
@@ -117,7 +117,7 @@ void CheckJava::checkJavaFinished(JavaCheckResult result)
void CheckJava::printJavaInfo(const QString& version, const QString& architecture, const QString & vendor)
{
- emit logLine(QString("Java is version %1, using %2-bit architecture, from %3.\n\n").arg(version, architecture, vendor), MessageLevel::MultiMC);
+ emit logLine(QString("Java is version %1, using %2-bit architecture, from %3.\n\n").arg(version, architecture, vendor), MessageLevel::Launcher);
printSystemInfo(true, architecture == "64");
}
diff --git a/launcher/launch/LaunchTask.h b/launcher/launch/LaunchTask.h
index ae81462f..a1e891ac 100644
--- a/launcher/launch/LaunchTask.h
+++ b/launcher/launch/LaunchTask.h
@@ -103,8 +103,8 @@ signals:
void requestLogging();
public slots:
- void onLogLines(const QStringList& lines, MessageLevel::Enum defaultLevel = MessageLevel::MultiMC);
- void onLogLine(QString line, MessageLevel::Enum defaultLevel = MessageLevel::MultiMC);
+ void onLogLines(const QStringList& lines, MessageLevel::Enum defaultLevel = MessageLevel::Launcher);
+ void onLogLine(QString line, MessageLevel::Enum defaultLevel = MessageLevel::Launcher);
void onReadyForLaunch();
void onStepFinished();
void onProgressReportingRequested();
diff --git a/launcher/launch/steps/LookupServerAddress.cpp b/launcher/launch/steps/LookupServerAddress.cpp
index de56c28a..c7b8cea4 100644
--- a/launcher/launch/steps/LookupServerAddress.cpp
+++ b/launcher/launch/steps/LookupServerAddress.cpp
@@ -60,7 +60,7 @@ void LookupServerAddress::on_dnsLookupFinished()
if (m_dnsLookup->error() != QDnsLookup::NoError)
{
emit logLine(QString("Failed to resolve server address (this is NOT an error!) %1: %2\n")
- .arg(m_dnsLookup->name(), m_dnsLookup->errorString()), MessageLevel::MultiMC);
+ .arg(m_dnsLookup->name(), m_dnsLookup->errorString()), MessageLevel::Launcher);
resolve(m_lookupAddress, 25565); // Technically the task failed, however, we don't abort the launch
// and leave it up to minecraft to fail (or maybe not) when connecting
return;
@@ -81,7 +81,7 @@ void LookupServerAddress::on_dnsLookupFinished()
quint16 port = firstRecord.port();
emit logLine(QString("Resolved server address %1 to %2 with port %3\n").arg(
- m_dnsLookup->name(), firstRecord.target(), QString::number(port)),MessageLevel::MultiMC);
+ m_dnsLookup->name(), firstRecord.target(), QString::number(port)),MessageLevel::Launcher);
resolve(firstRecord.target(), port);
}
diff --git a/launcher/launch/steps/PostLaunchCommand.cpp b/launcher/launch/steps/PostLaunchCommand.cpp
index d48d03d1..143eb441 100644
--- a/launcher/launch/steps/PostLaunchCommand.cpp
+++ b/launcher/launch/steps/PostLaunchCommand.cpp
@@ -28,7 +28,7 @@ PostLaunchCommand::PostLaunchCommand(LaunchTask *parent) : LaunchStep(parent)
void PostLaunchCommand::executeTask()
{
QString postlaunch_cmd = m_parent->substituteVariables(m_command);
- emit logLine(tr("Running Post-Launch command: %1").arg(postlaunch_cmd), MessageLevel::MultiMC);
+ emit logLine(tr("Running Post-Launch command: %1").arg(postlaunch_cmd), MessageLevel::Launcher);
m_process.start(postlaunch_cmd);
}
@@ -59,7 +59,7 @@ void PostLaunchCommand::on_state(LoggedProcess::State state)
}
else
{
- emit logLine(tr("Post-Launch command ran successfully.\n\n"), MessageLevel::MultiMC);
+ emit logLine(tr("Post-Launch command ran successfully.\n\n"), MessageLevel::Launcher);
emitSucceeded();
}
}
diff --git a/launcher/launch/steps/PreLaunchCommand.cpp b/launcher/launch/steps/PreLaunchCommand.cpp
index 20e089e2..1a0889c8 100644
--- a/launcher/launch/steps/PreLaunchCommand.cpp
+++ b/launcher/launch/steps/PreLaunchCommand.cpp
@@ -29,7 +29,7 @@ void PreLaunchCommand::executeTask()
{
//FIXME: where to put this?
QString prelaunch_cmd = m_parent->substituteVariables(m_command);
- emit logLine(tr("Running Pre-Launch command: %1").arg(prelaunch_cmd), MessageLevel::MultiMC);
+ emit logLine(tr("Running Pre-Launch command: %1").arg(prelaunch_cmd), MessageLevel::Launcher);
m_process.start(prelaunch_cmd);
}
@@ -60,7 +60,7 @@ void PreLaunchCommand::on_state(LoggedProcess::State state)
}
else
{
- emit logLine(tr("Pre-Launch command ran successfully.\n\n"), MessageLevel::MultiMC);
+ emit logLine(tr("Pre-Launch command ran successfully.\n\n"), MessageLevel::Launcher);
emitSucceeded();
}
}
diff --git a/launcher/main.cpp b/launcher/main.cpp
index b0360c7e..3c2b9445 100644
--- a/launcher/main.cpp
+++ b/launcher/main.cpp
@@ -1,4 +1,4 @@
-#include "MultiMC.h"
+#include "Launcher.h"
#include "MainWindow.h"
#include "LaunchController.h"
#include <InstanceList.h>
@@ -34,15 +34,17 @@ int main(int argc, char *argv[])
#endif
// initialize Qt
- MultiMC app(argc, argv);
+ Launcher app(argc, argv);
switch (app.status())
{
- case MultiMC::StartingUp:
- case MultiMC::Initialized:
+ case Launcher::StartingUp:
+ case Launcher::Initialized:
{
Q_INIT_RESOURCE(multimc);
Q_INIT_RESOURCE(backgrounds);
+ Q_INIT_RESOURCE(documents);
+ Q_INIT_RESOURCE(logo);
Q_INIT_RESOURCE(pe_dark);
Q_INIT_RESOURCE(pe_light);
@@ -53,9 +55,9 @@ int main(int argc, char *argv[])
Q_INIT_RESOURCE(flat);
return app.exec();
}
- case MultiMC::Failed:
+ case Launcher::Failed:
return 1;
- case MultiMC::Succeeded:
+ case Launcher::Succeeded:
return 0;
}
}
diff --git a/launcher/minecraft/MinecraftInstance.cpp b/launcher/minecraft/MinecraftInstance.cpp
index f86269f0..11c4dec1 100644
--- a/launcher/minecraft/MinecraftInstance.cpp
+++ b/launcher/minecraft/MinecraftInstance.cpp
@@ -838,7 +838,7 @@ shared_qobject_ptr<LaunchTask> MinecraftInstance::createLaunchTask(AuthSessionPt
// print a header
{
- process->appendStep(new TextPrint(pptr, "Minecraft folder is:\n" + gameRoot() + "\n\n", MessageLevel::MultiMC));
+ process->appendStep(new TextPrint(pptr, "Minecraft folder is:\n" + gameRoot() + "\n\n", MessageLevel::Launcher));
}
// check java
diff --git a/launcher/minecraft/MojangVersionFormat.cpp b/launcher/minecraft/MojangVersionFormat.cpp
index f9cb2228..ff5409fd 100644
--- a/launcher/minecraft/MojangVersionFormat.cpp
+++ b/launcher/minecraft/MojangVersionFormat.cpp
@@ -5,6 +5,7 @@
#include "Json.h"
using namespace Json;
#include "ParseUtils.h"
+#include <BuildConfig.h>
static const int CURRENT_MINIMUM_LAUNCHER_VERSION = 18;
@@ -175,9 +176,11 @@ void MojangVersionFormat::readVersionProperties(const QJsonObject &in, VersionFi
{
out->addProblem(
ProblemSeverity::Warning,
- QObject::tr("The 'minimumLauncherVersion' value of this version (%1) is higher than supported by MultiMC (%2). It might not work properly!")
+ QObject::tr("The 'minimumLauncherVersion' value of this version (%1) is higher than supported by %3 (%2). It might not work properly!")
.arg(out->minimumLauncherVersion)
- .arg(CURRENT_MINIMUM_LAUNCHER_VERSION));
+ .arg(CURRENT_MINIMUM_LAUNCHER_VERSION)
+ .arg(BuildConfig.LAUNCHER_NAME)
+ );
}
}
if(in.contains("downloads"))
diff --git a/launcher/minecraft/OneSixVersionFormat.cpp b/launcher/minecraft/OneSixVersionFormat.cpp
index 0329d70e..2572c39e 100644
--- a/launcher/minecraft/OneSixVersionFormat.cpp
+++ b/launcher/minecraft/OneSixVersionFormat.cpp
@@ -16,11 +16,11 @@ static void readString(const QJsonObject &root, const QString &key, QString &var
LibraryPtr OneSixVersionFormat::libraryFromJson(ProblemContainer & problems, const QJsonObject &libObj, const QString &filename)
{
LibraryPtr out = MojangVersionFormat::libraryFromJson(problems, libObj, filename);
- readString(libObj, "MMC-hint", out->m_hint);
- readString(libObj, "MMC-absulute_url", out->m_absoluteURL);
- readString(libObj, "MMC-absoluteUrl", out->m_absoluteURL);
- readString(libObj, "MMC-filename", out->m_filename);
- readString(libObj, "MMC-displayname", out->m_displayname);
+ readString(libObj, "LAUNCHER-hint", out->m_hint);
+ readString(libObj, "LAUNCHER-absulute_url", out->m_absoluteURL);
+ readString(libObj, "LAUNCHER-absoluteUrl", out->m_absoluteURL);
+ readString(libObj, "LAUNCHER-filename", out->m_filename);
+ readString(libObj, "LAUNCHER-displayname", out->m_displayname);
return out;
}
@@ -28,13 +28,13 @@ QJsonObject OneSixVersionFormat::libraryToJson(Library *library)
{
QJsonObject libRoot = MojangVersionFormat::libraryToJson(library);
if (library->m_absoluteURL.size())
- libRoot.insert("MMC-absoluteUrl", library->m_absoluteURL);
+ libRoot.insert("LAUNCHER-absoluteUrl", library->m_absoluteURL);
if (library->m_hint.size())
- libRoot.insert("MMC-hint", library->m_hint);
+ libRoot.insert("LAUNCHER-hint", library->m_hint);
if (library->m_filename.size())
- libRoot.insert("MMC-filename", library->m_filename);
+ libRoot.insert("LAUNCHER-filename", library->m_filename);
if (library->m_displayname.size())
- libRoot.insert("MMC-displayname", library->m_displayname);
+ libRoot.insert("LAUNCHER-displayname", library->m_displayname);
return libRoot;
}
diff --git a/launcher/minecraft/auth/flows/Yggdrasil.cpp b/launcher/minecraft/auth/flows/Yggdrasil.cpp
index ce828fd4..20ca63d0 100644
--- a/launcher/minecraft/auth/flows/Yggdrasil.cpp
+++ b/launcher/minecraft/auth/flows/Yggdrasil.cpp
@@ -241,13 +241,16 @@ void Yggdrasil::processReply()
case QNetworkReply::SslHandshakeFailedError:
changeState(
STATE_FAILED_SOFT,
- tr("<b>SSL Handshake failed.</b><br/>There might be a few causes for it:<br/>"
- "<ul>"
- "<li>You use Windows and need to update your root certificates, please install any outstanding updates.</li>"
- "<li>Some device on your network is interfering with SSL traffic. In that case, "
- "you have bigger worries than Minecraft not starting.</li>"
- "<li>Possibly something else. Check the MultiMC log file for details</li>"
- "</ul>"));
+ tr(
+ "<b>SSL Handshake failed.</b><br/>There might be a few causes for it:<br/>"
+ "<ul>"
+ "<li>You use Windows and need to update your root certificates, please install any outstanding updates.</li>"
+ "<li>Some device on your network is interfering with SSL traffic. In that case, "
+ "you have bigger worries than Minecraft not starting.</li>"
+ "<li>Possibly something else. Check the %1 log file for details</li>"
+ "</ul>"
+ ).arg(BuildConfig.LAUNCHER_NAME)
+ );
return;
// used for invalid credentials and similar errors. Fall through.
case QNetworkReply::ContentAccessDenied:
diff --git a/launcher/minecraft/launch/DirectJavaLaunch.cpp b/launcher/minecraft/launch/DirectJavaLaunch.cpp
index 2110384f..2bcff664 100644
--- a/launcher/minecraft/launch/DirectJavaLaunch.cpp
+++ b/launcher/minecraft/launch/DirectJavaLaunch.cpp
@@ -46,7 +46,7 @@ void DirectJavaLaunch::executeTask()
args.append(minecraftInstance->getMainClass());
QString allArgs = args.join(", ");
- emit logLine("Java Arguments:\n[" + m_parent->censorPrivateInfo(allArgs) + "]\n\n", MessageLevel::MultiMC);
+ emit logLine("Java Arguments:\n[" + m_parent->censorPrivateInfo(allArgs) + "]\n\n", MessageLevel::Launcher);
auto javaPath = FS::ResolveExecutable(instance->settings()->get("JavaPath").toString());
@@ -71,7 +71,7 @@ void DirectJavaLaunch::executeTask()
emitFailed(tr(reason).arg(wrapperCommand));
return;
}
- emit logLine("Wrapper command is:\n" + wrapperCommandStr + "\n\n", MessageLevel::MultiMC);
+ emit logLine("Wrapper command is:\n" + wrapperCommandStr + "\n\n", MessageLevel::Launcher);
args.prepend(javaPath);
m_process.start(wrapperCommand, wrapperArgs + args);
}
@@ -117,7 +117,7 @@ void DirectJavaLaunch::on_state(LoggedProcess::State state)
break;
}
case LoggedProcess::Running:
- emit logLine(QString("Minecraft process ID: %1\n\n").arg(m_process.processId()), MessageLevel::MultiMC);
+ emit logLine(QString("Minecraft process ID: %1\n\n").arg(m_process.processId()), MessageLevel::Launcher);
m_parent->setPid(m_process.processId());
m_parent->instance()->setLastLaunch();
break;
diff --git a/launcher/minecraft/launch/LauncherPartLaunch.cpp b/launcher/minecraft/launch/LauncherPartLaunch.cpp
index ee469770..ff022c40 100644
--- a/launcher/minecraft/launch/LauncherPartLaunch.cpp
+++ b/launcher/minecraft/launch/LauncherPartLaunch.cpp
@@ -62,7 +62,7 @@ void LauncherPartLaunch::executeTask()
m_launchScript = minecraftInstance->createLaunchScript(m_session, m_serverToJoin);
QStringList args = minecraftInstance->javaArguments();
QString allArgs = args.join(", ");
- emit logLine("Java Arguments:\n[" + m_parent->censorPrivateInfo(allArgs) + "]\n\n", MessageLevel::MultiMC);
+ emit logLine("Java Arguments:\n[" + m_parent->censorPrivateInfo(allArgs) + "]\n\n", MessageLevel::Launcher);
auto javaPath = FS::ResolveExecutable(instance->settings()->get("JavaPath").toString());
@@ -123,7 +123,7 @@ void LauncherPartLaunch::executeTask()
emitFailed(tr(reason).arg(wrapperCommand));
return;
}
- emit logLine("Wrapper command is:\n" + wrapperCommandStr + "\n\n", MessageLevel::MultiMC);
+ emit logLine("Wrapper command is:\n" + wrapperCommandStr + "\n\n", MessageLevel::Launcher);
args.prepend(javaPath);
m_process.start(wrapperCommand, wrapperArgs + args);
}
@@ -169,7 +169,7 @@ void LauncherPartLaunch::on_state(LoggedProcess::State state)
break;
}
case LoggedProcess::Running:
- emit logLine(QString("Minecraft process ID: %1\n\n").arg(m_process.processId()), MessageLevel::MultiMC);
+ emit logLine(QString("Minecraft process ID: %1\n\n").arg(m_process.processId()), MessageLevel::Launcher);
m_parent->setPid(m_process.processId());
m_parent->instance()->setLastLaunch();
// send the launch script to the launcher part
diff --git a/launcher/minecraft/launch/PrintInstanceInfo.cpp b/launcher/minecraft/launch/PrintInstanceInfo.cpp
index 0b9611ad..3da17902 100644
--- a/launcher/minecraft/launch/PrintInstanceInfo.cpp
+++ b/launcher/minecraft/launch/PrintInstanceInfo.cpp
@@ -100,7 +100,7 @@ void PrintInstanceInfo::executeTask()
::runGlxinfo(log);
#endif
- logLines(log, MessageLevel::MultiMC);
- logLines(instance->verboseDescription(m_session, m_serverToJoin), MessageLevel::MultiMC);
+ logLines(log, MessageLevel::Launcher);
+ logLines(instance->verboseDescription(m_session, m_serverToJoin), MessageLevel::Launcher);
emitSucceeded();
}
diff --git a/launcher/net/PasteUpload.cpp b/launcher/net/PasteUpload.cpp
index cb470c49..8ec6e4ae 100644
--- a/launcher/net/PasteUpload.cpp
+++ b/launcher/net/PasteUpload.cpp
@@ -16,7 +16,7 @@ PasteUpload::PasteUpload(QWidget *window, QString text, QString key) : m_window(
sectionObject.insert("contents", text);
QJsonArray sectionArray;
sectionArray.append(sectionObject);
- topLevelObj.insert("description", "MultiMC Log Upload");
+ topLevelObj.insert("description", "Log Upload");
topLevelObj.insert("sections", sectionArray);
QJsonDocument docOut;
docOut.setObject(topLevelObj);
diff --git a/launcher/package/linux/multimc.desktop b/launcher/package/linux/multimc.desktop
deleted file mode 100755
index c25be047..00000000
--- a/launcher/package/linux/multimc.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Name=MultiMC
-GenericName=Minecraft Launcher
-Comment=Free, open source launcher and instance manager for Minecraft.
-Type=Application
-Terminal=false
-Exec=multimc
-Icon=multimc
-Categories=Game
-Keywords=game;minecraft;
diff --git a/launcher/package/ubuntu/multimc/usr/share/metainfo/multimc.metainfo.xml b/launcher/package/ubuntu/multimc/usr/share/metainfo/multimc.metainfo.xml
index 4c6b7450..3bccba47 100644
--- a/launcher/package/ubuntu/multimc/usr/share/metainfo/multimc.metainfo.xml
+++ b/launcher/package/ubuntu/multimc/usr/share/metainfo/multimc.metainfo.xml
@@ -43,8 +43,8 @@
</releases>
<url type="homepage">https://multimc.org/</url>
<url type="help">https://discord.com/invite/0k2zsXGNHs0fE4Wm</url>
- <url type="faq">https://github.com/MultiMC/MultiMC5/wiki/FAQ</url>
- <url type="bugtracker">https://github.com/MultiMC/MultiMC5/issues</url>
+ <url type="faq">https://github.com/MultiMC/Launcher/wiki/FAQ</url>
+ <url type="bugtracker">https://github.com/MultiMC/Launcher/issues</url>
<url type="translate">https://translate.multimc.org/</url>
<url type="donation">https://www.patreon.com/multimc</url>
<developer_name>The MultiMC Team</developer_name>
diff --git a/launcher/pagedialog/PageDialog.cpp b/launcher/pagedialog/PageDialog.cpp
index fd5d36d4..79d7acd3 100644
--- a/launcher/pagedialog/PageDialog.cpp
+++ b/launcher/pagedialog/PageDialog.cpp
@@ -20,7 +20,7 @@
#include <QVBoxLayout>
#include <QKeyEvent>
-#include "MultiMC.h"
+#include "Launcher.h"
#include "settings/SettingsObject.h"
#include "widgets/IconLabel.h"
#include "widgets/PageContainer.h"
@@ -45,7 +45,7 @@ PageDialog::PageDialog(BasePageProvider *pageProvider, QString defaultId, QWidge
connect(buttons->button(QDialogButtonBox::Close), SIGNAL(clicked()), this, SLOT(close()));
connect(buttons->button(QDialogButtonBox::Help), SIGNAL(clicked()), m_container, SLOT(help()));
- restoreGeometry(QByteArray::fromBase64(MMC->settings()->get("PagedGeometry").toByteArray()));
+ restoreGeometry(QByteArray::fromBase64(LAUNCHER->settings()->get("PagedGeometry").toByteArray()));
}
void PageDialog::closeEvent(QCloseEvent *event)
@@ -54,7 +54,7 @@ void PageDialog::closeEvent(QCloseEvent *event)
if (m_container->prepareToClose())
{
qDebug() << "Paged dialog close approved";
- MMC->settings()->set("PagedGeometry", saveGeometry().toBase64());
+ LAUNCHER->settings()->set("PagedGeometry", saveGeometry().toBase64());
qDebug() << "Paged dialog geometry saved";
QDialog::closeEvent(event);
}
diff --git a/launcher/pages/global/AccountListPage.cpp b/launcher/pages/global/AccountListPage.cpp
index 74537712..4f8b8e9c 100644
--- a/launcher/pages/global/AccountListPage.cpp
+++ b/launcher/pages/global/AccountListPage.cpp
@@ -32,7 +32,7 @@
#include "minecraft/auth/AccountTask.h"
#include "minecraft/services/SkinDelete.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include "BuildConfig.h"
#include <dialogs/MSALoginDialog.h>
@@ -50,7 +50,7 @@ AccountListPage::AccountListPage(QWidget *parent)
ui->listView->setEmptyMode(VersionListView::String);
ui->listView->setContextMenuPolicy(Qt::CustomContextMenu);
- m_accounts = MMC->accounts();
+ m_accounts = LAUNCHER->accounts();
ui->listView->setModel(m_accounts.get());
ui->listView->header()->setSectionResizeMode(0, QHeaderView::Stretch);
diff --git a/launcher/pages/global/AccountListPage.h b/launcher/pages/global/AccountListPage.h
index 4474802e..ee81acd1 100644
--- a/launcher/pages/global/AccountListPage.h
+++ b/launcher/pages/global/AccountListPage.h
@@ -21,7 +21,7 @@
#include "pages/BasePage.h"
#include "minecraft/auth/AccountList.h"
-#include "MultiMC.h"
+#include "Launcher.h"
namespace Ui
{
@@ -43,10 +43,10 @@ public:
}
QIcon icon() const override
{
- auto icon = MMC->getThemedIcon("accounts");
+ auto icon = LAUNCHER->getThemedIcon("accounts");
if(icon.isNull())
{
- icon = MMC->getThemedIcon("noaccount");
+ icon = LAUNCHER->getThemedIcon("noaccount");
}
return icon;
}
diff --git a/launcher/pages/global/CustomCommandsPage.cpp b/launcher/pages/global/CustomCommandsPage.cpp
index 3b182319..8a5c3445 100644
--- a/launcher/pages/global/CustomCommandsPage.cpp
+++ b/launcher/pages/global/CustomCommandsPage.cpp
@@ -32,7 +32,7 @@ bool CustomCommandsPage::apply()
void CustomCommandsPage::applySettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
s->set("PreLaunchCommand", commands->prelaunchCommand());
s->set("WrapperCommand", commands->wrapperCommand());
s->set("PostExitCommand", commands->postexitCommand());
@@ -40,7 +40,7 @@ void CustomCommandsPage::applySettings()
void CustomCommandsPage::loadSettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
commands->initialize(
false,
true,
diff --git a/launcher/pages/global/CustomCommandsPage.h b/launcher/pages/global/CustomCommandsPage.h
index 414c3259..ac69a997 100644
--- a/launcher/pages/global/CustomCommandsPage.h
+++ b/launcher/pages/global/CustomCommandsPage.h
@@ -19,7 +19,7 @@
#include <QDialog>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include "widgets/CustomCommands.h"
class CustomCommandsPage : public QWidget, public BasePage
@@ -36,7 +36,7 @@ public:
}
QIcon icon() const override
{
- return MMC->getThemedIcon("custom-commands");
+ return LAUNCHER->getThemedIcon("custom-commands");
}
QString id() const override
{
diff --git a/launcher/pages/global/ExternalToolsPage.cpp b/launcher/pages/global/ExternalToolsPage.cpp
index 6a0a38be..7e1a915f 100644
--- a/launcher/pages/global/ExternalToolsPage.cpp
+++ b/launcher/pages/global/ExternalToolsPage.cpp
@@ -24,7 +24,7 @@
#include "settings/SettingsObject.h"
#include "tools/BaseProfiler.h"
#include <FileSystem.h>
-#include "MultiMC.h"
+#include "Launcher.h"
#include <tools/MCEditTool.h>
ExternalToolsPage::ExternalToolsPage(QWidget *parent) :
@@ -51,7 +51,7 @@ ExternalToolsPage::~ExternalToolsPage()
void ExternalToolsPage::loadSettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
ui->jprofilerPathEdit->setText(s->get("JProfilerPath").toString());
ui->jvisualvmPathEdit->setText(s->get("JVisualVMPath").toString());
ui->mceditPathEdit->setText(s->get("MCEditPath").toString());
@@ -61,7 +61,7 @@ void ExternalToolsPage::loadSettings()
}
void ExternalToolsPage::applySettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
s->set("JProfilerPath", ui->jprofilerPathEdit->text());
s->set("JVisualVMPath", ui->jvisualvmPathEdit->text());
@@ -93,7 +93,7 @@ void ExternalToolsPage::on_jprofilerPathBtn_clicked()
break;
}
QString cooked_dir = FS::NormalizePath(raw_dir);
- if (!MMC->profilers()["jprofiler"]->check(cooked_dir, &error))
+ if (!LAUNCHER->profilers()["jprofiler"]->check(cooked_dir, &error))
{
QMessageBox::critical(this, tr("Error"), tr("Error while checking JProfiler install:\n%1").arg(error));
continue;
@@ -108,7 +108,7 @@ void ExternalToolsPage::on_jprofilerPathBtn_clicked()
void ExternalToolsPage::on_jprofilerCheckBtn_clicked()
{
QString error;
- if (!MMC->profilers()["jprofiler"]->check(ui->jprofilerPathEdit->text(), &error))
+ if (!LAUNCHER->profilers()["jprofiler"]->check(ui->jprofilerPathEdit->text(), &error))
{
QMessageBox::critical(this, tr("Error"), tr("Error while checking JProfiler install:\n%1").arg(error));
}
@@ -130,7 +130,7 @@ void ExternalToolsPage::on_jvisualvmPathBtn_clicked()
break;
}
QString cooked_dir = FS::NormalizePath(raw_dir);
- if (!MMC->profilers()["jvisualvm"]->check(cooked_dir, &error))
+ if (!LAUNCHER->profilers()["jvisualvm"]->check(cooked_dir, &error))
{
QMessageBox::critical(this, tr("Error"), tr("Error while checking JVisualVM install:\n%1").arg(error));
continue;
@@ -145,7 +145,7 @@ void ExternalToolsPage::on_jvisualvmPathBtn_clicked()
void ExternalToolsPage::on_jvisualvmCheckBtn_clicked()
{
QString error;
- if (!MMC->profilers()["jvisualvm"]->check(ui->jvisualvmPathEdit->text(), &error))
+ if (!LAUNCHER->profilers()["jvisualvm"]->check(ui->jvisualvmPathEdit->text(), &error))
{
QMessageBox::critical(this, tr("Error"), tr("Error while checking JVisualVM install:\n%1").arg(error));
}
@@ -171,7 +171,7 @@ void ExternalToolsPage::on_mceditPathBtn_clicked()
break;
}
QString cooked_dir = FS::NormalizePath(raw_dir);
- if (!MMC->mcedit()->check(cooked_dir, error))
+ if (!LAUNCHER->mcedit()->check(cooked_dir, error))
{
QMessageBox::critical(this, tr("Error"), tr("Error while checking MCEdit install:\n%1").arg(error));
continue;
@@ -186,7 +186,7 @@ void ExternalToolsPage::on_mceditPathBtn_clicked()
void ExternalToolsPage::on_mceditCheckBtn_clicked()
{
QString error;
- if (!MMC->mcedit()->check(ui->mceditPathEdit->text(), error))
+ if (!LAUNCHER->mcedit()->check(ui->mceditPathEdit->text(), error))
{
QMessageBox::critical(this, tr("Error"), tr("Error while checking MCEdit install:\n%1").arg(error));
}
diff --git a/launcher/pages/global/ExternalToolsPage.h b/launcher/pages/global/ExternalToolsPage.h
index 0fc8ebe1..1d99273a 100644
--- a/launcher/pages/global/ExternalToolsPage.h
+++ b/launcher/pages/global/ExternalToolsPage.h
@@ -18,7 +18,7 @@
#include <QWidget>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
namespace Ui {
class ExternalToolsPage;
@@ -38,10 +38,10 @@ public:
}
QIcon icon() const override
{
- auto icon = MMC->getThemedIcon("externaltools");
+ auto icon = LAUNCHER->getThemedIcon("externaltools");
if(icon.isNull())
{
- icon = MMC->getThemedIcon("loadermods");
+ icon = LAUNCHER->getThemedIcon("loadermods");
}
return icon;
}
diff --git a/launcher/pages/global/JavaPage.cpp b/launcher/pages/global/JavaPage.cpp
index cde0e035..dd158fcd 100644
--- a/launcher/pages/global/JavaPage.cpp
+++ b/launcher/pages/global/JavaPage.cpp
@@ -29,7 +29,7 @@
#include "settings/SettingsObject.h"
#include <FileSystem.h>
-#include "MultiMC.h"
+#include "Launcher.h"
#include <sys.h>
JavaPage::JavaPage(QWidget *parent) : QWidget(parent), ui(new Ui::JavaPage)
@@ -55,7 +55,7 @@ bool JavaPage::apply()
void JavaPage::applySettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
// Memory
int min = ui->minMemSpinBox->value();
@@ -79,7 +79,7 @@ void JavaPage::applySettings()
}
void JavaPage::loadSettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
// Memory
int min = s->get("MinMemAlloc").toInt();
int max = s->get("MaxMemAlloc").toInt();
@@ -104,7 +104,7 @@ void JavaPage::on_javaDetectBtn_clicked()
{
JavaInstallPtr java;
- VersionSelectDialog vselect(MMC->javalist().get(), tr("Select a Java version"), this, true);
+ VersionSelectDialog vselect(LAUNCHER->javalist().get(), tr("Select a Java version"), this, true);
vselect.setResizeOn(2);
vselect.exec();
diff --git a/launcher/pages/global/JavaPage.h b/launcher/pages/global/JavaPage.h
index 832f460b..93a586cd 100644
--- a/launcher/pages/global/JavaPage.h
+++ b/launcher/pages/global/JavaPage.h
@@ -19,7 +19,7 @@
#include <QDialog>
#include "pages/BasePage.h"
#include "JavaCommon.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include <QObjectPtr.h>
class SettingsObject;
@@ -43,7 +43,7 @@ public:
}
QIcon icon() const override
{
- return MMC->getThemedIcon("java");
+ return LAUNCHER->getThemedIcon("java");
}
QString id() const override
{
diff --git a/launcher/pages/global/LanguagePage.cpp b/launcher/pages/global/LanguagePage.cpp
index ae3168cc..409bf7d0 100644
--- a/launcher/pages/global/LanguagePage.cpp
+++ b/launcher/pages/global/LanguagePage.cpp
@@ -26,7 +26,7 @@ bool LanguagePage::apply()
void LanguagePage::applySettings()
{
- auto settings = MMC->settings();
+ auto settings = LAUNCHER->settings();
QString key = mainWidget->getSelectedLanguageKey();
settings->set("Language", key);
}
diff --git a/launcher/pages/global/LanguagePage.h b/launcher/pages/global/LanguagePage.h
index ca8eecc6..22db8f94 100644
--- a/launcher/pages/global/LanguagePage.h
+++ b/launcher/pages/global/LanguagePage.h
@@ -17,7 +17,7 @@
#include <memory>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include <QWidget>
class LanguageSelectionWidget;
@@ -36,7 +36,7 @@ public:
}
QIcon icon() const override
{
- return MMC->getThemedIcon("language");
+ return LAUNCHER->getThemedIcon("language");
}
QString id() const override
{
diff --git a/launcher/pages/global/MultiMCPage.cpp b/launcher/pages/global/LauncherPage.cpp
index 5d43b187..5f8d87d8 100644
--- a/launcher/pages/global/MultiMCPage.cpp
+++ b/launcher/pages/global/LauncherPage.cpp
@@ -13,8 +13,8 @@
* limitations under the License.
*/
-#include "MultiMCPage.h"
-#include "ui_MultiMCPage.h"
+#include "LauncherPage.h"
+#include "ui_LauncherPage.h"
#include <QFileDialog>
#include <QMessageBox>
@@ -25,7 +25,7 @@
#include "settings/SettingsObject.h"
#include <FileSystem.h>
-#include "MultiMC.h"
+#include "Launcher.h"
#include "BuildConfig.h"
#include "themes/ITheme.h"
@@ -41,7 +41,7 @@ enum InstSortMode
Sort_LastLaunch
};
-MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCPage)
+LauncherPage::LauncherPage(QWidget *parent) : QWidget(parent), ui(new Ui::LauncherPage)
{
ui->setupUi(this);
auto origForeground = ui->fontPreview->palette().color(ui->fontPreview->foregroundRole());
@@ -53,20 +53,20 @@ MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCP
defaultFormat = new QTextCharFormat(ui->fontPreview->currentCharFormat());
- m_languageModel = MMC->translations();
+ m_languageModel = LAUNCHER->translations();
loadSettings();
if(BuildConfig.UPDATER_ENABLED)
{
- QObject::connect(MMC->updateChecker().get(), &UpdateChecker::channelListLoaded, this, &MultiMCPage::refreshUpdateChannelList);
+ QObject::connect(LAUNCHER->updateChecker().get(), &UpdateChecker::channelListLoaded, this, &LauncherPage::refreshUpdateChannelList);
- if (MMC->updateChecker()->hasChannels())
+ if (LAUNCHER->updateChecker()->hasChannels())
{
refreshUpdateChannelList();
}
else
{
- MMC->updateChecker()->updateChanList(false);
+ LAUNCHER->updateChecker()->updateChanList(false);
}
}
else
@@ -89,19 +89,19 @@ MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCP
}
}
-MultiMCPage::~MultiMCPage()
+LauncherPage::~LauncherPage()
{
delete ui;
delete defaultFormat;
}
-bool MultiMCPage::apply()
+bool LauncherPage::apply()
{
applySettings();
return true;
}
-void MultiMCPage::on_instDirBrowseBtn_clicked()
+void LauncherPage::on_instDirBrowseBtn_clicked()
{
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Instance Folder"), ui->instDirTextBox->text());
@@ -133,7 +133,7 @@ void MultiMCPage::on_instDirBrowseBtn_clicked()
}
}
-void MultiMCPage::on_iconsDirBrowseBtn_clicked()
+void LauncherPage::on_iconsDirBrowseBtn_clicked()
{
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Icons Folder"), ui->iconsDirTextBox->text());
@@ -144,7 +144,7 @@ void MultiMCPage::on_iconsDirBrowseBtn_clicked()
ui->iconsDirTextBox->setText(cooked_dir);
}
}
-void MultiMCPage::on_modsDirBrowseBtn_clicked()
+void LauncherPage::on_modsDirBrowseBtn_clicked()
{
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Mods Folder"), ui->modsDirTextBox->text());
@@ -155,7 +155,7 @@ void MultiMCPage::on_modsDirBrowseBtn_clicked()
ui->modsDirTextBox->setText(cooked_dir);
}
}
-void MultiMCPage::on_migrateDataFolderMacBtn_clicked()
+void LauncherPage::on_migrateDataFolderMacBtn_clicked()
{
QFile file(QDir::current().absolutePath() + "/dontmovemacdata");
file.remove();
@@ -163,7 +163,7 @@ void MultiMCPage::on_migrateDataFolderMacBtn_clicked()
qApp->quit();
}
-void MultiMCPage::refreshUpdateChannelList()
+void LauncherPage::refreshUpdateChannelList()
{
// Stop listening for selection changes. It's going to change a lot while we update it and
// we don't need to update the
@@ -171,7 +171,7 @@ void MultiMCPage::refreshUpdateChannelList()
QObject::disconnect(ui->updateChannelComboBox, SIGNAL(currentIndexChanged(int)), this,
SLOT(updateChannelSelectionChanged(int)));
- QList<UpdateChecker::ChannelListEntry> channelList = MMC->updateChecker()->getChannelList();
+ QList<UpdateChecker::ChannelListEntry> channelList = LAUNCHER->updateChecker()->getChannelList();
ui->updateChannelComboBox->clear();
int selection = -1;
for (int i = 0; i < channelList.count(); i++)
@@ -208,15 +208,15 @@ void MultiMCPage::refreshUpdateChannelList()
ui->updateChannelComboBox->setEnabled(true);
}
-void MultiMCPage::updateChannelSelectionChanged(int index)
+void LauncherPage::updateChannelSelectionChanged(int index)
{
refreshUpdateChannelDesc();
}
-void MultiMCPage::refreshUpdateChannelDesc()
+void LauncherPage::refreshUpdateChannelDesc()
{
// Get the channel list.
- QList<UpdateChecker::ChannelListEntry> channelList = MMC->updateChecker()->getChannelList();
+ QList<UpdateChecker::ChannelListEntry> channelList = LAUNCHER->updateChecker()->getChannelList();
int selectedIndex = ui->updateChannelComboBox->currentIndex();
if (selectedIndex < 0)
{
@@ -235,9 +235,9 @@ void MultiMCPage::refreshUpdateChannelDesc()
}
}
-void MultiMCPage::applySettings()
+void LauncherPage::applySettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
if (ui->resetNotificationsBtn->isChecked())
{
@@ -283,7 +283,7 @@ void MultiMCPage::applySettings()
if(original != s->get("IconTheme"))
{
- MMC->setIconTheme(s->get("IconTheme").toString());
+ LAUNCHER->setIconTheme(s->get("IconTheme").toString());
}
auto originalAppTheme = s->get("ApplicationTheme").toString();
@@ -291,7 +291,7 @@ void MultiMCPage::applySettings()
if(originalAppTheme != newAppTheme)
{
s->set("ApplicationTheme", newAppTheme);
- MMC->setApplicationTheme(newAppTheme, false);
+ LAUNCHER->setApplicationTheme(newAppTheme, false);
}
// Console settings
@@ -328,9 +328,9 @@ void MultiMCPage::applySettings()
s->set("Analytics", ui->analyticsCheck->isChecked());
}
}
-void MultiMCPage::loadSettings()
+void LauncherPage::loadSettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
// Updates
ui->autoUpdateCheckBox->setChecked(s->get("AutoUpdate").toBool());
m_currentUpdateChannel = s->get("UpdateChannel").toString();
@@ -375,7 +375,7 @@ void MultiMCPage::loadSettings()
{
auto currentTheme = s->get("ApplicationTheme").toString();
- auto themes = MMC->getValidApplicationThemes();
+ auto themes = LAUNCHER->getValidApplicationThemes();
int idx = 0;
for(auto &theme: themes)
{
@@ -392,12 +392,12 @@ void MultiMCPage::loadSettings()
ui->showConsoleCheck->setChecked(s->get("ShowConsole").toBool());
ui->autoCloseConsoleCheck->setChecked(s->get("AutoCloseConsole").toBool());
ui->showConsoleErrorCheck->setChecked(s->get("ShowConsoleOnError").toBool());
- QString fontFamily = MMC->settings()->get("ConsoleFont").toString();
+ QString fontFamily = LAUNCHER->settings()->get("ConsoleFont").toString();
QFont consoleFont(fontFamily);
ui->consoleFont->setCurrentFont(consoleFont);
bool conversionOk = true;
- int fontSize = MMC->settings()->get("ConsoleFontSize").toInt(&conversionOk);
+ int fontSize = LAUNCHER->settings()->get("ConsoleFontSize").toInt(&conversionOk);
if(!conversionOk)
{
fontSize = 11;
@@ -430,7 +430,7 @@ void MultiMCPage::loadSettings()
}
}
-void MultiMCPage::refreshFontPreview()
+void LauncherPage::refreshFontPreview()
{
int fontSize = ui->fontSizeBox->value();
QString fontFamily = ui->consoleFont->currentFont().family();
diff --git a/launcher/pages/global/MultiMCPage.h b/launcher/pages/global/LauncherPage.h
index fae75bf2..e622ec48 100644
--- a/launcher/pages/global/MultiMCPage.h
+++ b/launcher/pages/global/LauncherPage.h
@@ -20,7 +20,7 @@
#include "java/JavaChecker.h"
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include "ColorCache.h"
#include <translations/TranslationsModel.h>
@@ -29,32 +29,32 @@ class SettingsObject;
namespace Ui
{
-class MultiMCPage;
+class LauncherPage;
}
-class MultiMCPage : public QWidget, public BasePage
+class LauncherPage : public QWidget, public BasePage
{
Q_OBJECT
public:
- explicit MultiMCPage(QWidget *parent = 0);
- ~MultiMCPage();
+ explicit LauncherPage(QWidget *parent = 0);
+ ~LauncherPage();
QString displayName() const override
{
- return "MultiMC";
+ return "Launcher";
}
QIcon icon() const override
{
- return MMC->getThemedIcon("multimc");
+ return LAUNCHER->getThemedIcon("launcher");
}
QString id() const override
{
- return "multimc-settings";
+ return "launcher-settings";
}
QString helpPage() const override
{
- return "MultiMC-settings";
+ return "Launcher-settings";
}
bool apply() override;
@@ -87,7 +87,7 @@ slots:
void updateChannelSelectionChanged(int index);
private:
- Ui::MultiMCPage *ui;
+ Ui::LauncherPage *ui;
/*!
* Stores the currently selected update channel.
diff --git a/launcher/pages/global/MultiMCPage.ui b/launcher/pages/global/LauncherPage.ui
index 4ad20242..62a66d73 100644
--- a/launcher/pages/global/MultiMCPage.ui
+++ b/launcher/pages/global/LauncherPage.ui
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
- <class>MultiMCPage</class>
- <widget class="QWidget" name="MultiMCPage">
+ <class>LauncherPage</class>
+ <widget class="QWidget" name="LauncherPage">
<property name="geometry">
<rect>
<x>0</x>
@@ -54,7 +54,7 @@
<item>
<widget class="QCheckBox" name="autoUpdateCheckBox">
<property name="text">
- <string>Check for updates when MultiMC starts?</string>
+ <string>Check for updates on start?</string>
</property>
</widget>
</item>
@@ -160,7 +160,7 @@
<item>
<widget class="QPushButton" name="migrateDataFolderMacBtn">
<property name="text">
- <string>Move MultiMC data to new location (will restart MultiMC)</string>
+ <string>Move the data to new location (will restart the launcher)</string>
</property>
</widget>
</item>
@@ -187,7 +187,7 @@
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
- <string>MultiMC notifications</string>
+ <string>Launcher notifications</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
@@ -515,9 +515,9 @@
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;
&lt;body&gt;
-&lt;p&gt;MultiMC sends anonymous usage statistics on every start of the application.&lt;/p&gt;&lt;p&gt;The following data is collected:&lt;/p&gt;
+&lt;p&gt;The launcher sends anonymous usage statistics on every start of the application.&lt;/p&gt;&lt;p&gt;The following data is collected:&lt;/p&gt;
&lt;ul&gt;
-&lt;li&gt;MultiMC version.&lt;/li&gt;
+&lt;li&gt;Launcher version.&lt;/li&gt;
&lt;li&gt;Operating system name, version and architecture.&lt;/li&gt;
&lt;li&gt;CPU architecture (kernel architecture on linux).&lt;/li&gt;
&lt;li&gt;Size of system memory.&lt;/li&gt;
diff --git a/launcher/pages/global/MinecraftPage.cpp b/launcher/pages/global/MinecraftPage.cpp
index 6c9bd307..2830dc7c 100644
--- a/launcher/pages/global/MinecraftPage.cpp
+++ b/launcher/pages/global/MinecraftPage.cpp
@@ -21,7 +21,7 @@
#include <QTabBar>
#include "settings/SettingsObject.h"
-#include "MultiMC.h"
+#include "Launcher.h"
MinecraftPage::MinecraftPage(QWidget *parent) : QWidget(parent), ui(new Ui::MinecraftPage)
{
@@ -57,7 +57,7 @@ void MinecraftPage::on_maximizedCheckBox_clicked(bool checked)
void MinecraftPage::applySettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
// Window Size
s->set("LaunchMaximized", ui->maximizedCheckBox->isChecked());
@@ -75,7 +75,7 @@ void MinecraftPage::applySettings()
void MinecraftPage::loadSettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
// Window Size
ui->maximizedCheckBox->setChecked(s->get("LaunchMaximized").toBool());
diff --git a/launcher/pages/global/MinecraftPage.h b/launcher/pages/global/MinecraftPage.h
index 5e781aed..0fc6cc8e 100644
--- a/launcher/pages/global/MinecraftPage.h
+++ b/launcher/pages/global/MinecraftPage.h
@@ -20,7 +20,7 @@
#include "java/JavaChecker.h"
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
class SettingsObject;
@@ -43,7 +43,7 @@ public:
}
QIcon icon() const override
{
- return MMC->getThemedIcon("minecraft");
+ return LAUNCHER->getThemedIcon("minecraft");
}
QString id() const override
{
diff --git a/launcher/pages/global/PasteEEPage.cpp b/launcher/pages/global/PasteEEPage.cpp
index f932dede..9f7a7efb 100644
--- a/launcher/pages/global/PasteEEPage.cpp
+++ b/launcher/pages/global/PasteEEPage.cpp
@@ -23,7 +23,7 @@
#include "settings/SettingsObject.h"
#include "tools/BaseProfiler.h"
-#include "MultiMC.h"
+#include "Launcher.h"
PasteEEPage::PasteEEPage(QWidget *parent) :
QWidget(parent),
@@ -42,7 +42,7 @@ PasteEEPage::~PasteEEPage()
void PasteEEPage::loadSettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
QString keyToUse = s->get("PasteEEAPIKey").toString();
if(keyToUse == "multimc")
{
@@ -57,7 +57,7 @@ void PasteEEPage::loadSettings()
void PasteEEPage::applySettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
QString pasteKeyToUse;
if (ui->customButton->isChecked())
diff --git a/launcher/pages/global/PasteEEPage.h b/launcher/pages/global/PasteEEPage.h
index 001decdb..c99cd51e 100644
--- a/launcher/pages/global/PasteEEPage.h
+++ b/launcher/pages/global/PasteEEPage.h
@@ -18,7 +18,7 @@
#include <QWidget>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
namespace Ui {
class PasteEEPage;
@@ -38,7 +38,7 @@ public:
}
QIcon icon() const override
{
- return MMC->getThemedIcon("log");
+ return LAUNCHER->getThemedIcon("log");
}
QString id() const override
{
diff --git a/launcher/pages/global/ProxyPage.cpp b/launcher/pages/global/ProxyPage.cpp
index 809059ff..d4e767e1 100644
--- a/launcher/pages/global/ProxyPage.cpp
+++ b/launcher/pages/global/ProxyPage.cpp
@@ -19,7 +19,7 @@
#include <QTabBar>
#include "settings/SettingsObject.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include "Env.h"
ProxyPage::ProxyPage(QWidget *parent) : QWidget(parent), ui(new Ui::ProxyPage)
@@ -58,7 +58,7 @@ void ProxyPage::proxyChanged(int)
void ProxyPage::applySettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
// Proxy
QString proxyType = "None";
@@ -82,7 +82,7 @@ void ProxyPage::applySettings()
}
void ProxyPage::loadSettings()
{
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
// Proxy
QString proxyType = s->get("ProxyType").toString();
if (proxyType == "Default")
diff --git a/launcher/pages/global/ProxyPage.h b/launcher/pages/global/ProxyPage.h
index ff94ec49..90c33c9d 100644
--- a/launcher/pages/global/ProxyPage.h
+++ b/launcher/pages/global/ProxyPage.h
@@ -19,7 +19,7 @@
#include <QDialog>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
namespace Ui
{
@@ -40,7 +40,7 @@ public:
}
QIcon icon() const override
{
- return MMC->getThemedIcon("proxy");
+ return LAUNCHER->getThemedIcon("proxy");
}
QString id() const override
{
diff --git a/launcher/pages/global/ProxyPage.ui b/launcher/pages/global/ProxyPage.ui
index 69fcef1e..347fa86c 100644
--- a/launcher/pages/global/ProxyPage.ui
+++ b/launcher/pages/global/ProxyPage.ui
@@ -39,7 +39,7 @@
<item>
<widget class="QLabel" name="proxyPlainTextWarningLabel_2">
<property name="text">
- <string>This only applies to MultiMC. Minecraft does not accept proxy settings.</string>
+ <string>This only applies to the launcher. Minecraft does not accept proxy settings.</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -166,7 +166,7 @@
<item row="2" column="0" colspan="2">
<widget class="QLabel" name="proxyPlainTextWarningLabel">
<property name="text">
- <string>Note: Proxy username and password are stored in plain text inside MultiMC's configuration file!</string>
+ <string>Note: Proxy username and password are stored in plain text inside the launcher's configuration file!</string>
</property>
<property name="wordWrap">
<bool>true</bool>
diff --git a/launcher/pages/instance/GameOptionsPage.h b/launcher/pages/instance/GameOptionsPage.h
index 0fd2fbff..ca7e31b1 100644
--- a/launcher/pages/instance/GameOptionsPage.h
+++ b/launcher/pages/instance/GameOptionsPage.h
@@ -19,7 +19,7 @@
#include <QString>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
namespace Ui
{
@@ -46,7 +46,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("settings");
+ return LAUNCHER->getThemedIcon("settings");
}
virtual QString id() const override
{
diff --git a/launcher/pages/instance/InstanceSettingsPage.cpp b/launcher/pages/instance/InstanceSettingsPage.cpp
index 7bd424c0..c83832c6 100644
--- a/launcher/pages/instance/InstanceSettingsPage.cpp
+++ b/launcher/pages/instance/InstanceSettingsPage.cpp
@@ -7,7 +7,7 @@
#include "dialogs/VersionSelectDialog.h"
#include "JavaCommon.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include <java/JavaInstallList.h>
#include <FileSystem.h>
@@ -22,8 +22,8 @@ InstanceSettingsPage::InstanceSettingsPage(BaseInstance *inst, QWidget *parent)
auto sysMB = Sys::getSystemRam() / Sys::mebibyte;
ui->maxMemSpinBox->setMaximum(sysMB);
connect(ui->openGlobalJavaSettingsButton, &QCommandLinkButton::clicked, this, &InstanceSettingsPage::globalSettingsButtonClicked);
- connect(MMC, &MultiMC::globalSettingsAboutToOpen, this, &InstanceSettingsPage::applySettings);
- connect(MMC, &MultiMC::globalSettingsClosed, this, &InstanceSettingsPage::loadSettings);
+ connect(LAUNCHER, &Launcher::globalSettingsAboutToOpen, this, &InstanceSettingsPage::applySettings);
+ connect(LAUNCHER, &Launcher::globalSettingsClosed, this, &InstanceSettingsPage::loadSettings);
loadSettings();
}
@@ -41,13 +41,13 @@ void InstanceSettingsPage::globalSettingsButtonClicked(bool)
{
switch(ui->settingsTabs->currentIndex()) {
case 0:
- MMC->ShowGlobalSettings(this, "java-settings");
+ LAUNCHER->ShowGlobalSettings(this, "java-settings");
return;
case 1:
- MMC->ShowGlobalSettings(this, "minecraft-settings");
+ LAUNCHER->ShowGlobalSettings(this, "minecraft-settings");
return;
case 2:
- MMC->ShowGlobalSettings(this, "custom-commands");
+ LAUNCHER->ShowGlobalSettings(this, "custom-commands");
return;
}
}
@@ -278,7 +278,7 @@ void InstanceSettingsPage::on_javaDetectBtn_clicked()
{
JavaInstallPtr java;
- VersionSelectDialog vselect(MMC->javalist().get(), tr("Select a Java version"), this, true);
+ VersionSelectDialog vselect(LAUNCHER->javalist().get(), tr("Select a Java version"), this, true);
vselect.setResizeOn(2);
vselect.exec();
diff --git a/launcher/pages/instance/InstanceSettingsPage.h b/launcher/pages/instance/InstanceSettingsPage.h
index 068213a8..a039101c 100644
--- a/launcher/pages/instance/InstanceSettingsPage.h
+++ b/launcher/pages/instance/InstanceSettingsPage.h
@@ -22,7 +22,7 @@
#include <QObjectPtr.h>
#include "pages/BasePage.h"
#include "JavaCommon.h"
-#include "MultiMC.h"
+#include "Launcher.h"
class JavaChecker;
namespace Ui
@@ -43,7 +43,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("instance-settings");
+ return LAUNCHER->getThemedIcon("instance-settings");
}
virtual QString id() const override
{
diff --git a/launcher/pages/instance/LegacyUpgradePage.cpp b/launcher/pages/instance/LegacyUpgradePage.cpp
index af800b03..b12174fa 100644
--- a/launcher/pages/instance/LegacyUpgradePage.cpp
+++ b/launcher/pages/instance/LegacyUpgradePage.cpp
@@ -4,7 +4,7 @@
#include "InstanceList.h"
#include "minecraft/legacy/LegacyInstance.h"
#include "minecraft/legacy/LegacyUpgradeTask.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include "dialogs/CustomMessageBox.h"
#include "dialogs/ProgressDialog.h"
@@ -38,9 +38,9 @@ void LegacyUpgradePage::on_upgradeButton_clicked()
QString newName = tr("%1 (Migrated)").arg(m_inst->name());
auto upgradeTask = new LegacyUpgradeTask(m_inst);
upgradeTask->setName(newName);
- upgradeTask->setGroup(MMC->instances()->getInstanceGroup(m_inst->id()));
+ upgradeTask->setGroup(LAUNCHER->instances()->getInstanceGroup(m_inst->id()));
upgradeTask->setIcon(m_inst->iconKey());
- unique_qobject_ptr<Task> task(MMC->instances()->wrapInstanceTask(upgradeTask));
+ unique_qobject_ptr<Task> task(LAUNCHER->instances()->wrapInstanceTask(upgradeTask));
runModalTask(task.get());
}
diff --git a/launcher/pages/instance/LegacyUpgradePage.h b/launcher/pages/instance/LegacyUpgradePage.h
index df34e33a..d8e98f6b 100644
--- a/launcher/pages/instance/LegacyUpgradePage.h
+++ b/launcher/pages/instance/LegacyUpgradePage.h
@@ -19,7 +19,7 @@
#include "minecraft/legacy/LegacyInstance.h"
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include "tasks/Task.h"
namespace Ui
@@ -40,7 +40,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("checkupdate");
+ return LAUNCHER->getThemedIcon("checkupdate");
}
virtual QString id() const override
{
diff --git a/launcher/pages/instance/LegacyUpgradePage.ui b/launcher/pages/instance/LegacyUpgradePage.ui
index a94ee039..085919e3 100644
--- a/launcher/pages/instance/LegacyUpgradePage.ui
+++ b/launcher/pages/instance/LegacyUpgradePage.ui
@@ -26,7 +26,7 @@
<item>
<widget class="QTextBrowser" name="textBrowser">
<property name="html">
- <string>&lt;html&gt;&lt;body&gt;&lt;h1&gt;Upgrade is required&lt;/h1&gt;&lt;p&gt;MultiMC now supports old Minecraft versions and all the required features in the new (OneSix) instance format. As a consequence, the old (Legacy) format has been entirely disabled and old instances need to be upgraded.&lt;/p&gt;&lt;p&gt;The upgrade will create a new instance with the same contents as the current one, in the new format. The original instance will remain untouched, in case anything goes wrong in the process.&lt;/p&gt;&lt;p&gt;Please report any issues on our &lt;a href=&quot;https://github.com/MultiMC/MultiMC5/issues&quot;&gt;github issues page&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;There is also a &lt;a href=&quot;https://discord.gg/GtPmv93&quot;&gt;discord channel for testing here&lt;/a&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ <string>&lt;html&gt;&lt;body&gt;&lt;h1&gt;Upgrade is required&lt;/h1&gt;&lt;p&gt;MultiMC now supports old Minecraft versions and all the required features in the new (OneSix) instance format. As a consequence, the old (Legacy) format has been entirely disabled and old instances need to be upgraded.&lt;/p&gt;&lt;p&gt;The upgrade will create a new instance with the same contents as the current one, in the new format. The original instance will remain untouched, in case anything goes wrong in the process.&lt;/p&gt;&lt;p&gt;Please report any issues on our &lt;a href=&quot;https://github.com/MultiMC/Launcher/issues&quot;&gt;github issues page&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;There is also a &lt;a href=&quot;https://discord.gg/GtPmv93&quot;&gt;discord channel for testing here&lt;/a&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="openExternalLinks">
<bool>true</bool>
diff --git a/launcher/pages/instance/LogPage.cpp b/launcher/pages/instance/LogPage.cpp
index 3d2085c6..2846dc51 100644
--- a/launcher/pages/instance/LogPage.cpp
+++ b/launcher/pages/instance/LogPage.cpp
@@ -1,7 +1,7 @@
#include "LogPage.h"
#include "ui_LogPage.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include <QIcon>
#include <QScrollBar>
@@ -11,6 +11,7 @@
#include <settings/Setting.h>
#include "GuiUtil.h"
#include <ColorCache.h>
+#include <BuildConfig.h>
class LogFormatProxyModel : public QIdentityProxyModel
{
@@ -124,9 +125,9 @@ LogPage::LogPage(InstancePtr instance, QWidget *parent)
// set up fonts in the log proxy
{
- QString fontFamily = MMC->settings()->get("ConsoleFont").toString();
+ QString fontFamily = LAUNCHER->settings()->get("ConsoleFont").toString();
bool conversionOk = false;
- int fontSize = MMC->settings()->get("ConsoleFontSize").toInt(&conversionOk);
+ int fontSize = LAUNCHER->settings()->get("ConsoleFontSize").toInt(&conversionOk);
if(!conversionOk)
{
fontSize = 11;
@@ -236,15 +237,30 @@ void LogPage::on_btnPaste_clicked()
return;
//FIXME: turn this into a proper task and move the upload logic out of GuiUtil!
- m_model->append(MessageLevel::MultiMC, QString("MultiMC: Log upload triggered at: %1").arg(QDateTime::currentDateTime().toString(Qt::RFC2822Date)));
+ m_model->append(
+ MessageLevel::Launcher,
+ QString("%2: Log upload triggered at: %1").arg(
+ QDateTime::currentDateTime().toString(Qt::RFC2822Date),
+ BuildConfig.LAUNCHER_NAME
+ )
+ );
auto url = GuiUtil::uploadPaste(m_model->toPlainText(), this);
if(!url.isEmpty())
{
- m_model->append(MessageLevel::MultiMC, QString("MultiMC: Log uploaded to: %1").arg(url));
+ m_model->append(
+ MessageLevel::Launcher,
+ QString("%2: Log uploaded to: %1").arg(
+ url,
+ BuildConfig.LAUNCHER_NAME
+ )
+ );
}
else
{
- m_model->append(MessageLevel::Error, "MultiMC: Log upload failed!");
+ m_model->append(
+ MessageLevel::Error,
+ QString("%1: Log upload failed!").arg(BuildConfig.LAUNCHER_NAME)
+ );
}
}
@@ -252,7 +268,7 @@ void LogPage::on_btnCopy_clicked()
{
if(!m_model)
return;
- m_model->append(MessageLevel::MultiMC, QString("Clipboard copy at: %1").arg(QDateTime::currentDateTime().toString(Qt::RFC2822Date)));
+ m_model->append(MessageLevel::Launcher, QString("Clipboard copy at: %1").arg(QDateTime::currentDateTime().toString(Qt::RFC2822Date)));
GuiUtil::setClipboardText(m_model->toPlainText());
}
diff --git a/launcher/pages/instance/LogPage.h b/launcher/pages/instance/LogPage.h
index b0b0e04b..285296cd 100644
--- a/launcher/pages/instance/LogPage.h
+++ b/launcher/pages/instance/LogPage.h
@@ -20,7 +20,7 @@
#include "BaseInstance.h"
#include "launch/LaunchTask.h"
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
namespace Ui
{
@@ -42,7 +42,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("log");
+ return LAUNCHER->getThemedIcon("log");
}
virtual QString id() const override
{
diff --git a/launcher/pages/instance/ModFolderPage.cpp b/launcher/pages/instance/ModFolderPage.cpp
index 98f20e77..caa81958 100644
--- a/launcher/pages/instance/ModFolderPage.cpp
+++ b/launcher/pages/instance/ModFolderPage.cpp
@@ -22,7 +22,7 @@
#include <QAbstractItemModel>
#include <QMenu>
-#include "MultiMC.h"
+#include "Launcher.h"
#include "dialogs/CustomMessageBox.h"
#include <GuiUtil.h>
#include "minecraft/mod/ModFolderModel.h"
@@ -301,7 +301,7 @@ void ModFolderPage::on_actionAdd_triggered()
tr("Select %1",
"Select whatever type of files the page contains. Example: 'Loader Mods'")
.arg(m_displayName),
- m_fileSelectionFilter.arg(m_displayName), MMC->settings()->get("CentralModsDir").toString(),
+ m_fileSelectionFilter.arg(m_displayName), LAUNCHER->settings()->get("CentralModsDir").toString(),
this->parentWidget());
if (!list.empty())
{
diff --git a/launcher/pages/instance/ModFolderPage.h b/launcher/pages/instance/ModFolderPage.h
index f653a8c0..38fcc6a5 100644
--- a/launcher/pages/instance/ModFolderPage.h
+++ b/launcher/pages/instance/ModFolderPage.h
@@ -19,7 +19,7 @@
#include "minecraft/MinecraftInstance.h"
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
class ModFolderModel;
namespace Ui
@@ -54,7 +54,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon(m_iconName);
+ return LAUNCHER->getThemedIcon(m_iconName);
}
virtual QString id() const override
{
diff --git a/launcher/pages/instance/NotesPage.h b/launcher/pages/instance/NotesPage.h
index d0c00ac1..1bdb352d 100644
--- a/launcher/pages/instance/NotesPage.h
+++ b/launcher/pages/instance/NotesPage.h
@@ -19,7 +19,7 @@
#include "BaseInstance.h"
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
namespace Ui
{
@@ -39,9 +39,9 @@ public:
}
virtual QIcon icon() const override
{
- auto icon = MMC->getThemedIcon("notes");
+ auto icon = LAUNCHER->getThemedIcon("notes");
if(icon.isNull())
- icon = MMC->getThemedIcon("news");
+ icon = LAUNCHER->getThemedIcon("news");
return icon;
}
virtual QString id() const override
diff --git a/launcher/pages/instance/OtherLogsPage.cpp b/launcher/pages/instance/OtherLogsPage.cpp
index b67b84bd..31cd44ed 100644
--- a/launcher/pages/instance/OtherLogsPage.cpp
+++ b/launcher/pages/instance/OtherLogsPage.cpp
@@ -129,9 +129,9 @@ void OtherLogsPage::on_btnReload_clicked()
{
auto setPlainText = [&](const QString & text)
{
- QString fontFamily = MMC->settings()->get("ConsoleFont").toString();
+ QString fontFamily = LAUNCHER->settings()->get("ConsoleFont").toString();
bool conversionOk = false;
- int fontSize = MMC->settings()->get("ConsoleFontSize").toInt(&conversionOk);
+ int fontSize = LAUNCHER->settings()->get("ConsoleFontSize").toInt(&conversionOk);
if(!conversionOk)
{
fontSize = 11;
diff --git a/launcher/pages/instance/OtherLogsPage.h b/launcher/pages/instance/OtherLogsPage.h
index 7f21c0fa..25f127f6 100644
--- a/launcher/pages/instance/OtherLogsPage.h
+++ b/launcher/pages/instance/OtherLogsPage.h
@@ -18,7 +18,7 @@
#include <QWidget>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include <pathmatcher/IPathMatcher.h>
namespace Ui
@@ -46,7 +46,7 @@ public:
}
QIcon icon() const override
{
- return MMC->getThemedIcon("log");
+ return LAUNCHER->getThemedIcon("log");
}
QString helpPage() const override
{
diff --git a/launcher/pages/instance/ScreenshotsPage.cpp b/launcher/pages/instance/ScreenshotsPage.cpp
index efa0f9f2..172e2eb3 100644
--- a/launcher/pages/instance/ScreenshotsPage.cpp
+++ b/launcher/pages/instance/ScreenshotsPage.cpp
@@ -15,7 +15,7 @@
#include <QKeyEvent>
#include <QMenu>
-#include <MultiMC.h>
+#include <Launcher.h>
#include "dialogs/ProgressDialog.h"
#include "dialogs/CustomMessageBox.h"
@@ -104,7 +104,7 @@ public:
{
m_thumbnailingPool.setMaxThreadCount(4);
m_thumbnailCache = std::make_shared<SharedIconCache>();
- m_thumbnailCache->add("placeholder", MMC->getThemedIcon("screenshot-placeholder"));
+ m_thumbnailCache->add("placeholder", LAUNCHER->getThemedIcon("screenshot-placeholder"));
connect(&watcher, SIGNAL(fileChanged(QString)), SLOT(fileChanged(QString)));
// FIXME: the watched file set is not updated when files are removed
}
diff --git a/launcher/pages/instance/ScreenshotsPage.h b/launcher/pages/instance/ScreenshotsPage.h
index 03a809de..01f26642 100644
--- a/launcher/pages/instance/ScreenshotsPage.h
+++ b/launcher/pages/instance/ScreenshotsPage.h
@@ -18,7 +18,7 @@
#include <QMainWindow>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
class QFileSystemModel;
class QIdentityProxyModel;
@@ -53,7 +53,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("screenshots");
+ return LAUNCHER->getThemedIcon("screenshots");
}
virtual QString id() const override
{
diff --git a/launcher/pages/instance/ServersPage.cpp b/launcher/pages/instance/ServersPage.cpp
index d63c6e70..6c55fdac 100644
--- a/launcher/pages/instance/ServersPage.cpp
+++ b/launcher/pages/instance/ServersPage.cpp
@@ -324,7 +324,7 @@ public:
if(px.loadFromData(bytes))
return QIcon(px);
}
- return MMC->getThemedIcon("unknown_server");
+ return LAUNCHER->getThemedIcon("unknown_server");
}
case Qt::DisplayRole:
return m_servers[row].m_name;
@@ -762,7 +762,7 @@ void ServersPage::on_actionMove_Down_triggered()
void ServersPage::on_actionJoin_triggered()
{
const auto &address = m_model->at(currentServer)->m_address;
- MMC->launch(m_inst, true, nullptr, std::make_shared<MinecraftServerTarget>(MinecraftServerTarget::parse(address)));
+ LAUNCHER->launch(m_inst, true, nullptr, std::make_shared<MinecraftServerTarget>(MinecraftServerTarget::parse(address)));
}
#include "ServersPage.moc"
diff --git a/launcher/pages/instance/ServersPage.h b/launcher/pages/instance/ServersPage.h
index 8c5b7eb8..63f3b9e3 100644
--- a/launcher/pages/instance/ServersPage.h
+++ b/launcher/pages/instance/ServersPage.h
@@ -19,7 +19,7 @@
#include <QString>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
namespace Ui
{
@@ -47,7 +47,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("unknown_server");
+ return LAUNCHER->getThemedIcon("unknown_server");
}
virtual QString id() const override
{
diff --git a/launcher/pages/instance/VersionPage.cpp b/launcher/pages/instance/VersionPage.cpp
index 20cb2c9f..103f0c7a 100644
--- a/launcher/pages/instance/VersionPage.cpp
+++ b/launcher/pages/instance/VersionPage.cpp
@@ -13,7 +13,7 @@
* limitations under the License.
*/
-#include "MultiMC.h"
+#include "Launcher.h"
#include <QMessageBox>
#include <QLabel>
@@ -70,14 +70,14 @@ public:
auto string = var.toString();
if(string == "warning")
{
- return MMC->getThemedIcon("status-yellow");
+ return LAUNCHER->getThemedIcon("status-yellow");
}
else if(string == "error")
{
- return MMC->getThemedIcon("status-bad");
+ return LAUNCHER->getThemedIcon("status-bad");
}
}
- return MMC->getThemedIcon("status-good");
+ return LAUNCHER->getThemedIcon("status-good");
}
return var;
}
@@ -93,7 +93,7 @@ private:
QIcon VersionPage::icon() const
{
- return MMC->icons()->getIcon(m_inst->iconKey());
+ return LAUNCHER->icons()->getIcon(m_inst->iconKey());
}
bool VersionPage::shouldDisplay() const
{
@@ -297,7 +297,7 @@ void VersionPage::on_actionInstall_mods_triggered()
void VersionPage::on_actionAdd_to_Minecraft_jar_triggered()
{
- auto list = GuiUtil::BrowseForFiles("jarmod", tr("Select jar mods"), tr("Minecraft.jar mods (*.zip *.jar)"), MMC->settings()->get("CentralModsDir").toString(), this->parentWidget());
+ auto list = GuiUtil::BrowseForFiles("jarmod", tr("Select jar mods"), tr("Minecraft.jar mods (*.zip *.jar)"), LAUNCHER->settings()->get("CentralModsDir").toString(), this->parentWidget());
if(!list.empty())
{
m_profile->installJarMods(list);
@@ -307,7 +307,7 @@ void VersionPage::on_actionAdd_to_Minecraft_jar_triggered()
void VersionPage::on_actionReplace_Minecraft_jar_triggered()
{
- auto jarPath = GuiUtil::BrowseForFile("jar", tr("Select jar"), tr("Minecraft.jar replacement (*.jar)"), MMC->settings()->get("CentralModsDir").toString(), this->parentWidget());
+ auto jarPath = GuiUtil::BrowseForFile("jar", tr("Select jar"), tr("Minecraft.jar replacement (*.jar)"), LAUNCHER->settings()->get("CentralModsDir").toString(), this->parentWidget());
if(!jarPath.isEmpty())
{
m_profile->installCustomJar(jarPath);
@@ -395,7 +395,7 @@ void VersionPage::on_actionChange_version_triggered()
void VersionPage::on_actionDownload_All_triggered()
{
- if (!MMC->accounts()->anyAccountIsValid())
+ if (!LAUNCHER->accounts()->anyAccountIsValid())
{
CustomMessageBox::selectable(
this, tr("Error"),
@@ -614,7 +614,7 @@ void VersionPage::on_actionEdit_triggered()
qWarning() << "file" << filename << "can't be opened for editing, doesn't exist!";
return;
}
- MMC->openJsonEditor(filename);
+ LAUNCHER->openJsonEditor(filename);
}
void VersionPage::on_actionRevert_triggered()
diff --git a/launcher/pages/instance/WorldListPage.cpp b/launcher/pages/instance/WorldListPage.cpp
index 119cff3e..d25f23a8 100644
--- a/launcher/pages/instance/WorldListPage.cpp
+++ b/launcher/pages/instance/WorldListPage.cpp
@@ -26,7 +26,7 @@
#include <QInputDialog>
#include <tools/MCEditTool.h>
-#include "MultiMC.h"
+#include "Launcher.h"
#include <GuiUtil.h>
#include <QProcess>
#include <FileSystem.h>
@@ -48,7 +48,7 @@ public:
auto iconFile = worlds->data(sourceIndex, WorldList::IconFileRole).toString();
if(iconFile.isNull()) {
// NOTE: Minecraft uses the same placeholder for servers AND worlds
- return MMC->getThemedIcon("unknown_server");
+ return LAUNCHER->getThemedIcon("unknown_server");
}
return QIcon(iconFile);
}
@@ -218,7 +218,7 @@ void WorldListPage::on_actionCopy_Seed_triggered()
return;
}
int64_t seed = m_worlds->data(index, WorldList::SeedRole).toLongLong();
- MMC->clipboard()->setText(QString::number(seed));
+ LAUNCHER->clipboard()->setText(QString::number(seed));
}
void WorldListPage::on_actionMCEdit_triggered()
@@ -226,7 +226,7 @@ void WorldListPage::on_actionMCEdit_triggered()
if(m_mceditStarting)
return;
- auto mcedit = MMC->mcedit();
+ auto mcedit = LAUNCHER->mcedit();
const QString mceditPath = mcedit->path();
diff --git a/launcher/pages/instance/WorldListPage.h b/launcher/pages/instance/WorldListPage.h
index 4fc9aa09..b90d7ad1 100644
--- a/launcher/pages/instance/WorldListPage.h
+++ b/launcher/pages/instance/WorldListPage.h
@@ -19,7 +19,7 @@
#include "minecraft/MinecraftInstance.h"
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include <LoggedProcess.h>
class WorldList;
@@ -46,7 +46,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("worlds");
+ return LAUNCHER->getThemedIcon("worlds");
}
virtual QString id() const override
{
diff --git a/launcher/pages/modplatform/ImportPage.cpp b/launcher/pages/modplatform/ImportPage.cpp
index c2369bdc..dd02e839 100644
--- a/launcher/pages/modplatform/ImportPage.cpp
+++ b/launcher/pages/modplatform/ImportPage.cpp
@@ -1,7 +1,7 @@
#include "ImportPage.h"
#include "ui_ImportPage.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include "dialogs/NewInstanceDialog.h"
#include <QFileDialog>
#include <QValidator>
diff --git a/launcher/pages/modplatform/ImportPage.h b/launcher/pages/modplatform/ImportPage.h
index 67e3c201..cc8a0d1f 100644
--- a/launcher/pages/modplatform/ImportPage.h
+++ b/launcher/pages/modplatform/ImportPage.h
@@ -18,7 +18,7 @@
#include <QWidget>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include "tasks/Task.h"
namespace Ui
@@ -41,7 +41,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("viewfolder");
+ return LAUNCHER->getThemedIcon("viewfolder");
}
virtual QString id() const override
{
diff --git a/launcher/pages/modplatform/VanillaPage.cpp b/launcher/pages/modplatform/VanillaPage.cpp
index 02638315..1cf5bbc7 100644
--- a/launcher/pages/modplatform/VanillaPage.cpp
+++ b/launcher/pages/modplatform/VanillaPage.cpp
@@ -1,7 +1,7 @@
#include "VanillaPage.h"
#include "ui_VanillaPage.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include <meta/Index.h>
#include <meta/VersionList.h>
diff --git a/launcher/pages/modplatform/VanillaPage.h b/launcher/pages/modplatform/VanillaPage.h
index af6fd392..e090d8bb 100644
--- a/launcher/pages/modplatform/VanillaPage.h
+++ b/launcher/pages/modplatform/VanillaPage.h
@@ -18,7 +18,7 @@
#include <QWidget>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include "tasks/Task.h"
namespace Ui
@@ -41,7 +41,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("minecraft");
+ return LAUNCHER->getThemedIcon("minecraft");
}
virtual QString id() const override
{
diff --git a/launcher/pages/modplatform/atlauncher/AtlListModel.cpp b/launcher/pages/modplatform/atlauncher/AtlListModel.cpp
index f3be6198..99d12601 100644
--- a/launcher/pages/modplatform/atlauncher/AtlListModel.cpp
+++ b/launcher/pages/modplatform/atlauncher/AtlListModel.cpp
@@ -1,7 +1,7 @@
#include "AtlListModel.h"
#include <BuildConfig.h>
-#include <MultiMC.h>
+#include <Launcher.h>
#include <Env.h>
#include <Json.h>
@@ -48,7 +48,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
{
return (m_logoMap.value(pack.safeName));
}
- auto icon = MMC->getThemedIcon("atlauncher-placeholder");
+ auto icon = LAUNCHER->getThemedIcon("atlauncher-placeholder");
auto url = QString(BuildConfig.ATL_DOWNLOAD_SERVER_URL + "launcher/images/%1.png").arg(pack.safeName.toLower());
((ListModel *)this)->requestLogo(pack.safeName, url);
diff --git a/launcher/pages/modplatform/atlauncher/AtlPage.cpp b/launcher/pages/modplatform/atlauncher/AtlPage.cpp
index 9fdf111f..e59e5fe1 100644
--- a/launcher/pages/modplatform/atlauncher/AtlPage.cpp
+++ b/launcher/pages/modplatform/atlauncher/AtlPage.cpp
@@ -139,7 +139,7 @@ QVector<QString> AtlPage::chooseOptionalMods(QVector<ATLauncher::VersionMod> mod
}
QString AtlPage::chooseVersion(Meta::VersionListPtr vlist, QString minecraftVersion) {
- VersionSelectDialog vselect(vlist.get(), "Choose Version", MMC->activeWindow(), false);
+ VersionSelectDialog vselect(vlist.get(), "Choose Version", LAUNCHER->activeWindow(), false);
if (minecraftVersion != Q_NULLPTR) {
vselect.setExactFilter(BaseVersionList::ParentVersionRole, minecraftVersion);
vselect.setEmptyString(tr("No versions are currently available for Minecraft %1").arg(minecraftVersion));
diff --git a/launcher/pages/modplatform/atlauncher/AtlPage.h b/launcher/pages/modplatform/atlauncher/AtlPage.h
index 932ec6a6..ed872053 100644
--- a/launcher/pages/modplatform/atlauncher/AtlPage.h
+++ b/launcher/pages/modplatform/atlauncher/AtlPage.h
@@ -21,7 +21,7 @@
#include <QWidget>
#include <modplatform/atlauncher/ATLPackInstallTask.h>
-#include "MultiMC.h"
+#include "Launcher.h"
#include "pages/BasePage.h"
#include "tasks/Task.h"
@@ -45,7 +45,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("atlauncher");
+ return LAUNCHER->getThemedIcon("atlauncher");
}
virtual QString id() const override
{
diff --git a/launcher/pages/modplatform/flame/FlameModel.cpp b/launcher/pages/modplatform/flame/FlameModel.cpp
index 228a88c5..6dd29d21 100644
--- a/launcher/pages/modplatform/flame/FlameModel.cpp
+++ b/launcher/pages/modplatform/flame/FlameModel.cpp
@@ -1,5 +1,5 @@
#include "FlameModel.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include <Json.h>
#include <MMCStrings.h>
@@ -62,7 +62,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
{
return (m_logoMap.value(pack.logoName));
}
- QIcon icon = MMC->getThemedIcon("screenshot-placeholder");
+ QIcon icon = LAUNCHER->getThemedIcon("screenshot-placeholder");
((ListModel *)this)->requestLogo(pack.logoName, pack.logoUrl);
return icon;
}
diff --git a/launcher/pages/modplatform/flame/FlamePage.cpp b/launcher/pages/modplatform/flame/FlamePage.cpp
index ade58431..8f798df6 100644
--- a/launcher/pages/modplatform/flame/FlamePage.cpp
+++ b/launcher/pages/modplatform/flame/FlamePage.cpp
@@ -1,7 +1,7 @@
#include "FlamePage.h"
#include "ui_FlamePage.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include <Json.h>
#include "dialogs/NewInstanceDialog.h"
#include <InstanceImportTask.h>
diff --git a/launcher/pages/modplatform/flame/FlamePage.h b/launcher/pages/modplatform/flame/FlamePage.h
index 467bb44b..c3d2630a 100644
--- a/launcher/pages/modplatform/flame/FlamePage.h
+++ b/launcher/pages/modplatform/flame/FlamePage.h
@@ -18,7 +18,7 @@
#include <QWidget>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include "tasks/Task.h"
#include <modplatform/flame/FlamePackIndex.h>
@@ -46,7 +46,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("flame");
+ return LAUNCHER->getThemedIcon("flame");
}
virtual QString id() const override
{
diff --git a/launcher/pages/modplatform/ftb/FtbListModel.cpp b/launcher/pages/modplatform/ftb/FtbListModel.cpp
index f5ed106b..c4c2c83e 100644
--- a/launcher/pages/modplatform/ftb/FtbListModel.cpp
+++ b/launcher/pages/modplatform/ftb/FtbListModel.cpp
@@ -2,7 +2,7 @@
#include "BuildConfig.h"
#include "Env.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include "Json.h"
#include <QPainter>
@@ -46,7 +46,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
}
else if(role == Qt::DecorationRole)
{
- QIcon placeholder = MMC->getThemedIcon("screenshot-placeholder");
+ QIcon placeholder = LAUNCHER->getThemedIcon("screenshot-placeholder");
auto iter = m_logoMap.find(pack.name);
if (iter != m_logoMap.end()) {
diff --git a/launcher/pages/modplatform/ftb/FtbPage.h b/launcher/pages/modplatform/ftb/FtbPage.h
index 25b531fb..0a4a6cea 100644
--- a/launcher/pages/modplatform/ftb/FtbPage.h
+++ b/launcher/pages/modplatform/ftb/FtbPage.h
@@ -20,7 +20,7 @@
#include <QWidget>
-#include "MultiMC.h"
+#include "Launcher.h"
#include "pages/BasePage.h"
#include "tasks/Task.h"
@@ -44,7 +44,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("ftb_logo");
+ return LAUNCHER->getThemedIcon("ftb_logo");
}
virtual QString id() const override
{
diff --git a/launcher/pages/modplatform/legacy_ftb/ListModel.cpp b/launcher/pages/modplatform/legacy_ftb/ListModel.cpp
index 32596fb3..78063c5f 100644
--- a/launcher/pages/modplatform/legacy_ftb/ListModel.cpp
+++ b/launcher/pages/modplatform/legacy_ftb/ListModel.cpp
@@ -1,5 +1,5 @@
#include "ListModel.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include <MMCStrings.h>
#include <Version.h>
@@ -130,7 +130,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
{
return (m_logoMap.value(pack.logo));
}
- QIcon icon = MMC->getThemedIcon("screenshot-placeholder");
+ QIcon icon = LAUNCHER->getThemedIcon("screenshot-placeholder");
((ListModel *)this)->requestLogo(pack.logo);
return icon;
}
diff --git a/launcher/pages/modplatform/legacy_ftb/Page.cpp b/launcher/pages/modplatform/legacy_ftb/Page.cpp
index a438f76c..6b6a7dcd 100644
--- a/launcher/pages/modplatform/legacy_ftb/Page.cpp
+++ b/launcher/pages/modplatform/legacy_ftb/Page.cpp
@@ -3,7 +3,7 @@
#include <QInputDialog>
-#include "MultiMC.h"
+#include "Launcher.h"
#include "dialogs/CustomMessageBox.h"
#include "dialogs/NewInstanceDialog.h"
#include "modplatform/legacy_ftb/PackFetchTask.h"
diff --git a/launcher/pages/modplatform/legacy_ftb/Page.h b/launcher/pages/modplatform/legacy_ftb/Page.h
index e840216e..6159cd9d 100644
--- a/launcher/pages/modplatform/legacy_ftb/Page.h
+++ b/launcher/pages/modplatform/legacy_ftb/Page.h
@@ -20,7 +20,7 @@
#include <QTextBrowser>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include "tasks/Task.h"
#include "modplatform/legacy_ftb/PackHelpers.h"
#include "modplatform/legacy_ftb/PackFetchTask.h"
@@ -54,7 +54,7 @@ public:
}
QIcon icon() const override
{
- return MMC->getThemedIcon("ftb_logo");
+ return LAUNCHER->getThemedIcon("ftb_logo");
}
QString id() const override
{
diff --git a/launcher/pages/modplatform/technic/TechnicModel.cpp b/launcher/pages/modplatform/technic/TechnicModel.cpp
index def30783..cac6fef1 100644
--- a/launcher/pages/modplatform/technic/TechnicModel.cpp
+++ b/launcher/pages/modplatform/technic/TechnicModel.cpp
@@ -15,7 +15,7 @@
#include "TechnicModel.h"
#include "Env.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include "Json.h"
#include <QIcon>
@@ -47,7 +47,7 @@ QVariant Technic::ListModel::data(const QModelIndex& index, int role) const
{
return (m_logoMap.value(pack.logoName));
}
- QIcon icon = MMC->getThemedIcon("screenshot-placeholder");
+ QIcon icon = LAUNCHER->getThemedIcon("screenshot-placeholder");
((ListModel *)this)->requestLogo(pack.logoName, pack.logoUrl);
return icon;
}
diff --git a/launcher/pages/modplatform/technic/TechnicPage.cpp b/launcher/pages/modplatform/technic/TechnicPage.cpp
index e836f767..4f27e685 100644
--- a/launcher/pages/modplatform/technic/TechnicPage.cpp
+++ b/launcher/pages/modplatform/technic/TechnicPage.cpp
@@ -16,7 +16,7 @@
#include "TechnicPage.h"
#include "ui_TechnicPage.h"
-#include "MultiMC.h"
+#include "Launcher.h"
#include "dialogs/NewInstanceDialog.h"
#include "TechnicModel.h"
#include <QKeyEvent>
diff --git a/launcher/pages/modplatform/technic/TechnicPage.h b/launcher/pages/modplatform/technic/TechnicPage.h
index 27e1258a..f0619a52 100644
--- a/launcher/pages/modplatform/technic/TechnicPage.h
+++ b/launcher/pages/modplatform/technic/TechnicPage.h
@@ -18,7 +18,7 @@
#include <QWidget>
#include "pages/BasePage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include "tasks/Task.h"
#include "TechnicData.h"
@@ -46,7 +46,7 @@ public:
}
virtual QIcon icon() const override
{
- return MMC->getThemedIcon("technic");
+ return LAUNCHER->getThemedIcon("technic");
}
virtual QString id() const override
{
diff --git a/launcher/resources/MultiMC.icns b/launcher/resources/MultiMC.icns
deleted file mode 100644
index c4eb59d5..00000000
--- a/launcher/resources/MultiMC.icns
+++ /dev/null
Binary files differ
diff --git a/launcher/resources/MultiMC.ico b/launcher/resources/MultiMC.ico
deleted file mode 100644
index a86a1f0d..00000000
--- a/launcher/resources/MultiMC.ico
+++ /dev/null
Binary files differ
diff --git a/launcher/resources/MultiMC.manifest b/launcher/resources/MultiMC.manifest
deleted file mode 100644
index 9278f6e4..00000000
--- a/launcher/resources/MultiMC.manifest
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
- <assemblyIdentity name="MultiMC.Application.5" type="win32" version="5.0.0.0" />
- <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
- <security>
- <requestedPrivileges>
- <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
- </requestedPrivileges>
- </security>
- </trustInfo>
- <dependency>
- <dependentAssembly>
- <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*"/>
- </dependentAssembly>
- </dependency>
- <description>Custom Minecraft launcher for managing multiple installs.</description>
- <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
- <application>
- <!--The ID below indicates app support for Windows Vista -->
- <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
- <!--The ID below indicates app support for Windows 7 -->
- <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
- <!--The ID below indicates app support for Windows 8 -->
- <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
- <!--The ID below indicates app support for Windows 8.1 -->
- <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
- <!--The ID below indicates app support for Windows 10 -->
- <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
- </application>
- </compatibility>
-</assembly> \ No newline at end of file
diff --git a/launcher/resources/OSX/OSX.qrc b/launcher/resources/OSX/OSX.qrc
index 0ae7d4d0..b85313e1 100644
--- a/launcher/resources/OSX/OSX.qrc
+++ b/launcher/resources/OSX/OSX.qrc
@@ -16,16 +16,15 @@
<file>scalable/jarmods.svg</file>
<file>scalable/java.svg</file>
<file>scalable/language.svg</file>
+ <file>scalable/launcher.svg</file>
<file>scalable/loadermods.svg</file>
<file>scalable/log.svg</file>
<file>scalable/minecraft.svg</file>
- <file>scalable/multimc.svg</file>
<file>scalable/new.svg</file>
<file>scalable/news.svg</file>
<file>scalable/notes.svg</file>
<file>scalable/patreon.svg</file>
<file>scalable/proxy.svg</file>
- <file>scalable/quickmods.svg</file>
<file>scalable/refresh.svg</file>
<file>scalable/resourcepacks.svg</file>
<file>scalable/shaderpacks.svg</file>
diff --git a/launcher/resources/OSX/scalable/quickmods.svg b/launcher/resources/OSX/scalable/launcher.svg
index e0aaad87..e0aaad87 100644
--- a/launcher/resources/OSX/scalable/quickmods.svg
+++ b/launcher/resources/OSX/scalable/launcher.svg
diff --git a/launcher/resources/OSX/scalable/multimc.svg b/launcher/resources/OSX/scalable/multimc.svg
deleted file mode 100644
index caad21b5..00000000
--- a/launcher/resources/OSX/scalable/multimc.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
-<path fill="#585858" d="M6.9,4.4v16h16v-16H6.9z M21.9,5.4l0,14h-14v-14H21.9z"/>
-<rect fill="none" width="24" height="24"/>
-<rect x="7.9" y="5.4" fill="#F2F2F2" width="14" height="14"/>
-<polygon fill="#999999" points="7.9,7.4 7.9,6.9 8.9,6.9 8.9,7.9 9.9,7.9 9.9,7.4 10.9,7.4 10.9,8.9 11.9,8.9 11.9,6.4 12.9,6.4
- 12.9,7.4 13.9,7.4 13.9,6.9 14.9,6.9 14.9,8.9 15.9,8.9 15.9,7.4 16.9,7.4 16.9,8.4 17.9,8.4 17.9,7.4 18.9,7.4 18.9,6.9 19.9,6.9
- 19.9,7.4 21.4,7.4 21.4,6.9 21.9,6.9 21.9,7.4 22.9,7.4 22.9,4.4 6.9,4.4 6.9,7.4 "/>
-<g>
- <path fill="#585858" d="M14.9,13.6c-0.9,0.9-1.9,2-3.4,2c-1.5,0-2.6-1.1-2.6-2.7c0-1.4,1.2-2.7,2.8-2.7c1.3,0,2.4,1.1,3.2,2
- c0.9-0.9,1.9-2,3.4-2c1.6,0,2.6,1.1,2.6,2.7c0,1.4-1.2,2.7-2.8,2.7C16.7,15.6,15.7,14.5,14.9,13.6z M14.1,12.9
- c-0.7-0.7-1.5-1.6-2.5-1.6c-0.9,0-1.6,0.7-1.6,1.6c0,0.9,0.7,1.6,1.6,1.6C12.6,14.5,13.4,13.6,14.1,12.9z M19.7,12.9
- c0-0.9-0.7-1.6-1.5-1.6c-1,0-1.9,0.9-2.6,1.6c0.7,0.7,1.5,1.6,2.5,1.6C19,14.5,19.7,13.7,19.7,12.9z"/>
-</g>
-</svg>
diff --git a/launcher/resources/flat/flat.qrc b/launcher/resources/flat/flat.qrc
index a3cd51f8..a888f6d4 100644
--- a/launcher/resources/flat/flat.qrc
+++ b/launcher/resources/flat/flat.qrc
@@ -18,10 +18,10 @@
<file>scalable/jarmods.svg</file>
<file>scalable/java.svg</file>
<file>scalable/language.svg</file>
+ <file>scalable/launcher.svg</file>
<file>scalable/loadermods.svg</file>
<file>scalable/log.svg</file>
<file>scalable/minecraft.svg</file>
- <file>scalable/multimc.svg</file>
<file>scalable/new.svg</file>
<file>scalable/news.svg</file>
<file>scalable/notes.svg</file>
diff --git a/launcher/resources/flat/scalable/launcher.svg b/launcher/resources/flat/scalable/launcher.svg
new file mode 100644
index 00000000..2c4964db
--- /dev/null
+++ b/launcher/resources/flat/scalable/launcher.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24" height="24" fill="#757575" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m20 4h-16v16h16zm0 18h-16c-1.1046 0-2-0.89543-2-2v-16c0-1.1046 0.89543-2 2-2h16c1.1046 0 2 0.89543 2 2v16c0 1.1046-0.89543 2-2 2z"/><path d="m7.2 18c-0.225 0-0.45-0.075-0.6-0.15-0.375-0.225-0.6-0.6-0.6-1.05v-9.6c0-0.45 0.225-0.825 0.6-1.05 0.225-0.15 0.375-0.15 0.6-0.15 0.15 0 0.375 0.075 0.525 0.15l9.6 4.8c0.375 0.225 0.675 0.6 0.675 1.05 0 0.45-0.225 0.9-0.675 1.05l-9.6 4.8c-0.15 0.075-0.375 0.15-0.525 0.15z" clip-rule="evenodd" fill="#757575" fill-rule="evenodd" stroke-width=".99999"/></svg>
diff --git a/launcher/resources/iOS/iOS.qrc b/launcher/resources/iOS/iOS.qrc
index 4aa3e891..5eec744c 100644
--- a/launcher/resources/iOS/iOS.qrc
+++ b/launcher/resources/iOS/iOS.qrc
@@ -16,16 +16,15 @@
<file>scalable/jarmods.svg</file>
<file>scalable/java.svg</file>
<file>scalable/language.svg</file>
+ <file>scalable/launcher.svg</file>
<file>scalable/loadermods.svg</file>
<file>scalable/log.svg</file>
<file>scalable/minecraft.svg</file>
- <file>scalable/multimc.svg</file>
<file>scalable/new.svg</file>
<file>scalable/news.svg</file>
<file>scalable/notes.svg</file>
<file>scalable/patreon.svg</file>
<file>scalable/proxy.svg</file>
- <file>scalable/quickmods.svg</file>
<file>scalable/refresh.svg</file>
<file>scalable/resourcepacks.svg</file>
<file>scalable/shaderpacks.svg</file>
diff --git a/launcher/resources/iOS/scalable/quickmods.svg b/launcher/resources/iOS/scalable/launcher.svg
index cd63ba71..cd63ba71 100644
--- a/launcher/resources/iOS/scalable/quickmods.svg
+++ b/launcher/resources/iOS/scalable/launcher.svg
diff --git a/launcher/resources/multimc.rc b/launcher/resources/multimc.rc
deleted file mode 100644
index e7340f2a..00000000
--- a/launcher/resources/multimc.rc
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include <windows.h>
-
-IDI_ICON1 ICON DISCARDABLE "MultiMC.ico"
-1 RT_MANIFEST "MultiMC.manifest"
-
-VS_VERSION_INFO VERSIONINFO
-FILEVERSION 1,0,0,0
-FILEOS VOS_NT_WINDOWS32
-FILETYPE VFT_APP
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "000004b0"
- BEGIN
- VALUE "CompanyName", "MultiMC Contributors"
- VALUE "FileDescription", "MultiMC Launcher"
- VALUE "FileVersion", "1.0.0.0"
- VALUE "ProductName", "MultiMC"
- VALUE "ProductVersion", "5"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x0000, 0x04b0 // Unicode
- END
-END
diff --git a/launcher/resources/multimc/128x128/instances/infinity.png b/launcher/resources/multimc/128x128/instances/infinity.png
index cc7ca7bc..63e06e5b 100644
--- a/launcher/resources/multimc/128x128/instances/infinity.png
+++ b/launcher/resources/multimc/128x128/instances/infinity.png
Binary files differ
diff --git a/launcher/resources/multimc/index.theme b/launcher/resources/multimc/index.theme
index 6061b7f8..070e23f1 100644
--- a/launcher/resources/multimc/index.theme
+++ b/launcher/resources/multimc/index.theme
@@ -1,6 +1,6 @@
[Icon Theme]
Name=multimc
-Comment=MultiMC Default Icons
+Comment=Default Icons
Inherits=default
Directories=8x8,16x16,22x22,24x24,32x32,32x32/instances,48x48,50x50/instances,64x64,128x128/instances,256x256,scalable,scalable/instances
diff --git a/launcher/resources/multimc/multimc.qrc b/launcher/resources/multimc/multimc.qrc
index eec10ea4..5b36cb3d 100644
--- a/launcher/resources/multimc/multimc.qrc
+++ b/launcher/resources/multimc/multimc.qrc
@@ -2,11 +2,6 @@
<RCC version="1.0">
<qresource prefix="/icons/multimc">
<file>index.theme</file>
- <!-- Logo. Our own. For use in branding. -->
- <file>scalable/logo.svg</file>
-
- <!-- Logo. Our own. For use within the application (Settings pages and similar). -->
- <file>scalable/multimc.svg</file>
<!-- REDDIT logo icon, needs reddit license! -->
<file>scalable/reddit-alien.svg</file>
@@ -15,6 +10,9 @@
<file alias="32x32/flame.png">32x32/instances/flame.png</file>
<file alias="128x128/flame.png">128x128/instances/flame.png</file>
+ <!-- launcher settings page -->
+ <file>scalable/launcher.svg</file>
+
<!-- technic logo icon -->
<file>scalable/technic.svg</file>
@@ -284,9 +282,6 @@
<file>32x32/instances/herobrine.png</file>
<file>128x128/instances/herobrine.png</file>
- <file>32x32/instances/infinity.png</file>
- <file>128x128/instances/infinity.png</file>
-
<file>32x32/instances/magitech.png</file>
<file>128x128/instances/magitech.png</file>
diff --git a/launcher/resources/multimc/scalable/launcher.svg b/launcher/resources/multimc/scalable/launcher.svg
new file mode 100644
index 00000000..42a056d6
--- /dev/null
+++ b/launcher/resources/multimc/scalable/launcher.svg
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ version="1.1"
+ width="32"
+ height="32"
+ id="svg2"
+ inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
+ sodipodi:docname="launcher.svg"
+ inkscape:export-filename="/home/peterix/minecraft/src/MultiMC5/application/resources/multimc/64x64/status-running.png"
+ inkscape:export-xdpi="180"
+ inkscape:export-ydpi="180"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1502"
+ inkscape:window-height="1405"
+ id="namedview32"
+ showgrid="true"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-nodes="false"
+ inkscape:bbox-paths="false"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-bbox-edge-midpoints="false"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-midpoints="false"
+ inkscape:zoom="29.5"
+ inkscape:cx="7.9152543"
+ inkscape:cy="16.576271"
+ inkscape:window-x="2015"
+ inkscape:window-y="586"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="layer1"
+ inkscape:pagecheckerboard="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4160"
+ spacingx="0.5"
+ spacingy="0.5"
+ empspacing="8" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient4162">
+ <stop
+ offset="0"
+ style="stop-color:#0071f1;stop-opacity:1"
+ id="stop4164" />
+ <stop
+ offset="1"
+ style="stop-color:#007ec3;stop-opacity:1"
+ id="stop4166" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3827">
+ <stop
+ id="stop3829"
+ style="stop-color:#b80000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3831"
+ style="stop-color:#600000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3801">
+ <stop
+ id="stop3803"
+ style="stop-color:#f1ab00;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3805"
+ style="stop-color:#c39a00;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3005">
+ <stop
+ id="stop3007"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3781"
+ style="stop-color:#ffffff;stop-opacity:0.49803922"
+ offset="0.8142857" />
+ <stop
+ id="stop3009"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <filter
+ color-interpolation-filters="sRGB"
+ id="filter3797">
+ <feGaussianBlur
+ id="feGaussianBlur3799"
+ stdDeviation="0.52592593" />
+ </filter>
+ <radialGradient
+ cx="3.9371533"
+ cy="7.5016646"
+ r="2.5"
+ fx="3.9371533"
+ fy="7.5016646"
+ id="radialGradient3807"
+ xlink:href="#linearGradient4162"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4496779,1.5407764,-0.90127514,0.84794135,4.9906134,-4.9255796)" />
+ <radialGradient
+ cx="3.9371533"
+ cy="7.5016646"
+ r="2.5"
+ fx="3.9371533"
+ fy="7.5016646"
+ id="radialGradient3823"
+ xlink:href="#linearGradient3827"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4496779,1.5407764,-0.90127514,0.84794135,4.9906134,-4.9255796)" />
+ <radialGradient
+ cx="3.9371533"
+ cy="7.5016646"
+ r="2.5"
+ fx="3.9371533"
+ fy="7.5016646"
+ id="radialGradient3786"
+ xlink:href="#linearGradient3801"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4496779,1.5407764,-0.90127514,0.84794135,4.9906134,-4.9255796)" />
+ </defs>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1020.3622)"
+ id="layer1">
+ <path
+ d="m 8,9.5 a 2.5,2.5 0 1 1 -5,0 2.5,2.5 0 1 1 5,0 z"
+ transform="matrix(6.4,0,0,6.4,-19.2,975.5622)"
+ id="path2997"
+ style="color:#000000;fill:url(#radialGradient3807);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ d="M 31,16 A 15,15 0 1 1 1,16 15,15 0 1 1 31,16 z"
+ transform="matrix(0.93333333,0,0,0.93333444,1.0666666,1021.4288)"
+ id="path2999"
+ style="color:#000000;fill:#009cff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <g
+ id="g4187">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4168"
+ d="m 10.455414,1028.3241 0,16.0761 L 24,1036.3622 Z"
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.95251006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ style="opacity:0.54887217;fill:#ffffff;stroke:none"
+ id="path3809-3"
+ d="m 10.5,1044.3622 0,-16 13.5,8 z" />
+ </g>
+ </g>
+</svg>
diff --git a/launcher/resources/multimc/scalable/logo.svg b/launcher/resources/multimc/scalable/logo.svg
deleted file mode 100644
index 8bb0e289..00000000
--- a/launcher/resources/multimc/scalable/logo.svg
+++ /dev/null
@@ -1,353 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="68.26667"
- height="68.26667"
- id="svg4427"
- version="1.1"
- inkscape:version="0.92.1 r"
- sodipodi:docname="multimc-smooth-biginfinity.svg"
- inkscape:export-filename="/home/peterix/playground/MultiMC-icons/multimc-smooth-biginfinity.png"
- inkscape:export-xdpi="180"
- inkscape:export-ydpi="180">
- <defs
- id="defs4429">
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4809">
- <stop
- style="stop-color:#98c867;stop-opacity:1"
- offset="0"
- id="stop4805" />
- <stop
- style="stop-color:#5c9a33;stop-opacity:1"
- offset="1"
- id="stop4807" />
- </linearGradient>
- <linearGradient
- id="linearGradient5668"
- inkscape:collect="always">
- <stop
- id="stop5670"
- offset="0"
- style="stop-color:#75b54b;stop-opacity:1;" />
- <stop
- id="stop5672"
- offset="1"
- style="stop-color:#75b54b;stop-opacity:0.6" />
- </linearGradient>
- <linearGradient
- id="linearGradient5084"
- inkscape:collect="always">
- <stop
- id="stop5086"
- offset="0"
- style="stop-color:#000000;stop-opacity:0.8" />
- <stop
- id="stop5088"
- offset="1"
- style="stop-color:#000000;stop-opacity:0.35" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5668"
- id="linearGradient5072"
- x1="6.7342591"
- y1="28.510933"
- x2="50.506943"
- y2="61.773685"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-0.01532073,-0.00938002)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5084"
- id="linearGradient5082"
- x1="14.312115"
- y1="9.7948904"
- x2="44.097023"
- y2="82.973114"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5668"
- id="linearGradient3281"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-0.01532073,-0.00938002)"
- x1="6.7342591"
- y1="28.510933"
- x2="50.506943"
- y2="61.773685" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5668"
- id="linearGradient3283"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-0.01532073,-0.00938002)"
- x1="6.7342591"
- y1="28.510933"
- x2="50.506943"
- y2="61.773685" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5668"
- id="linearGradient3286"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2671525,0,0,0.89790119,-0.01941371,-0.00842234)"
- x1="6.7342591"
- y1="28.510933"
- x2="50.506943"
- y2="61.773685" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5084"
- id="linearGradient3288"
- gradientUnits="userSpaceOnUse"
- x1="14.312115"
- y1="9.7948904"
- x2="44.097023"
- y2="82.973114" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5084"
- id="linearGradient3290"
- gradientUnits="userSpaceOnUse"
- x1="14.312115"
- y1="9.7948904"
- x2="44.097023"
- y2="82.973114" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5084"
- id="linearGradient3293"
- gradientUnits="userSpaceOnUse"
- x1="14.312115"
- y1="9.7948904"
- x2="44.097023"
- y2="82.973114"
- gradientTransform="scale(1.2671525,0.89790119)" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient5580">
- <stop
- style="stop-color:#000000;stop-opacity:0.0627451"
- offset="0"
- id="stop5576" />
- <stop
- style="stop-color:#322217;stop-opacity:0.58823532"
- offset="1"
- id="stop5578" />
- </linearGradient>
- <linearGradient
- id="linearGradient3999"
- inkscape:collect="always">
- <stop
- id="stop3995"
- offset="0"
- style="stop-color:#a3704b;stop-opacity:1" />
- <stop
- id="stop3997"
- offset="1"
- style="stop-color:#6a4a33;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- id="linearGradient2727"
- inkscape:collect="always">
- <stop
- id="stop2723"
- offset="0"
- style="stop-color:#966c4a;stop-opacity:1" />
- <stop
- id="stop2725"
- offset="1"
- style="stop-color:#593d29;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2727"
- id="linearGradient2050"
- gradientUnits="userSpaceOnUse"
- x1="36.546478"
- y1="33.80484"
- x2="86.415741"
- y2="97.065842" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3999"
- id="radialGradient2052"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-9.105292e-4,-0.00104444)"
- cx="34.133331"
- cy="34.133335"
- fx="34.133331"
- fy="34.133335"
- r="29.866665" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5580"
- id="linearGradient2140"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-0.0010513,-9.083059e-4)"
- x1="29.866674"
- y1="29.867579"
- x2="38.400005"
- y2="38.400913" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5084"
- id="linearGradient4790"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2671525,0,0,0.89790119,-0.82864077,-1.0012743)"
- x1="14.312115"
- y1="9.7948904"
- x2="44.097023"
- y2="82.973114" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4809"
- id="radialGradient4803"
- cx="-42.66758"
- cy="-34.134373"
- fx="-42.66758"
- fy="-34.134373"
- r="34.132812"
- gradientTransform="matrix(1.7500268,0.1250019,-0.01781176,0.24936465,95.393964,18.110151)"
- gradientUnits="userSpaceOnUse" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="3.6203867"
- inkscape:cx="52.171166"
- inkscape:cy="11.292073"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:document-units="px"
- inkscape:grid-bbox="true"
- inkscape:window-width="1368"
- inkscape:window-height="905"
- inkscape:window-x="2452"
- inkscape:window-y="723"
- inkscape:window-maximized="0"
- inkscape:snap-bbox="true"
- inkscape:bbox-paths="false"
- inkscape:snap-bbox-edge-midpoints="false"
- inkscape:bbox-nodes="true"
- inkscape:snap-bbox-midpoints="false"
- inkscape:snap-smooth-nodes="true"
- inkscape:snap-midpoints="false"
- inkscape:snap-intersection-paths="true"
- inkscape:object-paths="true"
- inkscape:snap-object-midpoints="true"
- inkscape:snap-text-baseline="true"
- inkscape:snap-center="true">
- <inkscape:grid
- type="xygrid"
- id="grid4446"
- empspacing="16"
- visible="true"
- enabled="true"
- snapvisiblegridlinesonly="true"
- spacingx="4.2666667"
- spacingy="4.2666667"
- originx="0"
- originy="0" />
- </sodipodi:namedview>
- <metadata
- id="metadata4432">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer">
- <g
- id="g2048"
- transform="translate(9.113e-4,0.00104183)">
- <rect
- rx="8.5333338"
- ry="8.5333338"
- style="fill:url(#linearGradient2050);fill-opacity:1;stroke:none;stroke-width:17.06666756"
- id="rect2026"
- width="68.26667"
- height="68.26667"
- x="-1.3322676e-15"
- y="3.0270508e-06" />
- <rect
- rx="4.2666626"
- y="4.2656283"
- x="4.2657552"
- height="59.733334"
- width="59.73333"
- id="rect2028"
- style="fill:url(#radialGradient2052);fill-opacity:1;stroke:none;stroke-width:14.93333435"
- ry="4.2666669" />
- <path
- inkscape:connector-curvature="0"
- id="path4811"
- d="m 4.2669272,4.2645856 -9.11e-4,8.5333334 h 4.267577 v 4.267579 h 8.5332038 v 4.265625 h 4.265625 V 8.5322946 H 25.6 v 8.5332034 h 4.265625 v -4.267579 h 4.267578 v 8.533204 h 4.265625 v -4.265625 h 4.267578 v 4.265625 h 4.267579 v -4.265625 h 4.265624 v -4.267579 h 4.267579 v 4.267579 h 8.533203 l -1.3e-4,-12.8009124 z"
- style="opacity:0.6;fill:#593d29;fill-opacity:1;stroke:none;stroke-width:17.06666756"
- sodipodi:nodetypes="ccccccccccccccccccccccccccc" />
- <path
- style="fill:url(#radialGradient4803);fill-opacity:1;stroke:none;stroke-width:17.06666756"
- d="m 8.5329442,-0.0018207 c -4.7274675,0 -8.5332035,3.805736 -8.5332035,8.533203 v 4.2675787 h 4.265625 V 8.5313823 c 0,-0.521698 0.105433,-1.01339 0.27539,-1.47461 -0.169616,0.460814 -0.27539,0.953462 -0.27539,1.47461 h 4.2675785 v 4.2675787 h 4.2656248 4.267578 v 4.265625 h 4.265625 V 12.798961 8.5313823 4.2657573 h 4.267578 v 4.265625 4.2675787 h 4.265625 V 8.5313823 h 4.267578 v 4.2675787 4.265625 h 4.265625 v -4.265625 h 4.267578 v 4.265625 h 4.267579 v -4.265625 h 4.265624 V 8.5313823 h 4.267579 v 4.2675787 h 4.265625 4.267578 V 8.5313823 h 4.265625 c 0,-4.727467 -3.805737,-8.533203 -8.533203,-8.533203 z m -3.019531,5.513671 c -0.318089,0.317888 -0.570428,0.695824 -0.7753915,1.101563 0.2048795,-0.405231 0.4576385,-0.784012 0.7753915,-1.101563 z"
- id="path4794"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:1;fill:url(#linearGradient2140);fill-opacity:1;stroke:none;stroke-width:17.06666756"
- d="m 8.5322887,-9.083059e-4 c -4.72747,0 -8.5332,3.8057359059 -8.5332,8.5332029059 V 59.731515 c 0,4.727467 3.80573,8.535156 8.5332,8.535156 H 59.731502 c 4.72747,0 8.5332,-3.807689 8.5332,-8.535156 V 8.5322946 c 0,-4.727467 -3.80573,-8.5332029059 -8.5332,-8.5332029059 z m 0,4.2675779059 H 59.731502 c 2.36373,0 4.26758,1.901892 4.26758,4.265625 V 59.731515 c 0,2.363733 -1.90385,4.267578 -4.26758,4.267578 H 8.5322887 c -2.36373,0 -4.26758,-1.903845 -4.26758,-4.267578 V 8.5322946 c 0,-2.363733 1.90385,-4.265625 4.26758,-4.265625 z"
- id="path2046"
- inkscape:connector-curvature="0" />
- </g>
- <g
- id="g1092">
- <path
- inkscape:connector-curvature="0"
- id="path4786"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:76.18933868px;line-height:125%;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient4790);fill-opacity:1;stroke:none;stroke-width:1.06666672;opacity:0.5"
- d="m 38.886673,44.940882 c -0.974277,-0.801673 -2.231353,-2.137814 -3.771231,-4.008427 -2.105641,2.672298 -4.085536,4.598569 -5.939688,5.778816 -2.325625,1.425227 -5.295467,2.137836 -8.909534,2.137828 -4.242656,8e-6 -7.762467,-1.124578 -10.5594458,-3.37376 C 6.7526311,43.114834 5.275567,39.986037 5.2755773,36.088937 5.275567,32.347763 6.7526311,29.207831 9.7067742,26.669132 12.346618,24.419991 15.897857,23.295407 20.360501,23.295373 c 2.294138,3.4e-5 4.289747,0.334069 5.986829,1.002107 1.979863,0.73491 3.645488,1.737016 4.996881,3.00632 1.257039,1.135751 2.514115,2.471891 3.771231,4.008428 2.105563,-2.672257 4.085457,-4.598527 5.939689,-5.778816 2.325544,-1.425186 5.295385,-2.137794 8.909533,-2.137828 4.242577,3.4e-5 7.762388,1.124618 10.559447,3.37376 2.954063,2.360546 4.431127,5.489343 4.431197,9.386401 -7e-5,3.741216 -1.477134,6.881147 -4.431197,9.419806 -2.639925,2.24918 -6.191163,3.373767 -10.653727,3.373758 -2.294219,9e-6 -4.289826,-0.334026 -5.98683,-1.002106 -1.697101,-0.601255 -3.362726,-1.603361 -4.996881,-3.006321 M 19.747676,44.473233 c 5.185412,1.1e-5 9.333763,-2.672271 12.445062,-8.016856 -3.991253,-5.834464 -8.139602,-8.751705 -12.445062,-8.751733 -3.142715,2.8e-5 -5.515446,0.801713 -7.118198,2.405057 -1.728498,1.71474 -2.592737,3.707818 -2.592722,5.979236 -1.5e-5,2.494152 0.864224,4.509499 2.592722,6.046046 1.759887,1.558846 4.132618,2.338261 7.118198,2.33825 M 50.483209,27.77145 c -4.682663,2.9e-5 -8.831013,2.672312 -12.445062,8.016856 3.959745,5.834503 8.108095,8.751746 12.445062,8.751733 3.142633,1.3e-5 5.515364,-0.801671 7.118198,-2.405056 1.728416,-1.714701 2.592656,-3.707778 2.592722,-5.979238 -6.6e-5,-2.49411 -0.864306,-4.509456 -2.592722,-6.046044 -1.759968,-1.558805 -4.132699,-2.338222 -7.118198,-2.338251" />
- <path
- d="m 39.715314,45.942156 c -0.974277,-0.801673 -2.231353,-2.137814 -3.771231,-4.008427 -2.105641,2.672298 -4.085536,4.598569 -5.939688,5.778816 -2.325625,1.425227 -5.295467,2.137836 -8.909534,2.137828 -4.242656,8e-6 -7.762467,-1.124578 -10.559446,-3.37376 -2.9541431,-2.360505 -4.4312072,-5.489302 -4.4311969,-9.386402 -1.03e-5,-3.741174 1.4770538,-6.881106 4.4311969,-9.419805 2.639844,-2.249141 6.191083,-3.373725 10.653727,-3.373759 2.294138,3.4e-5 4.289747,0.334069 5.986829,1.002107 1.979863,0.73491 3.645488,1.737016 4.996881,3.00632 1.257039,1.135751 2.514115,2.471891 3.771231,4.008428 2.105563,-2.672257 4.085457,-4.598527 5.939689,-5.778816 2.325544,-1.425186 5.295385,-2.137794 8.909533,-2.137828 4.242577,3.4e-5 7.762388,1.124618 10.559447,3.37376 2.954063,2.360546 4.431127,5.489343 4.431197,9.386401 -7e-5,3.741216 -1.477134,6.881147 -4.431197,9.419806 -2.639925,2.24918 -6.191163,3.373767 -10.653727,3.373758 -2.294219,9e-6 -4.289826,-0.334026 -5.98683,-1.002106 -1.697101,-0.601255 -3.362726,-1.603361 -4.996881,-3.006321 M 20.576317,45.474507 c 5.185412,1.1e-5 9.333763,-2.672271 12.445062,-8.016856 -3.991253,-5.834464 -8.139602,-8.751705 -12.445062,-8.751733 -3.142715,2.8e-5 -5.515446,0.801713 -7.118198,2.405057 -1.728498,1.71474 -2.592737,3.707818 -2.592722,5.979236 -1.5e-5,2.494152 0.864224,4.509499 2.592722,6.046046 1.759887,1.558846 4.132618,2.338261 7.118198,2.33825 M 51.31185,28.772724 c -4.682663,2.9e-5 -8.831013,2.672312 -12.445062,8.016856 3.959745,5.834503 8.108095,8.751746 12.445062,8.751733 3.142633,1.3e-5 5.515364,-0.801671 7.118198,-2.405056 1.728416,-1.714701 2.592656,-3.707778 2.592722,-5.979238 -6.6e-5,-2.49411 -0.864306,-4.509456 -2.592722,-6.046044 C 56.67008,29.55217 54.297349,28.772753 51.31185,28.772724"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:76.18933868px;line-height:125%;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3293);fill-opacity:1;stroke:none;stroke-width:1.06666672;opacity:0.5"
- id="path3279"
- inkscape:connector-curvature="0" />
- <path
- d="m 37.904564,42.951873 c -0.974278,-0.801672 -2.231352,-2.137814 -3.771231,-4.008428 -2.105642,2.672298 -4.085537,4.598568 -5.939688,5.778817 -2.325625,1.425227 -5.295466,2.137836 -8.909534,2.137828 -4.242656,8e-6 -7.762467,-1.124577 -10.5594464,-3.37376 -2.9541428,-2.360505 -4.4312068,-5.489302 -4.4311963,-9.386401 -1.05e-5,-3.741175 1.4770535,-6.881107 4.4311963,-9.419805 2.6398444,-2.249142 6.1910824,-3.373727 10.6537284,-3.37376 2.294137,3.3e-5 4.289745,0.334068 5.986829,1.002107 1.979863,0.734909 3.645487,1.737016 4.99688,3.00632 1.257039,1.13575 2.514116,2.471891 3.771231,4.008428 2.105562,-2.672257 4.085456,-4.598528 5.939689,-5.778817 2.325544,-1.425185 5.295387,-2.137795 8.909534,-2.137828 4.242576,3.3e-5 7.762387,1.12462 10.559446,3.373761 2.954062,2.360545 4.431127,5.489343 4.431197,9.386401 -7e-5,3.741216 -1.477135,6.881148 -4.431197,9.419805 -2.639924,2.249182 -6.191164,3.373767 -10.653728,3.37376 -2.294217,7e-6 -4.289826,-0.334028 -5.986828,-1.002107 -1.697101,-0.601254 -3.362727,-1.603361 -4.996882,-3.006321 m -19.138997,-0.46765 c 5.185412,1.3e-5 9.333762,-2.67227 12.445062,-8.016856 -3.991252,-5.834462 -8.139602,-8.751704 -12.445062,-8.751733 -3.142714,2.9e-5 -5.515444,0.801714 -7.118198,2.405056 -1.7284972,1.714743 -2.5927368,3.707819 -2.5927216,5.979239 -1.52e-5,2.49415 0.8642244,4.509496 2.5927216,6.046045 1.759888,1.558845 4.132618,2.338262 7.118198,2.338249 M 49.5011,25.782442 c -4.682663,2.8e-5 -8.831014,2.672311 -12.445063,8.016855 3.959745,5.834504 8.108096,8.751745 12.445063,8.751733 3.142634,1.2e-5 5.515365,-0.801673 7.118198,-2.405056 1.728417,-1.7147 2.592657,-3.707778 2.592721,-5.979238 -6.4e-5,-2.49411 -0.864304,-4.509456 -2.592721,-6.046046 C 54.85933,26.561886 52.486599,25.78247 49.5011,25.782442"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:76.18933868px;line-height:125%;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3286);fill-opacity:1;stroke:none;stroke-width:1.06666672"
- id="path3272"
- inkscape:connector-curvature="0" />
- <path
- sodipodi:nodetypes="ccscsccccccccccccccccccccscscccccsccscccccc"
- inkscape:connector-curvature="0"
- id="text5100"
- d="m 19.4,21.166667 c -4.462644,3.3e-5 -8.026822,1.150858 -10.6666667,3.4 -2.9541428,2.538698 -4.4333436,5.658825 -4.4333333,9.4 -1.03e-5,3.897098 1.4791905,7.039495 4.4333333,9.4 -1.622701,-2.044271 -2.433341,-4.51168 -2.4333333,-7.4 -1.03e-5,-3.741175 1.4791905,-6.861302 4.433333,-9.4 2.639845,-2.249142 6.204023,-3.399967 10.666667,-3.4 2.294138,3.3e-5 4.302916,0.365295 6,1.033333 1.979862,0.73491 3.615274,1.730695 4.966667,3 0.06836,0.06177 0.131637,0.137049 0.2,0.2 -0.731813,-0.797005 -1.468213,-1.538822 -2.2,-2.2 -1.351393,-1.269305 -2.986805,-2.26509 -4.966667,-3 -1.697084,-0.668038 -3.705862,-1.0333 -6,-1.033333 z m 29.6,0.1 c -3.614148,3.3e-5 -6.574457,0.74148 -8.9,2.166666 -1.818222,1.157367 -3.923451,3.291388 -5.983333,5.883334 0.618278,0.658774 1.248369,1.377605 1.866666,2.133333 2.105562,-2.672257 4.262434,-4.836378 6.116667,-6.016667 2.325543,-1.425186 5.285852,-2.166633 8.9,-2.166666 4.242576,3.3e-5 7.769607,1.150858 10.566667,3.4 -0.570388,-0.722129 -1.227721,-1.382884 -2,-2 C 56.769607,22.417525 53.242576,21.2667 49,21.266667 Z m 8.866667,8.1 c 0.9092,1.305235 1.366619,2.857751 1.366666,4.666666 -6.5e-5,2.271461 -0.871584,4.285301 -2.6,6 -1.602834,1.603384 -3.957366,2.400012 -7.1,2.4 -2.653707,8e-6 -5.320858,-1.032242 -7.833333,-3.216666 3.136636,3.509305 6.469807,5.216676 9.833333,5.216666 3.142634,1.2e-5 5.497166,-0.796616 7.1,-2.4 1.728416,-1.714699 2.599935,-3.728539 2.6,-6 -6.5e-5,-2.49411 -0.871584,-4.496744 -2.6,-6.033333 -0.24943,-0.220921 -0.49262,-0.443723 -0.766666,-0.633333 z m -26.633334,4.966666 c -3.1113,5.344585 -7.247921,8.033345 -12.433333,8.033334 -2.58055,1e-5 -4.543473,-0.352086 -6.208333,-1.516667 0.348871,0.50642 0.590094,0.752276 1.075,1.183333 1.759888,1.558846 4.147753,2.333345 7.133333,2.333334 5.185412,1.1e-5 9.322033,-2.688749 12.433333,-8.033334 z m 4.933334,6.5 c -0.04103,0.05207 -0.09239,0.08182 -0.133334,0.133334 0.687326,0.744419 1.306949,1.359747 1.833334,1.8 -0.529404,-0.580895 -1.078447,-1.178283 -1.7,-1.933334 z"
- style="font-style:normal;font-weight:normal;font-size:76.18933868px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;opacity:0.3;fill:#ccff00;fill-opacity:1;stroke:none;stroke-width:1.06666672" />
- <path
- sodipodi:nodetypes="ccsccscccccccccccccccccccscscccccsccsccccccc"
- id="text5058-0"
- d="m 19.730474,21.54714 c -4.462645,3.3e-5 -8.026823,1.150859 -10.6666669,3.4 -2.9541429,2.538699 -4.433344,5.658826 -4.4333333,9.4 -1.07e-5,3.897099 1.4791904,7.039495 4.4333333,9.4 0.042837,0.03444 0.090155,0.06608 0.1333334,0.1 -2.2392086,-2.228193 -3.3666752,-5.040417 -3.3666667,-8.433333 -1.07e-5,-3.741174 1.4791904,-6.861301 4.4333332,-9.4 2.639844,-2.249141 6.204022,-3.399967 10.666667,-3.4 2.294137,3.3e-5 4.302916,0.365295 6,1.033333 1.870874,0.694455 3.42364,1.628367 4.733333,2.8 -0.314265,-0.308986 -0.652406,-0.582729 -0.966667,-0.866666 -1.351393,-1.269305 -2.986804,-2.265091 -4.966666,-3 -1.697084,-0.668039 -3.705863,-1.033301 -6,-1.033334 z m 29.6,0.1 c -3.614149,3.3e-5 -6.574457,0.741481 -8.9,2.166667 -1.813279,1.154221 -3.963039,3.235656 -6.016667,5.816667 0.355649,0.402628 0.711011,0.798625 1.066667,1.233333 2.105561,-2.672257 4.295767,-4.803044 6.15,-5.983333 2.325543,-1.425187 5.285851,-2.166634 8.9,-2.166667 4.22442,3.3e-5 7.742084,1.136734 10.533333,3.366667 -0.36096,-0.367566 -0.745726,-0.696967 -1.166667,-1.033334 -2.797059,-2.249141 -6.32409,-3.399967 -10.566666,-3.4 z m 8.233333,7.333334 c 1.323326,1.449243 1.999942,3.250987 2,5.433333 -6.5e-5,2.27146 -0.871584,4.2853 -2.6,6 -1.602834,1.603383 -3.957366,2.400012 -7.1,2.4 -2.406328,6e-6 -4.776468,-0.90386 -7.066667,-2.7 2.669147,2.483838 5.436929,3.766674 8.266667,3.766667 3.142634,1.1e-5 5.497166,-0.796617 7.1,-2.4 1.728416,-1.7147 2.599935,-3.72854 2.6,-6 -6.5e-5,-2.49411 -0.871584,-4.496745 -2.6,-6.033334 -0.185641,-0.164422 -0.400724,-0.319587 -0.6,-0.466666 z m -26,5.733333 c -3.1113,5.344584 -7.247921,8.033345 -12.433333,8.033333 -2.612382,1.1e-5 -4.759372,-0.60651 -6.433334,-1.8 0.166027,0.176488 0.313947,0.367942 0.5,0.533334 1.759888,1.558845 4.147754,2.333345 7.133334,2.333333 5.185412,1.2e-5 9.322033,-2.688749 12.433333,-8.033333 z m 4.133333,5.566667 c -0.04657,0.05909 -0.08689,0.108298 -0.133333,0.166666 1.038571,1.18897 1.9748,2.169945 2.7,2.766667 0.06249,0.05364 0.137426,0.08086 0.2,0.133333 -0.792178,-0.781249 -1.706288,-1.778539 -2.766667,-3.066666 z"
- style="font-style:normal;font-weight:normal;font-size:76.18933868px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;opacity:0.6;fill:#ccff00;fill-opacity:1;stroke:none;stroke-width:1.06666672"
- inkscape:connector-curvature="0" />
- </g>
- </g>
-</svg>
diff --git a/launcher/resources/multimc/scalable/multimc.svg b/launcher/resources/multimc/scalable/multimc.svg
deleted file mode 100644
index 8bb0e289..00000000
--- a/launcher/resources/multimc/scalable/multimc.svg
+++ /dev/null
@@ -1,353 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="68.26667"
- height="68.26667"
- id="svg4427"
- version="1.1"
- inkscape:version="0.92.1 r"
- sodipodi:docname="multimc-smooth-biginfinity.svg"
- inkscape:export-filename="/home/peterix/playground/MultiMC-icons/multimc-smooth-biginfinity.png"
- inkscape:export-xdpi="180"
- inkscape:export-ydpi="180">
- <defs
- id="defs4429">
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4809">
- <stop
- style="stop-color:#98c867;stop-opacity:1"
- offset="0"
- id="stop4805" />
- <stop
- style="stop-color:#5c9a33;stop-opacity:1"
- offset="1"
- id="stop4807" />
- </linearGradient>
- <linearGradient
- id="linearGradient5668"
- inkscape:collect="always">
- <stop
- id="stop5670"
- offset="0"
- style="stop-color:#75b54b;stop-opacity:1;" />
- <stop
- id="stop5672"
- offset="1"
- style="stop-color:#75b54b;stop-opacity:0.6" />
- </linearGradient>
- <linearGradient
- id="linearGradient5084"
- inkscape:collect="always">
- <stop
- id="stop5086"
- offset="0"
- style="stop-color:#000000;stop-opacity:0.8" />
- <stop
- id="stop5088"
- offset="1"
- style="stop-color:#000000;stop-opacity:0.35" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5668"
- id="linearGradient5072"
- x1="6.7342591"
- y1="28.510933"
- x2="50.506943"
- y2="61.773685"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-0.01532073,-0.00938002)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5084"
- id="linearGradient5082"
- x1="14.312115"
- y1="9.7948904"
- x2="44.097023"
- y2="82.973114"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5668"
- id="linearGradient3281"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-0.01532073,-0.00938002)"
- x1="6.7342591"
- y1="28.510933"
- x2="50.506943"
- y2="61.773685" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5668"
- id="linearGradient3283"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-0.01532073,-0.00938002)"
- x1="6.7342591"
- y1="28.510933"
- x2="50.506943"
- y2="61.773685" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5668"
- id="linearGradient3286"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2671525,0,0,0.89790119,-0.01941371,-0.00842234)"
- x1="6.7342591"
- y1="28.510933"
- x2="50.506943"
- y2="61.773685" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5084"
- id="linearGradient3288"
- gradientUnits="userSpaceOnUse"
- x1="14.312115"
- y1="9.7948904"
- x2="44.097023"
- y2="82.973114" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5084"
- id="linearGradient3290"
- gradientUnits="userSpaceOnUse"
- x1="14.312115"
- y1="9.7948904"
- x2="44.097023"
- y2="82.973114" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5084"
- id="linearGradient3293"
- gradientUnits="userSpaceOnUse"
- x1="14.312115"
- y1="9.7948904"
- x2="44.097023"
- y2="82.973114"
- gradientTransform="scale(1.2671525,0.89790119)" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient5580">
- <stop
- style="stop-color:#000000;stop-opacity:0.0627451"
- offset="0"
- id="stop5576" />
- <stop
- style="stop-color:#322217;stop-opacity:0.58823532"
- offset="1"
- id="stop5578" />
- </linearGradient>
- <linearGradient
- id="linearGradient3999"
- inkscape:collect="always">
- <stop
- id="stop3995"
- offset="0"
- style="stop-color:#a3704b;stop-opacity:1" />
- <stop
- id="stop3997"
- offset="1"
- style="stop-color:#6a4a33;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- id="linearGradient2727"
- inkscape:collect="always">
- <stop
- id="stop2723"
- offset="0"
- style="stop-color:#966c4a;stop-opacity:1" />
- <stop
- id="stop2725"
- offset="1"
- style="stop-color:#593d29;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2727"
- id="linearGradient2050"
- gradientUnits="userSpaceOnUse"
- x1="36.546478"
- y1="33.80484"
- x2="86.415741"
- y2="97.065842" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3999"
- id="radialGradient2052"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-9.105292e-4,-0.00104444)"
- cx="34.133331"
- cy="34.133335"
- fx="34.133331"
- fy="34.133335"
- r="29.866665" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5580"
- id="linearGradient2140"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-0.0010513,-9.083059e-4)"
- x1="29.866674"
- y1="29.867579"
- x2="38.400005"
- y2="38.400913" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5084"
- id="linearGradient4790"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2671525,0,0,0.89790119,-0.82864077,-1.0012743)"
- x1="14.312115"
- y1="9.7948904"
- x2="44.097023"
- y2="82.973114" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4809"
- id="radialGradient4803"
- cx="-42.66758"
- cy="-34.134373"
- fx="-42.66758"
- fy="-34.134373"
- r="34.132812"
- gradientTransform="matrix(1.7500268,0.1250019,-0.01781176,0.24936465,95.393964,18.110151)"
- gradientUnits="userSpaceOnUse" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="3.6203867"
- inkscape:cx="52.171166"
- inkscape:cy="11.292073"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:document-units="px"
- inkscape:grid-bbox="true"
- inkscape:window-width="1368"
- inkscape:window-height="905"
- inkscape:window-x="2452"
- inkscape:window-y="723"
- inkscape:window-maximized="0"
- inkscape:snap-bbox="true"
- inkscape:bbox-paths="false"
- inkscape:snap-bbox-edge-midpoints="false"
- inkscape:bbox-nodes="true"
- inkscape:snap-bbox-midpoints="false"
- inkscape:snap-smooth-nodes="true"
- inkscape:snap-midpoints="false"
- inkscape:snap-intersection-paths="true"
- inkscape:object-paths="true"
- inkscape:snap-object-midpoints="true"
- inkscape:snap-text-baseline="true"
- inkscape:snap-center="true">
- <inkscape:grid
- type="xygrid"
- id="grid4446"
- empspacing="16"
- visible="true"
- enabled="true"
- snapvisiblegridlinesonly="true"
- spacingx="4.2666667"
- spacingy="4.2666667"
- originx="0"
- originy="0" />
- </sodipodi:namedview>
- <metadata
- id="metadata4432">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer">
- <g
- id="g2048"
- transform="translate(9.113e-4,0.00104183)">
- <rect
- rx="8.5333338"
- ry="8.5333338"
- style="fill:url(#linearGradient2050);fill-opacity:1;stroke:none;stroke-width:17.06666756"
- id="rect2026"
- width="68.26667"
- height="68.26667"
- x="-1.3322676e-15"
- y="3.0270508e-06" />
- <rect
- rx="4.2666626"
- y="4.2656283"
- x="4.2657552"
- height="59.733334"
- width="59.73333"
- id="rect2028"
- style="fill:url(#radialGradient2052);fill-opacity:1;stroke:none;stroke-width:14.93333435"
- ry="4.2666669" />
- <path
- inkscape:connector-curvature="0"
- id="path4811"
- d="m 4.2669272,4.2645856 -9.11e-4,8.5333334 h 4.267577 v 4.267579 h 8.5332038 v 4.265625 h 4.265625 V 8.5322946 H 25.6 v 8.5332034 h 4.265625 v -4.267579 h 4.267578 v 8.533204 h 4.265625 v -4.265625 h 4.267578 v 4.265625 h 4.267579 v -4.265625 h 4.265624 v -4.267579 h 4.267579 v 4.267579 h 8.533203 l -1.3e-4,-12.8009124 z"
- style="opacity:0.6;fill:#593d29;fill-opacity:1;stroke:none;stroke-width:17.06666756"
- sodipodi:nodetypes="ccccccccccccccccccccccccccc" />
- <path
- style="fill:url(#radialGradient4803);fill-opacity:1;stroke:none;stroke-width:17.06666756"
- d="m 8.5329442,-0.0018207 c -4.7274675,0 -8.5332035,3.805736 -8.5332035,8.533203 v 4.2675787 h 4.265625 V 8.5313823 c 0,-0.521698 0.105433,-1.01339 0.27539,-1.47461 -0.169616,0.460814 -0.27539,0.953462 -0.27539,1.47461 h 4.2675785 v 4.2675787 h 4.2656248 4.267578 v 4.265625 h 4.265625 V 12.798961 8.5313823 4.2657573 h 4.267578 v 4.265625 4.2675787 h 4.265625 V 8.5313823 h 4.267578 v 4.2675787 4.265625 h 4.265625 v -4.265625 h 4.267578 v 4.265625 h 4.267579 v -4.265625 h 4.265624 V 8.5313823 h 4.267579 v 4.2675787 h 4.265625 4.267578 V 8.5313823 h 4.265625 c 0,-4.727467 -3.805737,-8.533203 -8.533203,-8.533203 z m -3.019531,5.513671 c -0.318089,0.317888 -0.570428,0.695824 -0.7753915,1.101563 0.2048795,-0.405231 0.4576385,-0.784012 0.7753915,-1.101563 z"
- id="path4794"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:1;fill:url(#linearGradient2140);fill-opacity:1;stroke:none;stroke-width:17.06666756"
- d="m 8.5322887,-9.083059e-4 c -4.72747,0 -8.5332,3.8057359059 -8.5332,8.5332029059 V 59.731515 c 0,4.727467 3.80573,8.535156 8.5332,8.535156 H 59.731502 c 4.72747,0 8.5332,-3.807689 8.5332,-8.535156 V 8.5322946 c 0,-4.727467 -3.80573,-8.5332029059 -8.5332,-8.5332029059 z m 0,4.2675779059 H 59.731502 c 2.36373,0 4.26758,1.901892 4.26758,4.265625 V 59.731515 c 0,2.363733 -1.90385,4.267578 -4.26758,4.267578 H 8.5322887 c -2.36373,0 -4.26758,-1.903845 -4.26758,-4.267578 V 8.5322946 c 0,-2.363733 1.90385,-4.265625 4.26758,-4.265625 z"
- id="path2046"
- inkscape:connector-curvature="0" />
- </g>
- <g
- id="g1092">
- <path
- inkscape:connector-curvature="0"
- id="path4786"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:76.18933868px;line-height:125%;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient4790);fill-opacity:1;stroke:none;stroke-width:1.06666672;opacity:0.5"
- d="m 38.886673,44.940882 c -0.974277,-0.801673 -2.231353,-2.137814 -3.771231,-4.008427 -2.105641,2.672298 -4.085536,4.598569 -5.939688,5.778816 -2.325625,1.425227 -5.295467,2.137836 -8.909534,2.137828 -4.242656,8e-6 -7.762467,-1.124578 -10.5594458,-3.37376 C 6.7526311,43.114834 5.275567,39.986037 5.2755773,36.088937 5.275567,32.347763 6.7526311,29.207831 9.7067742,26.669132 12.346618,24.419991 15.897857,23.295407 20.360501,23.295373 c 2.294138,3.4e-5 4.289747,0.334069 5.986829,1.002107 1.979863,0.73491 3.645488,1.737016 4.996881,3.00632 1.257039,1.135751 2.514115,2.471891 3.771231,4.008428 2.105563,-2.672257 4.085457,-4.598527 5.939689,-5.778816 2.325544,-1.425186 5.295385,-2.137794 8.909533,-2.137828 4.242577,3.4e-5 7.762388,1.124618 10.559447,3.37376 2.954063,2.360546 4.431127,5.489343 4.431197,9.386401 -7e-5,3.741216 -1.477134,6.881147 -4.431197,9.419806 -2.639925,2.24918 -6.191163,3.373767 -10.653727,3.373758 -2.294219,9e-6 -4.289826,-0.334026 -5.98683,-1.002106 -1.697101,-0.601255 -3.362726,-1.603361 -4.996881,-3.006321 M 19.747676,44.473233 c 5.185412,1.1e-5 9.333763,-2.672271 12.445062,-8.016856 -3.991253,-5.834464 -8.139602,-8.751705 -12.445062,-8.751733 -3.142715,2.8e-5 -5.515446,0.801713 -7.118198,2.405057 -1.728498,1.71474 -2.592737,3.707818 -2.592722,5.979236 -1.5e-5,2.494152 0.864224,4.509499 2.592722,6.046046 1.759887,1.558846 4.132618,2.338261 7.118198,2.33825 M 50.483209,27.77145 c -4.682663,2.9e-5 -8.831013,2.672312 -12.445062,8.016856 3.959745,5.834503 8.108095,8.751746 12.445062,8.751733 3.142633,1.3e-5 5.515364,-0.801671 7.118198,-2.405056 1.728416,-1.714701 2.592656,-3.707778 2.592722,-5.979238 -6.6e-5,-2.49411 -0.864306,-4.509456 -2.592722,-6.046044 -1.759968,-1.558805 -4.132699,-2.338222 -7.118198,-2.338251" />
- <path
- d="m 39.715314,45.942156 c -0.974277,-0.801673 -2.231353,-2.137814 -3.771231,-4.008427 -2.105641,2.672298 -4.085536,4.598569 -5.939688,5.778816 -2.325625,1.425227 -5.295467,2.137836 -8.909534,2.137828 -4.242656,8e-6 -7.762467,-1.124578 -10.559446,-3.37376 -2.9541431,-2.360505 -4.4312072,-5.489302 -4.4311969,-9.386402 -1.03e-5,-3.741174 1.4770538,-6.881106 4.4311969,-9.419805 2.639844,-2.249141 6.191083,-3.373725 10.653727,-3.373759 2.294138,3.4e-5 4.289747,0.334069 5.986829,1.002107 1.979863,0.73491 3.645488,1.737016 4.996881,3.00632 1.257039,1.135751 2.514115,2.471891 3.771231,4.008428 2.105563,-2.672257 4.085457,-4.598527 5.939689,-5.778816 2.325544,-1.425186 5.295385,-2.137794 8.909533,-2.137828 4.242577,3.4e-5 7.762388,1.124618 10.559447,3.37376 2.954063,2.360546 4.431127,5.489343 4.431197,9.386401 -7e-5,3.741216 -1.477134,6.881147 -4.431197,9.419806 -2.639925,2.24918 -6.191163,3.373767 -10.653727,3.373758 -2.294219,9e-6 -4.289826,-0.334026 -5.98683,-1.002106 -1.697101,-0.601255 -3.362726,-1.603361 -4.996881,-3.006321 M 20.576317,45.474507 c 5.185412,1.1e-5 9.333763,-2.672271 12.445062,-8.016856 -3.991253,-5.834464 -8.139602,-8.751705 -12.445062,-8.751733 -3.142715,2.8e-5 -5.515446,0.801713 -7.118198,2.405057 -1.728498,1.71474 -2.592737,3.707818 -2.592722,5.979236 -1.5e-5,2.494152 0.864224,4.509499 2.592722,6.046046 1.759887,1.558846 4.132618,2.338261 7.118198,2.33825 M 51.31185,28.772724 c -4.682663,2.9e-5 -8.831013,2.672312 -12.445062,8.016856 3.959745,5.834503 8.108095,8.751746 12.445062,8.751733 3.142633,1.3e-5 5.515364,-0.801671 7.118198,-2.405056 1.728416,-1.714701 2.592656,-3.707778 2.592722,-5.979238 -6.6e-5,-2.49411 -0.864306,-4.509456 -2.592722,-6.046044 C 56.67008,29.55217 54.297349,28.772753 51.31185,28.772724"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:76.18933868px;line-height:125%;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3293);fill-opacity:1;stroke:none;stroke-width:1.06666672;opacity:0.5"
- id="path3279"
- inkscape:connector-curvature="0" />
- <path
- d="m 37.904564,42.951873 c -0.974278,-0.801672 -2.231352,-2.137814 -3.771231,-4.008428 -2.105642,2.672298 -4.085537,4.598568 -5.939688,5.778817 -2.325625,1.425227 -5.295466,2.137836 -8.909534,2.137828 -4.242656,8e-6 -7.762467,-1.124577 -10.5594464,-3.37376 -2.9541428,-2.360505 -4.4312068,-5.489302 -4.4311963,-9.386401 -1.05e-5,-3.741175 1.4770535,-6.881107 4.4311963,-9.419805 2.6398444,-2.249142 6.1910824,-3.373727 10.6537284,-3.37376 2.294137,3.3e-5 4.289745,0.334068 5.986829,1.002107 1.979863,0.734909 3.645487,1.737016 4.99688,3.00632 1.257039,1.13575 2.514116,2.471891 3.771231,4.008428 2.105562,-2.672257 4.085456,-4.598528 5.939689,-5.778817 2.325544,-1.425185 5.295387,-2.137795 8.909534,-2.137828 4.242576,3.3e-5 7.762387,1.12462 10.559446,3.373761 2.954062,2.360545 4.431127,5.489343 4.431197,9.386401 -7e-5,3.741216 -1.477135,6.881148 -4.431197,9.419805 -2.639924,2.249182 -6.191164,3.373767 -10.653728,3.37376 -2.294217,7e-6 -4.289826,-0.334028 -5.986828,-1.002107 -1.697101,-0.601254 -3.362727,-1.603361 -4.996882,-3.006321 m -19.138997,-0.46765 c 5.185412,1.3e-5 9.333762,-2.67227 12.445062,-8.016856 -3.991252,-5.834462 -8.139602,-8.751704 -12.445062,-8.751733 -3.142714,2.9e-5 -5.515444,0.801714 -7.118198,2.405056 -1.7284972,1.714743 -2.5927368,3.707819 -2.5927216,5.979239 -1.52e-5,2.49415 0.8642244,4.509496 2.5927216,6.046045 1.759888,1.558845 4.132618,2.338262 7.118198,2.338249 M 49.5011,25.782442 c -4.682663,2.8e-5 -8.831014,2.672311 -12.445063,8.016855 3.959745,5.834504 8.108096,8.751745 12.445063,8.751733 3.142634,1.2e-5 5.515365,-0.801673 7.118198,-2.405056 1.728417,-1.7147 2.592657,-3.707778 2.592721,-5.979238 -6.4e-5,-2.49411 -0.864304,-4.509456 -2.592721,-6.046046 C 54.85933,26.561886 52.486599,25.78247 49.5011,25.782442"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:76.18933868px;line-height:125%;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3286);fill-opacity:1;stroke:none;stroke-width:1.06666672"
- id="path3272"
- inkscape:connector-curvature="0" />
- <path
- sodipodi:nodetypes="ccscsccccccccccccccccccccscscccccsccscccccc"
- inkscape:connector-curvature="0"
- id="text5100"
- d="m 19.4,21.166667 c -4.462644,3.3e-5 -8.026822,1.150858 -10.6666667,3.4 -2.9541428,2.538698 -4.4333436,5.658825 -4.4333333,9.4 -1.03e-5,3.897098 1.4791905,7.039495 4.4333333,9.4 -1.622701,-2.044271 -2.433341,-4.51168 -2.4333333,-7.4 -1.03e-5,-3.741175 1.4791905,-6.861302 4.433333,-9.4 2.639845,-2.249142 6.204023,-3.399967 10.666667,-3.4 2.294138,3.3e-5 4.302916,0.365295 6,1.033333 1.979862,0.73491 3.615274,1.730695 4.966667,3 0.06836,0.06177 0.131637,0.137049 0.2,0.2 -0.731813,-0.797005 -1.468213,-1.538822 -2.2,-2.2 -1.351393,-1.269305 -2.986805,-2.26509 -4.966667,-3 -1.697084,-0.668038 -3.705862,-1.0333 -6,-1.033333 z m 29.6,0.1 c -3.614148,3.3e-5 -6.574457,0.74148 -8.9,2.166666 -1.818222,1.157367 -3.923451,3.291388 -5.983333,5.883334 0.618278,0.658774 1.248369,1.377605 1.866666,2.133333 2.105562,-2.672257 4.262434,-4.836378 6.116667,-6.016667 2.325543,-1.425186 5.285852,-2.166633 8.9,-2.166666 4.242576,3.3e-5 7.769607,1.150858 10.566667,3.4 -0.570388,-0.722129 -1.227721,-1.382884 -2,-2 C 56.769607,22.417525 53.242576,21.2667 49,21.266667 Z m 8.866667,8.1 c 0.9092,1.305235 1.366619,2.857751 1.366666,4.666666 -6.5e-5,2.271461 -0.871584,4.285301 -2.6,6 -1.602834,1.603384 -3.957366,2.400012 -7.1,2.4 -2.653707,8e-6 -5.320858,-1.032242 -7.833333,-3.216666 3.136636,3.509305 6.469807,5.216676 9.833333,5.216666 3.142634,1.2e-5 5.497166,-0.796616 7.1,-2.4 1.728416,-1.714699 2.599935,-3.728539 2.6,-6 -6.5e-5,-2.49411 -0.871584,-4.496744 -2.6,-6.033333 -0.24943,-0.220921 -0.49262,-0.443723 -0.766666,-0.633333 z m -26.633334,4.966666 c -3.1113,5.344585 -7.247921,8.033345 -12.433333,8.033334 -2.58055,1e-5 -4.543473,-0.352086 -6.208333,-1.516667 0.348871,0.50642 0.590094,0.752276 1.075,1.183333 1.759888,1.558846 4.147753,2.333345 7.133333,2.333334 5.185412,1.1e-5 9.322033,-2.688749 12.433333,-8.033334 z m 4.933334,6.5 c -0.04103,0.05207 -0.09239,0.08182 -0.133334,0.133334 0.687326,0.744419 1.306949,1.359747 1.833334,1.8 -0.529404,-0.580895 -1.078447,-1.178283 -1.7,-1.933334 z"
- style="font-style:normal;font-weight:normal;font-size:76.18933868px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;opacity:0.3;fill:#ccff00;fill-opacity:1;stroke:none;stroke-width:1.06666672" />
- <path
- sodipodi:nodetypes="ccsccscccccccccccccccccccscscccccsccsccccccc"
- id="text5058-0"
- d="m 19.730474,21.54714 c -4.462645,3.3e-5 -8.026823,1.150859 -10.6666669,3.4 -2.9541429,2.538699 -4.433344,5.658826 -4.4333333,9.4 -1.07e-5,3.897099 1.4791904,7.039495 4.4333333,9.4 0.042837,0.03444 0.090155,0.06608 0.1333334,0.1 -2.2392086,-2.228193 -3.3666752,-5.040417 -3.3666667,-8.433333 -1.07e-5,-3.741174 1.4791904,-6.861301 4.4333332,-9.4 2.639844,-2.249141 6.204022,-3.399967 10.666667,-3.4 2.294137,3.3e-5 4.302916,0.365295 6,1.033333 1.870874,0.694455 3.42364,1.628367 4.733333,2.8 -0.314265,-0.308986 -0.652406,-0.582729 -0.966667,-0.866666 -1.351393,-1.269305 -2.986804,-2.265091 -4.966666,-3 -1.697084,-0.668039 -3.705863,-1.033301 -6,-1.033334 z m 29.6,0.1 c -3.614149,3.3e-5 -6.574457,0.741481 -8.9,2.166667 -1.813279,1.154221 -3.963039,3.235656 -6.016667,5.816667 0.355649,0.402628 0.711011,0.798625 1.066667,1.233333 2.105561,-2.672257 4.295767,-4.803044 6.15,-5.983333 2.325543,-1.425187 5.285851,-2.166634 8.9,-2.166667 4.22442,3.3e-5 7.742084,1.136734 10.533333,3.366667 -0.36096,-0.367566 -0.745726,-0.696967 -1.166667,-1.033334 -2.797059,-2.249141 -6.32409,-3.399967 -10.566666,-3.4 z m 8.233333,7.333334 c 1.323326,1.449243 1.999942,3.250987 2,5.433333 -6.5e-5,2.27146 -0.871584,4.2853 -2.6,6 -1.602834,1.603383 -3.957366,2.400012 -7.1,2.4 -2.406328,6e-6 -4.776468,-0.90386 -7.066667,-2.7 2.669147,2.483838 5.436929,3.766674 8.266667,3.766667 3.142634,1.1e-5 5.497166,-0.796617 7.1,-2.4 1.728416,-1.7147 2.599935,-3.72854 2.6,-6 -6.5e-5,-2.49411 -0.871584,-4.496745 -2.6,-6.033334 -0.185641,-0.164422 -0.400724,-0.319587 -0.6,-0.466666 z m -26,5.733333 c -3.1113,5.344584 -7.247921,8.033345 -12.433333,8.033333 -2.612382,1.1e-5 -4.759372,-0.60651 -6.433334,-1.8 0.166027,0.176488 0.313947,0.367942 0.5,0.533334 1.759888,1.558845 4.147754,2.333345 7.133334,2.333333 5.185412,1.2e-5 9.322033,-2.688749 12.433333,-8.033333 z m 4.133333,5.566667 c -0.04657,0.05909 -0.08689,0.108298 -0.133333,0.166666 1.038571,1.18897 1.9748,2.169945 2.7,2.766667 0.06249,0.05364 0.137426,0.08086 0.2,0.133333 -0.792178,-0.781249 -1.706288,-1.778539 -2.766667,-3.066666 z"
- style="font-style:normal;font-weight:normal;font-size:76.18933868px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;opacity:0.6;fill:#ccff00;fill-opacity:1;stroke:none;stroke-width:1.06666672"
- inkscape:connector-curvature="0" />
- </g>
- </g>
-</svg>
diff --git a/launcher/resources/pe_blue/pe_blue.qrc b/launcher/resources/pe_blue/pe_blue.qrc
index 2446e4c3..c78d21ad 100644
--- a/launcher/resources/pe_blue/pe_blue.qrc
+++ b/launcher/resources/pe_blue/pe_blue.qrc
@@ -16,16 +16,15 @@
<file>scalable/jarmods.svg</file>
<file>scalable/java.svg</file>
<file>scalable/language.svg</file>
+ <file>scalable/launcher.svg</file>
<file>scalable/loadermods.svg</file>
<file>scalable/log.svg</file>
<file>scalable/minecraft.svg</file>
- <file>scalable/multimc.svg</file>
<file>scalable/new.svg</file>
<file>scalable/news.svg</file>
<file>scalable/notes.svg</file>
<file>scalable/patreon.svg</file>
<file>scalable/proxy.svg</file>
- <file>scalable/quickmods.svg</file>
<file>scalable/refresh.svg</file>
<file>scalable/resourcepacks.svg</file>
<file>scalable/shaderpacks.svg</file>
diff --git a/launcher/resources/pe_blue/scalable/quickmods.svg b/launcher/resources/pe_blue/scalable/launcher.svg
index 8b577376..8b577376 100644
--- a/launcher/resources/pe_blue/scalable/quickmods.svg
+++ b/launcher/resources/pe_blue/scalable/launcher.svg
diff --git a/launcher/resources/pe_blue/scalable/multimc.svg b/launcher/resources/pe_blue/scalable/multimc.svg
deleted file mode 100644
index 820c0b53..00000000
--- a/launcher/resources/pe_blue/scalable/multimc.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
-<rect fill="#754C24" width="32" height="32"/>
-<polygon fill="#39B54A" points="0,5 1,5 1,4 4,4 4,5 8,5 8,8 9,8 9,2 12,2 12,5 13,5 13,4 16,4 16,8 17,8 17,6 18,6 18,5 20,5 20,8
- 21,8 21,6 22,6 22,5 24,5 24,4 26,4 26,5 29,5 29,4 32,4 32,0 0,0 "/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-963.8778" y1="47.5718" x2="-963.0319" y2="49.6501" gradientTransform="matrix(20.79 0 0 14.7315 20048.0879 -696.8257)">
- <stop offset="0" style="stop-color:#000000;stop-opacity:0.8"/>
- <stop offset="1" style="stop-color:#000000;stop-opacity:0.35"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M18.5,21.5c-0.5-0.4-1-1-1.8-1.9c-1,1.2-1.9,2.1-2.8,2.7c-1.1,0.7-2.5,1-4.1,1c-2,0-3.6-0.5-4.9-1.6
- c-1.4-1.1-2.1-2.6-2.1-4.4c0-1.7,0.7-3.2,2.1-4.4c1.2-1,2.9-1.6,5-1.6c1.1,0,2,0.2,2.8,0.5c0.9,0.3,1.7,0.8,2.3,1.4
- c0.6,0.5,1.2,1.2,1.8,1.9c1-1.2,1.9-2.1,2.8-2.7c1.1-0.7,2.5-1,4.1-1c2,0,3.6,0.5,4.9,1.6c1.4,1.1,2.1,2.6,2.1,4.4
- c0,1.7-0.7,3.2-2.1,4.4c-1.2,1-2.9,1.6-5,1.6c-1.1,0-2-0.2-2.8-0.5S19.2,22.1,18.5,21.5 M9.6,21.3c2.4,0,4.3-1.2,5.8-3.7
- c-1.9-2.7-3.8-4.1-5.8-4.1c-1.5,0-2.6,0.4-3.3,1.1c-0.8,0.8-1.2,1.7-1.2,2.8c0,1.2,0.4,2.1,1.2,2.8C7.1,20.9,8.2,21.3,9.6,21.3
- M23.9,13.5c-2.2,0-4.1,1.2-5.8,3.7c1.8,2.7,3.8,4.1,5.8,4.1c1.5,0,2.6-0.4,3.3-1.1c0.8-0.8,1.2-1.7,1.2-2.8c0-1.2-0.4-2.1-1.2-2.8
- C26.3,13.8,25.2,13.5,23.9,13.5"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-964.0289" y1="48.0195" x2="-962.7877" y2="48.9627" gradientTransform="matrix(20.79 0 0 14.7315 20047.7695 -696.964)">
- <stop offset="0" style="stop-color:#75B54B"/>
- <stop offset="1" style="stop-color:#75B54B;stop-opacity:0.6"/>
-</linearGradient>
-<path fill="url(#SVGID_2_)" d="M17.6,20.1c-0.5-0.4-1-1-1.8-1.9c-1,1.2-1.9,2.1-2.8,2.7c-1.1,0.7-2.5,1-4.1,1c-2,0-3.6-0.5-4.9-1.6
- c-1.4-1.1-2.1-2.6-2.1-4.4c0-1.7,0.7-3.2,2.1-4.4c1.2-1,2.9-1.6,5-1.6c1.1,0,2,0.2,2.8,0.5c0.9,0.3,1.7,0.8,2.3,1.4
- c0.6,0.5,1.2,1.2,1.8,1.9c1-1.2,1.9-2.1,2.8-2.7c1.1-0.7,2.5-1,4.1-1c2,0,3.6,0.5,4.9,1.6c1.4,1.1,2.1,2.6,2.1,4.4
- c0,1.7-0.7,3.2-2.1,4.4c-1.2,1-2.9,1.6-5,1.6c-1.1,0-2-0.2-2.8-0.5C19.2,21.2,18.4,20.8,17.6,20.1 M8.7,19.9c2.4,0,4.3-1.2,5.8-3.7
- c-1.9-2.7-3.8-4.1-5.8-4.1c-1.5,0-2.6,0.4-3.3,1.1C4.6,14,4.2,14.9,4.2,16c0,1.2,0.4,2.1,1.2,2.8C6.2,19.5,7.3,19.9,8.7,19.9
- M23,12.1c-2.2,0-4.1,1.2-5.8,3.7c1.8,2.7,3.8,4.1,5.8,4.1c1.5,0,2.6-0.4,3.3-1.1c0.8-0.8,1.2-1.7,1.2-2.8c0-1.2-0.4-2.1-1.2-2.8
- C25.5,12.5,24.4,12.1,23,12.1"/>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-</svg>
diff --git a/launcher/resources/pe_colored/pe_colored.qrc b/launcher/resources/pe_colored/pe_colored.qrc
index e95d6579..abe2cdb4 100644
--- a/launcher/resources/pe_colored/pe_colored.qrc
+++ b/launcher/resources/pe_colored/pe_colored.qrc
@@ -16,16 +16,15 @@
<file>scalable/jarmods.svg</file>
<file>scalable/java.svg</file>
<file>scalable/language.svg</file>
+ <file>scalable/launcher.svg</file>
<file>scalable/loadermods.svg</file>
<file>scalable/log.svg</file>
<file>scalable/minecraft.svg</file>
- <file>scalable/multimc.svg</file>
<file>scalable/new.svg</file>
<file>scalable/news.svg</file>
<file>scalable/notes.svg</file>
<file>scalable/patreon.svg</file>
<file>scalable/proxy.svg</file>
- <file>scalable/quickmods.svg</file>
<file>scalable/refresh.svg</file>
<file>scalable/resourcepacks.svg</file>
<file>scalable/screenshots.svg</file>
diff --git a/launcher/resources/pe_colored/scalable/quickmods.svg b/launcher/resources/pe_colored/scalable/launcher.svg
index 199b2dae..199b2dae 100644
--- a/launcher/resources/pe_colored/scalable/quickmods.svg
+++ b/launcher/resources/pe_colored/scalable/launcher.svg
diff --git a/launcher/resources/pe_colored/scalable/multimc.svg b/launcher/resources/pe_colored/scalable/multimc.svg
deleted file mode 100644
index a146c52e..00000000
--- a/launcher/resources/pe_colored/scalable/multimc.svg
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="-463 265 32 32" enable-background="new -463 265 32 32" xml:space="preserve">
-<rect x="-463" y="265" fill="#754C24" width="32" height="32"/>
-<polygon fill="#39B54A" points="-463,270 -462,270 -462,269 -459,269 -459,270 -455,270 -455,273 -454,273 -454,267 -451,267
- -451,270 -450,270 -450,269 -447,269 -447,273 -446,273 -446,271 -445,271 -445,270 -443,270 -443,273 -442,273 -442,271 -441,271
- -441,270 -439,270 -439,269 -437,269 -437,270 -434,270 -434,269 -431,269 -431,265 -463,265 "/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-1426.8778" y1="312.5718" x2="-1426.032" y2="314.6501" gradientTransform="matrix(20.79 0 0 14.7315 29210.8574 -4335.6729)">
- <stop offset="0" style="stop-color:#000000;stop-opacity:0.8"/>
- <stop offset="1" style="stop-color:#000000;stop-opacity:0.35"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M-444.5,286.5c-0.5-0.4-1-1-1.8-1.9c-1,1.2-1.9,2.1-2.8,2.7c-1.1,0.7-2.5,1-4.1,1
- c-2,0-3.6-0.5-4.9-1.6c-1.4-1.1-2.1-2.6-2.1-4.4c0-1.7,0.7-3.2,2.1-4.4c1.2-1,2.9-1.6,5-1.6c1.1,0,2,0.2,2.8,0.5
- c0.9,0.3,1.7,0.8,2.3,1.4c0.6,0.5,1.2,1.2,1.8,1.9c1-1.2,1.9-2.1,2.8-2.7c1.1-0.7,2.5-1,4.1-1c2,0,3.6,0.5,4.9,1.6
- c1.4,1.1,2.1,2.6,2.1,4.4c0,1.7-0.7,3.2-2.1,4.4c-1.2,1-2.9,1.6-5,1.6c-1.1,0-2-0.2-2.8-0.5S-443.8,287.1-444.5,286.5 M-453.4,286.3
- c2.4,0,4.3-1.2,5.8-3.7c-1.9-2.7-3.8-4.1-5.8-4.1c-1.5,0-2.6,0.4-3.3,1.1c-0.8,0.8-1.2,1.7-1.2,2.8c0,1.2,0.4,2.1,1.2,2.8
- C-455.9,285.9-454.8,286.3-453.4,286.3 M-439.1,278.5c-2.2,0-4.1,1.2-5.8,3.7c1.8,2.7,3.8,4.1,5.8,4.1c1.5,0,2.6-0.4,3.3-1.1
- c0.8-0.8,1.2-1.7,1.2-2.8c0-1.2-0.4-2.1-1.2-2.8C-436.7,278.8-437.8,278.5-439.1,278.5"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-1427.0289" y1="313.0195" x2="-1425.7877" y2="313.9627" gradientTransform="matrix(20.79 0 0 14.7315 29210.5391 -4335.8115)">
- <stop offset="0" style="stop-color:#75B54B"/>
- <stop offset="1" style="stop-color:#75B54B;stop-opacity:0.6"/>
-</linearGradient>
-<path fill="url(#SVGID_2_)" d="M-445.4,285.1c-0.5-0.4-1-1-1.8-1.9c-1,1.2-1.9,2.1-2.8,2.7c-1.1,0.7-2.5,1-4.1,1
- c-2,0-3.6-0.5-4.9-1.6c-1.4-1.1-2.1-2.6-2.1-4.4c0-1.7,0.7-3.2,2.1-4.4c1.2-1,2.9-1.6,5-1.6c1.1,0,2,0.2,2.8,0.5
- c0.9,0.3,1.7,0.8,2.3,1.4c0.6,0.5,1.2,1.2,1.8,1.9c1-1.2,1.9-2.1,2.8-2.7c1.1-0.7,2.5-1,4.1-1c2,0,3.6,0.5,4.9,1.6
- c1.4,1.1,2.1,2.6,2.1,4.4c0,1.7-0.7,3.2-2.1,4.4c-1.2,1-2.9,1.6-5,1.6c-1.1,0-2-0.2-2.8-0.5C-443.8,286.2-444.6,285.8-445.4,285.1
- M-454.3,284.9c2.4,0,4.3-1.2,5.8-3.7c-1.9-2.7-3.8-4.1-5.8-4.1c-1.5,0-2.6,0.4-3.3,1.1c-0.8,0.8-1.2,1.7-1.2,2.8
- c0,1.2,0.4,2.1,1.2,2.8C-456.8,284.5-455.7,284.9-454.3,284.9 M-440,277.1c-2.2,0-4.1,1.2-5.8,3.7c1.8,2.7,3.8,4.1,5.8,4.1
- c1.5,0,2.6-0.4,3.3-1.1c0.8-0.8,1.2-1.7,1.2-2.8c0-1.2-0.4-2.1-1.2-2.8C-437.5,277.5-438.6,277.1-440,277.1"/>
-</svg>
diff --git a/launcher/resources/pe_dark/pe_dark.qrc b/launcher/resources/pe_dark/pe_dark.qrc
index c631c0a5..03ae7ef9 100644
--- a/launcher/resources/pe_dark/pe_dark.qrc
+++ b/launcher/resources/pe_dark/pe_dark.qrc
@@ -16,16 +16,15 @@
<file>scalable/jarmods.svg</file>
<file>scalable/java.svg</file>
<file>scalable/language.svg</file>
+ <file>scalable/launcher.svg</file>
<file>scalable/loadermods.svg</file>
<file>scalable/log.svg</file>
<file>scalable/minecraft.svg</file>
- <file>scalable/multimc.svg</file>
<file>scalable/new.svg</file>
<file>scalable/news.svg</file>
<file>scalable/notes.svg</file>
<file>scalable/patreon.svg</file>
<file>scalable/proxy.svg</file>
- <file>scalable/quickmods.svg</file>
<file>scalable/refresh.svg</file>
<file>scalable/resourcepacks.svg</file>
<file>scalable/shaderpacks.svg</file>
diff --git a/launcher/resources/pe_dark/scalable/quickmods.svg b/launcher/resources/pe_dark/scalable/launcher.svg
index 346729f1..346729f1 100644
--- a/launcher/resources/pe_dark/scalable/quickmods.svg
+++ b/launcher/resources/pe_dark/scalable/launcher.svg
diff --git a/launcher/resources/pe_dark/scalable/multimc.svg b/launcher/resources/pe_dark/scalable/multimc.svg
deleted file mode 100644
index e4cf7b7f..00000000
--- a/launcher/resources/pe_dark/scalable/multimc.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
-<rect fill="#666666" width="32" height="32"/>
-<polygon fill="#999999" points="0,5 1,5 1,4 4,4 4,5 8,5 8,8 9,8 9,2 12,2 12,5 13,5 13,4 16,4 16,8 17,8 17,6 18,6 18,5 20,5 20,8
- 21,8 21,6 22,6 22,5 24,5 24,4 26,4 26,5 29,5 29,4 32,4 32,0 0,0 "/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-963.8778" y1="47.5718" x2="-963.0319" y2="49.6501" gradientTransform="matrix(20.79 0 0 14.7315 20048.0879 -696.8257)">
- <stop offset="0" style="stop-color:#000000;stop-opacity:0.8"/>
- <stop offset="1" style="stop-color:#000000;stop-opacity:0.35"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M18.5,21.5c-0.5-0.4-1-1-1.8-1.9c-1,1.2-1.9,2.1-2.8,2.7c-1.1,0.7-2.5,1-4.1,1c-2,0-3.6-0.5-4.9-1.6
- c-1.4-1.1-2.1-2.6-2.1-4.4c0-1.7,0.7-3.2,2.1-4.4c1.2-1,2.9-1.6,5-1.6c1.1,0,2,0.2,2.8,0.5c0.9,0.3,1.7,0.8,2.3,1.4
- c0.6,0.5,1.2,1.2,1.8,1.9c1-1.2,1.9-2.1,2.8-2.7c1.1-0.7,2.5-1,4.1-1c2,0,3.6,0.5,4.9,1.6c1.4,1.1,2.1,2.6,2.1,4.4
- c0,1.7-0.7,3.2-2.1,4.4c-1.2,1-2.9,1.6-5,1.6c-1.1,0-2-0.2-2.8-0.5S19.2,22.1,18.5,21.5 M9.6,21.3c2.4,0,4.3-1.2,5.8-3.7
- c-1.9-2.7-3.8-4.1-5.8-4.1c-1.5,0-2.6,0.4-3.3,1.1c-0.8,0.8-1.2,1.7-1.2,2.8c0,1.2,0.4,2.1,1.2,2.8C7.1,20.9,8.2,21.3,9.6,21.3
- M23.9,13.5c-2.2,0-4.1,1.2-5.8,3.7c1.8,2.7,3.8,4.1,5.8,4.1c1.5,0,2.6-0.4,3.3-1.1c0.8-0.8,1.2-1.7,1.2-2.8c0-1.2-0.4-2.1-1.2-2.8
- C26.3,13.8,25.2,13.5,23.9,13.5"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-964.0289" y1="48.0195" x2="-962.7877" y2="48.9627" gradientTransform="matrix(20.79 0 0 14.7315 20047.7695 -696.964)">
- <stop offset="0" style="stop-color:#999999"/>
- <stop offset="1" style="stop-color:#999999;stop-opacity:0.6"/>
-</linearGradient>
-<path fill="url(#SVGID_2_)" d="M17.6,20.1c-0.5-0.4-1-1-1.8-1.9c-1,1.2-1.9,2.1-2.8,2.7c-1.1,0.7-2.5,1-4.1,1c-2,0-3.6-0.5-4.9-1.6
- c-1.4-1.1-2.1-2.6-2.1-4.4c0-1.7,0.7-3.2,2.1-4.4c1.2-1,2.9-1.6,5-1.6c1.1,0,2,0.2,2.8,0.5c0.9,0.3,1.7,0.8,2.3,1.4
- c0.6,0.5,1.2,1.2,1.8,1.9c1-1.2,1.9-2.1,2.8-2.7c1.1-0.7,2.5-1,4.1-1c2,0,3.6,0.5,4.9,1.6c1.4,1.1,2.1,2.6,2.1,4.4
- c0,1.7-0.7,3.2-2.1,4.4c-1.2,1-2.9,1.6-5,1.6c-1.1,0-2-0.2-2.8-0.5C19.2,21.2,18.4,20.8,17.6,20.1 M8.7,19.9c2.4,0,4.3-1.2,5.8-3.7
- c-1.9-2.7-3.8-4.1-5.8-4.1c-1.5,0-2.6,0.4-3.3,1.1C4.6,14,4.2,14.9,4.2,16c0,1.2,0.4,2.1,1.2,2.8C6.2,19.5,7.3,19.9,8.7,19.9
- M23,12.1c-2.2,0-4.1,1.2-5.8,3.7c1.8,2.7,3.8,4.1,5.8,4.1c1.5,0,2.6-0.4,3.3-1.1c0.8-0.8,1.2-1.7,1.2-2.8c0-1.2-0.4-2.1-1.2-2.8
- C25.5,12.5,24.4,12.1,23,12.1"/>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-</svg>
diff --git a/launcher/resources/pe_light/pe_light.qrc b/launcher/resources/pe_light/pe_light.qrc
index a687ed21..93d00205 100644
--- a/launcher/resources/pe_light/pe_light.qrc
+++ b/launcher/resources/pe_light/pe_light.qrc
@@ -16,16 +16,15 @@
<file>scalable/jarmods.svg</file>
<file>scalable/java.svg</file>
<file>scalable/language.svg</file>
+ <file>scalable/launcher.svg</file>
<file>scalable/loadermods.svg</file>
<file>scalable/log.svg</file>
<file>scalable/minecraft.svg</file>
- <file>scalable/multimc.svg</file>
<file>scalable/new.svg</file>
<file>scalable/news.svg</file>
<file>scalable/notes.svg</file>
<file>scalable/patreon.svg</file>
<file>scalable/proxy.svg</file>
- <file>scalable/quickmods.svg</file>
<file>scalable/refresh.svg</file>
<file>scalable/resourcepacks.svg</file>
<file>scalable/shaderpacks.svg</file>
diff --git a/launcher/resources/pe_light/scalable/quickmods.svg b/launcher/resources/pe_light/scalable/launcher.svg
index 6dbeab52..6dbeab52 100644
--- a/launcher/resources/pe_light/scalable/quickmods.svg
+++ b/launcher/resources/pe_light/scalable/launcher.svg
diff --git a/launcher/resources/pe_light/scalable/multimc.svg b/launcher/resources/pe_light/scalable/multimc.svg
deleted file mode 100644
index 8b2cb631..00000000
--- a/launcher/resources/pe_light/scalable/multimc.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
-<rect fill="#999999" width="32" height="32"/>
-<polygon fill="#F2F2F2" points="0,5 1,5 1,4 4,4 4,5 8,5 8,8 9,8 9,2 12,2 12,5 13,5 13,4 16,4 16,8 17,8 17,6 18,6 18,5 20,5 20,8
- 21,8 21,6 22,6 22,5 24,5 24,4 26,4 26,5 29,5 29,4 32,4 32,0 0,0 "/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="2.8" y1="17.35" x2="30.7" y2="17.35">
- <stop offset="0" style="stop-color:#000000;stop-opacity:0.8"/>
- <stop offset="1" style="stop-color:#000000;stop-opacity:0.35"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M18.5,21.5c-0.5-0.4-1-1-1.8-1.9c-1,1.2-1.9,2.1-2.8,2.7c-1.1,0.7-2.5,1-4.1,1c-2,0-3.6-0.5-4.9-1.6
- c-1.4-1.1-2.1-2.6-2.1-4.4c0-1.7,0.7-3.2,2.1-4.4c1.2-1,2.9-1.6,5-1.6c1.1,0,2,0.2,2.8,0.5c0.9,0.3,1.7,0.8,2.3,1.4
- c0.6,0.5,1.2,1.2,1.8,1.9c1-1.2,1.9-2.1,2.8-2.7c1.1-0.7,2.5-1,4.1-1c2,0,3.6,0.5,4.9,1.6c1.4,1.1,2.1,2.6,2.1,4.4
- c0,1.7-0.7,3.2-2.1,4.4c-1.2,1-2.9,1.6-5,1.6c-1.1,0-2-0.2-2.8-0.5S19.2,22.1,18.5,21.5 M9.6,21.3c2.4,0,4.3-1.2,5.8-3.7
- c-1.9-2.7-3.8-4.1-5.8-4.1c-1.5,0-2.6,0.4-3.3,1.1c-0.8,0.8-1.2,1.7-1.2,2.8c0,1.2,0.4,2.1,1.2,2.8C7.1,20.9,8.2,21.3,9.6,21.3
- M23.9,13.5c-2.2,0-4.1,1.2-5.8,3.7c1.8,2.7,3.8,4.1,5.8,4.1c1.5,0,2.6-0.4,3.3-1.1c0.8-0.8,1.2-1.7,1.2-2.8c0-1.2-0.4-2.1-1.2-2.8
- C26.3,13.8,25.2,13.5,23.9,13.5"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-964.0289" y1="48.0195" x2="-962.7877" y2="48.9627" gradientTransform="matrix(20.79 0 0 14.7315 20047.7695 -696.964)">
- <stop offset="0" style="stop-color:#CCCCCC"/>
- <stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0.6"/>
-</linearGradient>
-<path fill="url(#SVGID_2_)" d="M17.6,20.1c-0.5-0.4-1-1-1.8-1.9c-1,1.2-1.9,2.1-2.8,2.7c-1.1,0.7-2.5,1-4.1,1c-2,0-3.6-0.5-4.9-1.6
- c-1.4-1.1-2.1-2.6-2.1-4.4c0-1.7,0.7-3.2,2.1-4.4c1.2-1,2.9-1.6,5-1.6c1.1,0,2,0.2,2.8,0.5c0.9,0.3,1.7,0.8,2.3,1.4
- c0.6,0.5,1.2,1.2,1.8,1.9c1-1.2,1.9-2.1,2.8-2.7c1.1-0.7,2.5-1,4.1-1c2,0,3.6,0.5,4.9,1.6c1.4,1.1,2.1,2.6,2.1,4.4
- c0,1.7-0.7,3.2-2.1,4.4c-1.2,1-2.9,1.6-5,1.6c-1.1,0-2-0.2-2.8-0.5C19.2,21.2,18.4,20.8,17.6,20.1 M8.7,19.9c2.4,0,4.3-1.2,5.8-3.7
- c-1.9-2.7-3.8-4.1-5.8-4.1c-1.5,0-2.6,0.4-3.3,1.1C4.6,14,4.2,14.9,4.2,16c0,1.2,0.4,2.1,1.2,2.8C6.2,19.5,7.3,19.9,8.7,19.9
- M23,12.1c-2.2,0-4.1,1.2-5.8,3.7c1.8,2.7,3.8,4.1,5.8,4.1c1.5,0,2.6-0.4,3.3-1.1c0.8-0.8,1.2-1.7,1.2-2.8c0-1.2-0.4-2.1-1.2-2.8
- C25.5,12.5,24.4,12.1,23,12.1"/>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-</svg>
diff --git a/launcher/resources/sources/multimc-discord.svg b/launcher/resources/sources/multimc-discord.svg
deleted file mode 100644
index c3c73044..00000000
--- a/launcher/resources/sources/multimc-discord.svg
+++ /dev/null
@@ -1,265 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- version="1.1"
- id="svg4427"
- height="68.26667"
- width="68.26667">
- <defs
- id="defs4429">
- <linearGradient
- id="linearGradient4809">
- <stop
- id="stop4805"
- offset="0"
- style="stop-color:#98c867;stop-opacity:1" />
- <stop
- id="stop4807"
- offset="1"
- style="stop-color:#5c9a33;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- id="linearGradient5668">
- <stop
- style="stop-color:#75b54b;stop-opacity:1;"
- offset="0"
- id="stop5670" />
- <stop
- style="stop-color:#75b54b;stop-opacity:0.6"
- offset="1"
- id="stop5672" />
- </linearGradient>
- <linearGradient
- id="linearGradient5084">
- <stop
- style="stop-color:#000000;stop-opacity:0.8"
- offset="0"
- id="stop5086" />
- <stop
- style="stop-color:#000000;stop-opacity:0.35"
- offset="1"
- id="stop5088" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(-0.01532073,-0.00938002)"
- gradientUnits="userSpaceOnUse"
- y2="61.773685"
- x2="50.506943"
- y1="28.510933"
- x1="6.7342591"
- id="linearGradient5072"
- xlink:href="#linearGradient5668" />
- <linearGradient
- gradientUnits="userSpaceOnUse"
- y2="82.973114"
- x2="44.097023"
- y1="9.7948904"
- x1="14.312115"
- id="linearGradient5082"
- xlink:href="#linearGradient5084" />
- <linearGradient
- y2="61.773685"
- x2="50.506943"
- y1="28.510933"
- x1="6.7342591"
- gradientTransform="translate(-0.01532073,-0.00938002)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient3281"
- xlink:href="#linearGradient5668" />
- <linearGradient
- y2="61.773685"
- x2="50.506943"
- y1="28.510933"
- x1="6.7342591"
- gradientTransform="translate(-0.01532073,-0.00938002)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient3283"
- xlink:href="#linearGradient5668" />
- <linearGradient
- y2="61.773685"
- x2="50.506943"
- y1="28.510933"
- x1="6.7342591"
- gradientTransform="matrix(1.2671525,0,0,0.89790119,-0.01941371,-0.00842234)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient3286"
- xlink:href="#linearGradient5668" />
- <linearGradient
- y2="82.973114"
- x2="44.097023"
- y1="9.7948904"
- x1="14.312115"
- gradientUnits="userSpaceOnUse"
- id="linearGradient3288"
- xlink:href="#linearGradient5084" />
- <linearGradient
- y2="82.973114"
- x2="44.097023"
- y1="9.7948904"
- x1="14.312115"
- gradientUnits="userSpaceOnUse"
- id="linearGradient3290"
- xlink:href="#linearGradient5084" />
- <linearGradient
- gradientTransform="scale(1.2671525,0.89790119)"
- y2="82.973114"
- x2="44.097023"
- y1="9.7948904"
- x1="14.312115"
- gradientUnits="userSpaceOnUse"
- id="linearGradient3293"
- xlink:href="#linearGradient5084" />
- <linearGradient
- id="linearGradient5580">
- <stop
- id="stop5576"
- offset="0"
- style="stop-color:#000000;stop-opacity:0.0627451" />
- <stop
- id="stop5578"
- offset="1"
- style="stop-color:#322217;stop-opacity:0.58823532" />
- </linearGradient>
- <linearGradient
- id="linearGradient3999">
- <stop
- style="stop-color:#a3704b;stop-opacity:1"
- offset="0"
- id="stop3995" />
- <stop
- style="stop-color:#6a4a33;stop-opacity:1"
- offset="1"
- id="stop3997" />
- </linearGradient>
- <linearGradient
- id="linearGradient2727">
- <stop
- style="stop-color:#966c4a;stop-opacity:1"
- offset="0"
- id="stop2723" />
- <stop
- style="stop-color:#593d29;stop-opacity:1"
- offset="1"
- id="stop2725" />
- </linearGradient>
- <linearGradient
- y2="97.065842"
- x2="86.415741"
- y1="33.80484"
- x1="36.546478"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2050"
- xlink:href="#linearGradient2727" />
- <radialGradient
- r="29.866665"
- fy="34.133335"
- fx="34.133331"
- cy="34.133335"
- cx="34.133331"
- gradientTransform="matrix(1.1428572,0,0,1.1428572,-4.8771039,-4.8772393)"
- gradientUnits="userSpaceOnUse"
- id="radialGradient2052"
- xlink:href="#linearGradient3999" />
- <linearGradient
- y2="38.400913"
- x2="38.400005"
- y1="29.867579"
- x1="29.866674"
- gradientTransform="translate(77.635668,-7.276299)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2140"
- xlink:href="#linearGradient5580" />
- <linearGradient
- y2="82.973114"
- x2="44.097023"
- y1="9.7948904"
- x1="14.312115"
- gradientTransform="matrix(1.2671525,0,0,0.89790119,-0.82864077,-1.0012743)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient4790"
- xlink:href="#linearGradient5084" />
- <radialGradient
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.7500268,0.1250019,-0.01781176,0.24936465,95.393964,18.110151)"
- r="34.132812"
- fy="-34.134373"
- fx="-42.66758"
- cy="-34.134373"
- cx="-42.66758"
- id="radialGradient4803"
- xlink:href="#linearGradient4809" />
- </defs>
- <metadata
- id="metadata4432">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- id="layer1">
- <g
- transform="translate(9.113e-4,0.00104183)"
- id="g2048">
- <rect
- y="3.0270508e-06"
- x="-1.3322676e-15"
- height="68.26667"
- width="68.26667"
- id="rect2026"
- style="fill:url(#linearGradient2050);fill-opacity:1;stroke:none;stroke-width:17.06666756"
- ry="8.5333338"
- rx="8.5333338" />
- <rect
- ry="0"
- style="fill:url(#radialGradient2052);fill-opacity:1;stroke:none;stroke-width:17.06666946"
- id="rect2028"
- width="68.26667"
- height="68.26667"
- x="-0.00091432704"
- y="-0.0010418301"
- rx="0" />
- <path
- style="opacity:0.6;fill:#593d29;fill-opacity:1;stroke:none;stroke-width:17.06666756"
- d="m 4.2669272,4.2645856 -9.11e-4,8.5333334 h 4.267577 v 4.267579 h 8.5332038 v 4.265625 h 4.265625 V 8.5322946 H 25.6 v 8.5332034 h 4.265625 v -4.267579 h 4.267578 v 8.533204 h 4.265625 v -4.265625 h 4.267578 v 4.265625 h 4.267579 v -4.265625 h 4.265624 v -4.267579 h 4.267579 v 4.267579 h 8.533203 l -1.3e-4,-12.8009124 z"
- id="path4811" />
- <path
- id="path4794"
- d="m -9.113e-4,-0.0010388 6.52e-4,8.5324211 v 4.2675787 h 4.265625 V 8.5313823 c 0,-0.521698 0.105433,-1.01339 0.27539,-1.47461 -0.169616,0.460814 -0.27539,0.953462 -0.27539,1.47461 h 4.2675785 v 4.2675787 h 4.2656248 4.267578 v 4.265625 h 4.265625 V 12.798961 8.5313823 4.2657573 h 4.267578 v 4.265625 4.2675787 h 4.265625 V 8.5313823 h 4.267578 v 4.2675787 4.265625 h 4.265625 v -4.265625 h 4.267578 v 4.265625 h 4.267579 v -4.265625 h 4.265624 V 8.5313823 h 4.267579 v 4.2675787 h 4.265625 4.267578 V 8.5313823 h 4.265625 l 3.9e-4,-8.5324211 z m 5.5143245,5.5128891 c -0.318089,0.317888 -0.570428,0.695824 -0.7753915,1.101563 0.2048795,-0.405231 0.4576385,-0.784012 0.7753915,-1.101563 z"
- style="fill:url(#radialGradient4803);fill-opacity:1;stroke:none;stroke-width:17.06666756" />
- </g>
- <g
- id="g1092">
- <path
- d="m 38.886673,44.940882 c -0.974277,-0.801673 -2.231353,-2.137814 -3.771231,-4.008427 -2.105641,2.672298 -4.085536,4.598569 -5.939688,5.778816 -2.325625,1.425227 -5.295467,2.137836 -8.909534,2.137828 -4.242656,8e-6 -7.762467,-1.124578 -10.5594458,-3.37376 C 6.7526311,43.114834 5.275567,39.986037 5.2755773,36.088937 5.275567,32.347763 6.7526311,29.207831 9.7067742,26.669132 12.346618,24.419991 15.897857,23.295407 20.360501,23.295373 c 2.294138,3.4e-5 4.289747,0.334069 5.986829,1.002107 1.979863,0.73491 3.645488,1.737016 4.996881,3.00632 1.257039,1.135751 2.514115,2.471891 3.771231,4.008428 2.105563,-2.672257 4.085457,-4.598527 5.939689,-5.778816 2.325544,-1.425186 5.295385,-2.137794 8.909533,-2.137828 4.242577,3.4e-5 7.762388,1.124618 10.559447,3.37376 2.954063,2.360546 4.431127,5.489343 4.431197,9.386401 -7e-5,3.741216 -1.477134,6.881147 -4.431197,9.419806 -2.639925,2.24918 -6.191163,3.373767 -10.653727,3.373758 -2.294219,9e-6 -4.289826,-0.334026 -5.98683,-1.002106 -1.697101,-0.601255 -3.362726,-1.603361 -4.996881,-3.006321 M 19.747676,44.473233 c 5.185412,1.1e-5 9.333763,-2.672271 12.445062,-8.016856 -3.991253,-5.834464 -8.139602,-8.751705 -12.445062,-8.751733 -3.142715,2.8e-5 -5.515446,0.801713 -7.118198,2.405057 -1.728498,1.71474 -2.592737,3.707818 -2.592722,5.979236 -1.5e-5,2.494152 0.864224,4.509499 2.592722,6.046046 1.759887,1.558846 4.132618,2.338261 7.118198,2.33825 M 50.483209,27.77145 c -4.682663,2.9e-5 -8.831013,2.672312 -12.445062,8.016856 3.959745,5.834503 8.108095,8.751746 12.445062,8.751733 3.142633,1.3e-5 5.515364,-0.801671 7.118198,-2.405056 1.728416,-1.714701 2.592656,-3.707778 2.592722,-5.979238 -6.6e-5,-2.49411 -0.864306,-4.509456 -2.592722,-6.046044 -1.759968,-1.558805 -4.132699,-2.338222 -7.118198,-2.338251"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:76.18933868px;line-height:125%;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient4790);fill-opacity:1;stroke:none;stroke-width:1.06666672;opacity:0.5"
- id="path4786" />
- <path
- id="path3279"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:76.18933868px;line-height:125%;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3293);fill-opacity:1;stroke:none;stroke-width:1.06666672;opacity:0.5"
- d="m 39.715314,45.942156 c -0.974277,-0.801673 -2.231353,-2.137814 -3.771231,-4.008427 -2.105641,2.672298 -4.085536,4.598569 -5.939688,5.778816 -2.325625,1.425227 -5.295467,2.137836 -8.909534,2.137828 -4.242656,8e-6 -7.762467,-1.124578 -10.559446,-3.37376 -2.9541431,-2.360505 -4.4312072,-5.489302 -4.4311969,-9.386402 -1.03e-5,-3.741174 1.4770538,-6.881106 4.4311969,-9.419805 2.639844,-2.249141 6.191083,-3.373725 10.653727,-3.373759 2.294138,3.4e-5 4.289747,0.334069 5.986829,1.002107 1.979863,0.73491 3.645488,1.737016 4.996881,3.00632 1.257039,1.135751 2.514115,2.471891 3.771231,4.008428 2.105563,-2.672257 4.085457,-4.598527 5.939689,-5.778816 2.325544,-1.425186 5.295385,-2.137794 8.909533,-2.137828 4.242577,3.4e-5 7.762388,1.124618 10.559447,3.37376 2.954063,2.360546 4.431127,5.489343 4.431197,9.386401 -7e-5,3.741216 -1.477134,6.881147 -4.431197,9.419806 -2.639925,2.24918 -6.191163,3.373767 -10.653727,3.373758 -2.294219,9e-6 -4.289826,-0.334026 -5.98683,-1.002106 -1.697101,-0.601255 -3.362726,-1.603361 -4.996881,-3.006321 M 20.576317,45.474507 c 5.185412,1.1e-5 9.333763,-2.672271 12.445062,-8.016856 -3.991253,-5.834464 -8.139602,-8.751705 -12.445062,-8.751733 -3.142715,2.8e-5 -5.515446,0.801713 -7.118198,2.405057 -1.728498,1.71474 -2.592737,3.707818 -2.592722,5.979236 -1.5e-5,2.494152 0.864224,4.509499 2.592722,6.046046 1.759887,1.558846 4.132618,2.338261 7.118198,2.33825 M 51.31185,28.772724 c -4.682663,2.9e-5 -8.831013,2.672312 -12.445062,8.016856 3.959745,5.834503 8.108095,8.751746 12.445062,8.751733 3.142633,1.3e-5 5.515364,-0.801671 7.118198,-2.405056 1.728416,-1.714701 2.592656,-3.707778 2.592722,-5.979238 -6.6e-5,-2.49411 -0.864306,-4.509456 -2.592722,-6.046044 C 56.67008,29.55217 54.297349,28.772753 51.31185,28.772724" />
- <path
- id="path3272"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:76.18933868px;line-height:125%;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3286);fill-opacity:1;stroke:none;stroke-width:1.06666672"
- d="m 37.904564,42.951873 c -0.974278,-0.801672 -2.231352,-2.137814 -3.771231,-4.008428 -2.105642,2.672298 -4.085537,4.598568 -5.939688,5.778817 -2.325625,1.425227 -5.295466,2.137836 -8.909534,2.137828 -4.242656,8e-6 -7.762467,-1.124577 -10.5594464,-3.37376 -2.9541428,-2.360505 -4.4312068,-5.489302 -4.4311963,-9.386401 -1.05e-5,-3.741175 1.4770535,-6.881107 4.4311963,-9.419805 2.6398444,-2.249142 6.1910824,-3.373727 10.6537284,-3.37376 2.294137,3.3e-5 4.289745,0.334068 5.986829,1.002107 1.979863,0.734909 3.645487,1.737016 4.99688,3.00632 1.257039,1.13575 2.514116,2.471891 3.771231,4.008428 2.105562,-2.672257 4.085456,-4.598528 5.939689,-5.778817 2.325544,-1.425185 5.295387,-2.137795 8.909534,-2.137828 4.242576,3.3e-5 7.762387,1.12462 10.559446,3.373761 2.954062,2.360545 4.431127,5.489343 4.431197,9.386401 -7e-5,3.741216 -1.477135,6.881148 -4.431197,9.419805 -2.639924,2.249182 -6.191164,3.373767 -10.653728,3.37376 -2.294217,7e-6 -4.289826,-0.334028 -5.986828,-1.002107 -1.697101,-0.601254 -3.362727,-1.603361 -4.996882,-3.006321 m -19.138997,-0.46765 c 5.185412,1.3e-5 9.333762,-2.67227 12.445062,-8.016856 -3.991252,-5.834462 -8.139602,-8.751704 -12.445062,-8.751733 -3.142714,2.9e-5 -5.515444,0.801714 -7.118198,2.405056 -1.7284972,1.714743 -2.5927368,3.707819 -2.5927216,5.979239 -1.52e-5,2.49415 0.8642244,4.509496 2.5927216,6.046045 1.759888,1.558845 4.132618,2.338262 7.118198,2.338249 M 49.5011,25.782442 c -4.682663,2.8e-5 -8.831014,2.672311 -12.445063,8.016855 3.959745,5.834504 8.108096,8.751745 12.445063,8.751733 3.142634,1.2e-5 5.515365,-0.801673 7.118198,-2.405056 1.728417,-1.7147 2.592657,-3.707778 2.592721,-5.979238 -6.4e-5,-2.49411 -0.864304,-4.509456 -2.592721,-6.046046 C 54.85933,26.561886 52.486599,25.78247 49.5011,25.782442" />
- <path
- style="font-style:normal;font-weight:normal;font-size:76.18933868px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;opacity:0.3;fill:#ccff00;fill-opacity:1;stroke:none;stroke-width:1.06666672"
- d="m 19.4,21.166667 c -4.462644,3.3e-5 -8.026822,1.150858 -10.6666667,3.4 -2.9541428,2.538698 -4.4333436,5.658825 -4.4333333,9.4 -1.03e-5,3.897098 1.4791905,7.039495 4.4333333,9.4 -1.622701,-2.044271 -2.433341,-4.51168 -2.4333333,-7.4 -1.03e-5,-3.741175 1.4791905,-6.861302 4.433333,-9.4 2.639845,-2.249142 6.204023,-3.399967 10.666667,-3.4 2.294138,3.3e-5 4.302916,0.365295 6,1.033333 1.979862,0.73491 3.615274,1.730695 4.966667,3 0.06836,0.06177 0.131637,0.137049 0.2,0.2 -0.731813,-0.797005 -1.468213,-1.538822 -2.2,-2.2 -1.351393,-1.269305 -2.986805,-2.26509 -4.966667,-3 -1.697084,-0.668038 -3.705862,-1.0333 -6,-1.033333 z m 29.6,0.1 c -3.614148,3.3e-5 -6.574457,0.74148 -8.9,2.166666 -1.818222,1.157367 -3.923451,3.291388 -5.983333,5.883334 0.618278,0.658774 1.248369,1.377605 1.866666,2.133333 2.105562,-2.672257 4.262434,-4.836378 6.116667,-6.016667 2.325543,-1.425186 5.285852,-2.166633 8.9,-2.166666 4.242576,3.3e-5 7.769607,1.150858 10.566667,3.4 -0.570388,-0.722129 -1.227721,-1.382884 -2,-2 C 56.769607,22.417525 53.242576,21.2667 49,21.266667 Z m 8.866667,8.1 c 0.9092,1.305235 1.366619,2.857751 1.366666,4.666666 -6.5e-5,2.271461 -0.871584,4.285301 -2.6,6 -1.602834,1.603384 -3.957366,2.400012 -7.1,2.4 -2.653707,8e-6 -5.320858,-1.032242 -7.833333,-3.216666 3.136636,3.509305 6.469807,5.216676 9.833333,5.216666 3.142634,1.2e-5 5.497166,-0.796616 7.1,-2.4 1.728416,-1.714699 2.599935,-3.728539 2.6,-6 -6.5e-5,-2.49411 -0.871584,-4.496744 -2.6,-6.033333 -0.24943,-0.220921 -0.49262,-0.443723 -0.766666,-0.633333 z m -26.633334,4.966666 c -3.1113,5.344585 -7.247921,8.033345 -12.433333,8.033334 -2.58055,1e-5 -4.543473,-0.352086 -6.208333,-1.516667 0.348871,0.50642 0.590094,0.752276 1.075,1.183333 1.759888,1.558846 4.147753,2.333345 7.133333,2.333334 5.185412,1.1e-5 9.322033,-2.688749 12.433333,-8.033334 z m 4.933334,6.5 c -0.04103,0.05207 -0.09239,0.08182 -0.133334,0.133334 0.687326,0.744419 1.306949,1.359747 1.833334,1.8 -0.529404,-0.580895 -1.078447,-1.178283 -1.7,-1.933334 z"
- id="text5100" />
- <path
- style="font-style:normal;font-weight:normal;font-size:76.18933868px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;opacity:0.6;fill:#ccff00;fill-opacity:1;stroke:none;stroke-width:1.06666672"
- d="m 19.730474,21.54714 c -4.462645,3.3e-5 -8.026823,1.150859 -10.6666669,3.4 -2.9541429,2.538699 -4.433344,5.658826 -4.4333333,9.4 -1.07e-5,3.897099 1.4791904,7.039495 4.4333333,9.4 0.042837,0.03444 0.090155,0.06608 0.1333334,0.1 -2.2392086,-2.228193 -3.3666752,-5.040417 -3.3666667,-8.433333 -1.07e-5,-3.741174 1.4791904,-6.861301 4.4333332,-9.4 2.639844,-2.249141 6.204022,-3.399967 10.666667,-3.4 2.294137,3.3e-5 4.302916,0.365295 6,1.033333 1.870874,0.694455 3.42364,1.628367 4.733333,2.8 -0.314265,-0.308986 -0.652406,-0.582729 -0.966667,-0.866666 -1.351393,-1.269305 -2.986804,-2.265091 -4.966666,-3 -1.697084,-0.668039 -3.705863,-1.033301 -6,-1.033334 z m 29.6,0.1 c -3.614149,3.3e-5 -6.574457,0.741481 -8.9,2.166667 -1.813279,1.154221 -3.963039,3.235656 -6.016667,5.816667 0.355649,0.402628 0.711011,0.798625 1.066667,1.233333 2.105561,-2.672257 4.295767,-4.803044 6.15,-5.983333 2.325543,-1.425187 5.285851,-2.166634 8.9,-2.166667 4.22442,3.3e-5 7.742084,1.136734 10.533333,3.366667 -0.36096,-0.367566 -0.745726,-0.696967 -1.166667,-1.033334 -2.797059,-2.249141 -6.32409,-3.399967 -10.566666,-3.4 z m 8.233333,7.333334 c 1.323326,1.449243 1.999942,3.250987 2,5.433333 -6.5e-5,2.27146 -0.871584,4.2853 -2.6,6 -1.602834,1.603383 -3.957366,2.400012 -7.1,2.4 -2.406328,6e-6 -4.776468,-0.90386 -7.066667,-2.7 2.669147,2.483838 5.436929,3.766674 8.266667,3.766667 3.142634,1.1e-5 5.497166,-0.796617 7.1,-2.4 1.728416,-1.7147 2.599935,-3.72854 2.6,-6 -6.5e-5,-2.49411 -0.871584,-4.496745 -2.6,-6.033334 -0.185641,-0.164422 -0.400724,-0.319587 -0.6,-0.466666 z m -26,5.733333 c -3.1113,5.344584 -7.247921,8.033345 -12.433333,8.033333 -2.612382,1.1e-5 -4.759372,-0.60651 -6.433334,-1.8 0.166027,0.176488 0.313947,0.367942 0.5,0.533334 1.759888,1.558845 4.147754,2.333345 7.133334,2.333333 5.185412,1.2e-5 9.322033,-2.688749 12.433333,-8.033333 z m 4.133333,5.566667 c -0.04657,0.05909 -0.08689,0.108298 -0.133333,0.166666 1.038571,1.18897 1.9748,2.169945 2.7,2.766667 0.06249,0.05364 0.137426,0.08086 0.2,0.133333 -0.792178,-0.781249 -1.706288,-1.778539 -2.766667,-3.066666 z"
- id="text5058-0" />
- </g>
- </g>
-</svg>
diff --git a/launcher/setupwizard/AnalyticsWizardPage.cpp b/launcher/setupwizard/AnalyticsWizardPage.cpp
index 4fb0bcca..f1d7b006 100644
--- a/launcher/setupwizard/AnalyticsWizardPage.cpp
+++ b/launcher/setupwizard/AnalyticsWizardPage.cpp
@@ -1,5 +1,5 @@
#include "AnalyticsWizardPage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include <QVBoxLayout>
#include <QTextBrowser>
@@ -33,8 +33,8 @@ AnalyticsWizardPage::~AnalyticsWizardPage()
bool AnalyticsWizardPage::validatePage()
{
- auto settings = MMC->settings();
- auto analytics = MMC->analytics();
+ auto settings = LAUNCHER->settings();
+ auto analytics = LAUNCHER->analytics();
auto status = checkBox->isChecked();
settings->set("AnalyticsSeen", analytics->version());
settings->set("Analytics", status);
@@ -47,13 +47,13 @@ void AnalyticsWizardPage::retranslate()
setSubTitle(tr("We track some anonymous statistics about users."));
textBrowser->setHtml(tr(
"<html><body>"
- "<p>MultiMC sends anonymous usage statistics on every start of the application. This helps us decide what platforms and issues to focus on.</p>"
+ "<p>The launcher sends anonymous usage statistics on every start of the application. This helps us decide what platforms and issues to focus on.</p>"
"<p>The data is processed by Google Analytics, see their <a href=\"https://support.google.com/analytics/answer/6004245?hl=en\">article on the "
"matter</a>.</p>"
"<p>The following data is collected:</p>"
- "<ul><li>A random unique ID of the MultiMC installation.<br />It is stored in the application settings (multimc.cfg).</li>"
+ "<ul><li>A random unique ID of the installation.<br />It is stored in the application settings file.</li>"
"<li>Anonymized (partial) IP address.</li>"
- "<li>MultiMC version.</li>"
+ "<li>Launcher version.</li>"
"<li>Operating system name, version and architecture.</li>"
"<li>CPU architecture (kernel architecture on linux).</li>"
"<li>Size of system memory.</li>"
diff --git a/launcher/setupwizard/JavaWizardPage.cpp b/launcher/setupwizard/JavaWizardPage.cpp
index ad571c09..a60090ce 100644
--- a/launcher/setupwizard/JavaWizardPage.cpp
+++ b/launcher/setupwizard/JavaWizardPage.cpp
@@ -1,5 +1,5 @@
#include "JavaWizardPage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include <QVBoxLayout>
#include <QGroupBox>
@@ -55,7 +55,7 @@ bool JavaWizardPage::wantsRefreshButton()
bool JavaWizardPage::validatePage()
{
- auto settings = MMC->settings();
+ auto settings = LAUNCHER->settings();
auto result = m_java_widget->validate();
switch(result)
{
@@ -71,7 +71,7 @@ bool JavaWizardPage::validatePage()
case JavaSettingsWidget::ValidationStatus::JavaBad:
{
// Memory
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
s->set("MinMemAlloc", m_java_widget->minHeapSize());
s->set("MaxMemAlloc", m_java_widget->maxHeapSize());
if (m_java_widget->permGenEnabled())
diff --git a/launcher/setupwizard/LanguageWizardPage.cpp b/launcher/setupwizard/LanguageWizardPage.cpp
index ca93c6f5..e352ccca 100644
--- a/launcher/setupwizard/LanguageWizardPage.cpp
+++ b/launcher/setupwizard/LanguageWizardPage.cpp
@@ -1,9 +1,10 @@
#include "LanguageWizardPage.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include <translations/TranslationsModel.h>
#include "widgets/LanguageSelectionWidget.h"
#include <QVBoxLayout>
+#include <BuildConfig.h>
LanguageWizardPage::LanguageWizardPage(QWidget *parent)
: BaseWizardPage(parent)
@@ -28,13 +29,13 @@ bool LanguageWizardPage::wantsRefreshButton()
void LanguageWizardPage::refresh()
{
- auto translations = MMC->translations();
+ auto translations = LAUNCHER->translations();
translations->downloadIndex();
}
bool LanguageWizardPage::validatePage()
{
- auto settings = MMC->settings();
+ auto settings = LAUNCHER->settings();
QString key = mainWidget->getSelectedLanguageKey();
settings->set("Language", key);
return true;
@@ -43,6 +44,6 @@ bool LanguageWizardPage::validatePage()
void LanguageWizardPage::retranslate()
{
setTitle(tr("Language"));
- setSubTitle(tr("Select the language to use in MultiMC"));
+ setSubTitle(tr("Select the language to use in %1").arg(BuildConfig.LAUNCHER_NAME));
mainWidget->retranslate();
}
diff --git a/launcher/setupwizard/SetupWizard.cpp b/launcher/setupwizard/SetupWizard.cpp
index 60a78b8d..46b2ef79 100644
--- a/launcher/setupwizard/SetupWizard.cpp
+++ b/launcher/setupwizard/SetupWizard.cpp
@@ -5,11 +5,12 @@
#include "AnalyticsWizardPage.h"
#include "translations/TranslationsModel.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include <FileSystem.h>
#include <ganalytics.h>
#include <QAbstractButton>
+#include <BuildConfig.h>
SetupWizard::SetupWizard(QWidget *parent) : QWizard(parent)
{
@@ -30,7 +31,7 @@ void SetupWizard::retranslate()
setButtonText(QWizard::BackButton, tr("< &Back"));
setButtonText(QWizard::FinishButton, tr("&Finish"));
setButtonText(QWizard::CustomButton1, tr("&Refresh"));
- setWindowTitle(tr("MultiMC Quick Setup"));
+ setWindowTitle(tr("%1 Quick Setup").arg(BuildConfig.LAUNCHER_NAME));
}
BaseWizardPage * SetupWizard::getBasePage(int id)
diff --git a/launcher/tasks/Task.cpp b/launcher/tasks/Task.cpp
index d0ac7569..57307b43 100644
--- a/launcher/tasks/Task.cpp
+++ b/launcher/tasks/Task.cpp
@@ -63,7 +63,7 @@ void Task::start()
}
case State::Running:
{
- qWarning() << "MultiMC tried to start task" << describe() << "while it was already running!";
+ qWarning() << "The launcher tried to start task" << describe() << "while it was already running!";
return;
}
}
diff --git a/launcher/themes/ITheme.cpp b/launcher/themes/ITheme.cpp
index bfec87e7..321b0d9b 100644
--- a/launcher/themes/ITheme.cpp
+++ b/launcher/themes/ITheme.cpp
@@ -2,7 +2,7 @@
#include "rainbow.h"
#include <QStyleFactory>
#include <QDir>
-#include "MultiMC.h"
+#include "Launcher.h"
void ITheme::apply(bool)
{
@@ -13,11 +13,11 @@ void ITheme::apply(bool)
}
if(hasStyleSheet())
{
- MMC->setStyleSheet(appStyleSheet());
+ LAUNCHER->setStyleSheet(appStyleSheet());
}
else
{
- MMC->setStyleSheet(QString());
+ LAUNCHER->setStyleSheet(QString());
}
QDir::setSearchPaths("theme", searchPaths());
}
diff --git a/launcher/updater/DownloadTask.cpp b/launcher/updater/DownloadTask.cpp
index 2c62ad24..875d9d84 100644
--- a/launcher/updater/DownloadTask.cpp
+++ b/launcher/updater/DownloadTask.cpp
@@ -131,7 +131,7 @@ void DownloadTask::processDownloadedVersionInfo()
QObject::connect(netJob.get(), &NetJob::progress, this, &DownloadTask::fileDownloadProgressChanged);
QObject::connect(netJob.get(), &NetJob::failed, this, &DownloadTask::fileDownloadFailed);
- if(netJob->size() == 1) // Translation issues... see https://github.com/MultiMC/MultiMC5/issues/1701
+ if(netJob->size() == 1) // Translation issues... see https://github.com/MultiMC/Launcher/issues/1701
{
setStatus(tr("Downloading one update file."));
}
diff --git a/launcher/updater/DownloadTask_test.cpp b/launcher/updater/DownloadTask_test.cpp
index 8d5375e8..dc263c17 100644
--- a/launcher/updater/DownloadTask_test.cpp
+++ b/launcher/updater/DownloadTask_test.cpp
@@ -77,7 +77,7 @@ slots:
QTest::addColumn<bool>("ret");
QTest::newRow("one")
- << MULTIMC_GET_TEST_FILE("data/1.json")
+ << GET_TEST_FILE("data/1.json")
<< (VersionFileList()
<< VersionFileEntry{"fileOne",
493,
@@ -93,7 +93,7 @@ slots:
"f12df554b21e320be6471d7154130e70"})
<< QString() << true;
QTest::newRow("two")
- << MULTIMC_GET_TEST_FILE("data/2.json")
+ << GET_TEST_FILE("data/2.json")
<< (VersionFileList()
<< VersionFileEntry{"fileOne",
493,
diff --git a/launcher/updater/UpdateChecker.cpp b/launcher/updater/UpdateChecker.cpp
index eea73dcf..c96a6c9f 100644
--- a/launcher/updater/UpdateChecker.cpp
+++ b/launcher/updater/UpdateChecker.cpp
@@ -190,14 +190,6 @@ void UpdateChecker::updateChanList(bool notifyNoUpdate)
return;
}
- if (m_channelUrl.isEmpty())
- {
- qCritical() << "Failed to update channel list. No channel list URL set."
- << "If you'd like to use MultiMC's update system, please pass the channel "
- "list URL to CMake at compile time.";
- return;
- }
-
m_chanListLoading = true;
NetJob *job = new NetJob("Update System Channel List");
job->addNetAction(Net::Download::makeByteArray(QUrl(m_channelUrl), &chanlistData));
diff --git a/launcher/widgets/CustomCommands.ui b/launcher/widgets/CustomCommands.ui
index 25b2681b..21964ad2 100644
--- a/launcher/widgets/CustomCommands.ui
+++ b/launcher/widgets/CustomCommands.ui
@@ -74,7 +74,7 @@
<item>
<widget class="QLabel" name="labelCustomCmdsDescription">
<property name="text">
- <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Pre-launch command runs before the instance launches and post-exit command runs after it exits.&lt;/p&gt;&lt;p&gt;Both will be run in MultiMC's working folder with extra environment variables:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;$INST_NAME - Name of the instance&lt;/li&gt;&lt;li&gt;$INST_ID - ID of the instance (its folder name)&lt;/li&gt;&lt;li&gt;$INST_DIR - absolute path of the instance&lt;/li&gt;&lt;li&gt;$INST_MC_DIR - absolute path of minecraft&lt;/li&gt;&lt;li&gt;$INST_JAVA - java binary used for launch&lt;/li&gt;&lt;li&gt;$INST_JAVA_ARGS - command-line parameters used for launch&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Wrapper command allows launching using an extra wrapper program (like 'optirun' on Linux)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Pre-launch command runs before the instance launches and post-exit command runs after it exits.&lt;/p&gt;&lt;p&gt;Both will be run in the launcher's working folder with extra environment variables:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;$INST_NAME - Name of the instance&lt;/li&gt;&lt;li&gt;$INST_ID - ID of the instance (its folder name)&lt;/li&gt;&lt;li&gt;$INST_DIR - absolute path of the instance&lt;/li&gt;&lt;li&gt;$INST_MC_DIR - absolute path of minecraft&lt;/li&gt;&lt;li&gt;$INST_JAVA - java binary used for launch&lt;/li&gt;&lt;li&gt;$INST_JAVA_ARGS - command-line parameters used for launch&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Wrapper command allows launching using an extra wrapper program (like 'optirun' on Linux)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
diff --git a/launcher/widgets/JavaSettingsWidget.cpp b/launcher/widgets/JavaSettingsWidget.cpp
index 7f53dc23..0e292bb8 100644
--- a/launcher/widgets/JavaSettingsWidget.cpp
+++ b/launcher/widgets/JavaSettingsWidget.cpp
@@ -1,5 +1,5 @@
#include "JavaSettingsWidget.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include <java/JavaInstall.h>
#include <dialogs/CustomMessageBox.h>
@@ -16,14 +16,15 @@
#include <widgets/VersionSelectWidget.h>
#include <FileSystem.h>
#include <QFileDialog>
+#include <BuildConfig.h>
JavaSettingsWidget::JavaSettingsWidget(QWidget* parent) : QWidget(parent)
{
m_availableMemory = Sys::getSystemRam() / Sys::mebibyte;
- goodIcon = MMC->getThemedIcon("status-good");
- yellowIcon = MMC->getThemedIcon("status-yellow");
- badIcon = MMC->getThemedIcon("status-bad");
+ goodIcon = LAUNCHER->getThemedIcon("status-good");
+ yellowIcon = LAUNCHER->getThemedIcon("status-yellow");
+ badIcon = LAUNCHER->getThemedIcon("status-bad");
setupUi();
connect(m_minMemSpinBox, SIGNAL(valueChanged(int)), this, SLOT(memoryValueChanged(int)));
@@ -115,9 +116,9 @@ void JavaSettingsWidget::setupUi()
void JavaSettingsWidget::initialize()
{
- m_versionWidget->initialize(MMC->javalist().get());
+ m_versionWidget->initialize(LAUNCHER->javalist().get());
m_versionWidget->setResizeOn(2);
- auto s = MMC->settings();
+ auto s = LAUNCHER->settings();
// Memory
observedMinMemory = s->get("MinMemAlloc").toInt();
observedMaxMemory = s->get("MaxMemAlloc").toInt();
@@ -146,11 +147,11 @@ JavaSettingsWidget::ValidationStatus JavaSettingsWidget::validate()
this,
tr("No Java version selected"),
tr("You didn't select a Java version or selected something that doesn't work.\n"
- "MultiMC will not be able to start Minecraft.\n"
+ "%1 will not be able to start Minecraft.\n"
"Do you wish to proceed without any Java?"
"\n\n"
"You can change the Java version in the settings later.\n"
- ),
+ ).arg(BuildConfig.LAUNCHER_NAME),
QMessageBox::Warning,
QMessageBox::Yes | QMessageBox::No,
QMessageBox::NoButton
diff --git a/launcher/widgets/LanguageSelectionWidget.cpp b/launcher/widgets/LanguageSelectionWidget.cpp
index 8d23bdc5..2b972ba7 100644
--- a/launcher/widgets/LanguageSelectionWidget.cpp
+++ b/launcher/widgets/LanguageSelectionWidget.cpp
@@ -4,7 +4,7 @@
#include <QTreeView>
#include <QHeaderView>
#include <QLabel>
-#include "MultiMC.h"
+#include "Launcher.h"
#include "translations/TranslationsModel.h"
LanguageSelectionWidget::LanguageSelectionWidget(QWidget *parent) :
@@ -29,7 +29,7 @@ LanguageSelectionWidget::LanguageSelectionWidget(QWidget *parent) :
helpUsLabel->setWordWrap(true);
verticalLayout->addWidget(helpUsLabel);
- auto translations = MMC->translations();
+ auto translations = LAUNCHER->translations();
auto index = translations->selectedIndex();
languageView->setModel(translations.get());
languageView->setCurrentIndex(index);
@@ -41,14 +41,14 @@ LanguageSelectionWidget::LanguageSelectionWidget(QWidget *parent) :
QString LanguageSelectionWidget::getSelectedLanguageKey() const
{
- auto translations = MMC->translations();
+ auto translations = LAUNCHER->translations();
return translations->data(languageView->currentIndex(), Qt::UserRole).toString();
}
void LanguageSelectionWidget::retranslate()
{
QString text = tr("Don't see your language or the quality is poor?<br/><a href=\"%1\">Help us with translations!</a>")
- .arg("https://github.com/MultiMC/MultiMC5/wiki/Translating-MultiMC");
+ .arg("https://github.com/MultiMC/Launcher/wiki/Translating-MultiMC");
helpUsLabel->setText(text);
}
@@ -59,7 +59,7 @@ void LanguageSelectionWidget::languageRowChanged(const QModelIndex& current, con
{
return;
}
- auto translations = MMC->translations();
+ auto translations = LAUNCHER->translations();
QString key = translations->data(current, Qt::UserRole).toString();
translations->selectLanguage(key);
translations->updateLanguage(key);
diff --git a/launcher/widgets/PageContainer.cpp b/launcher/widgets/PageContainer.cpp
index 05a5e6b4..25e3b676 100644
--- a/launcher/widgets/PageContainer.cpp
+++ b/launcher/widgets/PageContainer.cpp
@@ -26,11 +26,11 @@
#include <QDialogButtonBox>
#include <QGridLayout>
-#include "MultiMC.h"
+#include "Launcher.h"
#include "settings/SettingsObject.h"
#include "widgets/IconLabel.h"
#include "PageContainer_p.h"
-#include <MultiMC.h>
+#include <Launcher.h>
#include <DesktopServices.h>
class PageEntryFilterModel : public QSortFilterProxyModel
@@ -139,12 +139,12 @@ void PageContainer::createUI()
m_header->setFont(headerLabelFont);
QHBoxLayout *headerHLayout = new QHBoxLayout;
- const int leftMargin = MMC->style()->pixelMetric(QStyle::PM_LayoutLeftMargin);
+ const int leftMargin = LAUNCHER->style()->pixelMetric(QStyle::PM_LayoutLeftMargin);
headerHLayout->addSpacerItem(new QSpacerItem(leftMargin, 0, QSizePolicy::Fixed, QSizePolicy::Ignored));
headerHLayout->addWidget(m_header);
headerHLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored));
headerHLayout->addWidget(m_iconHeader);
- const int rightMargin = MMC->style()->pixelMetric(QStyle::PM_LayoutRightMargin);
+ const int rightMargin = LAUNCHER->style()->pixelMetric(QStyle::PM_LayoutRightMargin);
headerHLayout->addSpacerItem(new QSpacerItem(rightMargin, 0, QSizePolicy::Fixed, QSizePolicy::Ignored));
headerHLayout->setContentsMargins(0, 6, 0, 0);
@@ -195,7 +195,7 @@ void PageContainer::showPage(int row)
{
m_pageStack->setCurrentIndex(0);
m_header->setText(QString());
- m_iconHeader->setIcon(MMC->getThemedIcon("bug"));
+ m_iconHeader->setIcon(LAUNCHER->getThemedIcon("bug"));
}
}
@@ -206,7 +206,7 @@ void PageContainer::help()
QString pageId = m_currentPage->helpPage();
if (pageId.isEmpty())
return;
- DesktopServices::openUrl(QUrl("https://github.com/MultiMC/MultiMC5/wiki/" + pageId));
+ DesktopServices::openUrl(QUrl("https://github.com/MultiMC/Launcher/wiki/" + pageId));
}
}