NOISSUE debranding for real, initial work

This is probably very broken on macOS and Windows and will need a lot of work to complete fully.
This commit is contained in:
Petr Mrázek 2021-10-13 01:59:25 +02:00
parent 6a4130c914
commit 441ab7eedc
112 changed files with 944 additions and 663 deletions

4
.gitignore vendored
View File

@ -31,5 +31,5 @@ tags
#OSX Stuff #OSX Stuff
.DS_Store .DS_Store
branding branding/
secrets secrets/

2
.gitmodules vendored
View File

@ -1,6 +1,8 @@
[submodule "depends/libnbtplusplus"] [submodule "depends/libnbtplusplus"]
path = libraries/libnbtplusplus path = libraries/libnbtplusplus
url = https://github.com/MultiMC/libnbtplusplus.git url = https://github.com/MultiMC/libnbtplusplus.git
pushurl = git@github.com:MultiMC/libnbtplusplus.git
[submodule "libraries/quazip"] [submodule "libraries/quazip"]
path = libraries/quazip path = libraries/quazip
url = https://github.com/MultiMC/quazip.git url = https://github.com/MultiMC/quazip.git
pushurl = git@github.com:MultiMC/quazip.git

View File

@ -197,7 +197,7 @@ cmake \
-DCMAKE_INSTALL_PREFIX:PATH="../dist/" \ -DCMAKE_INSTALL_PREFIX:PATH="../dist/" \
-DCMAKE_PREFIX_PATH="/path/to/Qt5.6/" \ -DCMAKE_PREFIX_PATH="/path/to/Qt5.6/" \
-DQt5_DIR="/path/to/Qt5.6/" \ -DQt5_DIR="/path/to/Qt5.6/" \
-DMultiMC_LAYOUT=mac-bundle \ -DLauncher_LAYOUT=mac-bundle \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 \ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 \
.. ..
make install make install

View File

@ -2,14 +2,14 @@ cmake_minimum_required(VERSION 3.1)
string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BUILD_DIR}" IS_IN_SOURCE_BUILD) string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BUILD_DIR}" IS_IN_SOURCE_BUILD)
if(IS_IN_SOURCE_BUILD) if(IS_IN_SOURCE_BUILD)
message(FATAL_ERROR "You are building MultiMC in-source. Please separate the build tree from the source tree.") message(FATAL_ERROR "You are building the Launcher in-source. Please separate the build tree from the source tree.")
endif() endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Linux") if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
if(CMAKE_HOST_SYSTEM_VERSION MATCHES ".*[Mm]icrosoft.*" OR if(CMAKE_HOST_SYSTEM_VERSION MATCHES ".*[Mm]icrosoft.*" OR
CMAKE_HOST_SYSTEM_VERSION MATCHES ".*WSL.*" CMAKE_HOST_SYSTEM_VERSION MATCHES ".*WSL.*"
) )
message(FATAL_ERROR "Building MultiMC is not supported in Linux-on-Windows distributions.") message(FATAL_ERROR "Building the Launcher is not supported in Linux-on-Windows distributions.")
endif() endif()
endif() endif()
@ -18,7 +18,7 @@ if(WIN32)
cmake_policy(SET CMP0020 OLD) cmake_policy(SET CMP0020 OLD)
endif() endif()
project(MultiMC) project(Launcher)
enable_testing() enable_testing()
@ -50,61 +50,61 @@ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror=return-type")
##################################### Set Application options ##################################### ##################################### Set Application options #####################################
######## Set URLs ######## ######## Set URLs ########
set(MultiMC_NEWS_RSS_URL "https://multimc.org/rss.xml" CACHE STRING "URL to fetch MultiMC's news RSS feed from.") set(Launcher_NEWS_RSS_URL "https://multimc.org/rss.xml" CACHE STRING "URL to fetch Launcher's news RSS feed from.")
######## Set version numbers ######## ######## Set version numbers ########
set(MultiMC_VERSION_MAJOR 0) set(Launcher_VERSION_MAJOR 0)
set(MultiMC_VERSION_MINOR 6) set(Launcher_VERSION_MINOR 6)
set(MultiMC_VERSION_HOTFIX 13) set(Launcher_VERSION_HOTFIX 13)
# Build number # Build number
set(MultiMC_VERSION_BUILD -1 CACHE STRING "Build number. -1 for no build number.") set(Launcher_VERSION_BUILD -1 CACHE STRING "Build number. -1 for no build number.")
# Build platform. # Build platform.
set(MultiMC_BUILD_PLATFORM "" CACHE STRING "A short string identifying the platform that this build was built for. Only used by the notification system and to display in the about dialog.") set(Launcher_BUILD_PLATFORM "" CACHE STRING "A short string identifying the platform that this build was built for. Only used by the notification system and to display in the about dialog.")
# Channel list URL # Channel list URL
set(MultiMC_UPDATER_BASE "" CACHE STRING "Base URL for the updater.") set(Launcher_UPDATER_BASE "" CACHE STRING "Base URL for the updater.")
# Notification URL # Notification URL
set(MultiMC_NOTIFICATION_URL "" CACHE STRING "URL for checking for notifications.") set(Launcher_NOTIFICATION_URL "" CACHE STRING "URL for checking for notifications.")
# The metadata server # The metadata server
set(MultiMC_META_URL "https://meta.multimc.org/v1/" CACHE STRING "URL to fetch MultiMC's meta files from.") set(Launcher_META_URL "https://meta.multimc.org/v1/" CACHE STRING "URL to fetch Launcher's meta files from.")
# paste.ee API key # paste.ee API key
set(MultiMC_PASTE_EE_API_KEY "utLvciUouSURFzfjPxLBf5W4ISsUX4pwBDF7N1AfZ" CACHE STRING "API key you can get from paste.ee when you register an account") set(Launcher_PASTE_EE_API_KEY "utLvciUouSURFzfjPxLBf5W4ISsUX4pwBDF7N1AfZ" CACHE STRING "API key you can get from paste.ee when you register an account")
# Imgur API Client ID # Imgur API Client ID
set(MultiMC_IMGUR_CLIENT_ID "5b97b0713fba4a3" CACHE STRING "Client ID you can get from Imgur when you register an application") set(Launcher_IMGUR_CLIENT_ID "5b97b0713fba4a3" CACHE STRING "Client ID you can get from Imgur when you register an application")
# Google analytics ID # Google analytics ID
set(MultiMC_ANALYTICS_ID "UA-87731965-2" CACHE STRING "ID you can get from Google analytics") set(Launcher_ANALYTICS_ID "UA-87731965-2" CACHE STRING "ID you can get from Google analytics")
# Bug tracker URL # Bug tracker URL
set(MultiMC_BUG_TRACKER_URL "" CACHE STRING "URL for the bug tracker.") set(Launcher_BUG_TRACKER_URL "" CACHE STRING "URL for the bug tracker.")
# Discord URL # Discord URL
set(MultiMC_DISCORD_URL "" CACHE STRING "URL for the Discord guild.") set(Launcher_DISCORD_URL "" CACHE STRING "URL for the Discord guild.")
# Subreddit URL # Subreddit URL
set(MultiMC_SUBREDDIT_URL "" CACHE STRING "URL for the subreddit.") set(Launcher_SUBREDDIT_URL "" CACHE STRING "URL for the subreddit.")
# Use the secrets library or a public stub?
option(MultiMC_EMBED_SECRETS "Determines whether to embed secrets. Secrets are separate and non-public." OFF) option(Launcher_EMBED_SECRETS "Determines whether to embed secrets. Secrets are separate and non-public." OFF)
#### Check the current Git commit and branch #### Check the current Git commit and branch
include(GetGitRevisionDescription) include(GetGitRevisionDescription)
get_git_head_revision(MultiMC_GIT_REFSPEC MultiMC_GIT_COMMIT) get_git_head_revision(Launcher_GIT_REFSPEC Launcher_GIT_COMMIT)
message(STATUS "Git commit: ${MultiMC_GIT_COMMIT}") message(STATUS "Git commit: ${Launcher_GIT_COMMIT}")
message(STATUS "Git refspec: ${MultiMC_GIT_REFSPEC}") message(STATUS "Git refspec: ${Launcher_GIT_REFSPEC}")
set(MultiMC_RELEASE_VERSION_NAME "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}") set(Launcher_RELEASE_VERSION_NAME "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.${Launcher_VERSION_HOTFIX}")
#### Custom target to just print the version. #### Custom target to just print the version.
add_custom_target(version echo "Version: ${MultiMC_RELEASE_VERSION_NAME}") add_custom_target(version echo "Version: ${Launcher_RELEASE_VERSION_NAME}")
add_custom_target(tcversion echo "\\#\\#teamcity[setParameter name=\\'env.MULTIMC_VERSION\\' value=\\'${MultiMC_RELEASE_VERSION_NAME}\\']") add_custom_target(tcversion echo "\\#\\#teamcity[setParameter name=\\'env.LAUNCHER_VERSION\\' value=\\'${Launcher_RELEASE_VERSION_NAME}\\']")
################################ 3rd Party Libs ################################ ################################ 3rd Party Libs ################################
@ -129,47 +129,55 @@ if (Qt5_POSITION_INDEPENDENT_CODE)
SET(CMAKE_POSITION_INDEPENDENT_CODE ON) SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif() endif()
####################################### Secrets #######################################
if(Launcher_EMBED_SECRETS)
add_subdirectory(secrets)
else()
add_subdirectory(notsecrets)
endif()
####################################### Install layout ####################################### ####################################### Install layout #######################################
# How to install the build results # How to install the build results
set(MultiMC_LAYOUT "auto" CACHE STRING "The layout for MultiMC installation (auto, win-bundle, lin-bundle, lin-nodeps, lin-system, mac-bundle)") set(Launcher_LAYOUT "auto" CACHE STRING "The layout for the launcher installation (auto, win-bundle, lin-nodeps, mac-bundle)")
set_property(CACHE MultiMC_LAYOUT PROPERTY STRINGS auto win-bundle lin-bundle lin-nodeps lin-system mac-bundle) set_property(CACHE Launcher_LAYOUT PROPERTY STRINGS auto win-bundle lin-nodeps mac-bundle)
if(MultiMC_LAYOUT STREQUAL "auto") if(Launcher_LAYOUT STREQUAL "auto")
if(UNIX AND APPLE) if(UNIX AND APPLE)
set(MultiMC_LAYOUT_REAL "mac-bundle") set(Launcher_LAYOUT_REAL "mac-bundle")
elseif(UNIX) elseif(UNIX)
set(MultiMC_LAYOUT_REAL "lin-nodeps") set(Launcher_LAYOUT_REAL "lin-nodeps")
elseif(WIN32) elseif(WIN32)
set(MultiMC_LAYOUT_REAL "win-bundle") set(Launcher_LAYOUT_REAL "win-bundle")
else() else()
message(FATAL_ERROR "Cannot choose a sensible install layout for your platform.") message(FATAL_ERROR "Cannot choose a sensible install layout for your platform.")
endif() endif()
else() else()
set(MultiMC_LAYOUT_REAL ${MultiMC_LAYOUT}) set(Launcher_LAYOUT_REAL ${Launcher_LAYOUT})
endif() endif()
if(MultiMC_LAYOUT_REAL STREQUAL "mac-bundle") if(Launcher_LAYOUT_REAL STREQUAL "mac-bundle")
set(BINARY_DEST_DIR "MultiMC.app/Contents/MacOS") set(BINARY_DEST_DIR "${Launcher_Name}.app/Contents/MacOS")
set(LIBRARY_DEST_DIR "MultiMC.app/Contents/MacOS") set(LIBRARY_DEST_DIR "${Launcher_Name}.app/Contents/MacOS")
set(PLUGIN_DEST_DIR "MultiMC.app/Contents/MacOS") set(PLUGIN_DEST_DIR "${Launcher_Name}.app/Contents/MacOS")
set(RESOURCES_DEST_DIR "MultiMC.app/Contents/Resources") set(RESOURCES_DEST_DIR "${Launcher_Name}.app/Contents/Resources")
set(JARS_DEST_DIR "MultiMC.app/Contents/MacOS/jars") set(JARS_DEST_DIR "${Launcher_Name}.app/Contents/MacOS/jars")
set(BUNDLE_DEST_DIR ".") set(BUNDLE_DEST_DIR ".")
# Apps to bundle # Apps to bundle
set(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC.app") set(APPS "\${CMAKE_INSTALL_PREFIX}/${Launcher_Name}.app")
# Mac bundle settings # Mac bundle settings
set(MACOSX_BUNDLE_BUNDLE_NAME "MultiMC") set(MACOSX_BUNDLE_BUNDLE_NAME "${Launcher_Name}")
set(MACOSX_BUNDLE_INFO_STRING "MultiMC Minecraft launcher and management utility.") set(MACOSX_BUNDLE_INFO_STRING "${Launcher_Name}: Minecraft launcher and management utility.")
set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.multimc.MultiMC5") set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.multimc.${Launcher_Name}")
set(MACOSX_BUNDLE_BUNDLE_VERSION "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}.${MultiMC_VERSION_BUILD}") set(MACOSX_BUNDLE_BUNDLE_VERSION "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.${Launcher_VERSION_HOTFIX}.${Launcher_VERSION_BUILD}")
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}.${MultiMC_VERSION_BUILD}") set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.${Launcher_VERSION_HOTFIX}.${Launcher_VERSION_BUILD}")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}.${MultiMC_VERSION_BUILD}") set(MACOSX_BUNDLE_LONG_VERSION_STRING "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.${Launcher_VERSION_HOTFIX}.${Launcher_VERSION_BUILD}")
set(MACOSX_BUNDLE_ICON_FILE MultiMC.icns) set(MACOSX_BUNDLE_ICON_FILE ${Launcher_Name}.icns)
set(MACOSX_BUNDLE_COPYRIGHT "Copyright 2015-2021 MultiMC Contributors") set(MACOSX_BUNDLE_COPYRIGHT "Copyright 2015-2021 ${Launcher_Copyright}")
# directories to look for dependencies # directories to look for dependencies
set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
@ -178,32 +186,9 @@ if(MultiMC_LAYOUT_REAL STREQUAL "mac-bundle")
set(INSTALL_BUNDLE "full") set(INSTALL_BUNDLE "full")
# Add the icon # Add the icon
install(FILES launcher/resources/MultiMC.icns DESTINATION ${RESOURCES_DEST_DIR}) install(FILES ${Launcher_Branding_ICNS} DESTINATION ${RESOURCES_DEST_DIR})
elseif(MultiMC_LAYOUT_REAL STREQUAL "lin-bundle") elseif(Launcher_LAYOUT_REAL STREQUAL "lin-nodeps")
set(BINARY_DEST_DIR "bin")
set(LIBRARY_DEST_DIR "bin")
set(PLUGIN_DEST_DIR "plugins")
set(BUNDLE_DEST_DIR ".")
set(RESOURCES_DEST_DIR ".")
set(JARS_DEST_DIR "bin/jars")
# Apps to bundle
set(APPS "\${CMAKE_INSTALL_PREFIX}/bin/MultiMC")
# directories to look for dependencies
set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
# install as bundle
set(INSTALL_BUNDLE "full")
# Set RPATH
SET(MultiMC_BINARY_RPATH "$ORIGIN/")
# Install basic runner script
install(PROGRAMS launcher/package/linux/MultiMC DESTINATION ${BUNDLE_DEST_DIR})
elseif(MultiMC_LAYOUT_REAL STREQUAL "lin-nodeps")
set(BINARY_DEST_DIR "bin") set(BINARY_DEST_DIR "bin")
set(LIBRARY_DEST_DIR "bin") set(LIBRARY_DEST_DIR "bin")
set(PLUGIN_DEST_DIR "plugins") set(PLUGIN_DEST_DIR "plugins")
@ -215,28 +200,13 @@ elseif(MultiMC_LAYOUT_REAL STREQUAL "lin-nodeps")
set(INSTALL_BUNDLE "nodeps") set(INSTALL_BUNDLE "nodeps")
# Set RPATH # Set RPATH
SET(MultiMC_BINARY_RPATH "$ORIGIN/") SET(Launcher_BINARY_RPATH "$ORIGIN/")
# Install basic runner script # Install basic runner script
install(PROGRAMS launcher/package/linux/MultiMC DESTINATION ${BUNDLE_DEST_DIR}) configure_file(launcher/Launcher.in "${CMAKE_CURRENT_BINARY_DIR}/LauncherScript" @ONLY)
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/LauncherScript" DESTINATION ${BUNDLE_DEST_DIR} RENAME ${Launcher_Name})
elseif(MultiMC_LAYOUT_REAL STREQUAL "lin-system") elseif(Launcher_LAYOUT_REAL STREQUAL "win-bundle")
set(MultiMC_APP_BINARY_NAME "multimc" CACHE STRING "Name of the MultiMC binary")
set(MultiMC_BINARY_DEST_DIR "bin" CACHE STRING "Path to the binary directory")
set(MultiMC_LIBRARY_DEST_DIR "lib${LIB_SUFFIX}" CACHE STRING "Path to the library directory")
set(MultiMC_SHARE_DEST_DIR "share/multimc" CACHE STRING "Path to the shared data directory")
set(JARS_DEST_DIR "${MultiMC_SHARE_DEST_DIR}/jars")
set(BINARY_DEST_DIR ${MultiMC_BINARY_DEST_DIR})
set(LIBRARY_DEST_DIR ${MultiMC_LIBRARY_DEST_DIR})
MESSAGE(STATUS "Compiling for linux system with ${MultiMC_SHARE_DEST_DIR} and MULTIMC_LINUX_DATADIR")
SET(MultiMC_APP_BINARY_DEFS "-DMULTIMC_JARS_LOCATION=${CMAKE_INSTALL_PREFIX}/${JARS_DEST_DIR}" "-DMULTIMC_LINUX_DATADIR")
# install as bundle with no dependencies included
set(INSTALL_BUNDLE "nodeps")
elseif(MultiMC_LAYOUT_REAL STREQUAL "win-bundle")
set(BINARY_DEST_DIR ".") set(BINARY_DEST_DIR ".")
set(LIBRARY_DEST_DIR ".") set(LIBRARY_DEST_DIR ".")
set(PLUGIN_DEST_DIR ".") set(PLUGIN_DEST_DIR ".")
@ -245,7 +215,7 @@ elseif(MultiMC_LAYOUT_REAL STREQUAL "win-bundle")
set(JARS_DEST_DIR "jars") set(JARS_DEST_DIR "jars")
# Apps to bundle # Apps to bundle
set(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC.exe") set(APPS "\${CMAKE_INSTALL_PREFIX}/${Launcher_Name}.exe")
# directories to look for dependencies # directories to look for dependencies
set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
@ -264,7 +234,7 @@ set_directory_properties(PROPERTIES EP_BASE External)
option(NBT_BUILD_SHARED "Build NBT shared library" ON) option(NBT_BUILD_SHARED "Build NBT shared library" ON)
option(NBT_USE_ZLIB "Build NBT library with zlib support" OFF) option(NBT_USE_ZLIB "Build NBT library with zlib support" OFF)
option(NBT_BUILD_TESTS "Build NBT library tests" OFF) #FIXME: fix unit tests. option(NBT_BUILD_TESTS "Build NBT library tests" OFF) #FIXME: fix unit tests.
set(NBT_NAME MultiMC_nbt++) set(NBT_NAME Launcher_nbt++)
set(NBT_DEST_DIR ${LIBRARY_DEST_DIR}) set(NBT_DEST_DIR ${LIBRARY_DEST_DIR})
add_subdirectory(libraries/libnbtplusplus) add_subdirectory(libraries/libnbtplusplus)
@ -287,12 +257,5 @@ add_subdirectory(libraries/katabasis) # An OAuth2 library that tried to do too m
add_subdirectory(buildconfig) add_subdirectory(buildconfig)
if(MultiMC_EMBED_SECRETS)
add_subdirectory(secrets)
else()
add_subdirectory(notsecrets)
endif()
# NOTE: this must always be last to appease the CMake deity of quirky install command evaluation order. # NOTE: this must always be last to appease the CMake deity of quirky install command evaluation order.
add_subdirectory(launcher) add_subdirectory(launcher)

View File

@ -48,33 +48,33 @@ Unless required by applicable law or agreed to in writing, software distributed
## Build status ## Build status
### Linux (Intel32) ### Linux (Intel32)
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_Linux32_Build&guest=1"> <a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_Linux32_Build&guest=1">
Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_Linux32_Build)/statusIcon"/> Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_Linux32_Build)/statusIcon"/>
</a> </a>
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_Linux32_Deploy&guest=1"> <a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_Linux32_Deploy&guest=1">
Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_Linux32_Deploy)/statusIcon"/> Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_Linux32_Deploy)/statusIcon"/>
</a> </a>
### Linux (AMD64) ### Linux (AMD64)
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_Linux64_Build&guest=1"> <a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_Linux64_Build&guest=1">
Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_Linux64_Build)/statusIcon"/> Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_Linux64_Build)/statusIcon"/>
</a> </a>
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_Linux64_Deploy&guest=1"> <a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_Linux64_Deploy&guest=1">
Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_Linux64_Deploy)/statusIcon"/> Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_Linux64_Deploy)/statusIcon"/>
</a> </a>
### macOS (AMD64) ### macOS (AMD64)
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_MacOS_Build&guest=1"> <a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_MacOS_Build&guest=1">
Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_MacOS_Build)/statusIcon"/> Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_MacOS_Build)/statusIcon"/>
</a> </a>
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_MacOS_Deploy&guest=1"> <a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_MacOS_Deploy&guest=1">
Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_MacOS_Deploy)/statusIcon"/> Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_MacOS_Deploy)/statusIcon"/>
</a> </a>
### Windows (Intel32) ### Windows (Intel32)
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_Windows_Build&guest=1"> <a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_Windows_Build&guest=1">
Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_Windows_Build)/statusIcon"/> Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_Windows_Build)/statusIcon"/>
</a> </a>
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_Windows_Deploy&guest=1"> <a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_Windows_Deploy&guest=1">
Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_Windows_Deploy)/statusIcon"/> Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_Windows_Deploy)/statusIcon"/>
</a> </a>

View File

