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
.DS_Store
branding
secrets
branding/
secrets/

2
.gitmodules vendored
View File

@ -1,6 +1,8 @@
[submodule "depends/libnbtplusplus"]
path = libraries/libnbtplusplus
url = https://github.com/MultiMC/libnbtplusplus.git
pushurl = git@github.com:MultiMC/libnbtplusplus.git
[submodule "libraries/quazip"]
path = libraries/quazip
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_PREFIX_PATH="/path/to/Qt5.6/" \
-DQt5_DIR="/path/to/Qt5.6/" \
-DMultiMC_LAYOUT=mac-bundle \
-DLauncher_LAYOUT=mac-bundle \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 \
..
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)
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()
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
if(CMAKE_HOST_SYSTEM_VERSION MATCHES ".*[Mm]icrosoft.*" OR
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()
@ -18,7 +18,7 @@ if(WIN32)
cmake_policy(SET CMP0020 OLD)
endif()
project(MultiMC)
project(Launcher)
enable_testing()
@ -50,61 +50,61 @@ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror=return-type")
##################################### Set Application options #####################################
######## 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(MultiMC_VERSION_MAJOR 0)
set(MultiMC_VERSION_MINOR 6)
set(MultiMC_VERSION_HOTFIX 13)
set(Launcher_VERSION_MAJOR 0)
set(Launcher_VERSION_MINOR 6)
set(Launcher_VERSION_HOTFIX 13)
# 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.
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
set(MultiMC_UPDATER_BASE "" CACHE STRING "Base URL for the updater.")
set(Launcher_UPDATER_BASE "" CACHE STRING "Base URL for the updater.")
# 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
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
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
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
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
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
set(MultiMC_DISCORD_URL "" CACHE STRING "URL for the Discord guild.")
set(Launcher_DISCORD_URL "" CACHE STRING "URL for the Discord guild.")
# Subreddit URL
set(MultiMC_SUBREDDIT_URL "" CACHE STRING "URL for the subreddit.")
set(Launcher_SUBREDDIT_URL "" CACHE STRING "URL for the subreddit.")
option(MultiMC_EMBED_SECRETS "Determines whether to embed secrets. Secrets are separate and non-public." OFF)
# Use the secrets library or a public stub?
option(Launcher_EMBED_SECRETS "Determines whether to embed secrets. Secrets are separate and non-public." OFF)
#### Check the current Git commit and branch
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 refspec: ${MultiMC_GIT_REFSPEC}")
message(STATUS "Git commit: ${Launcher_GIT_COMMIT}")
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.
add_custom_target(version echo "Version: ${MultiMC_RELEASE_VERSION_NAME}")
add_custom_target(tcversion echo "\\#\\#teamcity[setParameter name=\\'env.MULTIMC_VERSION\\' value=\\'${MultiMC_RELEASE_VERSION_NAME}\\']")
add_custom_target(version echo "Version: ${Launcher_RELEASE_VERSION_NAME}")
add_custom_target(tcversion echo "\\#\\#teamcity[setParameter name=\\'env.LAUNCHER_VERSION\\' value=\\'${Launcher_RELEASE_VERSION_NAME}\\']")
################################ 3rd Party Libs ################################
@ -129,47 +129,55 @@ if (Qt5_POSITION_INDEPENDENT_CODE)
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
####################################### Secrets #######################################
if(Launcher_EMBED_SECRETS)
add_subdirectory(secrets)
else()
add_subdirectory(notsecrets)
endif()
####################################### Install layout #######################################
# 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_property(CACHE MultiMC_LAYOUT PROPERTY STRINGS 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 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)
set(MultiMC_LAYOUT_REAL "mac-bundle")
set(Launcher_LAYOUT_REAL "mac-bundle")
elseif(UNIX)
set(MultiMC_LAYOUT_REAL "lin-nodeps")
set(Launcher_LAYOUT_REAL "lin-nodeps")
elseif(WIN32)
set(MultiMC_LAYOUT_REAL "win-bundle")
set(Launcher_LAYOUT_REAL "win-bundle")
else()
message(FATAL_ERROR "Cannot choose a sensible install layout for your platform.")
endif()
else()
set(MultiMC_LAYOUT_REAL ${MultiMC_LAYOUT})
set(Launcher_LAYOUT_REAL ${Launcher_LAYOUT})
endif()
if(MultiMC_LAYOUT_REAL STREQUAL "mac-bundle")
set(BINARY_DEST_DIR "MultiMC.app/Contents/MacOS")
set(LIBRARY_DEST_DIR "MultiMC.app/Contents/MacOS")
set(PLUGIN_DEST_DIR "MultiMC.app/Contents/MacOS")
set(RESOURCES_DEST_DIR "MultiMC.app/Contents/Resources")
set(JARS_DEST_DIR "MultiMC.app/Contents/MacOS/jars")
if(Launcher_LAYOUT_REAL STREQUAL "mac-bundle")
set(BINARY_DEST_DIR "${Launcher_Name}.app/Contents/MacOS")
set(LIBRARY_DEST_DIR "${Launcher_Name}.app/Contents/MacOS")
set(PLUGIN_DEST_DIR "${Launcher_Name}.app/Contents/MacOS")
set(RESOURCES_DEST_DIR "${Launcher_Name}.app/Contents/Resources")
set(JARS_DEST_DIR "${Launcher_Name}.app/Contents/MacOS/jars")
set(BUNDLE_DEST_DIR ".")
# Apps to bundle
set(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC.app")
set(APPS "\${CMAKE_INSTALL_PREFIX}/${Launcher_Name}.app")
# Mac bundle settings
set(MACOSX_BUNDLE_BUNDLE_NAME "MultiMC")
set(MACOSX_BUNDLE_INFO_STRING "MultiMC Minecraft launcher and management utility.")
set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.multimc.MultiMC5")
set(MACOSX_BUNDLE_BUNDLE_VERSION "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}.${MultiMC_VERSION_BUILD}")
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}.${MultiMC_VERSION_BUILD}")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}.${MultiMC_VERSION_BUILD}")
set(MACOSX_BUNDLE_ICON_FILE MultiMC.icns)
set(MACOSX_BUNDLE_COPYRIGHT "Copyright 2015-2021 MultiMC Contributors")
set(MACOSX_BUNDLE_BUNDLE_NAME "${Launcher_Name}")
set(MACOSX_BUNDLE_INFO_STRING "${Launcher_Name}: Minecraft launcher and management utility.")
set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.multimc.${Launcher_Name}")
set(MACOSX_BUNDLE_BUNDLE_VERSION "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.${Launcher_VERSION_HOTFIX}.${Launcher_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 "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.${Launcher_VERSION_HOTFIX}.${Launcher_VERSION_BUILD}")
set(MACOSX_BUNDLE_ICON_FILE ${Launcher_Name}.icns)
set(MACOSX_BUNDLE_COPYRIGHT "Copyright 2015-2021 ${Launcher_Copyright}")
# directories to look for dependencies
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")
# 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")
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")
elseif(Launcher_LAYOUT_REAL STREQUAL "lin-nodeps")
set(BINARY_DEST_DIR "bin")
set(LIBRARY_DEST_DIR "bin")
set(PLUGIN_DEST_DIR "plugins")
@ -215,28 +200,13 @@ elseif(MultiMC_LAYOUT_REAL STREQUAL "lin-nodeps")
set(INSTALL_BUNDLE "nodeps")
# Set RPATH
SET(MultiMC_BINARY_RPATH "$ORIGIN/")
SET(Launcher_BINARY_RPATH "$ORIGIN/")
# 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")
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")
elseif(Launcher_LAYOUT_REAL STREQUAL "win-bundle")
set(BINARY_DEST_DIR ".")
set(LIBRARY_DEST_DIR ".")
set(PLUGIN_DEST_DIR ".")
@ -245,7 +215,7 @@ elseif(MultiMC_LAYOUT_REAL STREQUAL "win-bundle")
set(JARS_DEST_DIR "jars")
# Apps to bundle
set(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC.exe")
set(APPS "\${CMAKE_INSTALL_PREFIX}/${Launcher_Name}.exe")
# directories to look for dependencies
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_USE_ZLIB "Build NBT library with zlib support" OFF)
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})
add_subdirectory(libraries/libnbtplusplus)
@ -287,12 +257,5 @@ add_subdirectory(libraries/katabasis) # An OAuth2 library that tried to do too m
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.
add_subdirectory(launcher)