@ -6,19 +6,19 @@ const Config BuildConfig;
Config::Config() Config::Config()
{ {
// Version information // Version information
VERSION_MAJOR = @MultiMC_VERSION_MAJOR@; VERSION_MAJOR = @Launcher_VERSION_MAJOR@;
VERSION_MINOR = @MultiMC_VERSION_MINOR@; VERSION_MINOR = @Launcher_VERSION_MINOR@;
VERSION_HOTFIX = @MultiMC_VERSION_HOTFIX@; VERSION_HOTFIX = @Launcher_VERSION_HOTFIX@;
VERSION_BUILD = @MultiMC_VERSION_BUILD@; VERSION_BUILD = @Launcher_VERSION_BUILD@;
BUILD_PLATFORM = "@MultiMC_BUILD_PLATFORM@"; BUILD_PLATFORM = "@Launcher_BUILD_PLATFORM@";
UPDATER_BASE = "@MultiMC_UPDATER_BASE@"; UPDATER_BASE = "@Launcher_UPDATER_BASE@";
ANALYTICS_ID = "@MultiMC_ANALYTICS_ID@"; ANALYTICS_ID = "@Launcher_ANALYTICS_ID@";
NOTIFICATION_URL = "@MultiMC_NOTIFICATION_URL@"; NOTIFICATION_URL = "@Launcher_NOTIFICATION_URL@";
FULL_VERSION_STR = "@MultiMC_VERSION_MAJOR@.@MultiMC_VERSION_MINOR@.@MultiMC_VERSION_BUILD@"; FULL_VERSION_STR = "@Launcher_VERSION_MAJOR@.@Launcher_VERSION_MINOR@.@Launcher_VERSION_BUILD@";
GIT_COMMIT = "@MultiMC_GIT_COMMIT@"; GIT_COMMIT = "@Launcher_GIT_COMMIT@";
GIT_REFSPEC = "@MultiMC_GIT_REFSPEC@"; GIT_REFSPEC = "@Launcher_GIT_REFSPEC@";
if(GIT_REFSPEC.startsWith("refs/heads/") && !UPDATER_BASE.isEmpty() && !BUILD_PLATFORM.isEmpty() && VERSION_BUILD >= 0) if(GIT_REFSPEC.startsWith("refs/heads/") && !UPDATER_BASE.isEmpty() && !BUILD_PLATFORM.isEmpty() && VERSION_BUILD >= 0)
{ {
VERSION_CHANNEL = GIT_REFSPEC; VERSION_CHANNEL = GIT_REFSPEC;
@ -30,15 +30,15 @@ Config::Config()
VERSION_CHANNEL = QObject::tr("custom"); VERSION_CHANNEL = QObject::tr("custom");
} }
VERSION_STR = "@MultiMC_VERSION_STRING@"; VERSION_STR = "@Launcher_VERSION_STRING@";
NEWS_RSS_URL = "@MultiMC_NEWS_RSS_URL@"; NEWS_RSS_URL = "@Launcher_NEWS_RSS_URL@";
PASTE_EE_KEY = "@MultiMC_PASTE_EE_API_KEY@"; PASTE_EE_KEY = "@Launcher_PASTE_EE_API_KEY@";
IMGUR_CLIENT_ID = "@MultiMC_IMGUR_CLIENT_ID@"; IMGUR_CLIENT_ID = "@Launcher_IMGUR_CLIENT_ID@";
META_URL = "@MultiMC_META_URL@"; META_URL = "@Launcher_META_URL@";
BUG_TRACKER_URL = "@MultiMC_BUG_TRACKER_URL@"; BUG_TRACKER_URL = "@Launcher_BUG_TRACKER_URL@";
DISCORD_URL = "@MultiMC_DISCORD_URL@"; DISCORD_URL = "@Launcher_DISCORD_URL@";
SUBREDDIT_URL = "@MultiMC_SUBREDDIT_URL@"; SUBREDDIT_URL = "@Launcher_SUBREDDIT_URL@";
} }
QString Config::printableVersionString() const QString Config::printableVersionString() const

View File

@ -1121,7 +1121,7 @@ Fluffy and functional!
- GH-1275: Server resource pack folder is created on launch. - GH-1275: Server resource pack folder is created on launch.
- This is a workaround for Minecraft bug MCL-3732. - This is a workaround for Minecraft bug MCL-3732.
- GH-1320: Improve compatibility with non-Oracle Java. - GH-1320: Improve compatibility with non-Oracle Java.
- GH-1355: MMC environment will no longer leak into Minecraft after MultiMC updates itself. - GH-1355: LAUNCHER environment will no longer leak into Minecraft after MultiMC updates itself.
- Minecraft log: - Minecraft log:
- Java exception detection in Minecraft logs has been improved. - Java exception detection in Minecraft logs has been improved.
@ -1166,7 +1166,7 @@ Fluffy and functional!
- GH-1069, GH-1100: `LD_LIBRARY_PATH` and `LD_PRELOAD` environment variables supplied to MultiMC now don't affect MultiMC but affect the launched game. - GH-1069, GH-1100: `LD_LIBRARY_PATH` and `LD_PRELOAD` environment variables supplied to MultiMC now don't affect MultiMC but affect the launched game.
This means you can use something like the Steam overlay in MultiMC instances on Linux. This means you can use something like the Steam overlay in MultiMC instances on Linux.
If you need to use these variables for MultiMC itself, you can use `MMC_LIBRARY_PATH` and `MMC_PRELOAD` instead. If you need to use these variables for MultiMC itself, you can use `LAUNCHER_LIBRARY_PATH` and `LAUNCHER_PRELOAD` instead.
- GH-1389: External processes (like folder views, editors, etc.) are now started in a way that prevents the MultiMC environment to be reused by them. - GH-1389: External processes (like folder views, editors, etc.) are now started in a way that prevents the MultiMC environment to be reused by them.
- GH-1355: If `LD_LIBRARY_PATH` contains any of MultiMC's internal folders, this will not propagate to started processes. - GH-1355: If `LD_LIBRARY_PATH` contains any of MultiMC's internal folders, this will not propagate to started processes.

View File

@ -78,7 +78,7 @@ public:
*/ */
void invalidate(); 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. /// be unique.
virtual QString id() const; virtual QString id() const;

View File

@ -88,13 +88,13 @@ set(CORE_SOURCES
add_unit_test(FileSystem add_unit_test(FileSystem
SOURCES FileSystem_test.cpp SOURCES FileSystem_test.cpp
LIBS MultiMC_logic LIBS Launcher_logic
DATA testdata DATA testdata
) )
add_unit_test(GZip add_unit_test(GZip
SOURCES GZip_test.cpp SOURCES GZip_test.cpp
LIBS MultiMC_logic LIBS Launcher_logic
) )
set(PATHMATCHER_SOURCES set(PATHMATCHER_SOURCES
@ -158,13 +158,13 @@ set(UPDATE_SOURCES
add_unit_test(UpdateChecker add_unit_test(UpdateChecker
SOURCES updater/UpdateChecker_test.cpp SOURCES updater/UpdateChecker_test.cpp
LIBS MultiMC_logic LIBS Launcher_logic
DATA updater/testdata DATA updater/testdata
) )
add_unit_test(DownloadTask add_unit_test(DownloadTask
SOURCES updater/DownloadTask_test.cpp SOURCES updater/DownloadTask_test.cpp
LIBS MultiMC_logic LIBS Launcher_logic
DATA updater/testdata DATA updater/testdata
) )
@ -337,14 +337,14 @@ set(MINECRAFT_SOURCES
add_unit_test(GradleSpecifier add_unit_test(GradleSpecifier
SOURCES minecraft/GradleSpecifier_test.cpp SOURCES minecraft/GradleSpecifier_test.cpp
LIBS MultiMC_logic LIBS Launcher_logic
) )
add_executable(PackageManifest add_executable(PackageManifest
mojang/PackageManifest_test.cpp mojang/PackageManifest_test.cpp
) )
target_link_libraries(PackageManifest target_link_libraries(PackageManifest
MultiMC_logic Launcher_logic
Qt5::Test Qt5::Test
) )
target_include_directories(PackageManifest target_include_directories(PackageManifest
@ -358,25 +358,25 @@ add_test(
add_unit_test(MojangVersionFormat add_unit_test(MojangVersionFormat
SOURCES minecraft/MojangVersionFormat_test.cpp SOURCES minecraft/MojangVersionFormat_test.cpp
LIBS MultiMC_logic LIBS Launcher_logic
DATA minecraft/testdata DATA minecraft/testdata
) )
add_unit_test(Library add_unit_test(Library
SOURCES minecraft/Library_test.cpp SOURCES minecraft/Library_test.cpp
LIBS MultiMC_logic LIBS Launcher_logic
) )
# FIXME: shares data with FileSystem test # FIXME: shares data with FileSystem test
add_unit_test(ModFolderModel add_unit_test(ModFolderModel
SOURCES minecraft/mod/ModFolderModel_test.cpp SOURCES minecraft/mod/ModFolderModel_test.cpp
DATA testdata DATA testdata
LIBS MultiMC_logic LIBS Launcher_logic
) )
add_unit_test(ParseUtils add_unit_test(ParseUtils
SOURCES minecraft/ParseUtils_test.cpp SOURCES minecraft/ParseUtils_test.cpp
LIBS MultiMC_logic LIBS Launcher_logic
) )
# the screenshots feature # the screenshots feature
@ -414,7 +414,7 @@ set(SETTINGS_SOURCES
add_unit_test(INIFile add_unit_test(INIFile
SOURCES settings/INIFile_test.cpp SOURCES settings/INIFile_test.cpp
LIBS MultiMC_logic LIBS Launcher_logic
) )
set(JAVA_SOURCES set(JAVA_SOURCES
@ -437,7 +437,7 @@ set(JAVA_SOURCES
add_unit_test(JavaVersion add_unit_test(JavaVersion
SOURCES java/JavaVersion_test.cpp SOURCES java/JavaVersion_test.cpp
LIBS MultiMC_logic LIBS Launcher_logic
) )
set(TRANSLATIONS_SOURCES set(TRANSLATIONS_SOURCES
@ -523,7 +523,7 @@ set(ATLAUNCHER_SOURCES
add_unit_test(Index add_unit_test(Index
SOURCES meta/Index_test.cpp SOURCES meta/Index_test.cpp
LIBS MultiMC_logic LIBS Launcher_logic
) )
################################ COMPILE ################################ ################################ COMPILE ################################
@ -557,8 +557,8 @@ set(LOGIC_SOURCES
SET(MULTIMC_SOURCES SET(MULTIMC_SOURCES
# Application base # Application base
MultiMC.h Launcher.h
MultiMC.cpp Launcher.cpp
UpdateController.cpp UpdateController.cpp
UpdateController.h UpdateController.h
@ -678,8 +678,8 @@ SET(MULTIMC_SOURCES
pages/global/LanguagePage.h pages/global/LanguagePage.h
pages/global/MinecraftPage.cpp pages/global/MinecraftPage.cpp
pages/global/MinecraftPage.h pages/global/MinecraftPage.h
pages/global/MultiMCPage.cpp pages/global/LauncherPage.cpp
pages/global/MultiMCPage.h pages/global/LauncherPage.h
pages/global/ProxyPage.cpp pages/global/ProxyPage.cpp
pages/global/ProxyPage.h pages/global/ProxyPage.h
pages/global/PasteEEPage.cpp pages/global/PasteEEPage.cpp
@ -831,7 +831,7 @@ SET(MULTIMC_UIS
pages/global/ExternalToolsPage.ui pages/global/ExternalToolsPage.ui
pages/global/JavaPage.ui pages/global/JavaPage.ui
pages/global/MinecraftPage.ui pages/global/MinecraftPage.ui
pages/global/MultiMCPage.ui pages/global/LauncherPage.ui
pages/global/ProxyPage.ui pages/global/ProxyPage.ui
pages/global/PasteEEPage.ui pages/global/PasteEEPage.ui
@ -891,11 +891,11 @@ qt5_wrap_ui(MULTIMC_UI ${MULTIMC_UIS})
qt5_add_resources(MULTIMC_RESOURCES ${MULTIMC_QRCS}) qt5_add_resources(MULTIMC_RESOURCES ${MULTIMC_QRCS})
# Add executable # Add executable
add_library(MultiMC_logic STATIC ${LOGIC_SOURCES} ${MULTIMC_SOURCES} ${MULTIMC_UI} ${MULTIMC_RESOURCES}) add_library(Launcher_logic STATIC ${LOGIC_SOURCES} ${MULTIMC_SOURCES} ${MULTIMC_UI} ${MULTIMC_RESOURCES})
target_link_libraries(MultiMC_logic target_link_libraries(Launcher_logic
systeminfo systeminfo
MultiMC_quazip Launcher_quazip
MultiMC_classparser Launcher_classparser
${NBT_NAME} ${NBT_NAME}
${ZLIB_LIBRARIES} ${ZLIB_LIBRARIES}
optional-bare optional-bare
@ -903,46 +903,46 @@ target_link_libraries(MultiMC_logic
BuildConfig BuildConfig
Katabasis Katabasis
) )
target_link_libraries(MultiMC_logic target_link_libraries(Launcher_logic
Qt5::Core Qt5::Core
Qt5::Xml Qt5::Xml
Qt5::Network Qt5::Network
Qt5::Concurrent Qt5::Concurrent
Qt5::Gui Qt5::Gui
) )
target_link_libraries(MultiMC_logic target_link_libraries(Launcher_logic
MultiMC_iconfix Launcher_iconfix
${QUAZIP_LIBRARIES} ${QUAZIP_LIBRARIES}
hoedown hoedown
MultiMC_rainbow Launcher_rainbow
LocalPeer LocalPeer
ganalytics ganalytics
) )
add_executable(MultiMC MACOSX_BUNDLE WIN32 main.cpp ${MULTIMC_RCS}) target_link_libraries(Launcher_logic secrets)
target_link_libraries(MultiMC MultiMC_logic)
if(DEFINED MultiMC_APP_BINARY_NAME) add_executable(${Launcher_Name} MACOSX_BUNDLE WIN32 main.cpp ${MULTIMC_RCS})
set_target_properties(MultiMC PROPERTIES OUTPUT_NAME "${MultiMC_APP_BINARY_NAME}") 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() endif()
if(DEFINED MultiMC_BINARY_RPATH) if(DEFINED Launcher_BINARY_RPATH)
SET_TARGET_PROPERTIES(MultiMC PROPERTIES INSTALL_RPATH "${MultiMC_BINARY_RPATH}") SET_TARGET_PROPERTIES(${Launcher_Name} PROPERTIES INSTALL_RPATH "${Launcher_BINARY_RPATH}")
endif() endif()
if(DEFINED MultiMC_APP_BINARY_DEFS) if(DEFINED Launcher_APP_BINARY_DEFS)
target_compile_definitions(MultiMC PRIVATE ${MultiMC_APP_BINARY_DEFS}) target_compile_definitions(${Launcher_Name} PRIVATE ${Launcher_APP_BINARY_DEFS})
target_compile_definitions(MultiMC_logic PRIVATE ${MultiMC_APP_BINARY_DEFS}) target_compile_definitions(Launcher_logic PRIVATE ${Launcher_APP_BINARY_DEFS})
endif() endif()
install(TARGETS MultiMC install(TARGETS ${Launcher_Name}
BUNDLE DESTINATION ${BUNDLE_DEST_DIR} COMPONENT Runtime BUNDLE DESTINATION ${BUNDLE_DEST_DIR} COMPONENT Runtime
LIBRARY DESTINATION ${LIBRARY_DEST_DIR} COMPONENT Runtime LIBRARY DESTINATION ${LIBRARY_DEST_DIR} COMPONENT Runtime
RUNTIME DESTINATION ${BINARY_DEST_DIR} COMPONENT Runtime RUNTIME DESTINATION ${BINARY_DEST_DIR} COMPONENT Runtime
) )
target_link_libraries(MultiMC_logic secrets) #### The bundle mess! ####
#### The MultiMC 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. # 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. # NOTE: it seems that this absolutely has to be here, and nowhere else.
if(INSTALL_BUNDLE STREQUAL "full") if(INSTALL_BUNDLE STREQUAL "full")

View File

@ -25,7 +25,7 @@ class Index;
class Env class Env
{ {
friend class MultiMC; friend class Launcher;
private: private:
struct Private; struct Private;
Env(); Env();

View File

@ -8,7 +8,7 @@
#include "net/PasteUpload.h" #include "net/PasteUpload.h"
#include "dialogs/CustomMessageBox.h" #include "dialogs/CustomMessageBox.h"
#include "MultiMC.h" #include "Launcher.h"
#include <settings/SettingsObject.h> #include <settings/SettingsObject.h>
#include <DesktopServices.h> #include <DesktopServices.h>
#include <BuildConfig.h> #include <BuildConfig.h>
@ -16,7 +16,7 @@
QString GuiUtil::uploadPaste(const QString &text, QWidget *parentWidget) QString GuiUtil::uploadPaste(const QString &text, QWidget *parentWidget)
{ {
ProgressDialog dialog(parentWidget); ProgressDialog dialog(parentWidget);
auto APIKeySetting = MMC->settings()->get("PasteEEAPIKey").toString(); auto APIKeySetting = LAUNCHER->settings()->get("PasteEEAPIKey").toString();
if(APIKeySetting == "multimc") if(APIKeySetting == "multimc")
{ {
APIKeySetting = BuildConfig.PASTE_EE_KEY; APIKeySetting = BuildConfig.PASTE_EE_KEY;

View File

@ -822,7 +822,7 @@ Task * InstanceList::wrapInstanceTask(InstanceTask * task)
QString InstanceList::getStagedInstancePath() QString InstanceList::getStagedInstancePath()
{ {
QString key = QUuid::createUuid().toString(); QString key = QUuid::createUuid().toString();
QString relPath = FS::PathCombine("_MMC_TEMP/" , key); QString relPath = FS::PathCombine("_LAUNCHER_TEMP/" , key);
QDir rootPath(m_instDir); QDir rootPath(m_instDir);
auto path = FS::PathCombine(m_instDir, relPath); auto path = FS::PathCombine(m_instDir, relPath);
if(!rootPath.mkpath(relPath)) if(!rootPath.mkpath(relPath))

View File

@ -1,5 +1,5 @@
#include "InstanceProxyModel.h" #include "InstanceProxyModel.h"
#include "MultiMC.h" #include "Launcher.h"
#include <BaseInstance.h> #include <BaseInstance.h>
#include <icons/IconList.h> #include <icons/IconList.h>
@ -12,7 +12,7 @@ QVariant InstanceProxyModel::data(const QModelIndex & index, int role) const
QVariant data = QSortFilterProxyModel::data(index, role); QVariant data = QSortFilterProxyModel::data(index, role);
if(role == Qt::DecorationRole) if(role == Qt::DecorationRole)
{ {
return QVariant(MMC->icons()->getIcon(data.toString())); return QVariant(LAUNCHER->icons()->getIcon(data.toString()));
} }
return data; return data;
} }
@ -22,7 +22,7 @@ bool InstanceProxyModel::subSortLessThan(const QModelIndex &left,
{ {
BaseInstance *pdataLeft = static_cast<BaseInstance *>(left.internalPointer()); BaseInstance *pdataLeft = static_cast<BaseInstance *>(left.internalPointer());
BaseInstance *pdataRight = static_cast<BaseInstance *>(right.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") if (sortMode == "LastLaunch")
{ {
return pdataLeft->lastLaunch() > pdataRight->lastLaunch(); return pdataLeft->lastLaunch() > pdataRight->lastLaunch();

View File

@ -14,7 +14,7 @@
*/ */
#include "InstanceWindow.h" #include "InstanceWindow.h"
#include "MultiMC.h" #include "Launcher.h"
#include <QScrollBar> #include <QScrollBar>
#include <QMessageBox> #include <QMessageBox>
@ -35,7 +35,7 @@ InstanceWindow::InstanceWindow(InstancePtr instance, QWidget *parent)
{ {
setAttribute(Qt::WA_DeleteOnClose); 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(); QString windowTitle = tr("Console window for ") + m_instance->name();
// Set window properties // Set window properties
@ -87,9 +87,9 @@ InstanceWindow::InstanceWindow(InstancePtr instance, QWidget *parent)
// restore window state // restore window state
{ {
auto base64State = MMC->settings()->get("ConsoleWindowState").toByteArray(); auto base64State = LAUNCHER->settings()->get("ConsoleWindowState").toByteArray();
restoreState(QByteArray::fromBase64(base64State)); restoreState(QByteArray::fromBase64(base64State));
auto base64Geometry = MMC->settings()->get("ConsoleWindowGeometry").toByteArray(); auto base64Geometry = LAUNCHER->settings()->get("ConsoleWindowGeometry").toByteArray();
restoreGeometry(QByteArray::fromBase64(base64Geometry)); restoreGeometry(QByteArray::fromBase64(base64Geometry));
} }
@ -148,7 +148,7 @@ void InstanceWindow::updateLaunchButtons()
void InstanceWindow::on_btnLaunchMinecraftOffline_clicked() 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) void InstanceWindow::on_InstanceLaunchTask_changed(shared_qobject_ptr<LaunchTask> proc)
@ -183,8 +183,8 @@ void InstanceWindow::closeEvent(QCloseEvent *event)
return; return;
} }
MMC->settings()->set("ConsoleWindowState", saveState().toBase64()); LAUNCHER->settings()->set("ConsoleWindowState", saveState().toBase64());
MMC->settings()->set("ConsoleWindowGeometry", saveGeometry().toBase64()); LAUNCHER->settings()->set("ConsoleWindowGeometry", saveGeometry().toBase64());
emit isClosing(); emit isClosing();
event->accept(); event->accept();
} }
@ -198,11 +198,11 @@ void InstanceWindow::on_btnKillMinecraft_clicked()
{ {
if(m_instance->isRunning()) if(m_instance->isRunning())
{ {
MMC->kill(m_instance); LAUNCHER->kill(m_instance);
} }
else else
{ {
MMC->launch(m_instance, true, nullptr); LAUNCHER->launch(m_instance, true, nullptr);
} }
} }

View File

@ -1,7 +1,7 @@
#include "LaunchController.h" #include "LaunchController.h"
#include "MainWindow.h" #include "MainWindow.h"
#include <minecraft/auth/AccountList.h> #include <minecraft/auth/AccountList.h>
#include "MultiMC.h" #include "Launcher.h"
#include "dialogs/CustomMessageBox.h" #include "dialogs/CustomMessageBox.h"
#include "dialogs/ProfileSelectDialog.h" #include "dialogs/ProfileSelectDialog.h"
#include "dialogs/ProgressDialog.h" #include "dialogs/ProgressDialog.h"
@ -39,7 +39,7 @@ void LaunchController::login() {
JavaCommon::checkJVMArgs(m_instance->settings()->get("JvmArgs").toString(), m_parentWidget); JavaCommon::checkJVMArgs(m_instance->settings()->get("JvmArgs").toString(), m_parentWidget);
// Find an account to use. // Find an account to use.
std::shared_ptr<AccountList> accounts = MMC->accounts(); std::shared_ptr<AccountList> accounts = LAUNCHER->accounts();
if (accounts->count() <= 0) if (accounts->count() <= 0)
{ {
// Tell the user they need to log in at least one account in order to play. // Tell the user they need to log in at least one account in order to play.
@ -56,7 +56,7 @@ void LaunchController::login() {
if (reply == QMessageBox::Yes) if (reply == QMessageBox::Yes)
{ {
// Open the account manager. // 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(); auto showConsole = m_instance->settings()->get("ShowConsole").toBool();
if(!console && showConsole) 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::readyForLaunch, this, &LaunchController::readyForLaunch);
connect(m_launcher.get(), &LaunchTask::succeeded, this, &LaunchController::onSucceeded); connect(m_launcher.get(), &LaunchTask::succeeded, this, &LaunchController::onSucceeded);
@ -360,7 +360,7 @@ void LaunchController::onFailed(QString reason)
{ {
if(m_instance->settings()->get("ShowConsoleOnError").toBool()) if(m_instance->settings()->get("ShowConsoleOnError").toBool())
{ {
MMC->showInstanceWindow(m_instance, "console"); LAUNCHER->showInstanceWindow(m_instance, "console");
} }
emitFailed(reason); emitFailed(reason);
} }

View File

@ -1,4 +1,4 @@
#include "MultiMC.h" #include "Launcher.h"
#include "BuildConfig.h" #include "BuildConfig.h"
#include "MainWindow.h" #include "MainWindow.h"
#include "InstanceWindow.h" #include "InstanceWindow.h"
@ -7,7 +7,7 @@
#include <QAccessible> #include <QAccessible>
#include "pages/BasePageProvider.h" #include "pages/BasePageProvider.h"
#include "pages/global/MultiMCPage.h" #include "pages/global/LauncherPage.h"
#include "pages/global/MinecraftPage.h" #include "pages/global/MinecraftPage.h"
#include "pages/global/JavaPage.h" #include "pages/global/JavaPage.h"
#include "pages/global/LanguagePage.h" #include "pages/global/LanguagePage.h"
@ -97,7 +97,7 @@ void appDebugOutput(QtMsgType type, const QMessageLogContext &context, const QSt
const char *levels = "DWCFIS"; const char *levels = "DWCFIS";
const QString format("%1 %2 %3\n"); const QString format("%1 %2 %3\n");
qint64 msecstotal = MMC->timeSinceStart(); qint64 msecstotal = LAUNCHER->timeSinceStart();
qint64 seconds = msecstotal / 1000; qint64 seconds = msecstotal / 1000;
qint64 msecs = msecstotal % 1000; qint64 msecs = msecstotal % 1000;
QString foo; 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); QString out = format.arg(buf).arg(levels[type]).arg(msg);
MMC->logFile->write(out.toUtf8()); LAUNCHER->logFile->write(out.toUtf8());
MMC->logFile->flush(); LAUNCHER->logFile->flush();
QTextStream(stderr) << out.toLocal8Bit(); QTextStream(stderr) << out.toLocal8Bit();
fflush(stderr); 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 #if defined Q_OS_WIN32
// attach the parent console // attach the parent console
@ -257,7 +257,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
if(argc > 0) 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 MultiMC's command line parameters."
<< std::endl; << std::endl;
m_status = MultiMC::Failed; m_status = Launcher::Failed;
return; return;
} }
@ -265,7 +265,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
if (args["help"].toBool()) if (args["help"].toBool())
{ {
std::cout << qPrintable(parser.compileHelp(arguments()[0])); std::cout << qPrintable(parser.compileHelp(arguments()[0]));
m_status = MultiMC::Succeeded; m_status = Launcher::Succeeded;
return; return;
} }
@ -274,7 +274,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
{ {
std::cout << "Version " << BuildConfig.printableVersionString().toStdString() << std::endl; std::cout << "Version " << BuildConfig.printableVersionString().toStdString() << std::endl;
std::cout << "Git " << BuildConfig.GIT_COMMIT.toStdString() << std::endl; std::cout << "Git " << BuildConfig.GIT_COMMIT.toStdString() << std::endl;
m_status = MultiMC::Succeeded; m_status = Launcher::Succeeded;
return; return;
} }
} }
@ -348,7 +348,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
if(m_instanceIdToLaunch.isEmpty() && !m_serverToJoin.isEmpty()) if(m_instanceIdToLaunch.isEmpty() && !m_serverToJoin.isEmpty())
{ {
std::cerr << "--server can only be used in combination with --launch!" << std::endl; std::cerr << "--server can only be used in combination with --launch!" << std::endl;
m_status = MultiMC::Failed; m_status = Launcher::Failed;
return; return;
} }
@ -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. // 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); 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()) if(m_peerInstance->isClient())
{ {
int timeout = 2000; int timeout = 2000;
@ -444,7 +444,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
m_peerInstance->sendMessage("launch " + m_instanceIdToLaunch, timeout); m_peerInstance->sendMessage("launch " + m_instanceIdToLaunch, timeout);
} }
} }
m_status = MultiMC::Succeeded; m_status = Launcher::Succeeded;
return; return;
} }
} }
@ -691,7 +691,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
// Init page provider // Init page provider
{ {
m_globalSettingsProvider = std::make_shared<GenericPageProvider>(tr("Settings")); m_globalSettingsProvider = std::make_shared<GenericPageProvider>(tr("Settings"));
m_globalSettingsProvider->addPage<MultiMCPage>(); m_globalSettingsProvider->addPage<LauncherPage>();
m_globalSettingsProvider->addPage<MinecraftPage>(); m_globalSettingsProvider->addPage<MinecraftPage>();
m_globalSettingsProvider->addPage<JavaPage>(); m_globalSettingsProvider->addPage<JavaPage>();
m_globalSettingsProvider->addPage<LanguagePage>(); m_globalSettingsProvider->addPage<LanguagePage>();
@ -729,7 +729,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
// Instance icons // Instance icons
{ {
auto setting = MMC->settings()->getSetting("IconsDir"); auto setting = LAUNCHER->settings()->getSetting("IconsDir");
QStringList instFolders = QStringList instFolders =
{ {
":/icons/multimc/32x32/instances/", ":/icons/multimc/32x32/instances/",
@ -830,7 +830,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
m_mcedit.reset(new MCEditTool(m_settings)); m_mcedit.reset(new MCEditTool(m_settings));
} }
connect(this, &MultiMC::aboutToQuit, [this](){ connect(this, &Launcher::aboutToQuit, [this](){
if(m_instances) if(m_instances)
{ {
// save any remaining instance state // save any remaining instance state
@ -860,7 +860,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
} }
auto analyticsSetting = m_settings->getSetting("Analytics"); 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(); QString clientID = m_settings->get("AnalyticsClientID").toString();
if(clientID.isEmpty()) if(clientID.isEmpty())
{ {
@ -896,7 +896,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
performMainStartupAction(); performMainStartupAction();
} }
bool MultiMC::createSetupWizard() bool Launcher::createSetupWizard()
{ {
bool javaRequired = [&]() bool javaRequired = [&]()
{ {
@ -954,22 +954,22 @@ bool MultiMC::createSetupWizard()
{ {
m_setupWizard->addPage(new AnalyticsWizardPage(m_setupWizard)); 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(); m_setupWizard->show();
return true; return true;
} }
return false; return false;
} }
void MultiMC::setupWizardFinished(int status) void Launcher::setupWizardFinished(int status)
{ {
qDebug() << "Wizard result =" << status; qDebug() << "Wizard result =" << status;
performMainStartupAction(); performMainStartupAction();
} }
void MultiMC::performMainStartupAction() void Launcher::performMainStartupAction()
{ {
m_status = MultiMC::Initialized; m_status = Launcher::Initialized;
if(!m_instanceIdToLaunch.isEmpty()) if(!m_instanceIdToLaunch.isEmpty())
{ {
auto inst = instances()->getInstanceById(m_instanceIdToLaunch); 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); auto dialog = CustomMessageBox::selectable(nullptr, title, content, QMessageBox::Critical);
dialog->exec(); dialog->exec();
} }
MultiMC::~MultiMC() Launcher::~Launcher()
{ {
// kill the other globals. // kill the other globals.
Env::dispose(); Env::dispose();
@ -1031,7 +1031,7 @@ MultiMC::~MultiMC()
#endif #endif
} }
void MultiMC::messageReceived(const QString& message) void Launcher::messageReceived(const QString& message)
{ {
if(status() != Initialized) 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) if(!m_analytics)
return; return;
@ -1116,12 +1116,12 @@ void MultiMC::analyticsSettingChanged(const Setting&, QVariant value)
m_analytics->enable(enabled); m_analytics->enable(enabled);
} }
std::shared_ptr<TranslationsModel> MultiMC::translations() std::shared_ptr<TranslationsModel> Launcher::translations()
{ {
return m_translations; return m_translations;
} }
std::shared_ptr<JavaInstallList> MultiMC::javalist() std::shared_ptr<JavaInstallList> Launcher::javalist()
{ {
if (!m_javalist) if (!m_javalist)
{ {
@ -1130,7 +1130,7 @@ std::shared_ptr<JavaInstallList> MultiMC::javalist()
return m_javalist; return m_javalist;
} }
std::vector<ITheme *> MultiMC::getValidApplicationThemes() std::vector<ITheme *> Launcher::getValidApplicationThemes()
{ {
std::vector<ITheme *> ret; std::vector<ITheme *> ret;
auto iter = m_themes.cbegin(); auto iter = m_themes.cbegin();
@ -1142,7 +1142,7 @@ std::vector<ITheme *> MultiMC::getValidApplicationThemes()
return ret; return ret;
} }
void MultiMC::setApplicationTheme(const QString& name, bool initial) void Launcher::setApplicationTheme(const QString& name, bool initial)
{ {
auto systemPalette = qApp->palette(); auto systemPalette = qApp->palette();
auto themeIter = m_themes.find(name); auto themeIter = m_themes.find(name);
@ -1157,17 +1157,17 @@ void MultiMC::setApplicationTheme(const QString& name, bool initial)
} }
} }
void MultiMC::setIconTheme(const QString& name) void Launcher::setIconTheme(const QString& name)
{ {
XdgIcon::setThemeName(name); XdgIcon::setThemeName(name);
} }
QIcon MultiMC::getThemedIcon(const QString& name) QIcon Launcher::getThemedIcon(const QString& name)
{ {
return XdgIcon::fromTheme(name); return XdgIcon::fromTheme(name);
} }
bool MultiMC::openJsonEditor(const QString &filename) bool Launcher::openJsonEditor(const QString &filename)
{ {
const QString file = QDir::current().absoluteFilePath(filename); const QString file = QDir::current().absoluteFilePath(filename);
if (m_settings->get("JsonEditor").toString().isEmpty()) if (m_settings->get("JsonEditor").toString().isEmpty())
@ -1181,7 +1181,7 @@ bool MultiMC::openJsonEditor(const QString &filename)
} }
} }
bool MultiMC::launch( bool Launcher::launch(
InstancePtr instance, InstancePtr instance,
bool online, bool online,
BaseProfilerFactory *profiler, BaseProfilerFactory *profiler,
@ -1216,8 +1216,8 @@ bool MultiMC::launch(
{ {
controller->setParentWidget(m_mainWindow); controller->setParentWidget(m_mainWindow);
} }
connect(controller.get(), &LaunchController::succeeded, this, &MultiMC::controllerSucceeded); connect(controller.get(), &LaunchController::succeeded, this, &Launcher::controllerSucceeded);
connect(controller.get(), &LaunchController::failed, this, &MultiMC::controllerFailed); connect(controller.get(), &LaunchController::failed, this, &Launcher::controllerFailed);
addRunningInstance(); addRunningInstance();
controller->start(); controller->start();
return true; return true;
@ -1235,7 +1235,7 @@ bool MultiMC::launch(
return false; return false;
} }
bool MultiMC::kill(InstancePtr instance) bool Launcher::kill(InstancePtr instance)
{ {
if (!instance->isRunning()) if (!instance->isRunning())
{ {
@ -1252,7 +1252,7 @@ bool MultiMC::kill(InstancePtr instance)
return true; return true;
} }
void MultiMC::addRunningInstance() void Launcher::addRunningInstance()
{ {
m_runningInstances ++; m_runningInstances ++;
if(m_runningInstances == 1) if(m_runningInstances == 1)
@ -1261,7 +1261,7 @@ void MultiMC::addRunningInstance()
} }
} }
void MultiMC::subRunningInstance() void Launcher::subRunningInstance()
{ {
if(m_runningInstances == 0) if(m_runningInstances == 0)
{ {
@ -1275,23 +1275,23 @@ void MultiMC::subRunningInstance()
} }
} }
bool MultiMC::shouldExitNow() const bool Launcher::shouldExitNow() const
{ {
return m_runningInstances == 0 && m_openWindows == 0; return m_runningInstances == 0 && m_openWindows == 0;
} }
bool MultiMC::updatesAreAllowed() bool Launcher::updatesAreAllowed()
{ {
return m_runningInstances == 0; return m_runningInstances == 0;
} }
void MultiMC::updateIsRunning(bool running) void Launcher::updateIsRunning(bool running)
{ {
m_updateRunning = running; m_updateRunning = running;
} }
void MultiMC::controllerSucceeded() void Launcher::controllerSucceeded()
{ {
auto controller = qobject_cast<LaunchController *>(QObject::sender()); auto controller = qobject_cast<LaunchController *>(QObject::sender());
if(!controller) if(!controller)
@ -1318,7 +1318,7 @@ void MultiMC::controllerSucceeded()
} }
} }
void MultiMC::controllerFailed(const QString& error) void Launcher::controllerFailed(const QString& error)
{ {
Q_UNUSED(error); Q_UNUSED(error);
auto controller = qobject_cast<LaunchController *>(QObject::sender()); auto controller = qobject_cast<LaunchController *>(QObject::sender());
@ -1339,21 +1339,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) { if(!m_globalSettingsProvider) {
return; return;
} }
emit globalSettingsAboutToOpen(); emit globalSettingsAboutToOpen();
{ {
SettingsObject::Lock lock(MMC->settings()); SettingsObject::Lock lock(LAUNCHER->settings());
PageDialog dlg(m_globalSettingsProvider.get(), open_page, parent); PageDialog dlg(m_globalSettingsProvider.get(), open_page, parent);
dlg.exec(); dlg.exec();
} }
emit globalSettingsClosed(); emit globalSettingsClosed();
} }
MainWindow* MultiMC::showMainWindow(bool minimized) MainWindow* Launcher::showMainWindow(bool minimized)
{ {
if(m_mainWindow) if(m_mainWindow)
{ {
@ -1364,8 +1364,8 @@ MainWindow* MultiMC::showMainWindow(bool minimized)
else else
{ {
m_mainWindow = new MainWindow(); m_mainWindow = new MainWindow();
m_mainWindow->restoreState(QByteArray::fromBase64(MMC->settings()->get("MainWindowState").toByteArray())); m_mainWindow->restoreState(QByteArray::fromBase64(LAUNCHER->settings()->get("MainWindowState").toByteArray()));
m_mainWindow->restoreGeometry(QByteArray::fromBase64(MMC->settings()->get("MainWindowGeometry").toByteArray())); m_mainWindow->restoreGeometry(QByteArray::fromBase64(LAUNCHER->settings()->get("MainWindowGeometry").toByteArray()));
if(minimized) if(minimized)
{ {
m_mainWindow->showMinimized(); m_mainWindow->showMinimized();
@ -1376,8 +1376,8 @@ MainWindow* MultiMC::showMainWindow(bool minimized)
} }
m_mainWindow->checkInstancePathForProblems(); m_mainWindow->checkInstancePathForProblems();
connect(this, &MultiMC::updateAllowedChanged, m_mainWindow, &MainWindow::updatesAllowedChanged); connect(this, &Launcher::updateAllowedChanged, m_mainWindow, &MainWindow::updatesAllowedChanged);
connect(m_mainWindow, &MainWindow::isClosing, this, &MultiMC::on_windowClose); connect(m_mainWindow, &MainWindow::isClosing, this, &Launcher::on_windowClose);
m_openWindows++; m_openWindows++;
} }
// FIXME: move this somewhere else... // FIXME: move this somewhere else...
@ -1437,7 +1437,7 @@ MainWindow* MultiMC::showMainWindow(bool minimized)
return m_mainWindow; return m_mainWindow;
} }
InstanceWindow *MultiMC::showInstanceWindow(InstancePtr instance, QString page) InstanceWindow *Launcher::showInstanceWindow(InstancePtr instance, QString page)
{ {
if(!instance) if(!instance)
return nullptr; return nullptr;
@ -1454,7 +1454,7 @@ InstanceWindow *MultiMC::showInstanceWindow(InstancePtr instance, QString page)
{ {
window = new InstanceWindow(instance); window = new InstanceWindow(instance);
m_openWindows ++; m_openWindows ++;
connect(window, &InstanceWindow::isClosing, this, &MultiMC::on_windowClose); connect(window, &InstanceWindow::isClosing, this, &Launcher::on_windowClose);
} }
if(!page.isEmpty()) if(!page.isEmpty())
{ {
@ -1467,7 +1467,7 @@ InstanceWindow *MultiMC::showInstanceWindow(InstancePtr instance, QString page)
return window; return window;
} }
void MultiMC::on_windowClose() void Launcher::on_windowClose()
{ {
m_openWindows--; m_openWindows--;
auto instWindow = qobject_cast<InstanceWindow *>(QObject::sender()); auto instWindow = qobject_cast<InstanceWindow *>(QObject::sender());

View File

@ -36,12 +36,12 @@ class ITheme;
class MCEditTool; class MCEditTool;
class GAnalytics; class GAnalytics;
#if defined(MMC) #if defined(LAUNCHER)
#undef MMC #undef LAUNCHER
#endif #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 // friends for the purpose of limiting access to deprecated stuff
Q_OBJECT Q_OBJECT
@ -55,8 +55,8 @@ public:
}; };
public: public:
MultiMC(int &argc, char **argv); Launcher(int &argc, char **argv);
virtual ~MultiMC(); virtual ~Launcher();
GAnalytics *analytics() const GAnalytics *analytics() const
{ {
@ -198,7 +198,7 @@ private:
QMap<QString, std::shared_ptr<BaseProfilerFactory>> m_profilers; QMap<QString, std::shared_ptr<BaseProfilerFactory>> m_profilers;
QString m_rootPath; QString m_rootPath;
Status m_status = MultiMC::StartingUp; Status m_status = Launcher::StartingUp;
#if defined Q_OS_WIN32 #if defined Q_OS_WIN32
// used on Windows to attach the standard IO streams // used on Windows to attach the standard IO streams

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/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 { function printerror {
printf "$1" printf "$1"
@ -14,37 +14,38 @@ if [[ $EUID -eq 0 ]]; then
fi fi
MMC_DIR="$(dirname "$(readlink -f "$0")")" LAUNCHER_NAME=@Launcher_Name@
echo "MultiMC Dir: ${MMC_DIR}" 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 # 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_LIBRARY_PATH=${GAME_LIBRARY_PATH-${LD_LIBRARY_PATH}}
export GAME_PRELOAD=${GAME_PRELOAD-${LD_PRELOAD}} export GAME_PRELOAD=${GAME_PRELOAD-${LD_PRELOAD}}
export LD_LIBRARY_PATH="${MMC_DIR}/bin":$MMC_LIBRARY_PATH export LD_LIBRARY_PATH="${LAUNCHER_DIR}/bin":$LAUNCHER_LIBRARY_PATH
export LD_PRELOAD=$MMC_PRELOAD export LD_PRELOAD=$LAUNCHER_PRELOAD
export QT_PLUGIN_PATH="${MMC_DIR}/plugins" export QT_PLUGIN_PATH="${LAUNCHER_DIR}/plugins"
export QT_FONTPATH="${MMC_DIR}/fonts" export QT_FONTPATH="${LAUNCHER_DIR}/fonts"
# Detect missing dependencies... # 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 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." echo "No missing dependencies found."
# Just to be sure... # Just to be sure...
chmod +x "${MMC_DIR}/bin/MultiMC" chmod +x "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}"
# Run MultiMC # Run the launcher
exec -a "${MMC_DIR}/MultiMC" "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" "$@" exec -a "${LAUNCHER_DIR}/${LAUNCHER_NAME}" "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}" -d "${LAUNCHER_DIR}" "$@"
# Run MultiMC in valgrind # Run the launcher in valgrind
# valgrind --log-file="valgrind.log" --leak-check=full --track-origins=yes "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" "$@" # 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 # Run the launcher with callgrind, delay instrumentation
# valgrind --log-file="valgrind.log" --tool=callgrind --instr-atstart=no "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" "$@" # 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 # use callgrind_control -i on/off to profile actions
# Exit with MultiMC's exit code. # Exit with launcher's exit code.
# exit $? # exit $?
else else
# apt # apt
@ -85,7 +86,7 @@ else
INSTALL_CMD="sudo emerge $COMMAND_LIBS" INSTALL_CMD="sudo emerge $COMMAND_LIBS"
fi 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" MESSAGE="$MESSAGE\n\nHint (please apply common sense): $INSTALL_CMD\n"
printerror "$MESSAGE" printerror "$MESSAGE"

View File

@ -16,7 +16,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
#include "MultiMC.h" #include "Launcher.h"
#include "BuildConfig.h" #include "BuildConfig.h"
#include "MainWindow.h" #include "MainWindow.h"
@ -267,7 +267,7 @@ public:
actionAddInstance = TranslatedAction(MainWindow); actionAddInstance = TranslatedAction(MainWindow);
actionAddInstance->setObjectName(QStringLiteral("actionAddInstance")); actionAddInstance->setObjectName(QStringLiteral("actionAddInstance"));
actionAddInstance->setIcon(MMC->getThemedIcon("new")); actionAddInstance->setIcon(LAUNCHER->getThemedIcon("new"));
actionAddInstance.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Add Instance")); actionAddInstance.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Add Instance"));
actionAddInstance.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Add a new instance.")); actionAddInstance.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Add a new instance."));
all_actions.append(&actionAddInstance); all_actions.append(&actionAddInstance);
@ -280,7 +280,7 @@ public:
actionViewInstanceFolder = TranslatedAction(MainWindow); actionViewInstanceFolder = TranslatedAction(MainWindow);
actionViewInstanceFolder->setObjectName(QStringLiteral("actionViewInstanceFolder")); actionViewInstanceFolder->setObjectName(QStringLiteral("actionViewInstanceFolder"));
actionViewInstanceFolder->setIcon(MMC->getThemedIcon("viewfolder")); actionViewInstanceFolder->setIcon(LAUNCHER->getThemedIcon("viewfolder"));
actionViewInstanceFolder.setTextId(QT_TRANSLATE_NOOP("MainWindow", "View Instance Folder")); actionViewInstanceFolder.setTextId(QT_TRANSLATE_NOOP("MainWindow", "View Instance Folder"));
actionViewInstanceFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the instance folder in a file browser.")); actionViewInstanceFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the instance folder in a file browser."));
all_actions.append(&actionViewInstanceFolder); all_actions.append(&actionViewInstanceFolder);
@ -288,7 +288,7 @@ public:
actionViewCentralModsFolder = TranslatedAction(MainWindow); actionViewCentralModsFolder = TranslatedAction(MainWindow);
actionViewCentralModsFolder->setObjectName(QStringLiteral("actionViewCentralModsFolder")); 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.setTextId(QT_TRANSLATE_NOOP("MainWindow", "View Central Mods Folder"));
actionViewCentralModsFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the central mods folder in a file browser.")); actionViewCentralModsFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the central mods folder in a file browser."));
all_actions.append(&actionViewCentralModsFolder); all_actions.append(&actionViewCentralModsFolder);
@ -300,7 +300,7 @@ public:
foldersMenuButton->setMenu(foldersMenu); foldersMenuButton->setMenu(foldersMenu);
foldersMenuButton->setPopupMode(QToolButton::InstantPopup); foldersMenuButton->setPopupMode(QToolButton::InstantPopup);
foldersMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); foldersMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
foldersMenuButton->setIcon(MMC->getThemedIcon("viewfolder")); foldersMenuButton->setIcon(LAUNCHER->getThemedIcon("viewfolder"));
foldersMenuButton->setFocusPolicy(Qt::NoFocus); foldersMenuButton->setFocusPolicy(Qt::NoFocus);
all_toolbuttons.append(&foldersMenuButton); all_toolbuttons.append(&foldersMenuButton);
QWidgetAction* foldersButtonAction = new QWidgetAction(MainWindow); QWidgetAction* foldersButtonAction = new QWidgetAction(MainWindow);
@ -309,7 +309,7 @@ public:
actionSettings = TranslatedAction(MainWindow); actionSettings = TranslatedAction(MainWindow);
actionSettings->setObjectName(QStringLiteral("actionSettings")); actionSettings->setObjectName(QStringLiteral("actionSettings"));
actionSettings->setIcon(MMC->getThemedIcon("settings")); actionSettings->setIcon(LAUNCHER->getThemedIcon("settings"));
actionSettings->setMenuRole(QAction::PreferencesRole); actionSettings->setMenuRole(QAction::PreferencesRole);
actionSettings.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Settings")); actionSettings.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Settings"));
actionSettings.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Change settings.")); actionSettings.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Change settings."));
@ -322,7 +322,7 @@ public:
if (!BuildConfig.BUG_TRACKER_URL.isEmpty()) { if (!BuildConfig.BUG_TRACKER_URL.isEmpty()) {
actionReportBug = TranslatedAction(MainWindow); actionReportBug = TranslatedAction(MainWindow);
actionReportBug->setObjectName(QStringLiteral("actionReportBug")); actionReportBug->setObjectName(QStringLiteral("actionReportBug"));
actionReportBug->setIcon(MMC->getThemedIcon("bug")); actionReportBug->setIcon(LAUNCHER->getThemedIcon("bug"));
actionReportBug.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Report a 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 MultiMC."));
all_actions.append(&actionReportBug); all_actions.append(&actionReportBug);
@ -332,7 +332,7 @@ public:
if (!BuildConfig.DISCORD_URL.isEmpty()) { if (!BuildConfig.DISCORD_URL.isEmpty()) {
actionDISCORD = TranslatedAction(MainWindow); actionDISCORD = TranslatedAction(MainWindow);
actionDISCORD->setObjectName(QStringLiteral("actionDISCORD")); actionDISCORD->setObjectName(QStringLiteral("actionDISCORD"));
actionDISCORD->setIcon(MMC->getThemedIcon("discord")); actionDISCORD->setIcon(LAUNCHER->getThemedIcon("discord"));
actionDISCORD.setTextId(QT_TRANSLATE_NOOP("MainWindow", "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 MultiMC discord voice chat."));
all_actions.append(&actionDISCORD); all_actions.append(&actionDISCORD);
@ -342,7 +342,7 @@ public:
if (!BuildConfig.SUBREDDIT_URL.isEmpty()) { if (!BuildConfig.SUBREDDIT_URL.isEmpty()) {
actionREDDIT = TranslatedAction(MainWindow); actionREDDIT = TranslatedAction(MainWindow);
actionREDDIT->setObjectName(QStringLiteral("actionREDDIT")); actionREDDIT->setObjectName(QStringLiteral("actionREDDIT"));
actionREDDIT->setIcon(MMC->getThemedIcon("reddit-alien")); actionREDDIT->setIcon(LAUNCHER->getThemedIcon("reddit-alien"));
actionREDDIT.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Reddit")); actionREDDIT.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Reddit"));
actionREDDIT.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open MultiMC subreddit.")); actionREDDIT.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open MultiMC subreddit."));
all_actions.append(&actionREDDIT); all_actions.append(&actionREDDIT);
@ -351,7 +351,7 @@ public:
actionAbout = TranslatedAction(MainWindow); actionAbout = TranslatedAction(MainWindow);
actionAbout->setObjectName(QStringLiteral("actionAbout")); actionAbout->setObjectName(QStringLiteral("actionAbout"));
actionAbout->setIcon(MMC->getThemedIcon("about")); actionAbout->setIcon(LAUNCHER->getThemedIcon("about"));
actionAbout->setMenuRole(QAction::AboutRole); actionAbout->setMenuRole(QAction::AboutRole);
actionAbout.setTextId(QT_TRANSLATE_NOOP("MainWindow", "About MultiMC")); actionAbout.setTextId(QT_TRANSLATE_NOOP("MainWindow", "About MultiMC"));
actionAbout.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "View information about MultiMC.")); actionAbout.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "View information about MultiMC."));
@ -364,7 +364,7 @@ public:
helpMenuButton->setMenu(helpMenu); helpMenuButton->setMenu(helpMenu);
helpMenuButton->setPopupMode(QToolButton::InstantPopup); helpMenuButton->setPopupMode(QToolButton::InstantPopup);
helpMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); helpMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
helpMenuButton->setIcon(MMC->getThemedIcon("help")); helpMenuButton->setIcon(LAUNCHER->getThemedIcon("help"));
helpMenuButton->setFocusPolicy(Qt::NoFocus); helpMenuButton->setFocusPolicy(Qt::NoFocus);
all_toolbuttons.append(&helpMenuButton); all_toolbuttons.append(&helpMenuButton);
QWidgetAction* helpButtonAction = new QWidgetAction(MainWindow); QWidgetAction* helpButtonAction = new QWidgetAction(MainWindow);
@ -375,7 +375,7 @@ public:
{ {
actionCheckUpdate = TranslatedAction(MainWindow); actionCheckUpdate = TranslatedAction(MainWindow);
actionCheckUpdate->setObjectName(QStringLiteral("actionCheckUpdate")); actionCheckUpdate->setObjectName(QStringLiteral("actionCheckUpdate"));
actionCheckUpdate->setIcon(MMC->getThemedIcon("checkupdate")); actionCheckUpdate->setIcon(LAUNCHER->getThemedIcon("checkupdate"));
actionCheckUpdate.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Update")); 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 MultiMC."));
all_actions.append(&actionCheckUpdate); all_actions.append(&actionCheckUpdate);
@ -386,7 +386,7 @@ public:
actionPatreon = TranslatedAction(MainWindow); actionPatreon = TranslatedAction(MainWindow);
actionPatreon->setObjectName(QStringLiteral("actionPatreon")); actionPatreon->setObjectName(QStringLiteral("actionPatreon"));
actionPatreon->setIcon(MMC->getThemedIcon("patreon")); actionPatreon->setIcon(LAUNCHER->getThemedIcon("patreon"));
actionPatreon.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Support MultiMC")); actionPatreon.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Support MultiMC"));
actionPatreon.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the MultiMC Patreon page.")); actionPatreon.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the MultiMC Patreon page."));
all_actions.append(&actionPatreon); all_actions.append(&actionPatreon);
@ -395,7 +395,7 @@ public:
actionCAT = TranslatedAction(MainWindow); actionCAT = TranslatedAction(MainWindow);
actionCAT->setObjectName(QStringLiteral("actionCAT")); actionCAT->setObjectName(QStringLiteral("actionCAT"));
actionCAT->setCheckable(true); actionCAT->setCheckable(true);
actionCAT->setIcon(MMC->getThemedIcon("cat")); actionCAT->setIcon(LAUNCHER->getThemedIcon("cat"));
actionCAT.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Meow")); actionCAT.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Meow"));
actionCAT.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "It's a fluffy kitty :3")); actionCAT.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "It's a fluffy kitty :3"));
actionCAT->setPriority(QAction::LowPriority); actionCAT->setPriority(QAction::LowPriority);
@ -408,7 +408,7 @@ public:
actionManageAccounts.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Manage Accounts")); actionManageAccounts.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Manage Accounts"));
// FIXME: no tooltip! // FIXME: no tooltip!
actionManageAccounts->setCheckable(false); actionManageAccounts->setCheckable(false);
actionManageAccounts->setIcon(MMC->getThemedIcon("accounts")); actionManageAccounts->setIcon(LAUNCHER->getThemedIcon("accounts"));
all_actions.append(&actionManageAccounts); all_actions.append(&actionManageAccounts);
all_toolbars.append(&mainToolBar); all_toolbars.append(&mainToolBar);
@ -435,7 +435,7 @@ public:
actionMoreNews = TranslatedAction(MainWindow); actionMoreNews = TranslatedAction(MainWindow);
actionMoreNews->setObjectName(QStringLiteral("actionMoreNews")); actionMoreNews->setObjectName(QStringLiteral("actionMoreNews"));
actionMoreNews->setIcon(MMC->getThemedIcon("news")); actionMoreNews->setIcon(LAUNCHER->getThemedIcon("news"));
actionMoreNews.setTextId(QT_TRANSLATE_NOOP("MainWindow", "More 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 MultiMC development blog to read more news about MultiMC."));
all_actions.append(&actionMoreNews); all_actions.append(&actionMoreNews);
@ -467,7 +467,7 @@ public:
changeIconButton = new LabeledToolButton(MainWindow); changeIconButton = new LabeledToolButton(MainWindow);
changeIconButton->setObjectName(QStringLiteral("changeIconButton")); changeIconButton->setObjectName(QStringLiteral("changeIconButton"));
changeIconButton->setIcon(MMC->getThemedIcon("news")); changeIconButton->setIcon(LAUNCHER->getThemedIcon("news"));
changeIconButton->setToolTip(actionChangeInstIcon->toolTip()); changeIconButton->setToolTip(actionChangeInstIcon->toolTip());
changeIconButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); changeIconButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
instanceToolBar->addWidget(changeIconButton); instanceToolBar->addWidget(changeIconButton);
@ -578,7 +578,7 @@ public:
actionCopyInstance = TranslatedAction(MainWindow); actionCopyInstance = TranslatedAction(MainWindow);
actionCopyInstance->setObjectName(QStringLiteral("actionCopyInstance")); actionCopyInstance->setObjectName(QStringLiteral("actionCopyInstance"));
actionCopyInstance->setIcon(MMC->getThemedIcon("copy")); actionCopyInstance->setIcon(LAUNCHER->getThemedIcon("copy"));
actionCopyInstance.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Copy Instance")); actionCopyInstance.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Copy Instance"));
actionCopyInstance.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Copy the selected instance.")); actionCopyInstance.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Copy the selected instance."));
all_actions.append(&actionCopyInstance); all_actions.append(&actionCopyInstance);
@ -595,7 +595,7 @@ public:
MainWindow->setObjectName(QStringLiteral("MainWindow")); MainWindow->setObjectName(QStringLiteral("MainWindow"));
} }
MainWindow->resize(800, 600); MainWindow->resize(800, 600);
MainWindow->setWindowIcon(MMC->getThemedIcon("logo")); MainWindow->setWindowIcon(LAUNCHER->getThemedIcon("logo"));
MainWindow->setWindowTitle("MultiMC 5"); MainWindow->setWindowTitle("MultiMC 5");
#ifndef QT_NO_ACCESSIBILITY #ifndef QT_NO_ACCESSIBILITY
MainWindow->setAccessibleName("MultiMC"); MainWindow->setAccessibleName("MultiMC");
@ -672,7 +672,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
{ {
m_newsChecker.reset(new NewsChecker(BuildConfig.NEWS_RSS_URL)); m_newsChecker.reset(new NewsChecker(BuildConfig.NEWS_RSS_URL));
newsLabel = new QToolButton(); newsLabel = new QToolButton();
newsLabel->setIcon(MMC->getThemedIcon("news")); newsLabel->setIcon(LAUNCHER->getThemedIcon("news"));
newsLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); newsLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
newsLabel->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); newsLabel->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
newsLabel->setFocusPolicy(Qt::NoFocus); newsLabel->setFocusPolicy(Qt::NoFocus);
@ -699,20 +699,20 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
connect(view, &GroupView::droppedURLs, this, &MainWindow::droppedURLs, Qt::QueuedConnection); connect(view, &GroupView::droppedURLs, this, &MainWindow::droppedURLs, Qt::QueuedConnection);
proxymodel = new InstanceProxyModel(this); proxymodel = new InstanceProxyModel(this);
proxymodel->setSourceModel(MMC->instances().get()); proxymodel->setSourceModel(LAUNCHER->instances().get());
proxymodel->sort(0); proxymodel->sort(0);
connect(proxymodel, &InstanceProxyModel::dataChanged, this, &MainWindow::instanceDataChanged); connect(proxymodel, &InstanceProxyModel::dataChanged, this, &MainWindow::instanceDataChanged);
view->setModel(proxymodel); view->setModel(proxymodel);
view->setSourceOfGroupCollapseStatus([](const QString & groupName)->bool { 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); ui->horizontalLayout->addWidget(view);
} }
// The cat background // The cat background
{ {
bool cat_enable = MMC->settings()->get("TheCat").toBool(); bool cat_enable = LAUNCHER->settings()->get("TheCat").toBool();
ui->actionCAT->setChecked(cat_enable); ui->actionCAT->setChecked(cat_enable);
// NOTE: calling the operator like that is an ugly hack to appease ancient gcc... // NOTE: calling the operator like that is an ugly hack to appease ancient gcc...
connect(ui->actionCAT.operator->(), SIGNAL(toggled(bool)), SLOT(onCatToggled(bool))); connect(ui->actionCAT.operator->(), SIGNAL(toggled(bool)), SLOT(onCatToggled(bool)));
@ -725,16 +725,16 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
connect(view->selectionModel(), &QItemSelectionModel::currentChanged, this, &MainWindow::instanceChanged); connect(view->selectionModel(), &QItemSelectionModel::currentChanged, this, &MainWindow::instanceChanged);
// track icon changes and update the toolbar! // 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. // 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 // 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 // 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_statusLeft = new QLabel(tr("No instance selected"), this);
m_statusCenter = new QLabel(tr("Total playtime: 0s."), this); m_statusCenter = new QLabel(tr("Total playtime: 0s."), this);
@ -754,7 +754,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
accountMenuButton->setMenu(accountMenu); accountMenuButton->setMenu(accountMenu);
accountMenuButton->setPopupMode(QToolButton::InstantPopup); accountMenuButton->setPopupMode(QToolButton::InstantPopup);
accountMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); accountMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
accountMenuButton->setIcon(MMC->getThemedIcon("noaccount")); accountMenuButton->setIcon(LAUNCHER->getThemedIcon("noaccount"));
QWidgetAction *accountMenuButtonAction = new QWidgetAction(this); QWidgetAction *accountMenuButtonAction = new QWidgetAction(this);
accountMenuButtonAction->setDefaultWidget(accountMenuButton); accountMenuButtonAction->setDefaultWidget(accountMenuButton);
@ -765,14 +765,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. // Shouldn't have to use lambdas here like this, but if I don't, the compiler throws a fit.
// Template hell sucks... // Template hell sucks...
connect( connect(
MMC->accounts().get(), LAUNCHER->accounts().get(),
&AccountList::activeAccountChanged, &AccountList::activeAccountChanged,
[this] { [this] {
activeAccountChanged(); activeAccountChanged();
} }
); );
connect( connect(
MMC->accounts().get(), LAUNCHER->accounts().get(),
&AccountList::listChanged, &AccountList::listChanged,
[this] [this]
{ {
@ -784,7 +784,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
activeAccountChanged(); activeAccountChanged();
// TODO: refresh accounts here? // TODO: refresh accounts here?
// auto accounts = MMC->accounts(); // auto accounts = LAUNCHER->accounts();
// load the news // load the news
{ {
@ -795,20 +795,20 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
if(BuildConfig.UPDATER_ENABLED) if(BuildConfig.UPDATER_ENABLED)
{ {
bool updatesAllowed = MMC->updatesAreAllowed(); bool updatesAllowed = LAUNCHER->updatesAreAllowed();
updatesAllowedChanged(updatesAllowed); updatesAllowedChanged(updatesAllowed);
// NOTE: calling the operator like that is an ugly hack to appease ancient gcc... // NOTE: calling the operator like that is an ugly hack to appease ancient gcc...
connect(ui->actionCheckUpdate.operator->(), &QAction::triggered, this, &MainWindow::checkForUpdates); connect(ui->actionCheckUpdate.operator->(), &QAction::triggered, this, &MainWindow::checkForUpdates);
// set up the updater object. // 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::updateAvailable, this, &MainWindow::updateAvailable);
connect(updater.get(), &UpdateChecker::noUpdateFound, this, &MainWindow::updateNotAvailable); connect(updater.get(), &UpdateChecker::noUpdateFound, this, &MainWindow::updateNotAvailable);
// if automatic update checks are allowed, start one. // 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 +823,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
checker->checkForNotifications(); checker->checkForNotifications();
} }
setSelectedInstanceById(MMC->settings()->get("SelectedInstance").toString()); setSelectedInstanceById(LAUNCHER->settings()->get("SelectedInstance").toString());
// removing this looks stupid // removing this looks stupid
view->setFocus(); view->setFocus();
@ -833,7 +833,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
void MainWindow::retranslateUi() void MainWindow::retranslateUi()
{ {
std::shared_ptr<AccountList> accounts = MMC->accounts(); std::shared_ptr<AccountList> accounts = LAUNCHER->accounts();
MinecraftAccountPtr active_account = accounts->activeAccount(); MinecraftAccountPtr active_account = accounts->activeAccount();
if(active_account) { if(active_account) {
auto profileLabel = profileInUseFilter(active_account->profileName(), active_account->isInUse()); auto profileLabel = profileInUseFilter(active_account->profileName(), active_account->isInUse());
@ -971,16 +971,16 @@ void MainWindow::updateToolsMenu()
QAction *normalLaunchOffline = launchOfflineMenu->addAction(tr("Launch Offline")); QAction *normalLaunchOffline = launchOfflineMenu->addAction(tr("Launch Offline"));
connect(normalLaunch, &QAction::triggered, [this]() connect(normalLaunch, &QAction::triggered, [this]()
{ {
MMC->launch(m_selectedInstance, true); LAUNCHER->launch(m_selectedInstance, true);
}); });
connect(normalLaunchOffline, &QAction::triggered, [this]() connect(normalLaunchOffline, &QAction::triggered, [this]()
{ {
MMC->launch(m_selectedInstance, false); LAUNCHER->launch(m_selectedInstance, false);
}); });
QString profilersTitle = tr("Profilers"); QString profilersTitle = tr("Profilers");
launchMenu->addSeparator()->setText(profilersTitle); launchMenu->addSeparator()->setText(profilersTitle);
launchOfflineMenu->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 *profilerAction = launchMenu->addAction(profiler->name());
QAction *profilerOfflineAction = launchOfflineMenu->addAction(profiler->name()); QAction *profilerOfflineAction = launchOfflineMenu->addAction(profiler->name());
@ -997,11 +997,11 @@ void MainWindow::updateToolsMenu()
{ {
connect(profilerAction, &QAction::triggered, [this, profiler]() 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]() connect(profilerOfflineAction, &QAction::triggered, [this, profiler]()
{ {
MMC->launch(m_selectedInstance, false, profiler.get()); LAUNCHER->launch(m_selectedInstance, false, profiler.get());
}); });
} }
} }
@ -1013,7 +1013,7 @@ void MainWindow::repopulateAccountsMenu()
{ {
accountMenu->clear(); accountMenu->clear();
std::shared_ptr<AccountList> accounts = MMC->accounts(); std::shared_ptr<AccountList> accounts = LAUNCHER->accounts();
MinecraftAccountPtr active_account = accounts->activeAccount(); MinecraftAccountPtr active_account = accounts->activeAccount();
QString active_profileId = ""; QString active_profileId = "";
@ -1059,7 +1059,7 @@ void MainWindow::repopulateAccountsMenu()
QAction *action = new QAction(tr("No Default Account"), this); QAction *action = new QAction(tr("No Default Account"), this);
action->setCheckable(true); action->setCheckable(true);
action->setIcon(MMC->getThemedIcon("noaccount")); action->setIcon(LAUNCHER->getThemedIcon("noaccount"));
action->setData(""); action->setData("");
if (active_profileId.isEmpty()) { if (active_profileId.isEmpty()) {
action->setChecked(true); action->setChecked(true);
@ -1099,7 +1099,7 @@ void MainWindow::changeActiveAccount()
id = data.toString(); id = data.toString();
} }
MMC->accounts()->setActiveAccount(id); LAUNCHER->accounts()->setActiveAccount(id);
activeAccountChanged(); activeAccountChanged();
} }
@ -1108,7 +1108,7 @@ void MainWindow::activeAccountChanged()
{ {
repopulateAccountsMenu(); repopulateAccountsMenu();
MinecraftAccountPtr account = MMC->accounts()->activeAccount(); MinecraftAccountPtr account = LAUNCHER->accounts()->activeAccount();
// FIXME: this needs adjustment for MSA // FIXME: this needs adjustment for MSA
if (account != nullptr && account->profileName() != "") if (account != nullptr && account->profileName() != "")
@ -1120,7 +1120,7 @@ void MainWindow::activeAccountChanged()
} }
// Set the icon to the "no account" icon. // Set the icon to the "no account" icon.
accountMenuButton->setIcon(MMC->getThemedIcon("noaccount")); accountMenuButton->setIcon(LAUNCHER->getThemedIcon("noaccount"));
accountMenuButton->setText(tr("Profiles")); accountMenuButton->setText(tr("Profiles"));
} }
@ -1182,7 +1182,7 @@ void MainWindow::updateNewsLabel()
void MainWindow::updateAvailable(GoUpdate::Status status) void MainWindow::updateAvailable(GoUpdate::Status status)
{ {
if(!MMC->updatesAreAllowed()) if(!LAUNCHER->updatesAreAllowed())
{ {
updateNotAvailable(); updateNotAvailable();
return; return;
@ -1228,7 +1228,7 @@ QString intListToString(const QList<int> &list)
void MainWindow::notificationsChanged() void MainWindow::notificationsChanged()
{ {
QList<NotificationChecker::NotificationEntry> entries = m_notificationChecker->notificationEntries(); 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) for (auto it = entries.begin(); it != entries.end(); ++it)
{ {
NotificationChecker::NotificationEntry entry = *it; NotificationChecker::NotificationEntry entry = *it;
@ -1241,20 +1241,20 @@ void MainWindow::notificationsChanged()
} }
} }
} }
MMC->settings()->set("ShownNotifications", intListToString(shownNotifications)); LAUNCHER->settings()->set("ShownNotifications", intListToString(shownNotifications));
} }
void MainWindow::downloadUpdates(GoUpdate::Status status) void MainWindow::downloadUpdates(GoUpdate::Status status)
{ {
if(!MMC->updatesAreAllowed()) if(!LAUNCHER->updatesAreAllowed())
{ {
return; return;
} }
qDebug() << "Downloading updates."; qDebug() << "Downloading updates.";
ProgressDialog updateDlg(this); 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)) if (!FS::ensureFilePathExists(dlPath))
{ {
CustomMessageBox::selectable(this, tr("Error"), tr("Couldn't create folder for update downloads:\n%1").arg(dlPath), QMessageBox::Warning)->show(); CustomMessageBox::selectable(this, tr("Error"), tr("Couldn't create folder for update downloads:\n%1").arg(dlPath), QMessageBox::Warning)->show();
@ -1267,10 +1267,10 @@ void MainWindow::downloadUpdates(GoUpdate::Status status)
* NOTE: This disables launching instances until the update either succeeds (and this process exits) * NOTE: This disables launching instances until the update either succeeds (and this process exits)
* or the update fails (and the control leaves this scope). * or the update fails (and the control leaves this scope).
*/ */
MMC->updateIsRunning(true); LAUNCHER->updateIsRunning(true);
UpdateController update(this, MMC->root(), updateTask.updateFilesDir(), updateTask.operations()); UpdateController update(this, LAUNCHER->root(), updateTask.updateFilesDir(), updateTask.operations());
update.installUpdates(); update.installUpdates();
MMC->updateIsRunning(false); LAUNCHER->updateIsRunning(false);
} }
else else
{ {
@ -1281,7 +1281,7 @@ void MainWindow::downloadUpdates(GoUpdate::Status status)
void MainWindow::onCatToggled(bool state) void MainWindow::onCatToggled(bool state)
{ {
setCatBackground(state); setCatBackground(state);
MMC->settings()->set("TheCat", state); LAUNCHER->settings()->set("TheCat", state);
} }
namespace { namespace {
@ -1339,7 +1339,7 @@ void MainWindow::runModalTask(Task *task)
void MainWindow::instanceFromInstanceTask(InstanceTask *rawTask) 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()); runModalTask(task.get());
} }
@ -1356,7 +1356,7 @@ void MainWindow::on_actionCopyInstance_triggered()
copyTask->setName(copyInstDlg.instName()); copyTask->setName(copyInstDlg.instName());
copyTask->setGroup(copyInstDlg.instGroup()); copyTask->setGroup(copyInstDlg.instGroup());
copyTask->setIcon(copyInstDlg.iconKey()); 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()); runModalTask(task.get());
} }
@ -1364,7 +1364,7 @@ void MainWindow::finalizeInstance(InstancePtr inst)
{ {
view->updateGeometries(); view->updateGeometries();
setSelectedInstanceById(inst->id()); setSelectedInstanceById(inst->id());
if (MMC->accounts()->anyAccountIsValid()) if (LAUNCHER->accounts()->anyAccountIsValid())
{ {
ProgressDialog loadDialog(this); ProgressDialog loadDialog(this);
auto update = inst->createUpdateTask(Net::Mode::Online); auto update = inst->createUpdateTask(Net::Mode::Online);
@ -1407,14 +1407,14 @@ void MainWindow::addInstance(QString url)
if(groupName.isEmpty()) if(groupName.isEmpty())
{ {
groupName = MMC->settings()->get("LastUsedGroupForNewInstance").toString(); groupName = LAUNCHER->settings()->get("LastUsedGroupForNewInstance").toString();
} }
NewInstanceDialog newInstDlg(groupName, url, this); NewInstanceDialog newInstDlg(groupName, url, this);
if (!newInstDlg.exec()) if (!newInstDlg.exec())
return; return;
MMC->settings()->set("LastUsedGroupForNewInstance", newInstDlg.instGroup()); LAUNCHER->settings()->set("LastUsedGroupForNewInstance", newInstDlg.instGroup());
InstanceTask * creationTask = newInstDlg.extractTask(); InstanceTask * creationTask = newInstDlg.extractTask();
if(creationTask) if(creationTask)
@ -1465,7 +1465,7 @@ void MainWindow::on_actionChangeInstIcon_triggered()
if (dlg.result() == QDialog::Accepted) if (dlg.result() == QDialog::Accepted)
{ {
m_selectedInstance->setIconKey(dlg.selectedIconKey); m_selectedInstance->setIconKey(dlg.selectedIconKey);
auto icon = MMC->icons()->getIcon(dlg.selectedIconKey); auto icon = LAUNCHER->icons()->getIcon(dlg.selectedIconKey);
ui->actionChangeInstIcon->setIcon(icon); ui->actionChangeInstIcon->setIcon(icon);
ui->changeIconButton->setIcon(icon); ui->changeIconButton->setIcon(icon);
} }
@ -1475,7 +1475,7 @@ void MainWindow::iconUpdated(QString icon)
{ {
if (icon == m_currentInstIcon) if (icon == m_currentInstIcon)
{ {
auto icon = MMC->icons()->getIcon(m_currentInstIcon); auto icon = LAUNCHER->icons()->getIcon(m_currentInstIcon);
ui->actionChangeInstIcon->setIcon(icon); ui->actionChangeInstIcon->setIcon(icon);
ui->changeIconButton->setIcon(icon); ui->changeIconButton->setIcon(icon);
} }
@ -1484,7 +1484,7 @@ void MainWindow::iconUpdated(QString icon)
void MainWindow::updateInstanceToolIcon(QString new_icon) void MainWindow::updateInstanceToolIcon(QString new_icon)
{ {
m_currentInstIcon = 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->actionChangeInstIcon->setIcon(icon);
ui->changeIconButton->setIcon(icon); ui->changeIconButton->setIcon(icon);
} }
@ -1493,7 +1493,7 @@ void MainWindow::setSelectedInstanceById(const QString &id)
{ {
if (id.isNull()) if (id.isNull())
return; return;
const QModelIndex index = MMC->instances()->getInstanceIndexById(id); const QModelIndex index = LAUNCHER->instances()->getInstanceIndexById(id);
if (index.isValid()) if (index.isValid())
{ {
QModelIndex selectionIndex = proxymodel->mapFromSource(index); QModelIndex selectionIndex = proxymodel->mapFromSource(index);
@ -1509,8 +1509,8 @@ void MainWindow::on_actionChangeInstGroup_triggered()
bool ok = false; bool ok = false;
InstanceId instId = m_selectedInstance->id(); InstanceId instId = m_selectedInstance->id();
QString name(MMC->instances()->getInstanceGroup(instId)); QString name(LAUNCHER->instances()->getInstanceGroup(instId));
auto groups = MMC->instances()->getGroups(); auto groups = LAUNCHER->instances()->getGroups();
groups.insert(0, ""); groups.insert(0, "");
groups.sort(Qt::CaseInsensitive); groups.sort(Qt::CaseInsensitive);
int foo = groups.indexOf(name); int foo = groups.indexOf(name);
@ -1519,7 +1519,7 @@ void MainWindow::on_actionChangeInstGroup_triggered()
name = name.simplified(); name = name.simplified();
if (ok) if (ok)
{ {
MMC->instances()->setInstanceGroup(instId, name); LAUNCHER->instances()->setInstanceGroup(instId, name);
} }
} }
@ -1541,25 +1541,25 @@ void MainWindow::deleteGroup()
.arg(groupName), QMessageBox::Yes | QMessageBox::No); .arg(groupName), QMessageBox::Yes | QMessageBox::No);
if(reply == QMessageBox::Yes) if(reply == QMessageBox::Yes)
{ {
MMC->instances()->deleteGroup(groupName); LAUNCHER->instances()->deleteGroup(groupName);
} }
} }
} }
void MainWindow::on_actionViewInstanceFolder_triggered() void MainWindow::on_actionViewInstanceFolder_triggered()
{ {
QString str = MMC->settings()->get("InstanceDir").toString(); QString str = LAUNCHER->settings()->get("InstanceDir").toString();
DesktopServices::openDirectory(str); DesktopServices::openDirectory(str);
} }
void MainWindow::refreshInstances() void MainWindow::refreshInstances()
{ {
MMC->instances()->loadList(); LAUNCHER->instances()->loadList();
} }
void MainWindow::on_actionViewCentralModsFolder_triggered() 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() void MainWindow::on_actionConfig_Folder_triggered()
@ -1575,8 +1575,8 @@ void MainWindow::checkForUpdates()
{ {
if(BuildConfig.UPDATER_ENABLED) if(BuildConfig.UPDATER_ENABLED)
{ {
auto updater = MMC->updateChecker(); auto updater = LAUNCHER->updateChecker();
updater->checkForUpdate(MMC->settings()->get("UpdateChannel").toString(), true); updater->checkForUpdate(LAUNCHER->settings()->get("UpdateChannel").toString(), true);
} }
else else
{ {
@ -1586,13 +1586,13 @@ void MainWindow::checkForUpdates()
void MainWindow::on_actionSettings_triggered() void MainWindow::on_actionSettings_triggered()
{ {
MMC->ShowGlobalSettings(this, "global-settings"); LAUNCHER->ShowGlobalSettings(this, "global-settings");
} }
void MainWindow::globalSettingsClosed() void MainWindow::globalSettingsClosed()
{ {
// FIXME: quick HACK to make this work. improve, optimize. // FIXME: quick HACK to make this work. improve, optimize.
MMC->instances()->loadList(); LAUNCHER->instances()->loadList();
proxymodel->invalidate(); proxymodel->invalidate();
proxymodel->sort(0); proxymodel->sort(0);
updateToolsMenu(); updateToolsMenu();
@ -1601,32 +1601,32 @@ void MainWindow::globalSettingsClosed()
void MainWindow::on_actionInstanceSettings_triggered() void MainWindow::on_actionInstanceSettings_triggered()
{ {
MMC->showInstanceWindow(m_selectedInstance, "settings"); LAUNCHER->showInstanceWindow(m_selectedInstance, "settings");
} }
void MainWindow::on_actionEditInstNotes_triggered() void MainWindow::on_actionEditInstNotes_triggered()
{ {
MMC->showInstanceWindow(m_selectedInstance, "notes"); LAUNCHER->showInstanceWindow(m_selectedInstance, "notes");
} }
void MainWindow::on_actionWorlds_triggered() void MainWindow::on_actionWorlds_triggered()
{ {
MMC->showInstanceWindow(m_selectedInstance, "worlds"); LAUNCHER->showInstanceWindow(m_selectedInstance, "worlds");
} }
void MainWindow::on_actionEditInstance_triggered() void MainWindow::on_actionEditInstance_triggered()
{ {
MMC->showInstanceWindow(m_selectedInstance); LAUNCHER->showInstanceWindow(m_selectedInstance);
} }
void MainWindow::on_actionScreenshots_triggered() void MainWindow::on_actionScreenshots_triggered()
{ {
MMC->showInstanceWindow(m_selectedInstance, "screenshots"); LAUNCHER->showInstanceWindow(m_selectedInstance, "screenshots");
} }
void MainWindow::on_actionManageAccounts_triggered() void MainWindow::on_actionManageAccounts_triggered()
{ {
MMC->ShowGlobalSettings(this, "accounts"); LAUNCHER->ShowGlobalSettings(this, "accounts");
} }
void MainWindow::on_actionReportBug_triggered() void MainWindow::on_actionReportBug_triggered()
@ -1680,7 +1680,7 @@ void MainWindow::on_actionDeleteInstance_triggered()
)->exec(); )->exec();
if (response == QMessageBox::Yes) if (response == QMessageBox::Yes)
{ {
MMC->instances()->deleteInstance(id); LAUNCHER->instances()->deleteInstance(id);
} }
} }
@ -1728,8 +1728,8 @@ void MainWindow::on_actionViewSelectedMCFolder_triggered()
void MainWindow::closeEvent(QCloseEvent *event) void MainWindow::closeEvent(QCloseEvent *event)
{ {
// Save the window state and geometry. // Save the window state and geometry.
MMC->settings()->set("MainWindowState", saveState().toBase64()); LAUNCHER->settings()->set("MainWindowState", saveState().toBase64());
MMC->settings()->set("MainWindowGeometry", saveGeometry().toBase64()); LAUNCHER->settings()->set("MainWindowGeometry", saveGeometry().toBase64());
event->accept(); event->accept();
emit isClosing(); emit isClosing();
} }
@ -1748,7 +1748,7 @@ void MainWindow::instanceActivated(QModelIndex index)
if (!index.isValid()) if (!index.isValid())
return; return;
QString id = index.data(InstanceList::InstanceIDRole).toString(); QString id = index.data(InstanceList::InstanceIDRole).toString();
InstancePtr inst = MMC->instances()->getInstanceById(id); InstancePtr inst = LAUNCHER->instances()->getInstanceById(id);
if (!inst) if (!inst)
return; return;
@ -1763,24 +1763,24 @@ void MainWindow::on_actionLaunchInstance_triggered()
} }
if(m_selectedInstance->isRunning()) if(m_selectedInstance->isRunning())
{ {
MMC->kill(m_selectedInstance); LAUNCHER->kill(m_selectedInstance);
} }
else else
{ {
MMC->launch(m_selectedInstance); LAUNCHER->launch(m_selectedInstance);
} }
} }
void MainWindow::activateInstance(InstancePtr instance) void MainWindow::activateInstance(InstancePtr instance)
{ {
MMC->launch(instance); LAUNCHER->launch(instance);
} }
void MainWindow::on_actionLaunchInstanceOffline_triggered() void MainWindow::on_actionLaunchInstanceOffline_triggered()
{ {
if (m_selectedInstance) if (m_selectedInstance)
{ {
MMC->launch(m_selectedInstance, false); LAUNCHER->launch(m_selectedInstance, false);
} }
} }
@ -1804,12 +1804,12 @@ void MainWindow::instanceChanged(const QModelIndex &current, const QModelIndex &
{ {
if (!current.isValid()) if (!current.isValid())
{ {
MMC->settings()->set("SelectedInstance", QString()); LAUNCHER->settings()->set("SelectedInstance", QString());
selectionBad(); selectionBad();
return; return;
} }
QString id = current.data(InstanceList::InstanceIDRole).toString(); QString id = current.data(InstanceList::InstanceIDRole).toString();
m_selectedInstance = MMC->instances()->getInstanceById(id); m_selectedInstance = LAUNCHER->instances()->getInstanceById(id);
if (m_selectedInstance) if (m_selectedInstance)
{ {
ui->instanceToolBar->setEnabled(true); ui->instanceToolBar->setEnabled(true);
@ -1832,12 +1832,12 @@ void MainWindow::instanceChanged(const QModelIndex &current, const QModelIndex &
updateToolsMenu(); updateToolsMenu();
MMC->settings()->set("SelectedInstance", m_selectedInstance->id()); LAUNCHER->settings()->set("SelectedInstance", m_selectedInstance->id());
} }
else else
{ {
ui->instanceToolBar->setEnabled(false); ui->instanceToolBar->setEnabled(false);
MMC->settings()->set("SelectedInstance", QString()); LAUNCHER->settings()->set("SelectedInstance", QString());
selectionBad(); selectionBad();
return; return;
} }
@ -1869,12 +1869,12 @@ void MainWindow::selectionBad()
updateInstanceToolIcon("infinity"); updateInstanceToolIcon("infinity");
// ...and then see if we can enable the previously selected instance // ...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() void MainWindow::checkInstancePathForProblems()
{ {
QString instanceFolder = MMC->settings()->get("InstanceDir").toString(); QString instanceFolder = LAUNCHER->settings()->get("InstanceDir").toString();
if (FS::checkProblemticPathJava(QDir(instanceFolder))) if (FS::checkProblemticPathJava(QDir(instanceFolder)))
{ {
QMessageBox warning(this); QMessageBox warning(this);
@ -1909,7 +1909,7 @@ void MainWindow::checkInstancePathForProblems()
void MainWindow::updateStatusCenter() void MainWindow::updateStatusCenter()
{ {
int timeplayed = MMC->instances()->getTotalPlayTime(); int timeplayed = LAUNCHER->instances()->getTotalPlayTime();
int minutesTotal = timeplayed / 60; int minutesTotal = timeplayed / 60;
int seconds = timeplayed % 60; int seconds = timeplayed % 60;
int minutes = minutesTotal % 60; int minutes = minutesTotal % 60;

View File

@ -1,5 +1,5 @@
#include "VersionProxyModel.h" #include "VersionProxyModel.h"
#include "MultiMC.h" #include "Launcher.h"
#include <QSortFilterProxyModel> #include <QSortFilterProxyModel>
#include <QPixmapCache> #include <QPixmapCache>
#include <Version.h> #include <Version.h>
@ -194,19 +194,19 @@ QVariant VersionProxyModel::data(const QModelIndex &index, int role) const
auto value = sourceModel()->data(parentIndex, BaseVersionList::RecommendedRole); auto value = sourceModel()->data(parentIndex, BaseVersionList::RecommendedRole);
if(value.toBool()) if(value.toBool())
{ {
return MMC->getThemedIcon("star"); return LAUNCHER->getThemedIcon("star");
} }
else if(hasLatest) else if(hasLatest)
{ {
auto value = sourceModel()->data(parentIndex, BaseVersionList::LatestRole); auto value = sourceModel()->data(parentIndex, BaseVersionList::LatestRole);
if(value.toBool()) if(value.toBool())
{ {
return MMC->getThemedIcon("bug"); return LAUNCHER->getThemedIcon("bug");
} }
} }
else if(index.row() == 0) else if(index.row() == 0)
{ {
return MMC->getThemedIcon("bug"); return LAUNCHER->getThemedIcon("bug");
} }
auto pixmap = QPixmapCache::find("placeholder"); auto pixmap = QPixmapCache::find("placeholder");
if(!pixmap) if(!pixmap)

View File

@ -16,7 +16,7 @@
#include "AboutDialog.h" #include "AboutDialog.h"
#include "ui_AboutDialog.h" #include "ui_AboutDialog.h"
#include <QIcon> #include <QIcon>
#include "MultiMC.h" #include "Launcher.h"
#include "BuildConfig.h" #include "BuildConfig.h"
#include <net/NetJob.h> #include <net/NetJob.h>
@ -83,7 +83,7 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDia
ui->urlLabel->setOpenExternalLinks(true); ui->urlLabel->setOpenExternalLinks(true);
ui->icon->setPixmap(MMC->getThemedIcon("logo").pixmap(64)); ui->icon->setPixmap(LAUNCHER->getThemedIcon("logo").pixmap(64));
ui->title->setText("MultiMC 5"); ui->title->setText("MultiMC 5");
ui->versionLabel->setText(tr("Version") +": " + BuildConfig.printableVersionString()); ui->versionLabel->setText(tr("Version") +": " + BuildConfig.printableVersionString());

View File

@ -16,7 +16,7 @@
#include <QLayout> #include <QLayout>
#include <QPushButton> #include <QPushButton>
#include "MultiMC.h" #include "Launcher.h"
#include "CopyInstanceDialog.h" #include "CopyInstanceDialog.h"
#include "ui_CopyInstanceDialog.h" #include "ui_CopyInstanceDialog.h"
@ -36,16 +36,16 @@ CopyInstanceDialog::CopyInstanceDialog(InstancePtr original, QWidget *parent)
layout()->setSizeConstraint(QLayout::SetFixedSize); layout()->setSizeConstraint(QLayout::SetFixedSize);
InstIconKey = original->iconKey(); InstIconKey = original->iconKey();
ui->iconButton->setIcon(MMC->icons()->getIcon(InstIconKey)); ui->iconButton->setIcon(LAUNCHER->icons()->getIcon(InstIconKey));
ui->instNameTextBox->setText(original->name()); ui->instNameTextBox->setText(original->name());
ui->instNameTextBox->setFocus(); ui->instNameTextBox->setFocus();
auto groups = MMC->instances()->getGroups().toSet(); auto groups = LAUNCHER->instances()->getGroups().toSet();
auto groupList = QStringList(groups.toList()); auto groupList = QStringList(groups.toList());
groupList.sort(Qt::CaseInsensitive); groupList.sort(Qt::CaseInsensitive);
groupList.removeOne(""); groupList.removeOne("");
groupList.push_front(""); groupList.push_front("");
ui->groupBox->addItems(groupList); 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) if(index == -1)
{ {
index = 0; index = 0;
@ -99,7 +99,7 @@ void CopyInstanceDialog::on_iconButton_clicked()
if (dlg.result() == QDialog::Accepted) if (dlg.result() == QDialog::Accepted)
{ {
InstIconKey = dlg.selectedIconKey; InstIconKey = dlg.selectedIconKey;
ui->iconButton->setIcon(MMC->icons()->getIcon(InstIconKey)); ui->iconButton->setIcon(LAUNCHER->icons()->getIcon(InstIconKey));
} }
} }

View File

@ -27,7 +27,7 @@
#include <QSaveFile> #include <QSaveFile>
#include "MMCStrings.h" #include "MMCStrings.h"
#include "SeparatorPrefixTree.h" #include "SeparatorPrefixTree.h"
#include "MultiMC.h" #include "Launcher.h"
#include <icons/IconList.h> #include <icons/IconList.h>
#include <FileSystem.h> #include <FileSystem.h>
@ -341,7 +341,7 @@ ExportInstanceDialog::~ExportInstanceDialog()
void SaveIcon(InstancePtr m_instance) void SaveIcon(InstancePtr m_instance)
{ {
auto iconKey = m_instance->iconKey(); auto iconKey = m_instance->iconKey();
auto iconList = MMC->icons(); auto iconList = LAUNCHER->icons();
auto mmcIcon = iconList->icon(iconKey); auto mmcIcon = iconList->icon(iconKey);
if(!mmcIcon || mmcIcon->isBuiltIn()) { if(!mmcIcon || mmcIcon->isBuiltIn()) {
return; return;

View File

@ -17,7 +17,7 @@
#include <QPushButton> #include <QPushButton>
#include <QFileDialog> #include <QFileDialog>
#include "MultiMC.h" #include "Launcher.h"
#include "IconPickerDialog.h" #include "IconPickerDialog.h"
#include "ui_IconPickerDialog.h" #include "ui_IconPickerDialog.h"
@ -59,7 +59,7 @@ IconPickerDialog::IconPickerDialog(QWidget *parent)
contentsWidget->installEventFilter(this); 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. // 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); auto buttonAdd = ui->buttonBox->addButton(tr("Add Icon"), QDialogButtonBox::ResetRole);
@ -106,12 +106,12 @@ void IconPickerDialog::addNewIcon()
//: The type of icon files //: The type of icon files
auto filter = IconUtils::getIconFilter(); auto filter = IconUtils::getIconFilter();
QStringList fileNames = QFileDialog::getOpenFileNames(this, selectIcons, QString(), tr("Icons %1").arg(filter)); QStringList fileNames = QFileDialog::getOpenFileNames(this, selectIcons, QString(), tr("Icons %1").arg(filter));
MMC->icons()->installIcons(fileNames); LAUNCHER->icons()->installIcons(fileNames);
} }
void IconPickerDialog::removeSelectedIcon() void IconPickerDialog::removeSelectedIcon()
{ {
MMC->icons()->deleteIcon(selectedIconKey); LAUNCHER->icons()->deleteIcon(selectedIconKey);
} }
void IconPickerDialog::activated(QModelIndex index) void IconPickerDialog::activated(QModelIndex index)
@ -132,7 +132,7 @@ void IconPickerDialog::selectionChanged(QItemSelection selected, QItemSelection
int IconPickerDialog::execWithSelection(QString selection) int IconPickerDialog::execWithSelection(QString selection)
{ {
auto list = MMC->icons(); auto list = LAUNCHER->icons();
auto contentsWidget = ui->iconView; auto contentsWidget = ui->iconView;
selectedIconKey = selection; selectedIconKey = selection;
@ -159,5 +159,5 @@ IconPickerDialog::~IconPickerDialog()
void IconPickerDialog::openFolder() void IconPickerDialog::openFolder()
{ {
DesktopServices::openDirectory(MMC->icons()->getDirectory(), true); DesktopServices::openDirectory(LAUNCHER->icons()->getDirectory(), true);
} }

View File

@ -13,7 +13,7 @@
* limitations under the License. * limitations under the License.
*/ */
#include "MultiMC.h" #include "Launcher.h"
#include "NewComponentDialog.h" #include "NewComponentDialog.h"
#include "ui_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->nameTextBox, &QLineEdit::textChanged, this, &NewComponentDialog::updateDialogState);
connect(ui->uidTextBox, &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(); ui->nameTextBox->setFocus();
originalPlaceholderText = ui->uidTextBox->placeholderText(); originalPlaceholderText = ui->uidTextBox->placeholderText();

View File

@ -13,7 +13,7 @@
* limitations under the License. * limitations under the License.
*/ */
#include "MultiMC.h" #include "Launcher.h"
#include "NewInstanceDialog.h" #include "NewInstanceDialog.h"
#include "ui_NewInstanceDialog.h" #include "ui_NewInstanceDialog.h"
@ -48,12 +48,12 @@ NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString
{ {
ui->setupUi(this); ui->setupUi(this);
setWindowIcon(MMC->getThemedIcon("new")); setWindowIcon(LAUNCHER->getThemedIcon("new"));
InstIconKey = "default"; 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()); auto groupList = QStringList(groups.toList());
groupList.sort(Qt::CaseInsensitive); groupList.sort(Qt::CaseInsensitive);
groupList.removeOne(""); groupList.removeOne("");
@ -105,18 +105,18 @@ NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString
updateDialogState(); updateDialogState();
restoreGeometry(QByteArray::fromBase64(MMC->settings()->get("NewInstanceGeometry").toByteArray())); restoreGeometry(QByteArray::fromBase64(LAUNCHER->settings()->get("NewInstanceGeometry").toByteArray()));
} }
void NewInstanceDialog::reject() void NewInstanceDialog::reject()
{ {
MMC->settings()->set("NewInstanceGeometry", saveGeometry().toBase64()); LAUNCHER->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
QDialog::reject(); QDialog::reject();
} }
void NewInstanceDialog::accept() void NewInstanceDialog::accept()
{ {
MMC->settings()->set("NewInstanceGeometry", saveGeometry().toBase64()); LAUNCHER->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
importIconNow(); importIconNow();
QDialog::accept(); QDialog::accept();
} }
@ -155,7 +155,7 @@ void NewInstanceDialog::setSuggestedPack(const QString& name, InstanceTask* task
if(!task) if(!task)
{ {
ui->iconButton->setIcon(MMC->icons()->getIcon("default")); ui->iconButton->setIcon(LAUNCHER->icons()->getIcon("default"));
importIcon = false; importIcon = false;
} }
@ -175,7 +175,7 @@ void NewInstanceDialog::setSuggestedIconFromFile(const QString &path, const QStr
void NewInstanceDialog::setSuggestedIcon(const QString &key) void NewInstanceDialog::setSuggestedIcon(const QString &key)
{ {
auto icon = MMC->icons()->getIcon(key); auto icon = LAUNCHER->icons()->getIcon(key);
importIcon = false; importIcon = false;
ui->iconButton->setIcon(icon); ui->iconButton->setIcon(icon);
@ -234,7 +234,7 @@ void NewInstanceDialog::on_iconButton_clicked()
if (dlg.result() == QDialog::Accepted) if (dlg.result() == QDialog::Accepted)
{ {
InstIconKey = dlg.selectedIconKey; InstIconKey = dlg.selectedIconKey;
ui->iconButton->setIcon(MMC->icons()->getIcon(InstIconKey)); ui->iconButton->setIcon(LAUNCHER->icons()->getIcon(InstIconKey));
importIcon = false; importIcon = false;
} }
} }
@ -247,9 +247,9 @@ void NewInstanceDialog::on_instNameTextBox_textChanged(const QString &arg1)
void NewInstanceDialog::importIconNow() void NewInstanceDialog::importIconNow()
{ {
if(importIcon) { if(importIcon) {
MMC->icons()->installIcon(importIconPath, importIconName); LAUNCHER->icons()->installIcon(importIconPath, importIconName);
InstIconKey = importIconName; InstIconKey = importIconName;
importIcon = false; importIcon = false;
} }
MMC->settings()->set("NewInstanceGeometry", saveGeometry().toBase64()); LAUNCHER->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
} }

View File

@ -23,14 +23,14 @@
#include <dialogs/ProgressDialog.h> #include <dialogs/ProgressDialog.h>
#include <MultiMC.h> #include <Launcher.h>
ProfileSelectDialog::ProfileSelectDialog(const QString &message, int flags, QWidget *parent) ProfileSelectDialog::ProfileSelectDialog(const QString &message, int flags, QWidget *parent)
: QDialog(parent), ui(new Ui::ProfileSelectDialog) : QDialog(parent), ui(new Ui::ProfileSelectDialog)
{ {
ui->setupUi(this); ui->setupUi(this);
m_accounts = MMC->accounts(); m_accounts = LAUNCHER->accounts();
auto view = ui->listView; auto view = ui->listView;
//view->setModel(m_accounts.get()); //view->setModel(m_accounts.get());
//view->hideColumn(AccountList::ActiveColumn); //view->hideColumn(AccountList::ActiveColumn);

View File

@ -1,7 +1,7 @@
#include "UpdateDialog.h" #include "UpdateDialog.h"
#include "ui_UpdateDialog.h" #include "ui_UpdateDialog.h"
#include <QDebug> #include <QDebug>
#include "MultiMC.h" #include "Launcher.h"
#include <settings/SettingsObject.h> #include <settings/SettingsObject.h>
#include <Json.h> #include <Json.h>
@ -11,7 +11,7 @@
UpdateDialog::UpdateDialog(bool hasUpdate, QWidget *parent) : QDialog(parent), ui(new Ui::UpdateDialog) UpdateDialog::UpdateDialog(bool hasUpdate, QWidget *parent) : QDialog(parent), ui(new Ui::UpdateDialog)
{ {
ui->setupUi(this); ui->setupUi(this);
auto channel = MMC->settings()->get("UpdateChannel").toString(); auto channel = LAUNCHER->settings()->get("UpdateChannel").toString();
if(hasUpdate) if(hasUpdate)
{ {
ui->label->setText(tr("A new %1 update is available!").arg(channel)); 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>")); ui->changelogBrowser->setHtml(tr("<center><h1>Loading changelog...</h1></center>"));
loadChangelog(); loadChangelog();
restoreGeometry(QByteArray::fromBase64(MMC->settings()->get("UpdateDialogGeometry").toByteArray())); restoreGeometry(QByteArray::fromBase64(LAUNCHER->settings()->get("UpdateDialogGeometry").toByteArray()));
} }
UpdateDialog::~UpdateDialog() UpdateDialog::~UpdateDialog()
@ -33,7 +33,7 @@ UpdateDialog::~UpdateDialog()
void UpdateDialog::loadChangelog() void UpdateDialog::loadChangelog()
{ {
auto channel = MMC->settings()->get("UpdateChannel").toString(); auto channel = LAUNCHER->settings()->get("UpdateChannel").toString();
dljob.reset(new NetJob("Changelog")); dljob.reset(new NetJob("Changelog"));
QString url; QString url;
if(channel == "stable") if(channel == "stable")
@ -65,7 +65,7 @@ QString reprocessMarkdown(QByteArray markdown)
QString reprocessCommits(QByteArray json) QString reprocessCommits(QByteArray json)
{ {
auto channel = MMC->settings()->get("UpdateChannel").toString(); auto channel = LAUNCHER->settings()->get("UpdateChannel").toString();
try try
{ {
QString result; QString result;
@ -177,6 +177,6 @@ void UpdateDialog::on_btnUpdateNow_clicked()
void UpdateDialog::closeEvent(QCloseEvent* evt) void UpdateDialog::closeEvent(QCloseEvent* evt)
{ {
MMC->settings()->set("UpdateDialogGeometry", saveGeometry().toBase64()); LAUNCHER->settings()->set("UpdateDialogGeometry", saveGeometry().toBase64());
QDialog::closeEvent(evt); QDialog::closeEvent(evt);
} }

View File

@ -28,7 +28,7 @@
#include <BaseVersionList.h> #include <BaseVersionList.h>
#include <tasks/Task.h> #include <tasks/Task.h>
#include <QDebug> #include <QDebug>
#include "MultiMC.h" #include "Launcher.h"
#include <VersionProxyModel.h> #include <VersionProxyModel.h>
#include <widgets/VersionSelectWidget.h> #include <widgets/VersionSelectWidget.h>

View File

@ -1,4 +1,4 @@
#include "MultiMC.h" #include "Launcher.h"
#include "MainWindow.h" #include "MainWindow.h"
#include "LaunchController.h" #include "LaunchController.h"
#include <InstanceList.h> #include <InstanceList.h>
@ -34,12 +34,12 @@ int main(int argc, char *argv[])
#endif #endif
// initialize Qt // initialize Qt
MultiMC app(argc, argv); Launcher app(argc, argv);
switch (app.status()) switch (app.status())
{ {
case MultiMC::StartingUp: case Launcher::StartingUp:
case MultiMC::Initialized: case Launcher::Initialized:
{ {
Q_INIT_RESOURCE(multimc); Q_INIT_RESOURCE(multimc);
Q_INIT_RESOURCE(backgrounds); Q_INIT_RESOURCE(backgrounds);
@ -53,9 +53,9 @@ int main(int argc, char *argv[])
Q_INIT_RESOURCE(flat); Q_INIT_RESOURCE(flat);
return app.exec(); return app.exec();
} }
case MultiMC::Failed: case Launcher::Failed:
return 1; return 1;
case MultiMC::Succeeded: case Launcher::Succeeded:
return 0; return 0;
} }
} }

View File

@ -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 OneSixVersionFormat::libraryFromJson(ProblemContainer & problems, const QJsonObject &libObj, const QString &filename)
{ {
LibraryPtr out = MojangVersionFormat::libraryFromJson(problems, libObj, filename); LibraryPtr out = MojangVersionFormat::libraryFromJson(problems, libObj, filename);
readString(libObj, "MMC-hint", out->m_hint); readString(libObj, "LAUNCHER-hint", out->m_hint);
readString(libObj, "MMC-absulute_url", out->m_absoluteURL); readString(libObj, "LAUNCHER-absulute_url", out->m_absoluteURL);
readString(libObj, "MMC-absoluteUrl", out->m_absoluteURL); readString(libObj, "LAUNCHER-absoluteUrl", out->m_absoluteURL);
readString(libObj, "MMC-filename", out->m_filename); readString(libObj, "LAUNCHER-filename", out->m_filename);
readString(libObj, "MMC-displayname", out->m_displayname); readString(libObj, "LAUNCHER-displayname", out->m_displayname);
return out; return out;
} }
@ -28,13 +28,13 @@ QJsonObject OneSixVersionFormat::libraryToJson(Library *library)
{ {
QJsonObject libRoot = MojangVersionFormat::libraryToJson(library); QJsonObject libRoot = MojangVersionFormat::libraryToJson(library);
if (library->m_absoluteURL.size()) if (library->m_absoluteURL.size())
libRoot.insert("MMC-absoluteUrl", library->m_absoluteURL); libRoot.insert("LAUNCHER-absoluteUrl", library->m_absoluteURL);
if (library->m_hint.size()) if (library->m_hint.size())
libRoot.insert("MMC-hint", library->m_hint); libRoot.insert("LAUNCHER-hint", library->m_hint);
if (library->m_filename.size()) if (library->m_filename.size())
libRoot.insert("MMC-filename", library->m_filename); libRoot.insert("LAUNCHER-filename", library->m_filename);
if (library->m_displayname.size()) if (library->m_displayname.size())
libRoot.insert("MMC-displayname", library->m_displayname); libRoot.insert("LAUNCHER-displayname", library->m_displayname);
return libRoot; return libRoot;
} }

View File

@ -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;

View File

@ -20,7 +20,7 @@
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QKeyEvent> #include <QKeyEvent>
#include "MultiMC.h" #include "Launcher.h"
#include "settings/SettingsObject.h" #include "settings/SettingsObject.h"
#include "widgets/IconLabel.h" #include "widgets/IconLabel.h"
#include "widgets/PageContainer.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::Close), SIGNAL(clicked()), this, SLOT(close()));
connect(buttons->button(QDialogButtonBox::Help), SIGNAL(clicked()), m_container, SLOT(help())); 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) void PageDialog::closeEvent(QCloseEvent *event)
@ -54,7 +54,7 @@ void PageDialog::closeEvent(QCloseEvent *event)
if (m_container->prepareToClose()) if (m_container->prepareToClose())
{ {
qDebug() << "Paged dialog close approved"; qDebug() << "Paged dialog close approved";
MMC->settings()->set("PagedGeometry", saveGeometry().toBase64()); LAUNCHER->settings()->set("PagedGeometry", saveGeometry().toBase64());
qDebug() << "Paged dialog geometry saved"; qDebug() << "Paged dialog geometry saved";
QDialog::closeEvent(event); QDialog::closeEvent(event);
} }

View File

@ -32,7 +32,7 @@
#include "minecraft/auth/AccountTask.h" #include "minecraft/auth/AccountTask.h"
#include "minecraft/services/SkinDelete.h" #include "minecraft/services/SkinDelete.h"
#include "MultiMC.h" #include "Launcher.h"
#include "BuildConfig.h" #include "BuildConfig.h"
#include <dialogs/MSALoginDialog.h> #include <dialogs/MSALoginDialog.h>
@ -50,7 +50,7 @@ AccountListPage::AccountListPage(QWidget *parent)
ui->listView->setEmptyMode(VersionListView::String); ui->listView->setEmptyMode(VersionListView::String);
ui->listView->setContextMenuPolicy(Qt::CustomContextMenu); ui->listView->setContextMenuPolicy(Qt::CustomContextMenu);
m_accounts = MMC->accounts(); m_accounts = LAUNCHER->accounts();
ui->listView->setModel(m_accounts.get()); ui->listView->setModel(m_accounts.get());
ui->listView->header()->setSectionResizeMode(0, QHeaderView::Stretch); ui->listView->header()->setSectionResizeMode(0, QHeaderView::Stretch);

View File

@ -21,7 +21,7 @@
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include "minecraft/auth/AccountList.h" #include "minecraft/auth/AccountList.h"
#include "MultiMC.h" #include "Launcher.h"
namespace Ui namespace Ui
{ {
@ -43,10 +43,10 @@ public:
} }
QIcon icon() const override QIcon icon() const override
{ {
auto icon = MMC->getThemedIcon("accounts"); auto icon = LAUNCHER->getThemedIcon("accounts");
if(icon.isNull()) if(icon.isNull())
{ {
icon = MMC->getThemedIcon("noaccount"); icon = LAUNCHER->getThemedIcon("noaccount");
} }
return icon; return icon;
} }

View File

@ -32,7 +32,7 @@ bool CustomCommandsPage::apply()
void CustomCommandsPage::applySettings() void CustomCommandsPage::applySettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
s->set("PreLaunchCommand", commands->prelaunchCommand()); s->set("PreLaunchCommand", commands->prelaunchCommand());
s->set("WrapperCommand", commands->wrapperCommand()); s->set("WrapperCommand", commands->wrapperCommand());
s->set("PostExitCommand", commands->postexitCommand()); s->set("PostExitCommand", commands->postexitCommand());
@ -40,7 +40,7 @@ void CustomCommandsPage::applySettings()
void CustomCommandsPage::loadSettings() void CustomCommandsPage::loadSettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
commands->initialize( commands->initialize(
false, false,
true, true,

View File

@ -19,7 +19,7 @@
#include <QDialog> #include <QDialog>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
#include "widgets/CustomCommands.h" #include "widgets/CustomCommands.h"
class CustomCommandsPage : public QWidget, public BasePage class CustomCommandsPage : public QWidget, public BasePage
@ -36,7 +36,7 @@ public:
} }
QIcon icon() const override QIcon icon() const override
{ {
return MMC->getThemedIcon("custom-commands"); return LAUNCHER->getThemedIcon("custom-commands");
} }
QString id() const override QString id() const override
{ {

View File

@ -24,7 +24,7 @@
#include "settings/SettingsObject.h" #include "settings/SettingsObject.h"
#include "tools/BaseProfiler.h" #include "tools/BaseProfiler.h"
#include <FileSystem.h> #include <FileSystem.h>
#include "MultiMC.h" #include "Launcher.h"
#include <tools/MCEditTool.h> #include <tools/MCEditTool.h>
ExternalToolsPage::ExternalToolsPage(QWidget *parent) : ExternalToolsPage::ExternalToolsPage(QWidget *parent) :
@ -51,7 +51,7 @@ ExternalToolsPage::~ExternalToolsPage()
void ExternalToolsPage::loadSettings() void ExternalToolsPage::loadSettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
ui->jprofilerPathEdit->setText(s->get("JProfilerPath").toString()); ui->jprofilerPathEdit->setText(s->get("JProfilerPath").toString());
ui->jvisualvmPathEdit->setText(s->get("JVisualVMPath").toString()); ui->jvisualvmPathEdit->setText(s->get("JVisualVMPath").toString());
ui->mceditPathEdit->setText(s->get("MCEditPath").toString()); ui->mceditPathEdit->setText(s->get("MCEditPath").toString());
@ -61,7 +61,7 @@ void ExternalToolsPage::loadSettings()
} }
void ExternalToolsPage::applySettings() void ExternalToolsPage::applySettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
s->set("JProfilerPath", ui->jprofilerPathEdit->text()); s->set("JProfilerPath", ui->jprofilerPathEdit->text());
s->set("JVisualVMPath", ui->jvisualvmPathEdit->text()); s->set("JVisualVMPath", ui->jvisualvmPathEdit->text());
@ -93,7 +93,7 @@ void ExternalToolsPage::on_jprofilerPathBtn_clicked()
break; break;
} }
QString cooked_dir = FS::NormalizePath(raw_dir); 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)); QMessageBox::critical(this, tr("Error"), tr("Error while checking JProfiler install:\n%1").arg(error));
continue; continue;
@ -108,7 +108,7 @@ void ExternalToolsPage::on_jprofilerPathBtn_clicked()
void ExternalToolsPage::on_jprofilerCheckBtn_clicked() void ExternalToolsPage::on_jprofilerCheckBtn_clicked()
{ {
QString error; 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)); 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; break;
} }
QString cooked_dir = FS::NormalizePath(raw_dir); 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)); QMessageBox::critical(this, tr("Error"), tr("Error while checking JVisualVM install:\n%1").arg(error));
continue; continue;
@ -145,7 +145,7 @@ void ExternalToolsPage::on_jvisualvmPathBtn_clicked()
void ExternalToolsPage::on_jvisualvmCheckBtn_clicked() void ExternalToolsPage::on_jvisualvmCheckBtn_clicked()
{ {
QString error; 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)); 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; break;
} }
QString cooked_dir = FS::NormalizePath(raw_dir); 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)); QMessageBox::critical(this, tr("Error"), tr("Error while checking MCEdit install:\n%1").arg(error));
continue; continue;
@ -186,7 +186,7 @@ void ExternalToolsPage::on_mceditPathBtn_clicked()
void ExternalToolsPage::on_mceditCheckBtn_clicked() void ExternalToolsPage::on_mceditCheckBtn_clicked()
{ {
QString error; 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)); QMessageBox::critical(this, tr("Error"), tr("Error while checking MCEdit install:\n%1").arg(error));
} }

View File

@ -18,7 +18,7 @@
#include <QWidget> #include <QWidget>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
namespace Ui { namespace Ui {
class ExternalToolsPage; class ExternalToolsPage;
@ -38,10 +38,10 @@ public:
} }
QIcon icon() const override QIcon icon() const override
{ {
auto icon = MMC->getThemedIcon("externaltools"); auto icon = LAUNCHER->getThemedIcon("externaltools");
if(icon.isNull()) if(icon.isNull())
{ {
icon = MMC->getThemedIcon("loadermods"); icon = LAUNCHER->getThemedIcon("loadermods");
} }
return icon; return icon;
} }

View File

@ -29,7 +29,7 @@
#include "settings/SettingsObject.h" #include "settings/SettingsObject.h"
#include <FileSystem.h> #include <FileSystem.h>
#include "MultiMC.h" #include "Launcher.h"
#include <sys.h> #include <sys.h>
JavaPage::JavaPage(QWidget *parent) : QWidget(parent), ui(new Ui::JavaPage) JavaPage::JavaPage(QWidget *parent) : QWidget(parent), ui(new Ui::JavaPage)
@ -55,7 +55,7 @@ bool JavaPage::apply()
void JavaPage::applySettings() void JavaPage::applySettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
// Memory // Memory
int min = ui->minMemSpinBox->value(); int min = ui->minMemSpinBox->value();
@ -79,7 +79,7 @@ void JavaPage::applySettings()
} }
void JavaPage::loadSettings() void JavaPage::loadSettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
// Memory // Memory
int min = s->get("MinMemAlloc").toInt(); int min = s->get("MinMemAlloc").toInt();
int max = s->get("MaxMemAlloc").toInt(); int max = s->get("MaxMemAlloc").toInt();
@ -104,7 +104,7 @@ void JavaPage::on_javaDetectBtn_clicked()
{ {
JavaInstallPtr java; 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.setResizeOn(2);
vselect.exec(); vselect.exec();

View File

@ -19,7 +19,7 @@
#include <QDialog> #include <QDialog>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include "JavaCommon.h" #include "JavaCommon.h"
#include <MultiMC.h> #include <Launcher.h>
#include <QObjectPtr.h> #include <QObjectPtr.h>
class SettingsObject; class SettingsObject;
@ -43,7 +43,7 @@ public:
} }
QIcon icon() const override QIcon icon() const override
{ {
return MMC->getThemedIcon("java"); return LAUNCHER->getThemedIcon("java");
} }
QString id() const override QString id() const override
{ {

View File

@ -26,7 +26,7 @@ bool LanguagePage::apply()
void LanguagePage::applySettings() void LanguagePage::applySettings()
{ {
auto settings = MMC->settings(); auto settings = LAUNCHER->settings();
QString key = mainWidget->getSelectedLanguageKey(); QString key = mainWidget->getSelectedLanguageKey();
settings->set("Language", key); settings->set("Language", key);
} }

View File

@ -17,7 +17,7 @@
#include <memory> #include <memory>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
#include <QWidget> #include <QWidget>
class LanguageSelectionWidget; class LanguageSelectionWidget;
@ -36,7 +36,7 @@ public:
} }
QIcon icon() const override QIcon icon() const override
{ {
return MMC->getThemedIcon("language"); return LAUNCHER->getThemedIcon("language");
} }
QString id() const override QString id() const override
{ {

View File

@ -13,8 +13,8 @@
* limitations under the License. * limitations under the License.
*/ */
#include "MultiMCPage.h" #include "LauncherPage.h"
#include "ui_MultiMCPage.h" #include "ui_LauncherPage.h"
#include <QFileDialog> #include <QFileDialog>
#include <QMessageBox> #include <QMessageBox>
@ -25,7 +25,7 @@
#include "settings/SettingsObject.h" #include "settings/SettingsObject.h"
#include <FileSystem.h> #include <FileSystem.h>
#include "MultiMC.h" #include "Launcher.h"
#include "BuildConfig.h" #include "BuildConfig.h"
#include "themes/ITheme.h" #include "themes/ITheme.h"
@ -41,7 +41,7 @@ enum InstSortMode
Sort_LastLaunch 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); ui->setupUi(this);
auto origForeground = ui->fontPreview->palette().color(ui->fontPreview->foregroundRole()); 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()); defaultFormat = new QTextCharFormat(ui->fontPreview->currentCharFormat());
m_languageModel = MMC->translations(); m_languageModel = LAUNCHER->translations();
loadSettings(); loadSettings();
if(BuildConfig.UPDATER_ENABLED) 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(); refreshUpdateChannelList();
} }
else else
{ {
MMC->updateChecker()->updateChanList(false); LAUNCHER->updateChecker()->updateChanList(false);
} }
} }
else else
@ -89,19 +89,19 @@ MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCP
} }
} }
MultiMCPage::~MultiMCPage() LauncherPage::~LauncherPage()
{ {
delete ui; delete ui;
delete defaultFormat; delete defaultFormat;
} }
bool MultiMCPage::apply() bool LauncherPage::apply()
{ {
applySettings(); applySettings();
return true; return true;
} }
void MultiMCPage::on_instDirBrowseBtn_clicked() void LauncherPage::on_instDirBrowseBtn_clicked()
{ {
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Instance Folder"), ui->instDirTextBox->text()); 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()); 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); 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()); 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); ui->modsDirTextBox->setText(cooked_dir);
} }
} }
void MultiMCPage::on_migrateDataFolderMacBtn_clicked() void LauncherPage::on_migrateDataFolderMacBtn_clicked()
{ {
QFile file(QDir::current().absolutePath() + "/dontmovemacdata"); QFile file(QDir::current().absolutePath() + "/dontmovemacdata");
file.remove(); file.remove();
@ -163,7 +163,7 @@ void MultiMCPage::on_migrateDataFolderMacBtn_clicked()
qApp->quit(); 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 // Stop listening for selection changes. It's going to change a lot while we update it and
// we don't need to update the // we don't need to update the
@ -171,7 +171,7 @@ void MultiMCPage::refreshUpdateChannelList()
QObject::disconnect(ui->updateChannelComboBox, SIGNAL(currentIndexChanged(int)), this, QObject::disconnect(ui->updateChannelComboBox, SIGNAL(currentIndexChanged(int)), this,
SLOT(updateChannelSelectionChanged(int))); SLOT(updateChannelSelectionChanged(int)));
QList<UpdateChecker::ChannelListEntry> channelList = MMC->updateChecker()->getChannelList(); QList<UpdateChecker::ChannelListEntry> channelList = LAUNCHER->updateChecker()->getChannelList();
ui->updateChannelComboBox->clear(); ui->updateChannelComboBox->clear();
int selection = -1; int selection = -1;
for (int i = 0; i < channelList.count(); i++) for (int i = 0; i < channelList.count(); i++)
@ -208,15 +208,15 @@ void MultiMCPage::refreshUpdateChannelList()
ui->updateChannelComboBox->setEnabled(true); ui->updateChannelComboBox->setEnabled(true);
} }
void MultiMCPage::updateChannelSelectionChanged(int index) void LauncherPage::updateChannelSelectionChanged(int index)
{ {
refreshUpdateChannelDesc(); refreshUpdateChannelDesc();
} }
void MultiMCPage::refreshUpdateChannelDesc() void LauncherPage::refreshUpdateChannelDesc()
{ {
// Get the channel list. // Get the channel list.
QList<UpdateChecker::ChannelListEntry> channelList = MMC->updateChecker()->getChannelList(); QList<UpdateChecker::ChannelListEntry> channelList = LAUNCHER->updateChecker()->getChannelList();
int selectedIndex = ui->updateChannelComboBox->currentIndex(); int selectedIndex = ui->updateChannelComboBox->currentIndex();
if (selectedIndex < 0) 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()) if (ui->resetNotificationsBtn->isChecked())
{ {
@ -283,7 +283,7 @@ void MultiMCPage::applySettings()
if(original != s->get("IconTheme")) if(original != s->get("IconTheme"))
{ {
MMC->setIconTheme(s->get("IconTheme").toString()); LAUNCHER->setIconTheme(s->get("IconTheme").toString());
} }
auto originalAppTheme = s->get("ApplicationTheme").toString(); auto originalAppTheme = s->get("ApplicationTheme").toString();
@ -291,7 +291,7 @@ void MultiMCPage::applySettings()
if(originalAppTheme != newAppTheme) if(originalAppTheme != newAppTheme)
{ {
s->set("ApplicationTheme", newAppTheme); s->set("ApplicationTheme", newAppTheme);
MMC->setApplicationTheme(newAppTheme, false); LAUNCHER->setApplicationTheme(newAppTheme, false);
} }
// Console settings // Console settings
@ -328,9 +328,9 @@ void MultiMCPage::applySettings()
s->set("Analytics", ui->analyticsCheck->isChecked()); s->set("Analytics", ui->analyticsCheck->isChecked());
} }
} }
void MultiMCPage::loadSettings() void LauncherPage::loadSettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
// Updates // Updates
ui->autoUpdateCheckBox->setChecked(s->get("AutoUpdate").toBool()); ui->autoUpdateCheckBox->setChecked(s->get("AutoUpdate").toBool());
m_currentUpdateChannel = s->get("UpdateChannel").toString(); m_currentUpdateChannel = s->get("UpdateChannel").toString();
@ -375,7 +375,7 @@ void MultiMCPage::loadSettings()
{ {
auto currentTheme = s->get("ApplicationTheme").toString(); auto currentTheme = s->get("ApplicationTheme").toString();
auto themes = MMC->getValidApplicationThemes(); auto themes = LAUNCHER->getValidApplicationThemes();
int idx = 0; int idx = 0;
for(auto &theme: themes) for(auto &theme: themes)
{ {
@ -392,12 +392,12 @@ void MultiMCPage::loadSettings()
ui->showConsoleCheck->setChecked(s->get("ShowConsole").toBool()); ui->showConsoleCheck->setChecked(s->get("ShowConsole").toBool());
ui->autoCloseConsoleCheck->setChecked(s->get("AutoCloseConsole").toBool()); ui->autoCloseConsoleCheck->setChecked(s->get("AutoCloseConsole").toBool());
ui->showConsoleErrorCheck->setChecked(s->get("ShowConsoleOnError").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); QFont consoleFont(fontFamily);
ui->consoleFont->setCurrentFont(consoleFont); ui->consoleFont->setCurrentFont(consoleFont);
bool conversionOk = true; bool conversionOk = true;
int fontSize = MMC->settings()->get("ConsoleFontSize").toInt(&conversionOk); int fontSize = LAUNCHER->settings()->get("ConsoleFontSize").toInt(&conversionOk);
if(!conversionOk) if(!conversionOk)
{ {
fontSize = 11; fontSize = 11;
@ -430,7 +430,7 @@ void MultiMCPage::loadSettings()
} }
} }
void MultiMCPage::refreshFontPreview() void LauncherPage::refreshFontPreview()
{ {
int fontSize = ui->fontSizeBox->value(); int fontSize = ui->fontSizeBox->value();
QString fontFamily = ui->consoleFont->currentFont().family(); QString fontFamily = ui->consoleFont->currentFont().family();

View File

@ -20,7 +20,7 @@
#include "java/JavaChecker.h" #include "java/JavaChecker.h"
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
#include "ColorCache.h" #include "ColorCache.h"
#include <translations/TranslationsModel.h> #include <translations/TranslationsModel.h>
@ -29,16 +29,16 @@ class SettingsObject;
namespace Ui namespace Ui
{ {
class MultiMCPage; class LauncherPage;
} }
class MultiMCPage : public QWidget, public BasePage class LauncherPage : public QWidget, public BasePage
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit MultiMCPage(QWidget *parent = 0); explicit LauncherPage(QWidget *parent = 0);
~MultiMCPage(); ~LauncherPage();
QString displayName() const override QString displayName() const override
{ {
@ -46,7 +46,7 @@ public:
} }
QIcon icon() const override QIcon icon() const override
{ {
return MMC->getThemedIcon("multimc"); return LAUNCHER->getThemedIcon("multimc");
} }
QString id() const override QString id() const override
{ {
@ -87,7 +87,7 @@ slots:
void updateChannelSelectionChanged(int index); void updateChannelSelectionChanged(int index);
private: private:
Ui::MultiMCPage *ui; Ui::LauncherPage *ui;
/*! /*!
* Stores the currently selected update channel. * Stores the currently selected update channel.

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>MultiMCPage</class> <class>LauncherPage</class>
<widget class="QWidget" name="MultiMCPage"> <widget class="QWidget" name="LauncherPage">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>

View File

@ -21,7 +21,7 @@
#include <QTabBar> #include <QTabBar>
#include "settings/SettingsObject.h" #include "settings/SettingsObject.h"
#include "MultiMC.h" #include "Launcher.h"
MinecraftPage::MinecraftPage(QWidget *parent) : QWidget(parent), ui(new Ui::MinecraftPage) MinecraftPage::MinecraftPage(QWidget *parent) : QWidget(parent), ui(new Ui::MinecraftPage)
{ {
@ -57,7 +57,7 @@ void MinecraftPage::on_maximizedCheckBox_clicked(bool checked)
void MinecraftPage::applySettings() void MinecraftPage::applySettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
// Window Size // Window Size
s->set("LaunchMaximized", ui->maximizedCheckBox->isChecked()); s->set("LaunchMaximized", ui->maximizedCheckBox->isChecked());
@ -75,7 +75,7 @@ void MinecraftPage::applySettings()
void MinecraftPage::loadSettings() void MinecraftPage::loadSettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
// Window Size // Window Size
ui->maximizedCheckBox->setChecked(s->get("LaunchMaximized").toBool()); ui->maximizedCheckBox->setChecked(s->get("LaunchMaximized").toBool());

View File

@ -20,7 +20,7 @@
#include "java/JavaChecker.h" #include "java/JavaChecker.h"
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
class SettingsObject; class SettingsObject;
@ -43,7 +43,7 @@ public:
} }
QIcon icon() const override QIcon icon() const override
{ {
return MMC->getThemedIcon("minecraft"); return LAUNCHER->getThemedIcon("minecraft");
} }
QString id() const override QString id() const override
{ {

View File

@ -23,7 +23,7 @@
#include "settings/SettingsObject.h" #include "settings/SettingsObject.h"
#include "tools/BaseProfiler.h" #include "tools/BaseProfiler.h"
#include "MultiMC.h" #include "Launcher.h"
PasteEEPage::PasteEEPage(QWidget *parent) : PasteEEPage::PasteEEPage(QWidget *parent) :
QWidget(parent), QWidget(parent),
@ -42,7 +42,7 @@ PasteEEPage::~PasteEEPage()
void PasteEEPage::loadSettings() void PasteEEPage::loadSettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
QString keyToUse = s->get("PasteEEAPIKey").toString(); QString keyToUse = s->get("PasteEEAPIKey").toString();
if(keyToUse == "multimc") if(keyToUse == "multimc")
{ {
@ -57,7 +57,7 @@ void PasteEEPage::loadSettings()
void PasteEEPage::applySettings() void PasteEEPage::applySettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
QString pasteKeyToUse; QString pasteKeyToUse;
if (ui->customButton->isChecked()) if (ui->customButton->isChecked())

View File

@ -18,7 +18,7 @@
#include <QWidget> #include <QWidget>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
namespace Ui { namespace Ui {
class PasteEEPage; class PasteEEPage;
@ -38,7 +38,7 @@ public:
} }
QIcon icon() const override QIcon icon() const override
{ {
return MMC->getThemedIcon("log"); return LAUNCHER->getThemedIcon("log");
} }
QString id() const override QString id() const override
{ {

View File

@ -19,7 +19,7 @@
#include <QTabBar> #include <QTabBar>
#include "settings/SettingsObject.h" #include "settings/SettingsObject.h"
#include "MultiMC.h" #include "Launcher.h"
#include "Env.h" #include "Env.h"
ProxyPage::ProxyPage(QWidget *parent) : QWidget(parent), ui(new Ui::ProxyPage) ProxyPage::ProxyPage(QWidget *parent) : QWidget(parent), ui(new Ui::ProxyPage)
@ -58,7 +58,7 @@ void ProxyPage::proxyChanged(int)
void ProxyPage::applySettings() void ProxyPage::applySettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
// Proxy // Proxy
QString proxyType = "None"; QString proxyType = "None";
@ -82,7 +82,7 @@ void ProxyPage::applySettings()
} }
void ProxyPage::loadSettings() void ProxyPage::loadSettings()
{ {
auto s = MMC->settings(); auto s = LAUNCHER->settings();
// Proxy // Proxy
QString proxyType = s->get("ProxyType").toString(); QString proxyType = s->get("ProxyType").toString();
if (proxyType == "Default") if (proxyType == "Default")

View File

@ -19,7 +19,7 @@
#include <QDialog> #include <QDialog>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
namespace Ui namespace Ui
{ {
@ -40,7 +40,7 @@ public:
} }
QIcon icon() const override QIcon icon() const override
{ {
return MMC->getThemedIcon("proxy"); return LAUNCHER->getThemedIcon("proxy");
} }
QString id() const override QString id() const override
{ {

View File

@ -19,7 +19,7 @@
#include <QString> #include <QString>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
namespace Ui namespace Ui
{ {
@ -46,7 +46,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("settings"); return LAUNCHER->getThemedIcon("settings");
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -7,7 +7,7 @@
#include "dialogs/VersionSelectDialog.h" #include "dialogs/VersionSelectDialog.h"
#include "JavaCommon.h" #include "JavaCommon.h"
#include "MultiMC.h" #include "Launcher.h"
#include <java/JavaInstallList.h> #include <java/JavaInstallList.h>
#include <FileSystem.h> #include <FileSystem.h>
@ -22,8 +22,8 @@ InstanceSettingsPage::InstanceSettingsPage(BaseInstance *inst, QWidget *parent)
auto sysMB = Sys::getSystemRam() / Sys::mebibyte; auto sysMB = Sys::getSystemRam() / Sys::mebibyte;
ui->maxMemSpinBox->setMaximum(sysMB); ui->maxMemSpinBox->setMaximum(sysMB);
connect(ui->openGlobalJavaSettingsButton, &QCommandLinkButton::clicked, this, &InstanceSettingsPage::globalSettingsButtonClicked); connect(ui->openGlobalJavaSettingsButton, &QCommandLinkButton::clicked, this, &InstanceSettingsPage::globalSettingsButtonClicked);
connect(MMC, &MultiMC::globalSettingsAboutToOpen, this, &InstanceSettingsPage::applySettings); connect(LAUNCHER, &Launcher::globalSettingsAboutToOpen, this, &InstanceSettingsPage::applySettings);
connect(MMC, &MultiMC::globalSettingsClosed, this, &InstanceSettingsPage::loadSettings); connect(LAUNCHER, &Launcher::globalSettingsClosed, this, &InstanceSettingsPage::loadSettings);
loadSettings(); loadSettings();
} }
@ -41,13 +41,13 @@ void InstanceSettingsPage::globalSettingsButtonClicked(bool)
{ {
switch(ui->settingsTabs->currentIndex()) { switch(ui->settingsTabs->currentIndex()) {
case 0: case 0:
MMC->ShowGlobalSettings(this, "java-settings"); LAUNCHER->ShowGlobalSettings(this, "java-settings");
return; return;
case 1: case 1:
MMC->ShowGlobalSettings(this, "minecraft-settings"); LAUNCHER->ShowGlobalSettings(this, "minecraft-settings");
return; return;
case 2: case 2:
MMC->ShowGlobalSettings(this, "custom-commands"); LAUNCHER->ShowGlobalSettings(this, "custom-commands");
return; return;
} }
} }
@ -278,7 +278,7 @@ void InstanceSettingsPage::on_javaDetectBtn_clicked()
{ {
JavaInstallPtr java; 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.setResizeOn(2);
vselect.exec(); vselect.exec();

View File

@ -22,7 +22,7 @@
#include <QObjectPtr.h> #include <QObjectPtr.h>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include "JavaCommon.h" #include "JavaCommon.h"
#include "MultiMC.h" #include "Launcher.h"
class JavaChecker; class JavaChecker;
namespace Ui namespace Ui
@ -43,7 +43,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("instance-settings"); return LAUNCHER->getThemedIcon("instance-settings");
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -4,7 +4,7 @@
#include "InstanceList.h" #include "InstanceList.h"
#include "minecraft/legacy/LegacyInstance.h" #include "minecraft/legacy/LegacyInstance.h"
#include "minecraft/legacy/LegacyUpgradeTask.h" #include "minecraft/legacy/LegacyUpgradeTask.h"
#include "MultiMC.h" #include "Launcher.h"
#include "dialogs/CustomMessageBox.h" #include "dialogs/CustomMessageBox.h"
#include "dialogs/ProgressDialog.h" #include "dialogs/ProgressDialog.h"
@ -38,9 +38,9 @@ void LegacyUpgradePage::on_upgradeButton_clicked()
QString newName = tr("%1 (Migrated)").arg(m_inst->name()); QString newName = tr("%1 (Migrated)").arg(m_inst->name());
auto upgradeTask = new LegacyUpgradeTask(m_inst); auto upgradeTask = new LegacyUpgradeTask(m_inst);
upgradeTask->setName(newName); upgradeTask->setName(newName);
upgradeTask->setGroup(MMC->instances()->getInstanceGroup(m_inst->id())); upgradeTask->setGroup(LAUNCHER->instances()->getInstanceGroup(m_inst->id()));
upgradeTask->setIcon(m_inst->iconKey()); 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()); runModalTask(task.get());
} }

View File

@ -19,7 +19,7 @@
#include "minecraft/legacy/LegacyInstance.h" #include "minecraft/legacy/LegacyInstance.h"
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
#include "tasks/Task.h" #include "tasks/Task.h"
namespace Ui namespace Ui
@ -40,7 +40,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("checkupdate"); return LAUNCHER->getThemedIcon("checkupdate");
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -1,7 +1,7 @@
#include "LogPage.h" #include "LogPage.h"
#include "ui_LogPage.h" #include "ui_LogPage.h"
#include "MultiMC.h" #include "Launcher.h"
#include <QIcon> #include <QIcon>
#include <QScrollBar> #include <QScrollBar>
@ -124,9 +124,9 @@ LogPage::LogPage(InstancePtr instance, QWidget *parent)
// set up fonts in the log proxy // set up fonts in the log proxy
{ {
QString fontFamily = MMC->settings()->get("ConsoleFont").toString(); QString fontFamily = LAUNCHER->settings()->get("ConsoleFont").toString();
bool conversionOk = false; bool conversionOk = false;
int fontSize = MMC->settings()->get("ConsoleFontSize").toInt(&conversionOk); int fontSize = LAUNCHER->settings()->get("ConsoleFontSize").toInt(&conversionOk);
if(!conversionOk) if(!conversionOk)
{ {
fontSize = 11; fontSize = 11;

View File

@ -20,7 +20,7 @@
#include "BaseInstance.h" #include "BaseInstance.h"
#include "launch/LaunchTask.h" #include "launch/LaunchTask.h"
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
namespace Ui namespace Ui
{ {
@ -42,7 +42,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("log"); return LAUNCHER->getThemedIcon("log");
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -22,7 +22,7 @@
#include <QAbstractItemModel> #include <QAbstractItemModel>
#include <QMenu> #include <QMenu>
#include "MultiMC.h" #include "Launcher.h"
#include "dialogs/CustomMessageBox.h" #include "dialogs/CustomMessageBox.h"
#include <GuiUtil.h> #include <GuiUtil.h>
#include "minecraft/mod/ModFolderModel.h" #include "minecraft/mod/ModFolderModel.h"
@ -301,7 +301,7 @@ void ModFolderPage::on_actionAdd_triggered()
tr("Select %1", tr("Select %1",
"Select whatever type of files the page contains. Example: 'Loader Mods'") "Select whatever type of files the page contains. Example: 'Loader Mods'")
.arg(m_displayName), .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()); this->parentWidget());
if (!list.empty()) if (!list.empty())
{ {

View File

@ -19,7 +19,7 @@
#include "minecraft/MinecraftInstance.h" #include "minecraft/MinecraftInstance.h"
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
class ModFolderModel; class ModFolderModel;
namespace Ui namespace Ui
@ -54,7 +54,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon(m_iconName); return LAUNCHER->getThemedIcon(m_iconName);
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -19,7 +19,7 @@
#include "BaseInstance.h" #include "BaseInstance.h"
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
namespace Ui namespace Ui
{ {
@ -39,9 +39,9 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
auto icon = MMC->getThemedIcon("notes"); auto icon = LAUNCHER->getThemedIcon("notes");
if(icon.isNull()) if(icon.isNull())
icon = MMC->getThemedIcon("news"); icon = LAUNCHER->getThemedIcon("news");
return icon; return icon;
} }
virtual QString id() const override virtual QString id() const override

View File

@ -129,9 +129,9 @@ void OtherLogsPage::on_btnReload_clicked()
{ {
auto setPlainText = [&](const QString & text) auto setPlainText = [&](const QString & text)
{ {
QString fontFamily = MMC->settings()->get("ConsoleFont").toString(); QString fontFamily = LAUNCHER->settings()->get("ConsoleFont").toString();
bool conversionOk = false; bool conversionOk = false;
int fontSize = MMC->settings()->get("ConsoleFontSize").toInt(&conversionOk); int fontSize = LAUNCHER->settings()->get("ConsoleFontSize").toInt(&conversionOk);
if(!conversionOk) if(!conversionOk)
{ {
fontSize = 11; fontSize = 11;

View File

@ -18,7 +18,7 @@
#include <QWidget> #include <QWidget>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
#include <pathmatcher/IPathMatcher.h> #include <pathmatcher/IPathMatcher.h>
namespace Ui namespace Ui
@ -46,7 +46,7 @@ public:
} }
QIcon icon() const override QIcon icon() const override
{ {
return MMC->getThemedIcon("log"); return LAUNCHER->getThemedIcon("log");
} }
QString helpPage() const override QString helpPage() const override
{ {

View File

@ -15,7 +15,7 @@
#include <QKeyEvent> #include <QKeyEvent>
#include <QMenu> #include <QMenu>
#include <MultiMC.h> #include <Launcher.h>
#include "dialogs/ProgressDialog.h" #include "dialogs/ProgressDialog.h"
#include "dialogs/CustomMessageBox.h" #include "dialogs/CustomMessageBox.h"
@ -104,7 +104,7 @@ public:
{ {
m_thumbnailingPool.setMaxThreadCount(4); m_thumbnailingPool.setMaxThreadCount(4);
m_thumbnailCache = std::make_shared<SharedIconCache>(); 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))); connect(&watcher, SIGNAL(fileChanged(QString)), SLOT(fileChanged(QString)));
// FIXME: the watched file set is not updated when files are removed // FIXME: the watched file set is not updated when files are removed
} }

View File

@ -18,7 +18,7 @@
#include <QMainWindow> #include <QMainWindow>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
class QFileSystemModel; class QFileSystemModel;
class QIdentityProxyModel; class QIdentityProxyModel;
@ -53,7 +53,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("screenshots"); return LAUNCHER->getThemedIcon("screenshots");
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -324,7 +324,7 @@ public:
if(px.loadFromData(bytes)) if(px.loadFromData(bytes))
return QIcon(px); return QIcon(px);
} }
return MMC->getThemedIcon("unknown_server"); return LAUNCHER->getThemedIcon("unknown_server");
} }
case Qt::DisplayRole: case Qt::DisplayRole:
return m_servers[row].m_name; return m_servers[row].m_name;
@ -762,7 +762,7 @@ void ServersPage::on_actionMove_Down_triggered()
void ServersPage::on_actionJoin_triggered() void ServersPage::on_actionJoin_triggered()
{ {
const auto &address = m_model->at(currentServer)->m_address; 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" #include "ServersPage.moc"

View File

@ -19,7 +19,7 @@
#include <QString> #include <QString>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
namespace Ui namespace Ui
{ {
@ -47,7 +47,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("unknown_server"); return LAUNCHER->getThemedIcon("unknown_server");
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -13,7 +13,7 @@
* limitations under the License. * limitations under the License.
*/ */
#include "MultiMC.h" #include "Launcher.h"
#include <QMessageBox> #include <QMessageBox>
#include <QLabel> #include <QLabel>
@ -70,14 +70,14 @@ public:
auto string = var.toString(); auto string = var.toString();
if(string == "warning") if(string == "warning")
{ {
return MMC->getThemedIcon("status-yellow"); return LAUNCHER->getThemedIcon("status-yellow");
} }
else if(string == "error") 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; return var;
} }
@ -93,7 +93,7 @@ private:
QIcon VersionPage::icon() const QIcon VersionPage::icon() const
{ {
return MMC->icons()->getIcon(m_inst->iconKey()); return LAUNCHER->icons()->getIcon(m_inst->iconKey());
} }
bool VersionPage::shouldDisplay() const bool VersionPage::shouldDisplay() const
{ {
@ -297,7 +297,7 @@ void VersionPage::on_actionInstall_mods_triggered()
void VersionPage::on_actionAdd_to_Minecraft_jar_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()) if(!list.empty())
{ {
m_profile->installJarMods(list); m_profile->installJarMods(list);
@ -307,7 +307,7 @@ void VersionPage::on_actionAdd_to_Minecraft_jar_triggered()
void VersionPage::on_actionReplace_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()) if(!jarPath.isEmpty())
{ {
m_profile->installCustomJar(jarPath); m_profile->installCustomJar(jarPath);
@ -395,7 +395,7 @@ void VersionPage::on_actionChange_version_triggered()
void VersionPage::on_actionDownload_All_triggered() void VersionPage::on_actionDownload_All_triggered()
{ {
if (!MMC->accounts()->anyAccountIsValid()) if (!LAUNCHER->accounts()->anyAccountIsValid())
{ {
CustomMessageBox::selectable( CustomMessageBox::selectable(
this, tr("Error"), this, tr("Error"),
@ -614,7 +614,7 @@ void VersionPage::on_actionEdit_triggered()
qWarning() << "file" << filename << "can't be opened for editing, doesn't exist!"; qWarning() << "file" << filename << "can't be opened for editing, doesn't exist!";
return; return;
} }
MMC->openJsonEditor(filename); LAUNCHER->openJsonEditor(filename);
} }
void VersionPage::on_actionRevert_triggered() void VersionPage::on_actionRevert_triggered()

View File

@ -26,7 +26,7 @@
#include <QInputDialog> #include <QInputDialog>
#include <tools/MCEditTool.h> #include <tools/MCEditTool.h>
#include "MultiMC.h" #include "Launcher.h"
#include <GuiUtil.h> #include <GuiUtil.h>
#include <QProcess> #include <QProcess>
#include <FileSystem.h> #include <FileSystem.h>
@ -48,7 +48,7 @@ public:
auto iconFile = worlds->data(sourceIndex, WorldList::IconFileRole).toString(); auto iconFile = worlds->data(sourceIndex, WorldList::IconFileRole).toString();
if(iconFile.isNull()) { if(iconFile.isNull()) {
// NOTE: Minecraft uses the same placeholder for servers AND worlds // NOTE: Minecraft uses the same placeholder for servers AND worlds
return MMC->getThemedIcon("unknown_server"); return LAUNCHER->getThemedIcon("unknown_server");
} }
return QIcon(iconFile); return QIcon(iconFile);
} }
@ -218,7 +218,7 @@ void WorldListPage::on_actionCopy_Seed_triggered()
return; return;
} }
int64_t seed = m_worlds->data(index, WorldList::SeedRole).toLongLong(); 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() void WorldListPage::on_actionMCEdit_triggered()
@ -226,7 +226,7 @@ void WorldListPage::on_actionMCEdit_triggered()
if(m_mceditStarting) if(m_mceditStarting)
return; return;
auto mcedit = MMC->mcedit(); auto mcedit = LAUNCHER->mcedit();
const QString mceditPath = mcedit->path(); const QString mceditPath = mcedit->path();

View File

@ -19,7 +19,7 @@
#include "minecraft/MinecraftInstance.h" #include "minecraft/MinecraftInstance.h"
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
#include <LoggedProcess.h> #include <LoggedProcess.h>
class WorldList; class WorldList;
@ -46,7 +46,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("worlds"); return LAUNCHER->getThemedIcon("worlds");
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -1,7 +1,7 @@
#include "ImportPage.h" #include "ImportPage.h"
#include "ui_ImportPage.h" #include "ui_ImportPage.h"
#include "MultiMC.h" #include "Launcher.h"
#include "dialogs/NewInstanceDialog.h" #include "dialogs/NewInstanceDialog.h"
#include <QFileDialog> #include <QFileDialog>
#include <QValidator> #include <QValidator>

View File

@ -18,7 +18,7 @@
#include <QWidget> #include <QWidget>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
#include "tasks/Task.h" #include "tasks/Task.h"
namespace Ui namespace Ui
@ -41,7 +41,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("viewfolder"); return LAUNCHER->getThemedIcon("viewfolder");
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -1,7 +1,7 @@
#include "VanillaPage.h" #include "VanillaPage.h"
#include "ui_VanillaPage.h" #include "ui_VanillaPage.h"
#include "MultiMC.h" #include "Launcher.h"
#include <meta/Index.h> #include <meta/Index.h>
#include <meta/VersionList.h> #include <meta/VersionList.h>

View File

@ -18,7 +18,7 @@
#include <QWidget> #include <QWidget>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
#include "tasks/Task.h" #include "tasks/Task.h"
namespace Ui namespace Ui
@ -41,7 +41,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("minecraft"); return LAUNCHER->getThemedIcon("minecraft");
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -1,7 +1,7 @@
#include "AtlListModel.h" #include "AtlListModel.h"
#include <BuildConfig.h> #include <BuildConfig.h>
#include <MultiMC.h> #include <Launcher.h>
#include <Env.h> #include <Env.h>
#include <Json.h> #include <Json.h>
@ -48,7 +48,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
{ {
return (m_logoMap.value(pack.safeName)); 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()); auto url = QString(BuildConfig.ATL_DOWNLOAD_SERVER_URL + "launcher/images/%1.png").arg(pack.safeName.toLower());
((ListModel *)this)->requestLogo(pack.safeName, url); ((ListModel *)this)->requestLogo(pack.safeName, url);

View File

@ -139,7 +139,7 @@ QVector<QString> AtlPage::chooseOptionalMods(QVector<ATLauncher::VersionMod> mod
} }
QString AtlPage::chooseVersion(Meta::VersionListPtr vlist, QString minecraftVersion) { 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) { if (minecraftVersion != Q_NULLPTR) {
vselect.setExactFilter(BaseVersionList::ParentVersionRole, minecraftVersion); vselect.setExactFilter(BaseVersionList::ParentVersionRole, minecraftVersion);
vselect.setEmptyString(tr("No versions are currently available for Minecraft %1").arg(minecraftVersion)); vselect.setEmptyString(tr("No versions are currently available for Minecraft %1").arg(minecraftVersion));

View File

@ -21,7 +21,7 @@
#include <QWidget> #include <QWidget>
#include <modplatform/atlauncher/ATLPackInstallTask.h> #include <modplatform/atlauncher/ATLPackInstallTask.h>
#include "MultiMC.h" #include "Launcher.h"
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include "tasks/Task.h" #include "tasks/Task.h"
@ -45,7 +45,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("atlauncher"); return LAUNCHER->getThemedIcon("atlauncher");
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -1,5 +1,5 @@
#include "FlameModel.h" #include "FlameModel.h"
#include "MultiMC.h" #include "Launcher.h"
#include <Json.h> #include <Json.h>
#include <MMCStrings.h> #include <MMCStrings.h>
@ -62,7 +62,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
{ {
return (m_logoMap.value(pack.logoName)); 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); ((ListModel *)this)->requestLogo(pack.logoName, pack.logoUrl);
return icon; return icon;
} }

View File

@ -1,7 +1,7 @@
#include "FlamePage.h" #include "FlamePage.h"
#include "ui_FlamePage.h" #include "ui_FlamePage.h"
#include "MultiMC.h" #include "Launcher.h"
#include <Json.h> #include <Json.h>
#include "dialogs/NewInstanceDialog.h" #include "dialogs/NewInstanceDialog.h"
#include <InstanceImportTask.h> #include <InstanceImportTask.h>

View File

@ -18,7 +18,7 @@
#include <QWidget> #include <QWidget>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
#include "tasks/Task.h" #include "tasks/Task.h"
#include <modplatform/flame/FlamePackIndex.h> #include <modplatform/flame/FlamePackIndex.h>
@ -46,7 +46,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("flame"); return LAUNCHER->getThemedIcon("flame");
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -2,7 +2,7 @@
#include "BuildConfig.h" #include "BuildConfig.h"
#include "Env.h" #include "Env.h"
#include "MultiMC.h" #include "Launcher.h"
#include "Json.h" #include "Json.h"
#include <QPainter> #include <QPainter>
@ -46,7 +46,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
} }
else if(role == Qt::DecorationRole) else if(role == Qt::DecorationRole)
{ {
QIcon placeholder = MMC->getThemedIcon("screenshot-placeholder"); QIcon placeholder = LAUNCHER->getThemedIcon("screenshot-placeholder");
auto iter = m_logoMap.find(pack.name); auto iter = m_logoMap.find(pack.name);
if (iter != m_logoMap.end()) { if (iter != m_logoMap.end()) {

View File

@ -20,7 +20,7 @@
#include <QWidget> #include <QWidget>
#include "MultiMC.h" #include "Launcher.h"
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include "tasks/Task.h" #include "tasks/Task.h"
@ -44,7 +44,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("ftb_logo"); return LAUNCHER->getThemedIcon("ftb_logo");
} }
virtual QString id() const override virtual QString id() const override
{ {

View File

@ -1,5 +1,5 @@
#include "ListModel.h" #include "ListModel.h"
#include "MultiMC.h" #include "Launcher.h"
#include <MMCStrings.h> #include <MMCStrings.h>
#include <Version.h> #include <Version.h>
@ -130,7 +130,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
{ {
return (m_logoMap.value(pack.logo)); return (m_logoMap.value(pack.logo));
} }
QIcon icon = MMC->getThemedIcon("screenshot-placeholder"); QIcon icon = LAUNCHER->getThemedIcon("screenshot-placeholder");
((ListModel *)this)->requestLogo(pack.logo); ((ListModel *)this)->requestLogo(pack.logo);
return icon; return icon;
} }

View File

@ -3,7 +3,7 @@
#include <QInputDialog> #include <QInputDialog>
#include "MultiMC.h" #include "Launcher.h"
#include "dialogs/CustomMessageBox.h" #include "dialogs/CustomMessageBox.h"
#include "dialogs/NewInstanceDialog.h" #include "dialogs/NewInstanceDialog.h"
#include "modplatform/legacy_ftb/PackFetchTask.h" #include "modplatform/legacy_ftb/PackFetchTask.h"

View File

@ -20,7 +20,7 @@
#include <QTextBrowser> #include <QTextBrowser>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
#include "tasks/Task.h" #include "tasks/Task.h"
#include "modplatform/legacy_ftb/PackHelpers.h" #include "modplatform/legacy_ftb/PackHelpers.h"
#include "modplatform/legacy_ftb/PackFetchTask.h" #include "modplatform/legacy_ftb/PackFetchTask.h"
@ -54,7 +54,7 @@ public:
} }
QIcon icon() const override QIcon icon() const override
{ {
return MMC->getThemedIcon("ftb_logo"); return LAUNCHER->getThemedIcon("ftb_logo");
} }
QString id() const override QString id() const override
{ {

View File

@ -15,7 +15,7 @@
#include "TechnicModel.h" #include "TechnicModel.h"
#include "Env.h" #include "Env.h"
#include "MultiMC.h" #include "Launcher.h"
#include "Json.h" #include "Json.h"
#include <QIcon> #include <QIcon>
@ -47,7 +47,7 @@ QVariant Technic::ListModel::data(const QModelIndex& index, int role) const
{ {
return (m_logoMap.value(pack.logoName)); 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); ((ListModel *)this)->requestLogo(pack.logoName, pack.logoUrl);
return icon; return icon;
} }

View File

@ -16,7 +16,7 @@
#include "TechnicPage.h" #include "TechnicPage.h"
#include "ui_TechnicPage.h" #include "ui_TechnicPage.h"
#include "MultiMC.h" #include "Launcher.h"
#include "dialogs/NewInstanceDialog.h" #include "dialogs/NewInstanceDialog.h"
#include "TechnicModel.h" #include "TechnicModel.h"
#include <QKeyEvent> #include <QKeyEvent>

View File

@ -18,7 +18,7 @@
#include <QWidget> #include <QWidget>
#include "pages/BasePage.h" #include "pages/BasePage.h"
#include <MultiMC.h> #include <Launcher.h>
#include "tasks/Task.h" #include "tasks/Task.h"
#include "TechnicData.h" #include "TechnicData.h"
@ -46,7 +46,7 @@ public:
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("technic"); return LAUNCHER->getThemedIcon("technic");
} }
virtual QString id() const override virtual QString id() const override
{ {

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

View File

@ -1,5 +1,5 @@
#include "AnalyticsWizardPage.h" #include "AnalyticsWizardPage.h"
#include <MultiMC.h> #include <Launcher.h>
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QTextBrowser> #include <QTextBrowser>
@ -33,8 +33,8 @@ AnalyticsWizardPage::~AnalyticsWizardPage()
bool AnalyticsWizardPage::validatePage() bool AnalyticsWizardPage::validatePage()
{ {
auto settings = MMC->settings(); auto settings = LAUNCHER->settings();
auto analytics = MMC->analytics(); auto analytics = LAUNCHER->analytics();
auto status = checkBox->isChecked(); auto status = checkBox->isChecked();
settings->set("AnalyticsSeen", analytics->version()); settings->set("AnalyticsSeen", analytics->version());
settings->set("Analytics", status); settings->set("Analytics", status);

View File

@ -1,5 +1,5 @@
#include "JavaWizardPage.h" #include "JavaWizardPage.h"
#include <MultiMC.h> #include <Launcher.h>
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QGroupBox> #include <QGroupBox>
@ -55,7 +55,7 @@ bool JavaWizardPage::wantsRefreshButton()
bool JavaWizardPage::validatePage() bool JavaWizardPage::validatePage()
{ {
auto settings = MMC->settings(); auto settings = LAUNCHER->settings();
auto result = m_java_widget->validate(); auto result = m_java_widget->validate();
switch(result) switch(result)
{ {
@ -71,7 +71,7 @@ bool JavaWizardPage::validatePage()
case JavaSettingsWidget::ValidationStatus::JavaBad: case JavaSettingsWidget::ValidationStatus::JavaBad:
{ {
// Memory // Memory
auto s = MMC->settings(); auto s = LAUNCHER->settings();
s->set("MinMemAlloc", m_java_widget->minHeapSize()); s->set("MinMemAlloc", m_java_widget->minHeapSize());
s->set("MaxMemAlloc", m_java_widget->maxHeapSize()); s->set("MaxMemAlloc", m_java_widget->maxHeapSize());
if (m_java_widget->permGenEnabled()) if (m_java_widget->permGenEnabled())

View File

@ -1,5 +1,5 @@
#include "LanguageWizardPage.h" #include "LanguageWizardPage.h"
#include <MultiMC.h> #include <Launcher.h>
#include <translations/TranslationsModel.h> #include <translations/TranslationsModel.h>
#include "widgets/LanguageSelectionWidget.h" #include "widgets/LanguageSelectionWidget.h"
@ -28,13 +28,13 @@ bool LanguageWizardPage::wantsRefreshButton()
void LanguageWizardPage::refresh() void LanguageWizardPage::refresh()
{ {
auto translations = MMC->translations(); auto translations = LAUNCHER->translations();
translations->downloadIndex(); translations->downloadIndex();
} }
bool LanguageWizardPage::validatePage() bool LanguageWizardPage::validatePage()
{ {
auto settings = MMC->settings(); auto settings = LAUNCHER->settings();
QString key = mainWidget->getSelectedLanguageKey(); QString key = mainWidget->getSelectedLanguageKey();
settings->set("Language", key); settings->set("Language", key);
return true; return true;

View File

@ -5,7 +5,7 @@
#include "AnalyticsWizardPage.h" #include "AnalyticsWizardPage.h"
#include "translations/TranslationsModel.h" #include "translations/TranslationsModel.h"
#include <MultiMC.h> #include <Launcher.h>
#include <FileSystem.h> #include <FileSystem.h>
#include <ganalytics.h> #include <ganalytics.h>

View File

@ -2,7 +2,7 @@
#include "rainbow.h" #include "rainbow.h"
#include <QStyleFactory> #include <QStyleFactory>
#include <QDir> #include <QDir>
#include "MultiMC.h" #include "Launcher.h"
void ITheme::apply(bool) void ITheme::apply(bool)
{ {
@ -13,11 +13,11 @@ void ITheme::apply(bool)
} }
if(hasStyleSheet()) if(hasStyleSheet())
{ {
MMC->setStyleSheet(appStyleSheet()); LAUNCHER->setStyleSheet(appStyleSheet());
} }
else else
{ {
MMC->setStyleSheet(QString()); LAUNCHER->setStyleSheet(QString());
} }
QDir::setSearchPaths("theme", searchPaths()); QDir::setSearchPaths("theme", searchPaths());
} }

View File

@ -182,7 +182,7 @@ void readIndex(const QString & path, QMap<QString, Language>& languages)
auto toplevel_doc = Json::requireDocument(data); auto toplevel_doc = Json::requireDocument(data);
auto doc = Json::requireObject(toplevel_doc); auto doc = Json::requireObject(toplevel_doc);
auto file_type = Json::requireString(doc, "file_type"); auto file_type = Json::requireString(doc, "file_type");
if(file_type != "MMC-TRANSLATION-INDEX") if(file_type != "LAUNCHER-TRANSLATION-INDEX")
{ {
qCritical() << "Translations Download Failed: index file is of unknown file type" << file_type; qCritical() << "Translations Download Failed: index file is of unknown file type" << file_type;
return; return;

View File

@ -1,5 +1,5 @@
#include "JavaSettingsWidget.h" #include "JavaSettingsWidget.h"
#include <MultiMC.h> #include <Launcher.h>
#include <java/JavaInstall.h> #include <java/JavaInstall.h>
#include <dialogs/CustomMessageBox.h> #include <dialogs/CustomMessageBox.h>
@ -21,9 +21,9 @@ JavaSettingsWidget::JavaSettingsWidget(QWidget* parent) : QWidget(parent)
{ {
m_availableMemory = Sys::getSystemRam() / Sys::mebibyte; m_availableMemory = Sys::getSystemRam() / Sys::mebibyte;
goodIcon = MMC->getThemedIcon("status-good"); goodIcon = LAUNCHER->getThemedIcon("status-good");
yellowIcon = MMC->getThemedIcon("status-yellow"); yellowIcon = LAUNCHER->getThemedIcon("status-yellow");
badIcon = MMC->getThemedIcon("status-bad"); badIcon = LAUNCHER->getThemedIcon("status-bad");
setupUi(); setupUi();
connect(m_minMemSpinBox, SIGNAL(valueChanged(int)), this, SLOT(memoryValueChanged(int))); connect(m_minMemSpinBox, SIGNAL(valueChanged(int)), this, SLOT(memoryValueChanged(int)));
@ -115,9 +115,9 @@ void JavaSettingsWidget::setupUi()
void JavaSettingsWidget::initialize() void JavaSettingsWidget::initialize()
{ {
m_versionWidget->initialize(MMC->javalist().get()); m_versionWidget->initialize(LAUNCHER->javalist().get());
m_versionWidget->setResizeOn(2); m_versionWidget->setResizeOn(2);
auto s = MMC->settings(); auto s = LAUNCHER->settings();
// Memory // Memory
observedMinMemory = s->get("MinMemAlloc").toInt(); observedMinMemory = s->get("MinMemAlloc").toInt();
observedMaxMemory = s->get("MaxMemAlloc").toInt(); observedMaxMemory = s->get("MaxMemAlloc").toInt();

View File

@ -4,7 +4,7 @@
#include <QTreeView> #include <QTreeView>
#include <QHeaderView> #include <QHeaderView>
#include <QLabel> #include <QLabel>
#include "MultiMC.h" #include "Launcher.h"
#include "translations/TranslationsModel.h" #include "translations/TranslationsModel.h"
LanguageSelectionWidget::LanguageSelectionWidget(QWidget *parent) : LanguageSelectionWidget::LanguageSelectionWidget(QWidget *parent) :
@ -29,7 +29,7 @@ LanguageSelectionWidget::LanguageSelectionWidget(QWidget *parent) :
helpUsLabel->setWordWrap(true); helpUsLabel->setWordWrap(true);
verticalLayout->addWidget(helpUsLabel); verticalLayout->addWidget(helpUsLabel);
auto translations = MMC->translations(); auto translations = LAUNCHER->translations();
auto index = translations->selectedIndex(); auto index = translations->selectedIndex();
languageView->setModel(translations.get()); languageView->setModel(translations.get());
languageView->setCurrentIndex(index); languageView->setCurrentIndex(index);
@ -41,7 +41,7 @@ LanguageSelectionWidget::LanguageSelectionWidget(QWidget *parent) :
QString LanguageSelectionWidget::getSelectedLanguageKey() const QString LanguageSelectionWidget::getSelectedLanguageKey() const
{ {
auto translations = MMC->translations(); auto translations = LAUNCHER->translations();
return translations->data(languageView->currentIndex(), Qt::UserRole).toString(); return translations->data(languageView->currentIndex(), Qt::UserRole).toString();
} }
@ -59,7 +59,7 @@ void LanguageSelectionWidget::languageRowChanged(const QModelIndex& current, con
{ {
return; return;
} }
auto translations = MMC->translations(); auto translations = LAUNCHER->translations();
QString key = translations->data(current, Qt::UserRole).toString(); QString key = translations->data(current, Qt::UserRole).toString();
translations->selectLanguage(key); translations->selectLanguage(key);
translations->updateLanguage(key); translations->updateLanguage(key);

View File

@ -26,11 +26,11 @@
#include <QDialogButtonBox> #include <QDialogButtonBox>
#include <QGridLayout> #include <QGridLayout>
#include "MultiMC.h" #include "Launcher.h"
#include "settings/SettingsObject.h" #include "settings/SettingsObject.h"
#include "widgets/IconLabel.h" #include "widgets/IconLabel.h"
#include "PageContainer_p.h" #include "PageContainer_p.h"
#include <MultiMC.h> #include <Launcher.h>
#include <DesktopServices.h> #include <DesktopServices.h>
class PageEntryFilterModel : public QSortFilterProxyModel class PageEntryFilterModel : public QSortFilterProxyModel
@ -139,12 +139,12 @@ void PageContainer::createUI()
m_header->setFont(headerLabelFont); m_header->setFont(headerLabelFont);
QHBoxLayout *headerHLayout = new QHBoxLayout; 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->addSpacerItem(new QSpacerItem(leftMargin, 0, QSizePolicy::Fixed, QSizePolicy::Ignored));
headerHLayout->addWidget(m_header); headerHLayout->addWidget(m_header);
headerHLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored)); headerHLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored));
headerHLayout->addWidget(m_iconHeader); 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->addSpacerItem(new QSpacerItem(rightMargin, 0, QSizePolicy::Fixed, QSizePolicy::Ignored));
headerHLayout->setContentsMargins(0, 6, 0, 0); headerHLayout->setContentsMargins(0, 6, 0, 0);
@ -195,7 +195,7 @@ void PageContainer::showPage(int row)
{ {
m_pageStack->setCurrentIndex(0); m_pageStack->setCurrentIndex(0);
m_header->setText(QString()); m_header->setText(QString());
m_iconHeader->setIcon(MMC->getThemedIcon("bug")); m_iconHeader->setIcon(LAUNCHER->getThemedIcon("bug"));
} }
} }

Some files were not shown because too many files have changed in this diff Show More