View File

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

View File

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

View File

@ -1121,7 +1121,7 @@ Fluffy and functional!
- GH-1275: Server resource pack folder is created on launch.
- This is a workaround for Minecraft bug MCL-3732.
- 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:
- 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.
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-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();
/// The instance's ID. The ID SHALL be determined by MMC internally. The ID IS guaranteed to
/// The instance's ID. The ID SHALL be determined by LAUNCHER internally. The ID IS guaranteed to
/// be unique.
virtual QString id() const;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,5 @@
#!/bin/bash
# Basic start script for running MultiMC with the libs packaged with it.
# Basic start script for running the launcher with the libs packaged with it.
function printerror {
printf "$1"
@ -14,37 +14,38 @@ if [[ $EUID -eq 0 ]]; then
fi
MMC_DIR="$(dirname "$(readlink -f "$0")")"
echo "MultiMC Dir: ${MMC_DIR}"
LAUNCHER_NAME=@Launcher_Name@
LAUNCHER_DIR="$(dirname "$(readlink -f "$0")")"
echo "Launcher Dir: ${LAUNCHER_DIR}"
# Set up env - filter out input LD_ variables but pass them in under different names
export GAME_LIBRARY_PATH=${GAME_LIBRARY_PATH-${LD_LIBRARY_PATH}}
export GAME_PRELOAD=${GAME_PRELOAD-${LD_PRELOAD}}
export LD_LIBRARY_PATH="${MMC_DIR}/bin":$MMC_LIBRARY_PATH
export LD_PRELOAD=$MMC_PRELOAD
export QT_PLUGIN_PATH="${MMC_DIR}/plugins"
export QT_FONTPATH="${MMC_DIR}/fonts"
export LD_LIBRARY_PATH="${LAUNCHER_DIR}/bin":$LAUNCHER_LIBRARY_PATH
export LD_PRELOAD=$LAUNCHER_PRELOAD
export QT_PLUGIN_PATH="${LAUNCHER_DIR}/plugins"
export QT_FONTPATH="${LAUNCHER_DIR}/fonts"
# Detect missing dependencies...
DEPS_LIST=`ldd "${MMC_DIR}"/plugins/*/*.so 2>/dev/null | grep "not found" | sort -u | awk -vORS=", " '{ print $1 }'`
DEPS_LIST=`ldd "${LAUNCHER_DIR}"/plugins/*/*.so 2>/dev/null | grep "not found" | sort -u | awk -vORS=", " '{ print $1 }'`
if [ "x$DEPS_LIST" = "x" ]; then
# We have all our dependencies. Run MultiMC.
# We have all our dependencies. Run the launcher.
echo "No missing dependencies found."
# Just to be sure...
chmod +x "${MMC_DIR}/bin/MultiMC"
chmod +x "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}"
# Run MultiMC
exec -a "${MMC_DIR}/MultiMC" "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" "$@"
# Run the launcher
exec -a "${LAUNCHER_DIR}/${LAUNCHER_NAME}" "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}" -d "${LAUNCHER_DIR}" "$@"
# Run MultiMC in valgrind
# valgrind --log-file="valgrind.log" --leak-check=full --track-origins=yes "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" "$@"
# Run the launcher in valgrind
# valgrind --log-file="valgrind.log" --leak-check=full --track-origins=yes "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}" -d "${LAUNCHER_DIR}" "$@"
# Run MultiMC with callgrind, delay instrumentation
# valgrind --log-file="valgrind.log" --tool=callgrind --instr-atstart=no "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" "$@"
# Run the launcher with callgrind, delay instrumentation
# valgrind --log-file="valgrind.log" --tool=callgrind --instr-atstart=no "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}" -d "${LAUNCHER_DIR}" "$@"
# use callgrind_control -i on/off to profile actions
# Exit with MultiMC's exit code.
# Exit with launcher's exit code.
# exit $?
else
# apt
@ -85,7 +86,7 @@ else
INSTALL_CMD="sudo emerge $COMMAND_LIBS"
fi
MESSAGE="Error: MultiMC is missing the following libraries that it needs to work correctly:\n\t${DEPS_LIST}\nPlease install them from your distribution's package manager."
MESSAGE="Error: The launcher is missing the following libraries that it needs to work correctly:\n\t${DEPS_LIST}\nPlease install them from your distribution's package manager."
MESSAGE="$MESSAGE\n\nHint (please apply common sense): $INSTALL_CMD\n"
printerror "$MESSAGE"

View File

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

View File

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

View File

@ -16,7 +16,7 @@
#include "AboutDialog.h"
#include "ui_AboutDialog.h"
#include <QIcon>
#include "MultiMC.h"
#include "Launcher.h"
#include "BuildConfig.h"
#include <net/NetJob.h>
@ -83,7 +83,7 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDia
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->versionLabel->setText(tr("Version") +": " + BuildConfig.printableVersionString());

View File

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

View File

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

View File

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

View File

@ -13,7 +13,7 @@
* limitations under the License.
*/
#include "MultiMC.h"
#include "Launcher.h"
#include "NewComponentDialog.h"
#include "ui_NewComponentDialog.h"
@ -46,7 +46,7 @@ NewComponentDialog::NewComponentDialog(const QString & initialName, const QStrin
connect(ui->nameTextBox, &QLineEdit::textChanged, this, &NewComponentDialog::updateDialogState);
connect(ui->uidTextBox, &QLineEdit::textChanged, this, &NewComponentDialog::updateDialogState);
auto groups = MMC->instances()->getGroups().toSet();
auto groups = LAUNCHER->instances()->getGroups().toSet();
ui->nameTextBox->setFocus();
originalPlaceholderText = ui->uidTextBox->placeholderText();

View File

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

View File

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

View File

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

View File

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

View File

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

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -182,7 +182,7 @@ void readIndex(const QString & path, QMap<QString, Language>& languages)
auto toplevel_doc = Json::requireDocument(data);
auto doc = Json::requireObject(toplevel_doc);
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;
return;

View File

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

View File

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

View File

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

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