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:
parent
6a4130c914
commit
441ab7eedc
4
.gitignore
vendored
4
.gitignore
vendored
@ -31,5 +31,5 @@ tags
|
|||||||
#OSX Stuff
|
#OSX Stuff
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
branding
|
branding/
|
||||||
secrets
|
secrets/
|
||||||
|
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -1,6 +1,8 @@
|
|||||||
[submodule "depends/libnbtplusplus"]
|
[submodule "depends/libnbtplusplus"]
|
||||||
path = libraries/libnbtplusplus
|
path = libraries/libnbtplusplus
|
||||||
url = https://github.com/MultiMC/libnbtplusplus.git
|
url = https://github.com/MultiMC/libnbtplusplus.git
|
||||||
|
pushurl = git@github.com:MultiMC/libnbtplusplus.git
|
||||||
[submodule "libraries/quazip"]
|
[submodule "libraries/quazip"]
|
||||||
path = libraries/quazip
|
path = libraries/quazip
|
||||||
url = https://github.com/MultiMC/quazip.git
|
url = https://github.com/MultiMC/quazip.git
|
||||||
|
pushurl = git@github.com:MultiMC/quazip.git
|
||||||
|
2
BUILD.md
2
BUILD.md
@ -197,7 +197,7 @@ cmake \
|
|||||||
-DCMAKE_INSTALL_PREFIX:PATH="../dist/" \
|
-DCMAKE_INSTALL_PREFIX:PATH="../dist/" \
|
||||||
-DCMAKE_PREFIX_PATH="/path/to/Qt5.6/" \
|
-DCMAKE_PREFIX_PATH="/path/to/Qt5.6/" \
|
||||||
-DQt5_DIR="/path/to/Qt5.6/" \
|
-DQt5_DIR="/path/to/Qt5.6/" \
|
||||||
-DMultiMC_LAYOUT=mac-bundle \
|
-DLauncher_LAYOUT=mac-bundle \
|
||||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 \
|
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 \
|
||||||
..
|
..
|
||||||
make install
|
make install
|
||||||
|
165
CMakeLists.txt
165
CMakeLists.txt
@ -2,14 +2,14 @@ cmake_minimum_required(VERSION 3.1)
|
|||||||
|
|
||||||
string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BUILD_DIR}" IS_IN_SOURCE_BUILD)
|
string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BUILD_DIR}" IS_IN_SOURCE_BUILD)
|
||||||
if(IS_IN_SOURCE_BUILD)
|
if(IS_IN_SOURCE_BUILD)
|
||||||
message(FATAL_ERROR "You are building MultiMC in-source. Please separate the build tree from the source tree.")
|
message(FATAL_ERROR "You are building the Launcher in-source. Please separate the build tree from the source tree.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
if(CMAKE_HOST_SYSTEM_VERSION MATCHES ".*[Mm]icrosoft.*" OR
|
if(CMAKE_HOST_SYSTEM_VERSION MATCHES ".*[Mm]icrosoft.*" OR
|
||||||
CMAKE_HOST_SYSTEM_VERSION MATCHES ".*WSL.*"
|
CMAKE_HOST_SYSTEM_VERSION MATCHES ".*WSL.*"
|
||||||
)
|
)
|
||||||
message(FATAL_ERROR "Building MultiMC is not supported in Linux-on-Windows distributions.")
|
message(FATAL_ERROR "Building the Launcher is not supported in Linux-on-Windows distributions.")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ if(WIN32)
|
|||||||
cmake_policy(SET CMP0020 OLD)
|
cmake_policy(SET CMP0020 OLD)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
project(MultiMC)
|
project(Launcher)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
|
||||||
|
|
||||||
@ -50,61 +50,61 @@ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror=return-type")
|
|||||||
##################################### Set Application options #####################################
|
##################################### Set Application options #####################################
|
||||||
|
|
||||||
######## Set URLs ########
|
######## Set URLs ########
|
||||||
set(MultiMC_NEWS_RSS_URL "https://multimc.org/rss.xml" CACHE STRING "URL to fetch MultiMC's news RSS feed from.")
|
set(Launcher_NEWS_RSS_URL "https://multimc.org/rss.xml" CACHE STRING "URL to fetch Launcher's news RSS feed from.")
|
||||||
|
|
||||||
######## Set version numbers ########
|
######## Set version numbers ########
|
||||||
set(MultiMC_VERSION_MAJOR 0)
|
set(Launcher_VERSION_MAJOR 0)
|
||||||
set(MultiMC_VERSION_MINOR 6)
|
set(Launcher_VERSION_MINOR 6)
|
||||||
set(MultiMC_VERSION_HOTFIX 13)
|
set(Launcher_VERSION_HOTFIX 13)
|
||||||
|
|
||||||
# Build number
|
# Build number
|
||||||
set(MultiMC_VERSION_BUILD -1 CACHE STRING "Build number. -1 for no build number.")
|
set(Launcher_VERSION_BUILD -1 CACHE STRING "Build number. -1 for no build number.")
|
||||||
|
|
||||||
# Build platform.
|
# Build platform.
|
||||||
set(MultiMC_BUILD_PLATFORM "" CACHE STRING "A short string identifying the platform that this build was built for. Only used by the notification system and to display in the about dialog.")
|
set(Launcher_BUILD_PLATFORM "" CACHE STRING "A short string identifying the platform that this build was built for. Only used by the notification system and to display in the about dialog.")
|
||||||
|
|
||||||
# Channel list URL
|
# Channel list URL
|
||||||
set(MultiMC_UPDATER_BASE "" CACHE STRING "Base URL for the updater.")
|
set(Launcher_UPDATER_BASE "" CACHE STRING "Base URL for the updater.")
|
||||||
|
|
||||||
# Notification URL
|
# Notification URL
|
||||||
set(MultiMC_NOTIFICATION_URL "" CACHE STRING "URL for checking for notifications.")
|
set(Launcher_NOTIFICATION_URL "" CACHE STRING "URL for checking for notifications.")
|
||||||
|
|
||||||
# The metadata server
|
# The metadata server
|
||||||
set(MultiMC_META_URL "https://meta.multimc.org/v1/" CACHE STRING "URL to fetch MultiMC's meta files from.")
|
set(Launcher_META_URL "https://meta.multimc.org/v1/" CACHE STRING "URL to fetch Launcher's meta files from.")
|
||||||
|
|
||||||
# paste.ee API key
|
# paste.ee API key
|
||||||
set(MultiMC_PASTE_EE_API_KEY "utLvciUouSURFzfjPxLBf5W4ISsUX4pwBDF7N1AfZ" CACHE STRING "API key you can get from paste.ee when you register an account")
|
set(Launcher_PASTE_EE_API_KEY "utLvciUouSURFzfjPxLBf5W4ISsUX4pwBDF7N1AfZ" CACHE STRING "API key you can get from paste.ee when you register an account")
|
||||||
|
|
||||||
# Imgur API Client ID
|
# Imgur API Client ID
|
||||||
set(MultiMC_IMGUR_CLIENT_ID "5b97b0713fba4a3" CACHE STRING "Client ID you can get from Imgur when you register an application")
|
set(Launcher_IMGUR_CLIENT_ID "5b97b0713fba4a3" CACHE STRING "Client ID you can get from Imgur when you register an application")
|
||||||
|
|
||||||
# Google analytics ID
|
# Google analytics ID
|
||||||
set(MultiMC_ANALYTICS_ID "UA-87731965-2" CACHE STRING "ID you can get from Google analytics")
|
set(Launcher_ANALYTICS_ID "UA-87731965-2" CACHE STRING "ID you can get from Google analytics")
|
||||||
|
|
||||||
# Bug tracker URL
|
# Bug tracker URL
|
||||||
set(MultiMC_BUG_TRACKER_URL "" CACHE STRING "URL for the bug tracker.")
|
set(Launcher_BUG_TRACKER_URL "" CACHE STRING "URL for the bug tracker.")
|
||||||
|
|
||||||
# Discord URL
|
# Discord URL
|
||||||
set(MultiMC_DISCORD_URL "" CACHE STRING "URL for the Discord guild.")
|
set(Launcher_DISCORD_URL "" CACHE STRING "URL for the Discord guild.")
|
||||||
|
|
||||||
# Subreddit URL
|
# Subreddit URL
|
||||||
set(MultiMC_SUBREDDIT_URL "" CACHE STRING "URL for the subreddit.")
|
set(Launcher_SUBREDDIT_URL "" CACHE STRING "URL for the subreddit.")
|
||||||
|
|
||||||
|
# Use the secrets library or a public stub?
|
||||||
option(MultiMC_EMBED_SECRETS "Determines whether to embed secrets. Secrets are separate and non-public." OFF)
|
option(Launcher_EMBED_SECRETS "Determines whether to embed secrets. Secrets are separate and non-public." OFF)
|
||||||
|
|
||||||
#### Check the current Git commit and branch
|
#### Check the current Git commit and branch
|
||||||
include(GetGitRevisionDescription)
|
include(GetGitRevisionDescription)
|
||||||
get_git_head_revision(MultiMC_GIT_REFSPEC MultiMC_GIT_COMMIT)
|
get_git_head_revision(Launcher_GIT_REFSPEC Launcher_GIT_COMMIT)
|
||||||
|
|
||||||
message(STATUS "Git commit: ${MultiMC_GIT_COMMIT}")
|
message(STATUS "Git commit: ${Launcher_GIT_COMMIT}")
|
||||||
message(STATUS "Git refspec: ${MultiMC_GIT_REFSPEC}")
|
message(STATUS "Git refspec: ${Launcher_GIT_REFSPEC}")
|
||||||
|
|
||||||
set(MultiMC_RELEASE_VERSION_NAME "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}")
|
set(Launcher_RELEASE_VERSION_NAME "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.${Launcher_VERSION_HOTFIX}")
|
||||||
|
|
||||||
#### Custom target to just print the version.
|
#### Custom target to just print the version.
|
||||||
add_custom_target(version echo "Version: ${MultiMC_RELEASE_VERSION_NAME}")
|
add_custom_target(version echo "Version: ${Launcher_RELEASE_VERSION_NAME}")
|
||||||
add_custom_target(tcversion echo "\\#\\#teamcity[setParameter name=\\'env.MULTIMC_VERSION\\' value=\\'${MultiMC_RELEASE_VERSION_NAME}\\']")
|
add_custom_target(tcversion echo "\\#\\#teamcity[setParameter name=\\'env.LAUNCHER_VERSION\\' value=\\'${Launcher_RELEASE_VERSION_NAME}\\']")
|
||||||
|
|
||||||
################################ 3rd Party Libs ################################
|
################################ 3rd Party Libs ################################
|
||||||
|
|
||||||
@ -129,47 +129,55 @@ if (Qt5_POSITION_INDEPENDENT_CODE)
|
|||||||
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
####################################### Secrets #######################################
|
||||||
|
|
||||||
|
if(Launcher_EMBED_SECRETS)
|
||||||
|
add_subdirectory(secrets)
|
||||||
|
else()
|
||||||
|
add_subdirectory(notsecrets)
|
||||||
|
endif()
|
||||||
|
|
||||||
####################################### Install layout #######################################
|
####################################### Install layout #######################################
|
||||||
|
|
||||||
# How to install the build results
|
# How to install the build results
|
||||||
set(MultiMC_LAYOUT "auto" CACHE STRING "The layout for MultiMC installation (auto, win-bundle, lin-bundle, lin-nodeps, lin-system, mac-bundle)")
|
set(Launcher_LAYOUT "auto" CACHE STRING "The layout for the launcher installation (auto, win-bundle, lin-nodeps, mac-bundle)")
|
||||||
set_property(CACHE MultiMC_LAYOUT PROPERTY STRINGS auto win-bundle lin-bundle lin-nodeps lin-system mac-bundle)
|
set_property(CACHE Launcher_LAYOUT PROPERTY STRINGS auto win-bundle lin-nodeps mac-bundle)
|
||||||
|
|
||||||
if(MultiMC_LAYOUT STREQUAL "auto")
|
if(Launcher_LAYOUT STREQUAL "auto")
|
||||||
if(UNIX AND APPLE)
|
if(UNIX AND APPLE)
|
||||||
set(MultiMC_LAYOUT_REAL "mac-bundle")
|
set(Launcher_LAYOUT_REAL "mac-bundle")
|
||||||
elseif(UNIX)
|
elseif(UNIX)
|
||||||
set(MultiMC_LAYOUT_REAL "lin-nodeps")
|
set(Launcher_LAYOUT_REAL "lin-nodeps")
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
set(MultiMC_LAYOUT_REAL "win-bundle")
|
set(Launcher_LAYOUT_REAL "win-bundle")
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "Cannot choose a sensible install layout for your platform.")
|
message(FATAL_ERROR "Cannot choose a sensible install layout for your platform.")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
set(MultiMC_LAYOUT_REAL ${MultiMC_LAYOUT})
|
set(Launcher_LAYOUT_REAL ${Launcher_LAYOUT})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MultiMC_LAYOUT_REAL STREQUAL "mac-bundle")
|
if(Launcher_LAYOUT_REAL STREQUAL "mac-bundle")
|
||||||
set(BINARY_DEST_DIR "MultiMC.app/Contents/MacOS")
|
set(BINARY_DEST_DIR "${Launcher_Name}.app/Contents/MacOS")
|
||||||
set(LIBRARY_DEST_DIR "MultiMC.app/Contents/MacOS")
|
set(LIBRARY_DEST_DIR "${Launcher_Name}.app/Contents/MacOS")
|
||||||
set(PLUGIN_DEST_DIR "MultiMC.app/Contents/MacOS")
|
set(PLUGIN_DEST_DIR "${Launcher_Name}.app/Contents/MacOS")
|
||||||
set(RESOURCES_DEST_DIR "MultiMC.app/Contents/Resources")
|
set(RESOURCES_DEST_DIR "${Launcher_Name}.app/Contents/Resources")
|
||||||
set(JARS_DEST_DIR "MultiMC.app/Contents/MacOS/jars")
|
set(JARS_DEST_DIR "${Launcher_Name}.app/Contents/MacOS/jars")
|
||||||
|
|
||||||
set(BUNDLE_DEST_DIR ".")
|
set(BUNDLE_DEST_DIR ".")
|
||||||
|
|
||||||
# Apps to bundle
|
# Apps to bundle
|
||||||
set(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC.app")
|
set(APPS "\${CMAKE_INSTALL_PREFIX}/${Launcher_Name}.app")
|
||||||
|
|
||||||
# Mac bundle settings
|
# Mac bundle settings
|
||||||
set(MACOSX_BUNDLE_BUNDLE_NAME "MultiMC")
|
set(MACOSX_BUNDLE_BUNDLE_NAME "${Launcher_Name}")
|
||||||
set(MACOSX_BUNDLE_INFO_STRING "MultiMC Minecraft launcher and management utility.")
|
set(MACOSX_BUNDLE_INFO_STRING "${Launcher_Name}: Minecraft launcher and management utility.")
|
||||||
set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.multimc.MultiMC5")
|
set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.multimc.${Launcher_Name}")
|
||||||
set(MACOSX_BUNDLE_BUNDLE_VERSION "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}.${MultiMC_VERSION_BUILD}")
|
set(MACOSX_BUNDLE_BUNDLE_VERSION "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.${Launcher_VERSION_HOTFIX}.${Launcher_VERSION_BUILD}")
|
||||||
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}.${MultiMC_VERSION_BUILD}")
|
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.${Launcher_VERSION_HOTFIX}.${Launcher_VERSION_BUILD}")
|
||||||
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}.${MultiMC_VERSION_BUILD}")
|
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.${Launcher_VERSION_HOTFIX}.${Launcher_VERSION_BUILD}")
|
||||||
set(MACOSX_BUNDLE_ICON_FILE MultiMC.icns)
|
set(MACOSX_BUNDLE_ICON_FILE ${Launcher_Name}.icns)
|
||||||
set(MACOSX_BUNDLE_COPYRIGHT "Copyright 2015-2021 MultiMC Contributors")
|
set(MACOSX_BUNDLE_COPYRIGHT "Copyright 2015-2021 ${Launcher_Copyright}")
|
||||||
|
|
||||||
# directories to look for dependencies
|
# directories to look for dependencies
|
||||||
set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||||
@ -178,32 +186,9 @@ if(MultiMC_LAYOUT_REAL STREQUAL "mac-bundle")
|
|||||||
set(INSTALL_BUNDLE "full")
|
set(INSTALL_BUNDLE "full")
|
||||||
|
|
||||||
# Add the icon
|
# Add the icon
|
||||||
install(FILES launcher/resources/MultiMC.icns DESTINATION ${RESOURCES_DEST_DIR})
|
install(FILES ${Launcher_Branding_ICNS} DESTINATION ${RESOURCES_DEST_DIR})
|
||||||
|
|
||||||
elseif(MultiMC_LAYOUT_REAL STREQUAL "lin-bundle")
|
elseif(Launcher_LAYOUT_REAL STREQUAL "lin-nodeps")
|
||||||
set(BINARY_DEST_DIR "bin")
|
|
||||||
set(LIBRARY_DEST_DIR "bin")
|
|
||||||
set(PLUGIN_DEST_DIR "plugins")
|
|
||||||
set(BUNDLE_DEST_DIR ".")
|
|
||||||
set(RESOURCES_DEST_DIR ".")
|
|
||||||
set(JARS_DEST_DIR "bin/jars")
|
|
||||||
|
|
||||||
# Apps to bundle
|
|
||||||
set(APPS "\${CMAKE_INSTALL_PREFIX}/bin/MultiMC")
|
|
||||||
|
|
||||||
# directories to look for dependencies
|
|
||||||
set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
|
||||||
|
|
||||||
# install as bundle
|
|
||||||
set(INSTALL_BUNDLE "full")
|
|
||||||
|
|
||||||
# Set RPATH
|
|
||||||
SET(MultiMC_BINARY_RPATH "$ORIGIN/")
|
|
||||||
|
|
||||||
# Install basic runner script
|
|
||||||
install(PROGRAMS launcher/package/linux/MultiMC DESTINATION ${BUNDLE_DEST_DIR})
|
|
||||||
|
|
||||||
elseif(MultiMC_LAYOUT_REAL STREQUAL "lin-nodeps")
|
|
||||||
set(BINARY_DEST_DIR "bin")
|
set(BINARY_DEST_DIR "bin")
|
||||||
set(LIBRARY_DEST_DIR "bin")
|
set(LIBRARY_DEST_DIR "bin")
|
||||||
set(PLUGIN_DEST_DIR "plugins")
|
set(PLUGIN_DEST_DIR "plugins")
|
||||||
@ -215,28 +200,13 @@ elseif(MultiMC_LAYOUT_REAL STREQUAL "lin-nodeps")
|
|||||||
set(INSTALL_BUNDLE "nodeps")
|
set(INSTALL_BUNDLE "nodeps")
|
||||||
|
|
||||||
# Set RPATH
|
# Set RPATH
|
||||||
SET(MultiMC_BINARY_RPATH "$ORIGIN/")
|
SET(Launcher_BINARY_RPATH "$ORIGIN/")
|
||||||
|
|
||||||
# Install basic runner script
|
# Install basic runner script
|
||||||
install(PROGRAMS launcher/package/linux/MultiMC DESTINATION ${BUNDLE_DEST_DIR})
|
configure_file(launcher/Launcher.in "${CMAKE_CURRENT_BINARY_DIR}/LauncherScript" @ONLY)
|
||||||
|
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/LauncherScript" DESTINATION ${BUNDLE_DEST_DIR} RENAME ${Launcher_Name})
|
||||||
|
|
||||||
elseif(MultiMC_LAYOUT_REAL STREQUAL "lin-system")
|
elseif(Launcher_LAYOUT_REAL STREQUAL "win-bundle")
|
||||||
set(MultiMC_APP_BINARY_NAME "multimc" CACHE STRING "Name of the MultiMC binary")
|
|
||||||
set(MultiMC_BINARY_DEST_DIR "bin" CACHE STRING "Path to the binary directory")
|
|
||||||
set(MultiMC_LIBRARY_DEST_DIR "lib${LIB_SUFFIX}" CACHE STRING "Path to the library directory")
|
|
||||||
set(MultiMC_SHARE_DEST_DIR "share/multimc" CACHE STRING "Path to the shared data directory")
|
|
||||||
set(JARS_DEST_DIR "${MultiMC_SHARE_DEST_DIR}/jars")
|
|
||||||
|
|
||||||
set(BINARY_DEST_DIR ${MultiMC_BINARY_DEST_DIR})
|
|
||||||
set(LIBRARY_DEST_DIR ${MultiMC_LIBRARY_DEST_DIR})
|
|
||||||
|
|
||||||
MESSAGE(STATUS "Compiling for linux system with ${MultiMC_SHARE_DEST_DIR} and MULTIMC_LINUX_DATADIR")
|
|
||||||
SET(MultiMC_APP_BINARY_DEFS "-DMULTIMC_JARS_LOCATION=${CMAKE_INSTALL_PREFIX}/${JARS_DEST_DIR}" "-DMULTIMC_LINUX_DATADIR")
|
|
||||||
|
|
||||||
# install as bundle with no dependencies included
|
|
||||||
set(INSTALL_BUNDLE "nodeps")
|
|
||||||
|
|
||||||
elseif(MultiMC_LAYOUT_REAL STREQUAL "win-bundle")
|
|
||||||
set(BINARY_DEST_DIR ".")
|
set(BINARY_DEST_DIR ".")
|
||||||
set(LIBRARY_DEST_DIR ".")
|
set(LIBRARY_DEST_DIR ".")
|
||||||
set(PLUGIN_DEST_DIR ".")
|
set(PLUGIN_DEST_DIR ".")
|
||||||
@ -245,7 +215,7 @@ elseif(MultiMC_LAYOUT_REAL STREQUAL "win-bundle")
|
|||||||
set(JARS_DEST_DIR "jars")
|
set(JARS_DEST_DIR "jars")
|
||||||
|
|
||||||
# Apps to bundle
|
# Apps to bundle
|
||||||
set(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC.exe")
|
set(APPS "\${CMAKE_INSTALL_PREFIX}/${Launcher_Name}.exe")
|
||||||
|
|
||||||
# directories to look for dependencies
|
# directories to look for dependencies
|
||||||
set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||||
@ -264,7 +234,7 @@ set_directory_properties(PROPERTIES EP_BASE External)
|
|||||||
option(NBT_BUILD_SHARED "Build NBT shared library" ON)
|
option(NBT_BUILD_SHARED "Build NBT shared library" ON)
|
||||||
option(NBT_USE_ZLIB "Build NBT library with zlib support" OFF)
|
option(NBT_USE_ZLIB "Build NBT library with zlib support" OFF)
|
||||||
option(NBT_BUILD_TESTS "Build NBT library tests" OFF) #FIXME: fix unit tests.
|
option(NBT_BUILD_TESTS "Build NBT library tests" OFF) #FIXME: fix unit tests.
|
||||||
set(NBT_NAME MultiMC_nbt++)
|
set(NBT_NAME Launcher_nbt++)
|
||||||
set(NBT_DEST_DIR ${LIBRARY_DEST_DIR})
|
set(NBT_DEST_DIR ${LIBRARY_DEST_DIR})
|
||||||
add_subdirectory(libraries/libnbtplusplus)
|
add_subdirectory(libraries/libnbtplusplus)
|
||||||
|
|
||||||
@ -287,12 +257,5 @@ add_subdirectory(libraries/katabasis) # An OAuth2 library that tried to do too m
|
|||||||
|
|
||||||
add_subdirectory(buildconfig)
|
add_subdirectory(buildconfig)
|
||||||
|
|
||||||
if(MultiMC_EMBED_SECRETS)
|
|
||||||
add_subdirectory(secrets)
|
|
||||||
else()
|
|
||||||
add_subdirectory(notsecrets)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
# NOTE: this must always be last to appease the CMake deity of quirky install command evaluation order.
|
# NOTE: this must always be last to appease the CMake deity of quirky install command evaluation order.
|
||||||
add_subdirectory(launcher)
|
add_subdirectory(launcher)
|
||||||
|
32
README.md
32
README.md
@ -48,33 +48,33 @@ Unless required by applicable law or agreed to in writing, software distributed
|
|||||||
|
|
||||||
## Build status
|
## Build status
|
||||||
### Linux (Intel32)
|
### Linux (Intel32)
|
||||||
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_Linux32_Build&guest=1">
|
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_Linux32_Build&guest=1">
|
||||||
Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_Linux32_Build)/statusIcon"/>
|
Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_Linux32_Build)/statusIcon"/>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_Linux32_Deploy&guest=1">
|
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_Linux32_Deploy&guest=1">
|
||||||
Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_Linux32_Deploy)/statusIcon"/>
|
Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_Linux32_Deploy)/statusIcon"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
### Linux (AMD64)
|
### Linux (AMD64)
|
||||||
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_Linux64_Build&guest=1">
|
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_Linux64_Build&guest=1">
|
||||||
Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_Linux64_Build)/statusIcon"/>
|
Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_Linux64_Build)/statusIcon"/>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_Linux64_Deploy&guest=1">
|
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_Linux64_Deploy&guest=1">
|
||||||
Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_Linux64_Deploy)/statusIcon"/>
|
Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_Linux64_Deploy)/statusIcon"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
### macOS (AMD64)
|
### macOS (AMD64)
|
||||||
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_MacOS_Build&guest=1">
|
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_MacOS_Build&guest=1">
|
||||||
Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_MacOS_Build)/statusIcon"/>
|
Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_MacOS_Build)/statusIcon"/>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_MacOS_Deploy&guest=1">
|
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_MacOS_Deploy&guest=1">
|
||||||
Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_MacOS_Deploy)/statusIcon"/>
|
Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_MacOS_Deploy)/statusIcon"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
### Windows (Intel32)
|
### Windows (Intel32)
|
||||||
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_Windows_Build&guest=1">
|
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_Windows_Build&guest=1">
|
||||||
Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_Windows_Build)/statusIcon"/>
|
Build: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_Windows_Build)/statusIcon"/>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=MultiMC_Launcher_Windows_Deploy&guest=1">
|
<a href="https://teamcity.multimc.org/viewType.html?buildTypeId=Launcher_Launcher_Windows_Deploy&guest=1">
|
||||||
Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:MultiMC_Launcher_Windows_Deploy)/statusIcon"/>
|
Deploy: <img src="https://teamcity.multimc.org/app/rest/builds/buildType:(id:Launcher_Launcher_Windows_Deploy)/statusIcon"/>
|
||||||
</a>
|
</a>
|
||||||
|
@ -6,19 +6,19 @@ const Config BuildConfig;
|
|||||||
Config::Config()
|
Config::Config()
|
||||||
{
|
{
|
||||||
// Version information
|
// Version information
|
||||||
VERSION_MAJOR = @MultiMC_VERSION_MAJOR@;
|
VERSION_MAJOR = @Launcher_VERSION_MAJOR@;
|
||||||
VERSION_MINOR = @MultiMC_VERSION_MINOR@;
|
VERSION_MINOR = @Launcher_VERSION_MINOR@;
|
||||||
VERSION_HOTFIX = @MultiMC_VERSION_HOTFIX@;
|
VERSION_HOTFIX = @Launcher_VERSION_HOTFIX@;
|
||||||
VERSION_BUILD = @MultiMC_VERSION_BUILD@;
|
VERSION_BUILD = @Launcher_VERSION_BUILD@;
|
||||||
|
|
||||||
BUILD_PLATFORM = "@MultiMC_BUILD_PLATFORM@";
|
BUILD_PLATFORM = "@Launcher_BUILD_PLATFORM@";
|
||||||
UPDATER_BASE = "@MultiMC_UPDATER_BASE@";
|
UPDATER_BASE = "@Launcher_UPDATER_BASE@";
|
||||||
ANALYTICS_ID = "@MultiMC_ANALYTICS_ID@";
|
ANALYTICS_ID = "@Launcher_ANALYTICS_ID@";
|
||||||
NOTIFICATION_URL = "@MultiMC_NOTIFICATION_URL@";
|
NOTIFICATION_URL = "@Launcher_NOTIFICATION_URL@";
|
||||||
FULL_VERSION_STR = "@MultiMC_VERSION_MAJOR@.@MultiMC_VERSION_MINOR@.@MultiMC_VERSION_BUILD@";
|
FULL_VERSION_STR = "@Launcher_VERSION_MAJOR@.@Launcher_VERSION_MINOR@.@Launcher_VERSION_BUILD@";
|
||||||
|
|
||||||
GIT_COMMIT = "@MultiMC_GIT_COMMIT@";
|
GIT_COMMIT = "@Launcher_GIT_COMMIT@";
|
||||||
GIT_REFSPEC = "@MultiMC_GIT_REFSPEC@";
|
GIT_REFSPEC = "@Launcher_GIT_REFSPEC@";
|
||||||
if(GIT_REFSPEC.startsWith("refs/heads/") && !UPDATER_BASE.isEmpty() && !BUILD_PLATFORM.isEmpty() && VERSION_BUILD >= 0)
|
if(GIT_REFSPEC.startsWith("refs/heads/") && !UPDATER_BASE.isEmpty() && !BUILD_PLATFORM.isEmpty() && VERSION_BUILD >= 0)
|
||||||
{
|
{
|
||||||
VERSION_CHANNEL = GIT_REFSPEC;
|
VERSION_CHANNEL = GIT_REFSPEC;
|
||||||
@ -30,15 +30,15 @@ Config::Config()
|
|||||||
VERSION_CHANNEL = QObject::tr("custom");
|
VERSION_CHANNEL = QObject::tr("custom");
|
||||||
}
|
}
|
||||||
|
|
||||||
VERSION_STR = "@MultiMC_VERSION_STRING@";
|
VERSION_STR = "@Launcher_VERSION_STRING@";
|
||||||
NEWS_RSS_URL = "@MultiMC_NEWS_RSS_URL@";
|
NEWS_RSS_URL = "@Launcher_NEWS_RSS_URL@";
|
||||||
PASTE_EE_KEY = "@MultiMC_PASTE_EE_API_KEY@";
|
PASTE_EE_KEY = "@Launcher_PASTE_EE_API_KEY@";
|
||||||
IMGUR_CLIENT_ID = "@MultiMC_IMGUR_CLIENT_ID@";
|
IMGUR_CLIENT_ID = "@Launcher_IMGUR_CLIENT_ID@";
|
||||||
META_URL = "@MultiMC_META_URL@";
|
META_URL = "@Launcher_META_URL@";
|
||||||
|
|
||||||
BUG_TRACKER_URL = "@MultiMC_BUG_TRACKER_URL@";
|
BUG_TRACKER_URL = "@Launcher_BUG_TRACKER_URL@";
|
||||||
DISCORD_URL = "@MultiMC_DISCORD_URL@";
|
DISCORD_URL = "@Launcher_DISCORD_URL@";
|
||||||
SUBREDDIT_URL = "@MultiMC_SUBREDDIT_URL@";
|
SUBREDDIT_URL = "@Launcher_SUBREDDIT_URL@";
|
||||||
}
|
}
|
||||||
|
|
||||||
QString Config::printableVersionString() const
|
QString Config::printableVersionString() const
|
||||||
|
@ -1121,7 +1121,7 @@ Fluffy and functional!
|
|||||||
- GH-1275: Server resource pack folder is created on launch.
|
- GH-1275: Server resource pack folder is created on launch.
|
||||||
- This is a workaround for Minecraft bug MCL-3732.
|
- This is a workaround for Minecraft bug MCL-3732.
|
||||||
- GH-1320: Improve compatibility with non-Oracle Java.
|
- GH-1320: Improve compatibility with non-Oracle Java.
|
||||||
- GH-1355: MMC environment will no longer leak into Minecraft after MultiMC updates itself.
|
- GH-1355: LAUNCHER environment will no longer leak into Minecraft after MultiMC updates itself.
|
||||||
|
|
||||||
- Minecraft log:
|
- Minecraft log:
|
||||||
- Java exception detection in Minecraft logs has been improved.
|
- Java exception detection in Minecraft logs has been improved.
|
||||||
@ -1166,7 +1166,7 @@ Fluffy and functional!
|
|||||||
- GH-1069, GH-1100: `LD_LIBRARY_PATH` and `LD_PRELOAD` environment variables supplied to MultiMC now don't affect MultiMC but affect the launched game.
|
- GH-1069, GH-1100: `LD_LIBRARY_PATH` and `LD_PRELOAD` environment variables supplied to MultiMC now don't affect MultiMC but affect the launched game.
|
||||||
|
|
||||||
This means you can use something like the Steam overlay in MultiMC instances on Linux.
|
This means you can use something like the Steam overlay in MultiMC instances on Linux.
|
||||||
If you need to use these variables for MultiMC itself, you can use `MMC_LIBRARY_PATH` and `MMC_PRELOAD` instead.
|
If you need to use these variables for MultiMC itself, you can use `LAUNCHER_LIBRARY_PATH` and `LAUNCHER_PRELOAD` instead.
|
||||||
|
|
||||||
- GH-1389: External processes (like folder views, editors, etc.) are now started in a way that prevents the MultiMC environment to be reused by them.
|
- GH-1389: External processes (like folder views, editors, etc.) are now started in a way that prevents the MultiMC environment to be reused by them.
|
||||||
- GH-1355: If `LD_LIBRARY_PATH` contains any of MultiMC's internal folders, this will not propagate to started processes.
|
- GH-1355: If `LD_LIBRARY_PATH` contains any of MultiMC's internal folders, this will not propagate to started processes.
|
||||||
|
@ -78,7 +78,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
void invalidate();
|
void invalidate();
|
||||||
|
|
||||||
/// The instance's ID. The ID SHALL be determined by MMC internally. The ID IS guaranteed to
|
/// The instance's ID. The ID SHALL be determined by LAUNCHER internally. The ID IS guaranteed to
|
||||||
/// be unique.
|
/// be unique.
|
||||||
virtual QString id() const;
|
virtual QString id() const;
|
||||||
|
|
||||||
|
@ -88,13 +88,13 @@ set(CORE_SOURCES
|
|||||||
|
|
||||||
add_unit_test(FileSystem
|
add_unit_test(FileSystem
|
||||||
SOURCES FileSystem_test.cpp
|
SOURCES FileSystem_test.cpp
|
||||||
LIBS MultiMC_logic
|
LIBS Launcher_logic
|
||||||
DATA testdata
|
DATA testdata
|
||||||
)
|
)
|
||||||
|
|
||||||
add_unit_test(GZip
|
add_unit_test(GZip
|
||||||
SOURCES GZip_test.cpp
|
SOURCES GZip_test.cpp
|
||||||
LIBS MultiMC_logic
|
LIBS Launcher_logic
|
||||||
)
|
)
|
||||||
|
|
||||||
set(PATHMATCHER_SOURCES
|
set(PATHMATCHER_SOURCES
|
||||||
@ -158,13 +158,13 @@ set(UPDATE_SOURCES
|
|||||||
|
|
||||||
add_unit_test(UpdateChecker
|
add_unit_test(UpdateChecker
|
||||||
SOURCES updater/UpdateChecker_test.cpp
|
SOURCES updater/UpdateChecker_test.cpp
|
||||||
LIBS MultiMC_logic
|
LIBS Launcher_logic
|
||||||
DATA updater/testdata
|
DATA updater/testdata
|
||||||
)
|
)
|
||||||
|
|
||||||
add_unit_test(DownloadTask
|
add_unit_test(DownloadTask
|
||||||
SOURCES updater/DownloadTask_test.cpp
|
SOURCES updater/DownloadTask_test.cpp
|
||||||
LIBS MultiMC_logic
|
LIBS Launcher_logic
|
||||||
DATA updater/testdata
|
DATA updater/testdata
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -337,14 +337,14 @@ set(MINECRAFT_SOURCES
|
|||||||
|
|
||||||
add_unit_test(GradleSpecifier
|
add_unit_test(GradleSpecifier
|
||||||
SOURCES minecraft/GradleSpecifier_test.cpp
|
SOURCES minecraft/GradleSpecifier_test.cpp
|
||||||
LIBS MultiMC_logic
|
LIBS Launcher_logic
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable(PackageManifest
|
add_executable(PackageManifest
|
||||||
mojang/PackageManifest_test.cpp
|
mojang/PackageManifest_test.cpp
|
||||||
)
|
)
|
||||||
target_link_libraries(PackageManifest
|
target_link_libraries(PackageManifest
|
||||||
MultiMC_logic
|
Launcher_logic
|
||||||
Qt5::Test
|
Qt5::Test
|
||||||
)
|
)
|
||||||
target_include_directories(PackageManifest
|
target_include_directories(PackageManifest
|
||||||
@ -358,25 +358,25 @@ add_test(
|
|||||||
|
|
||||||
add_unit_test(MojangVersionFormat
|
add_unit_test(MojangVersionFormat
|
||||||
SOURCES minecraft/MojangVersionFormat_test.cpp
|
SOURCES minecraft/MojangVersionFormat_test.cpp
|
||||||
LIBS MultiMC_logic
|
LIBS Launcher_logic
|
||||||
DATA minecraft/testdata
|
DATA minecraft/testdata
|
||||||
)
|
)
|
||||||
|
|
||||||
add_unit_test(Library
|
add_unit_test(Library
|
||||||
SOURCES minecraft/Library_test.cpp
|
SOURCES minecraft/Library_test.cpp
|
||||||
LIBS MultiMC_logic
|
LIBS Launcher_logic
|
||||||
)
|
)
|
||||||
|
|
||||||
# FIXME: shares data with FileSystem test
|
# FIXME: shares data with FileSystem test
|
||||||
add_unit_test(ModFolderModel
|
add_unit_test(ModFolderModel
|
||||||
SOURCES minecraft/mod/ModFolderModel_test.cpp
|
SOURCES minecraft/mod/ModFolderModel_test.cpp
|
||||||
DATA testdata
|
DATA testdata
|
||||||
LIBS MultiMC_logic
|
LIBS Launcher_logic
|
||||||
)
|
)
|
||||||
|
|
||||||
add_unit_test(ParseUtils
|
add_unit_test(ParseUtils
|
||||||
SOURCES minecraft/ParseUtils_test.cpp
|
SOURCES minecraft/ParseUtils_test.cpp
|
||||||
LIBS MultiMC_logic
|
LIBS Launcher_logic
|
||||||
)
|
)
|
||||||
|
|
||||||
# the screenshots feature
|
# the screenshots feature
|
||||||
@ -414,7 +414,7 @@ set(SETTINGS_SOURCES
|
|||||||
|
|
||||||
add_unit_test(INIFile
|
add_unit_test(INIFile
|
||||||
SOURCES settings/INIFile_test.cpp
|
SOURCES settings/INIFile_test.cpp
|
||||||
LIBS MultiMC_logic
|
LIBS Launcher_logic
|
||||||
)
|
)
|
||||||
|
|
||||||
set(JAVA_SOURCES
|
set(JAVA_SOURCES
|
||||||
@ -437,7 +437,7 @@ set(JAVA_SOURCES
|
|||||||
|
|
||||||
add_unit_test(JavaVersion
|
add_unit_test(JavaVersion
|
||||||
SOURCES java/JavaVersion_test.cpp
|
SOURCES java/JavaVersion_test.cpp
|
||||||
LIBS MultiMC_logic
|
LIBS Launcher_logic
|
||||||
)
|
)
|
||||||
|
|
||||||
set(TRANSLATIONS_SOURCES
|
set(TRANSLATIONS_SOURCES
|
||||||
@ -523,7 +523,7 @@ set(ATLAUNCHER_SOURCES
|
|||||||
|
|
||||||
add_unit_test(Index
|
add_unit_test(Index
|
||||||
SOURCES meta/Index_test.cpp
|
SOURCES meta/Index_test.cpp
|
||||||
LIBS MultiMC_logic
|
LIBS Launcher_logic
|
||||||
)
|
)
|
||||||
|
|
||||||
################################ COMPILE ################################
|
################################ COMPILE ################################
|
||||||
@ -557,8 +557,8 @@ set(LOGIC_SOURCES
|
|||||||
|
|
||||||
SET(MULTIMC_SOURCES
|
SET(MULTIMC_SOURCES
|
||||||
# Application base
|
# Application base
|
||||||
MultiMC.h
|
Launcher.h
|
||||||
MultiMC.cpp
|
Launcher.cpp
|
||||||
UpdateController.cpp
|
UpdateController.cpp
|
||||||
UpdateController.h
|
UpdateController.h
|
||||||
|
|
||||||
@ -678,8 +678,8 @@ SET(MULTIMC_SOURCES
|
|||||||
pages/global/LanguagePage.h
|
pages/global/LanguagePage.h
|
||||||
pages/global/MinecraftPage.cpp
|
pages/global/MinecraftPage.cpp
|
||||||
pages/global/MinecraftPage.h
|
pages/global/MinecraftPage.h
|
||||||
pages/global/MultiMCPage.cpp
|
pages/global/LauncherPage.cpp
|
||||||
pages/global/MultiMCPage.h
|
pages/global/LauncherPage.h
|
||||||
pages/global/ProxyPage.cpp
|
pages/global/ProxyPage.cpp
|
||||||
pages/global/ProxyPage.h
|
pages/global/ProxyPage.h
|
||||||
pages/global/PasteEEPage.cpp
|
pages/global/PasteEEPage.cpp
|
||||||
@ -831,7 +831,7 @@ SET(MULTIMC_UIS
|
|||||||
pages/global/ExternalToolsPage.ui
|
pages/global/ExternalToolsPage.ui
|
||||||
pages/global/JavaPage.ui
|
pages/global/JavaPage.ui
|
||||||
pages/global/MinecraftPage.ui
|
pages/global/MinecraftPage.ui
|
||||||
pages/global/MultiMCPage.ui
|
pages/global/LauncherPage.ui
|
||||||
pages/global/ProxyPage.ui
|
pages/global/ProxyPage.ui
|
||||||
pages/global/PasteEEPage.ui
|
pages/global/PasteEEPage.ui
|
||||||
|
|
||||||
@ -891,11 +891,11 @@ qt5_wrap_ui(MULTIMC_UI ${MULTIMC_UIS})
|
|||||||
qt5_add_resources(MULTIMC_RESOURCES ${MULTIMC_QRCS})
|
qt5_add_resources(MULTIMC_RESOURCES ${MULTIMC_QRCS})
|
||||||
|
|
||||||
# Add executable
|
# Add executable
|
||||||
add_library(MultiMC_logic STATIC ${LOGIC_SOURCES} ${MULTIMC_SOURCES} ${MULTIMC_UI} ${MULTIMC_RESOURCES})
|
add_library(Launcher_logic STATIC ${LOGIC_SOURCES} ${MULTIMC_SOURCES} ${MULTIMC_UI} ${MULTIMC_RESOURCES})
|
||||||
target_link_libraries(MultiMC_logic
|
target_link_libraries(Launcher_logic
|
||||||
systeminfo
|
systeminfo
|
||||||
MultiMC_quazip
|
Launcher_quazip
|
||||||
MultiMC_classparser
|
Launcher_classparser
|
||||||
${NBT_NAME}
|
${NBT_NAME}
|
||||||
${ZLIB_LIBRARIES}
|
${ZLIB_LIBRARIES}
|
||||||
optional-bare
|
optional-bare
|
||||||
@ -903,46 +903,46 @@ target_link_libraries(MultiMC_logic
|
|||||||
BuildConfig
|
BuildConfig
|
||||||
Katabasis
|
Katabasis
|
||||||
)
|
)
|
||||||
target_link_libraries(MultiMC_logic
|
target_link_libraries(Launcher_logic
|
||||||
Qt5::Core
|
Qt5::Core
|
||||||
Qt5::Xml
|
Qt5::Xml
|
||||||
Qt5::Network
|
Qt5::Network
|
||||||
Qt5::Concurrent
|
Qt5::Concurrent
|
||||||
Qt5::Gui
|
Qt5::Gui
|
||||||
)
|
)
|
||||||
target_link_libraries(MultiMC_logic
|
target_link_libraries(Launcher_logic
|
||||||
MultiMC_iconfix
|
Launcher_iconfix
|
||||||
${QUAZIP_LIBRARIES}
|
${QUAZIP_LIBRARIES}
|
||||||
hoedown
|
hoedown
|
||||||
MultiMC_rainbow
|
Launcher_rainbow
|
||||||
LocalPeer
|
LocalPeer
|
||||||
ganalytics
|
ganalytics
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable(MultiMC MACOSX_BUNDLE WIN32 main.cpp ${MULTIMC_RCS})
|
target_link_libraries(Launcher_logic secrets)
|
||||||
target_link_libraries(MultiMC MultiMC_logic)
|
|
||||||
|
|
||||||
if(DEFINED MultiMC_APP_BINARY_NAME)
|
add_executable(${Launcher_Name} MACOSX_BUNDLE WIN32 main.cpp ${MULTIMC_RCS})
|
||||||
set_target_properties(MultiMC PROPERTIES OUTPUT_NAME "${MultiMC_APP_BINARY_NAME}")
|
target_link_libraries(${Launcher_Name} Launcher_logic)
|
||||||
|
|
||||||
|
if(DEFINED Launcher_APP_BINARY_NAME)
|
||||||
|
set_target_properties(${Launcher_Name} PROPERTIES OUTPUT_NAME "${Launcher_APP_BINARY_NAME}")
|
||||||
endif()
|
endif()
|
||||||
if(DEFINED MultiMC_BINARY_RPATH)
|
if(DEFINED Launcher_BINARY_RPATH)
|
||||||
SET_TARGET_PROPERTIES(MultiMC PROPERTIES INSTALL_RPATH "${MultiMC_BINARY_RPATH}")
|
SET_TARGET_PROPERTIES(${Launcher_Name} PROPERTIES INSTALL_RPATH "${Launcher_BINARY_RPATH}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(DEFINED MultiMC_APP_BINARY_DEFS)
|
if(DEFINED Launcher_APP_BINARY_DEFS)
|
||||||
target_compile_definitions(MultiMC PRIVATE ${MultiMC_APP_BINARY_DEFS})
|
target_compile_definitions(${Launcher_Name} PRIVATE ${Launcher_APP_BINARY_DEFS})
|
||||||
target_compile_definitions(MultiMC_logic PRIVATE ${MultiMC_APP_BINARY_DEFS})
|
target_compile_definitions(Launcher_logic PRIVATE ${Launcher_APP_BINARY_DEFS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(TARGETS MultiMC
|
install(TARGETS ${Launcher_Name}
|
||||||
BUNDLE DESTINATION ${BUNDLE_DEST_DIR} COMPONENT Runtime
|
BUNDLE DESTINATION ${BUNDLE_DEST_DIR} COMPONENT Runtime
|
||||||
LIBRARY DESTINATION ${LIBRARY_DEST_DIR} COMPONENT Runtime
|
LIBRARY DESTINATION ${LIBRARY_DEST_DIR} COMPONENT Runtime
|
||||||
RUNTIME DESTINATION ${BINARY_DEST_DIR} COMPONENT Runtime
|
RUNTIME DESTINATION ${BINARY_DEST_DIR} COMPONENT Runtime
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(MultiMC_logic secrets)
|
#### The bundle mess! ####
|
||||||
|
|
||||||
#### The MultiMC bundle mess! ####
|
|
||||||
# Bundle utilities are used to complete the portable packages - they add all the libraries that would otherwise be missing on the target system.
|
# Bundle utilities are used to complete the portable packages - they add all the libraries that would otherwise be missing on the target system.
|
||||||
# NOTE: it seems that this absolutely has to be here, and nowhere else.
|
# NOTE: it seems that this absolutely has to be here, and nowhere else.
|
||||||
if(INSTALL_BUNDLE STREQUAL "full")
|
if(INSTALL_BUNDLE STREQUAL "full")
|
||||||
|
@ -25,7 +25,7 @@ class Index;
|
|||||||
|
|
||||||
class Env
|
class Env
|
||||||
{
|
{
|
||||||
friend class MultiMC;
|
friend class Launcher;
|
||||||
private:
|
private:
|
||||||
struct Private;
|
struct Private;
|
||||||
Env();
|
Env();
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include "net/PasteUpload.h"
|
#include "net/PasteUpload.h"
|
||||||
#include "dialogs/CustomMessageBox.h"
|
#include "dialogs/CustomMessageBox.h"
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include <settings/SettingsObject.h>
|
#include <settings/SettingsObject.h>
|
||||||
#include <DesktopServices.h>
|
#include <DesktopServices.h>
|
||||||
#include <BuildConfig.h>
|
#include <BuildConfig.h>
|
||||||
@ -16,7 +16,7 @@
|
|||||||
QString GuiUtil::uploadPaste(const QString &text, QWidget *parentWidget)
|
QString GuiUtil::uploadPaste(const QString &text, QWidget *parentWidget)
|
||||||
{
|
{
|
||||||
ProgressDialog dialog(parentWidget);
|
ProgressDialog dialog(parentWidget);
|
||||||
auto APIKeySetting = MMC->settings()->get("PasteEEAPIKey").toString();
|
auto APIKeySetting = LAUNCHER->settings()->get("PasteEEAPIKey").toString();
|
||||||
if(APIKeySetting == "multimc")
|
if(APIKeySetting == "multimc")
|
||||||
{
|
{
|
||||||
APIKeySetting = BuildConfig.PASTE_EE_KEY;
|
APIKeySetting = BuildConfig.PASTE_EE_KEY;
|
||||||
|
@ -822,7 +822,7 @@ Task * InstanceList::wrapInstanceTask(InstanceTask * task)
|
|||||||
QString InstanceList::getStagedInstancePath()
|
QString InstanceList::getStagedInstancePath()
|
||||||
{
|
{
|
||||||
QString key = QUuid::createUuid().toString();
|
QString key = QUuid::createUuid().toString();
|
||||||
QString relPath = FS::PathCombine("_MMC_TEMP/" , key);
|
QString relPath = FS::PathCombine("_LAUNCHER_TEMP/" , key);
|
||||||
QDir rootPath(m_instDir);
|
QDir rootPath(m_instDir);
|
||||||
auto path = FS::PathCombine(m_instDir, relPath);
|
auto path = FS::PathCombine(m_instDir, relPath);
|
||||||
if(!rootPath.mkpath(relPath))
|
if(!rootPath.mkpath(relPath))
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "InstanceProxyModel.h"
|
#include "InstanceProxyModel.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include <BaseInstance.h>
|
#include <BaseInstance.h>
|
||||||
#include <icons/IconList.h>
|
#include <icons/IconList.h>
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ QVariant InstanceProxyModel::data(const QModelIndex & index, int role) const
|
|||||||
QVariant data = QSortFilterProxyModel::data(index, role);
|
QVariant data = QSortFilterProxyModel::data(index, role);
|
||||||
if(role == Qt::DecorationRole)
|
if(role == Qt::DecorationRole)
|
||||||
{
|
{
|
||||||
return QVariant(MMC->icons()->getIcon(data.toString()));
|
return QVariant(LAUNCHER->icons()->getIcon(data.toString()));
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
@ -22,7 +22,7 @@ bool InstanceProxyModel::subSortLessThan(const QModelIndex &left,
|
|||||||
{
|
{
|
||||||
BaseInstance *pdataLeft = static_cast<BaseInstance *>(left.internalPointer());
|
BaseInstance *pdataLeft = static_cast<BaseInstance *>(left.internalPointer());
|
||||||
BaseInstance *pdataRight = static_cast<BaseInstance *>(right.internalPointer());
|
BaseInstance *pdataRight = static_cast<BaseInstance *>(right.internalPointer());
|
||||||
QString sortMode = MMC->settings()->get("InstSortMode").toString();
|
QString sortMode = LAUNCHER->settings()->get("InstSortMode").toString();
|
||||||
if (sortMode == "LastLaunch")
|
if (sortMode == "LastLaunch")
|
||||||
{
|
{
|
||||||
return pdataLeft->lastLaunch() > pdataRight->lastLaunch();
|
return pdataLeft->lastLaunch() > pdataRight->lastLaunch();
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "InstanceWindow.h"
|
#include "InstanceWindow.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
@ -35,7 +35,7 @@ InstanceWindow::InstanceWindow(InstancePtr instance, QWidget *parent)
|
|||||||
{
|
{
|
||||||
setAttribute(Qt::WA_DeleteOnClose);
|
setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
|
||||||
auto icon = MMC->icons()->getIcon(m_instance->iconKey());
|
auto icon = LAUNCHER->icons()->getIcon(m_instance->iconKey());
|
||||||
QString windowTitle = tr("Console window for ") + m_instance->name();
|
QString windowTitle = tr("Console window for ") + m_instance->name();
|
||||||
|
|
||||||
// Set window properties
|
// Set window properties
|
||||||
@ -87,9 +87,9 @@ InstanceWindow::InstanceWindow(InstancePtr instance, QWidget *parent)
|
|||||||
|
|
||||||
// restore window state
|
// restore window state
|
||||||
{
|
{
|
||||||
auto base64State = MMC->settings()->get("ConsoleWindowState").toByteArray();
|
auto base64State = LAUNCHER->settings()->get("ConsoleWindowState").toByteArray();
|
||||||
restoreState(QByteArray::fromBase64(base64State));
|
restoreState(QByteArray::fromBase64(base64State));
|
||||||
auto base64Geometry = MMC->settings()->get("ConsoleWindowGeometry").toByteArray();
|
auto base64Geometry = LAUNCHER->settings()->get("ConsoleWindowGeometry").toByteArray();
|
||||||
restoreGeometry(QByteArray::fromBase64(base64Geometry));
|
restoreGeometry(QByteArray::fromBase64(base64Geometry));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,7 +148,7 @@ void InstanceWindow::updateLaunchButtons()
|
|||||||
|
|
||||||
void InstanceWindow::on_btnLaunchMinecraftOffline_clicked()
|
void InstanceWindow::on_btnLaunchMinecraftOffline_clicked()
|
||||||
{
|
{
|
||||||
MMC->launch(m_instance, false, nullptr);
|
LAUNCHER->launch(m_instance, false, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void InstanceWindow::on_InstanceLaunchTask_changed(shared_qobject_ptr<LaunchTask> proc)
|
void InstanceWindow::on_InstanceLaunchTask_changed(shared_qobject_ptr<LaunchTask> proc)
|
||||||
@ -183,8 +183,8 @@ void InstanceWindow::closeEvent(QCloseEvent *event)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
MMC->settings()->set("ConsoleWindowState", saveState().toBase64());
|
LAUNCHER->settings()->set("ConsoleWindowState", saveState().toBase64());
|
||||||
MMC->settings()->set("ConsoleWindowGeometry", saveGeometry().toBase64());
|
LAUNCHER->settings()->set("ConsoleWindowGeometry", saveGeometry().toBase64());
|
||||||
emit isClosing();
|
emit isClosing();
|
||||||
event->accept();
|
event->accept();
|
||||||
}
|
}
|
||||||
@ -198,11 +198,11 @@ void InstanceWindow::on_btnKillMinecraft_clicked()
|
|||||||
{
|
{
|
||||||
if(m_instance->isRunning())
|
if(m_instance->isRunning())
|
||||||
{
|
{
|
||||||
MMC->kill(m_instance);
|
LAUNCHER->kill(m_instance);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MMC->launch(m_instance, true, nullptr);
|
LAUNCHER->launch(m_instance, true, nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "LaunchController.h"
|
#include "LaunchController.h"
|
||||||
#include "MainWindow.h"
|
#include "MainWindow.h"
|
||||||
#include <minecraft/auth/AccountList.h>
|
#include <minecraft/auth/AccountList.h>
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "dialogs/CustomMessageBox.h"
|
#include "dialogs/CustomMessageBox.h"
|
||||||
#include "dialogs/ProfileSelectDialog.h"
|
#include "dialogs/ProfileSelectDialog.h"
|
||||||
#include "dialogs/ProgressDialog.h"
|
#include "dialogs/ProgressDialog.h"
|
||||||
@ -39,7 +39,7 @@ void LaunchController::login() {
|
|||||||
JavaCommon::checkJVMArgs(m_instance->settings()->get("JvmArgs").toString(), m_parentWidget);
|
JavaCommon::checkJVMArgs(m_instance->settings()->get("JvmArgs").toString(), m_parentWidget);
|
||||||
|
|
||||||
// Find an account to use.
|
// Find an account to use.
|
||||||
std::shared_ptr<AccountList> accounts = MMC->accounts();
|
std::shared_ptr<AccountList> accounts = LAUNCHER->accounts();
|
||||||
if (accounts->count() <= 0)
|
if (accounts->count() <= 0)
|
||||||
{
|
{
|
||||||
// Tell the user they need to log in at least one account in order to play.
|
// Tell the user they need to log in at least one account in order to play.
|
||||||
@ -56,7 +56,7 @@ void LaunchController::login() {
|
|||||||
if (reply == QMessageBox::Yes)
|
if (reply == QMessageBox::Yes)
|
||||||
{
|
{
|
||||||
// Open the account manager.
|
// Open the account manager.
|
||||||
MMC->ShowGlobalSettings(m_parentWidget, "accounts");
|
LAUNCHER->ShowGlobalSettings(m_parentWidget, "accounts");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,7 +254,7 @@ void LaunchController::launchInstance()
|
|||||||
auto showConsole = m_instance->settings()->get("ShowConsole").toBool();
|
auto showConsole = m_instance->settings()->get("ShowConsole").toBool();
|
||||||
if(!console && showConsole)
|
if(!console && showConsole)
|
||||||
{
|
{
|
||||||
MMC->showInstanceWindow(m_instance);
|
LAUNCHER->showInstanceWindow(m_instance);
|
||||||
}
|
}
|
||||||
connect(m_launcher.get(), &LaunchTask::readyForLaunch, this, &LaunchController::readyForLaunch);
|
connect(m_launcher.get(), &LaunchTask::readyForLaunch, this, &LaunchController::readyForLaunch);
|
||||||
connect(m_launcher.get(), &LaunchTask::succeeded, this, &LaunchController::onSucceeded);
|
connect(m_launcher.get(), &LaunchTask::succeeded, this, &LaunchController::onSucceeded);
|
||||||
@ -360,7 +360,7 @@ void LaunchController::onFailed(QString reason)
|
|||||||
{
|
{
|
||||||
if(m_instance->settings()->get("ShowConsoleOnError").toBool())
|
if(m_instance->settings()->get("ShowConsoleOnError").toBool())
|
||||||
{
|
{
|
||||||
MMC->showInstanceWindow(m_instance, "console");
|
LAUNCHER->showInstanceWindow(m_instance, "console");
|
||||||
}
|
}
|
||||||
emitFailed(reason);
|
emitFailed(reason);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "BuildConfig.h"
|
#include "BuildConfig.h"
|
||||||
#include "MainWindow.h"
|
#include "MainWindow.h"
|
||||||
#include "InstanceWindow.h"
|
#include "InstanceWindow.h"
|
||||||
@ -7,7 +7,7 @@
|
|||||||
#include <QAccessible>
|
#include <QAccessible>
|
||||||
|
|
||||||
#include "pages/BasePageProvider.h"
|
#include "pages/BasePageProvider.h"
|
||||||
#include "pages/global/MultiMCPage.h"
|
#include "pages/global/LauncherPage.h"
|
||||||
#include "pages/global/MinecraftPage.h"
|
#include "pages/global/MinecraftPage.h"
|
||||||
#include "pages/global/JavaPage.h"
|
#include "pages/global/JavaPage.h"
|
||||||
#include "pages/global/LanguagePage.h"
|
#include "pages/global/LanguagePage.h"
|
||||||
@ -97,7 +97,7 @@ void appDebugOutput(QtMsgType type, const QMessageLogContext &context, const QSt
|
|||||||
const char *levels = "DWCFIS";
|
const char *levels = "DWCFIS";
|
||||||
const QString format("%1 %2 %3\n");
|
const QString format("%1 %2 %3\n");
|
||||||
|
|
||||||
qint64 msecstotal = MMC->timeSinceStart();
|
qint64 msecstotal = LAUNCHER->timeSinceStart();
|
||||||
qint64 seconds = msecstotal / 1000;
|
qint64 seconds = msecstotal / 1000;
|
||||||
qint64 msecs = msecstotal % 1000;
|
qint64 msecs = msecstotal % 1000;
|
||||||
QString foo;
|
QString foo;
|
||||||
@ -106,8 +106,8 @@ void appDebugOutput(QtMsgType type, const QMessageLogContext &context, const QSt
|
|||||||
|
|
||||||
QString out = format.arg(buf).arg(levels[type]).arg(msg);
|
QString out = format.arg(buf).arg(levels[type]).arg(msg);
|
||||||
|
|
||||||
MMC->logFile->write(out.toUtf8());
|
LAUNCHER->logFile->write(out.toUtf8());
|
||||||
MMC->logFile->flush();
|
LAUNCHER->logFile->flush();
|
||||||
QTextStream(stderr) << out.toLocal8Bit();
|
QTextStream(stderr) << out.toLocal8Bit();
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
}
|
}
|
||||||
@ -153,7 +153,7 @@ QString getIdealPlatform(QString currentPlatform) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
Launcher::Launcher(int &argc, char **argv) : QApplication(argc, argv)
|
||||||
{
|
{
|
||||||
#if defined Q_OS_WIN32
|
#if defined Q_OS_WIN32
|
||||||
// attach the parent console
|
// attach the parent console
|
||||||
@ -257,7 +257,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
|||||||
if(argc > 0)
|
if(argc > 0)
|
||||||
std::cerr << "Try '" << argv[0] << " -h' to get help on MultiMC's command line parameters."
|
std::cerr << "Try '" << argv[0] << " -h' to get help on MultiMC's command line parameters."
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
m_status = MultiMC::Failed;
|
m_status = Launcher::Failed;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -265,7 +265,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
|||||||
if (args["help"].toBool())
|
if (args["help"].toBool())
|
||||||
{
|
{
|
||||||
std::cout << qPrintable(parser.compileHelp(arguments()[0]));
|
std::cout << qPrintable(parser.compileHelp(arguments()[0]));
|
||||||
m_status = MultiMC::Succeeded;
|
m_status = Launcher::Succeeded;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -274,7 +274,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
|||||||
{
|
{
|
||||||
std::cout << "Version " << BuildConfig.printableVersionString().toStdString() << std::endl;
|
std::cout << "Version " << BuildConfig.printableVersionString().toStdString() << std::endl;
|
||||||
std::cout << "Git " << BuildConfig.GIT_COMMIT.toStdString() << std::endl;
|
std::cout << "Git " << BuildConfig.GIT_COMMIT.toStdString() << std::endl;
|
||||||
m_status = MultiMC::Succeeded;
|
m_status = Launcher::Succeeded;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -348,7 +348,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
|||||||
if(m_instanceIdToLaunch.isEmpty() && !m_serverToJoin.isEmpty())
|
if(m_instanceIdToLaunch.isEmpty() && !m_serverToJoin.isEmpty())
|
||||||
{
|
{
|
||||||
std::cerr << "--server can only be used in combination with --launch!" << std::endl;
|
std::cerr << "--server can only be used in combination with --launch!" << std::endl;
|
||||||
m_status = MultiMC::Failed;
|
m_status = Launcher::Failed;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -418,7 +418,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
|||||||
{
|
{
|
||||||
// FIXME: you can run the same binaries with multiple data dirs and they won't clash. This could cause issues for updates.
|
// FIXME: you can run the same binaries with multiple data dirs and they won't clash. This could cause issues for updates.
|
||||||
m_peerInstance = new LocalPeer(this, appID);
|
m_peerInstance = new LocalPeer(this, appID);
|
||||||
connect(m_peerInstance, &LocalPeer::messageReceived, this, &MultiMC::messageReceived);
|
connect(m_peerInstance, &LocalPeer::messageReceived, this, &Launcher::messageReceived);
|
||||||
if(m_peerInstance->isClient())
|
if(m_peerInstance->isClient())
|
||||||
{
|
{
|
||||||
int timeout = 2000;
|
int timeout = 2000;
|
||||||
@ -444,7 +444,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
|||||||
m_peerInstance->sendMessage("launch " + m_instanceIdToLaunch, timeout);
|
m_peerInstance->sendMessage("launch " + m_instanceIdToLaunch, timeout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_status = MultiMC::Succeeded;
|
m_status = Launcher::Succeeded;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -691,7 +691,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
|||||||
// Init page provider
|
// Init page provider
|
||||||
{
|
{
|
||||||
m_globalSettingsProvider = std::make_shared<GenericPageProvider>(tr("Settings"));
|
m_globalSettingsProvider = std::make_shared<GenericPageProvider>(tr("Settings"));
|
||||||
m_globalSettingsProvider->addPage<MultiMCPage>();
|
m_globalSettingsProvider->addPage<LauncherPage>();
|
||||||
m_globalSettingsProvider->addPage<MinecraftPage>();
|
m_globalSettingsProvider->addPage<MinecraftPage>();
|
||||||
m_globalSettingsProvider->addPage<JavaPage>();
|
m_globalSettingsProvider->addPage<JavaPage>();
|
||||||
m_globalSettingsProvider->addPage<LanguagePage>();
|
m_globalSettingsProvider->addPage<LanguagePage>();
|
||||||
@ -729,7 +729,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
|||||||
|
|
||||||
// Instance icons
|
// Instance icons
|
||||||
{
|
{
|
||||||
auto setting = MMC->settings()->getSetting("IconsDir");
|
auto setting = LAUNCHER->settings()->getSetting("IconsDir");
|
||||||
QStringList instFolders =
|
QStringList instFolders =
|
||||||
{
|
{
|
||||||
":/icons/multimc/32x32/instances/",
|
":/icons/multimc/32x32/instances/",
|
||||||
@ -830,7 +830,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
|||||||
m_mcedit.reset(new MCEditTool(m_settings));
|
m_mcedit.reset(new MCEditTool(m_settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
connect(this, &MultiMC::aboutToQuit, [this](){
|
connect(this, &Launcher::aboutToQuit, [this](){
|
||||||
if(m_instances)
|
if(m_instances)
|
||||||
{
|
{
|
||||||
// save any remaining instance state
|
// save any remaining instance state
|
||||||
@ -860,7 +860,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto analyticsSetting = m_settings->getSetting("Analytics");
|
auto analyticsSetting = m_settings->getSetting("Analytics");
|
||||||
connect(analyticsSetting.get(), &Setting::SettingChanged, this, &MultiMC::analyticsSettingChanged);
|
connect(analyticsSetting.get(), &Setting::SettingChanged, this, &Launcher::analyticsSettingChanged);
|
||||||
QString clientID = m_settings->get("AnalyticsClientID").toString();
|
QString clientID = m_settings->get("AnalyticsClientID").toString();
|
||||||
if(clientID.isEmpty())
|
if(clientID.isEmpty())
|
||||||
{
|
{
|
||||||
@ -896,7 +896,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
|||||||
performMainStartupAction();
|
performMainStartupAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MultiMC::createSetupWizard()
|
bool Launcher::createSetupWizard()
|
||||||
{
|
{
|
||||||
bool javaRequired = [&]()
|
bool javaRequired = [&]()
|
||||||
{
|
{
|
||||||
@ -954,22 +954,22 @@ bool MultiMC::createSetupWizard()
|
|||||||
{
|
{
|
||||||
m_setupWizard->addPage(new AnalyticsWizardPage(m_setupWizard));
|
m_setupWizard->addPage(new AnalyticsWizardPage(m_setupWizard));
|
||||||
}
|
}
|
||||||
connect(m_setupWizard, &QDialog::finished, this, &MultiMC::setupWizardFinished);
|
connect(m_setupWizard, &QDialog::finished, this, &Launcher::setupWizardFinished);
|
||||||
m_setupWizard->show();
|
m_setupWizard->show();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::setupWizardFinished(int status)
|
void Launcher::setupWizardFinished(int status)
|
||||||
{
|
{
|
||||||
qDebug() << "Wizard result =" << status;
|
qDebug() << "Wizard result =" << status;
|
||||||
performMainStartupAction();
|
performMainStartupAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::performMainStartupAction()
|
void Launcher::performMainStartupAction()
|
||||||
{
|
{
|
||||||
m_status = MultiMC::Initialized;
|
m_status = Launcher::Initialized;
|
||||||
if(!m_instanceIdToLaunch.isEmpty())
|
if(!m_instanceIdToLaunch.isEmpty())
|
||||||
{
|
{
|
||||||
auto inst = instances()->getInstanceById(m_instanceIdToLaunch);
|
auto inst = instances()->getInstanceById(m_instanceIdToLaunch);
|
||||||
@ -1004,14 +1004,14 @@ void MultiMC::performMainStartupAction()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::showFatalErrorMessage(const QString& title, const QString& content)
|
void Launcher::showFatalErrorMessage(const QString& title, const QString& content)
|
||||||
{
|
{
|
||||||
m_status = MultiMC::Failed;
|
m_status = Launcher::Failed;
|
||||||
auto dialog = CustomMessageBox::selectable(nullptr, title, content, QMessageBox::Critical);
|
auto dialog = CustomMessageBox::selectable(nullptr, title, content, QMessageBox::Critical);
|
||||||
dialog->exec();
|
dialog->exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
MultiMC::~MultiMC()
|
Launcher::~Launcher()
|
||||||
{
|
{
|
||||||
// kill the other globals.
|
// kill the other globals.
|
||||||
Env::dispose();
|
Env::dispose();
|
||||||
@ -1031,7 +1031,7 @@ MultiMC::~MultiMC()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::messageReceived(const QString& message)
|
void Launcher::messageReceived(const QString& message)
|
||||||
{
|
{
|
||||||
if(status() != Initialized)
|
if(status() != Initialized)
|
||||||
{
|
{
|
||||||
@ -1100,7 +1100,7 @@ void MultiMC::messageReceived(const QString& message)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::analyticsSettingChanged(const Setting&, QVariant value)
|
void Launcher::analyticsSettingChanged(const Setting&, QVariant value)
|
||||||
{
|
{
|
||||||
if(!m_analytics)
|
if(!m_analytics)
|
||||||
return;
|
return;
|
||||||
@ -1116,12 +1116,12 @@ void MultiMC::analyticsSettingChanged(const Setting&, QVariant value)
|
|||||||
m_analytics->enable(enabled);
|
m_analytics->enable(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<TranslationsModel> MultiMC::translations()
|
std::shared_ptr<TranslationsModel> Launcher::translations()
|
||||||
{
|
{
|
||||||
return m_translations;
|
return m_translations;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<JavaInstallList> MultiMC::javalist()
|
std::shared_ptr<JavaInstallList> Launcher::javalist()
|
||||||
{
|
{
|
||||||
if (!m_javalist)
|
if (!m_javalist)
|
||||||
{
|
{
|
||||||
@ -1130,7 +1130,7 @@ std::shared_ptr<JavaInstallList> MultiMC::javalist()
|
|||||||
return m_javalist;
|
return m_javalist;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<ITheme *> MultiMC::getValidApplicationThemes()
|
std::vector<ITheme *> Launcher::getValidApplicationThemes()
|
||||||
{
|
{
|
||||||
std::vector<ITheme *> ret;
|
std::vector<ITheme *> ret;
|
||||||
auto iter = m_themes.cbegin();
|
auto iter = m_themes.cbegin();
|
||||||
@ -1142,7 +1142,7 @@ std::vector<ITheme *> MultiMC::getValidApplicationThemes()
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::setApplicationTheme(const QString& name, bool initial)
|
void Launcher::setApplicationTheme(const QString& name, bool initial)
|
||||||
{
|
{
|
||||||
auto systemPalette = qApp->palette();
|
auto systemPalette = qApp->palette();
|
||||||
auto themeIter = m_themes.find(name);
|
auto themeIter = m_themes.find(name);
|
||||||
@ -1157,17 +1157,17 @@ void MultiMC::setApplicationTheme(const QString& name, bool initial)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::setIconTheme(const QString& name)
|
void Launcher::setIconTheme(const QString& name)
|
||||||
{
|
{
|
||||||
XdgIcon::setThemeName(name);
|
XdgIcon::setThemeName(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
QIcon MultiMC::getThemedIcon(const QString& name)
|
QIcon Launcher::getThemedIcon(const QString& name)
|
||||||
{
|
{
|
||||||
return XdgIcon::fromTheme(name);
|
return XdgIcon::fromTheme(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MultiMC::openJsonEditor(const QString &filename)
|
bool Launcher::openJsonEditor(const QString &filename)
|
||||||
{
|
{
|
||||||
const QString file = QDir::current().absoluteFilePath(filename);
|
const QString file = QDir::current().absoluteFilePath(filename);
|
||||||
if (m_settings->get("JsonEditor").toString().isEmpty())
|
if (m_settings->get("JsonEditor").toString().isEmpty())
|
||||||
@ -1181,7 +1181,7 @@ bool MultiMC::openJsonEditor(const QString &filename)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MultiMC::launch(
|
bool Launcher::launch(
|
||||||
InstancePtr instance,
|
InstancePtr instance,
|
||||||
bool online,
|
bool online,
|
||||||
BaseProfilerFactory *profiler,
|
BaseProfilerFactory *profiler,
|
||||||
@ -1216,8 +1216,8 @@ bool MultiMC::launch(
|
|||||||
{
|
{
|
||||||
controller->setParentWidget(m_mainWindow);
|
controller->setParentWidget(m_mainWindow);
|
||||||
}
|
}
|
||||||
connect(controller.get(), &LaunchController::succeeded, this, &MultiMC::controllerSucceeded);
|
connect(controller.get(), &LaunchController::succeeded, this, &Launcher::controllerSucceeded);
|
||||||
connect(controller.get(), &LaunchController::failed, this, &MultiMC::controllerFailed);
|
connect(controller.get(), &LaunchController::failed, this, &Launcher::controllerFailed);
|
||||||
addRunningInstance();
|
addRunningInstance();
|
||||||
controller->start();
|
controller->start();
|
||||||
return true;
|
return true;
|
||||||
@ -1235,7 +1235,7 @@ bool MultiMC::launch(
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MultiMC::kill(InstancePtr instance)
|
bool Launcher::kill(InstancePtr instance)
|
||||||
{
|
{
|
||||||
if (!instance->isRunning())
|
if (!instance->isRunning())
|
||||||
{
|
{
|
||||||
@ -1252,7 +1252,7 @@ bool MultiMC::kill(InstancePtr instance)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::addRunningInstance()
|
void Launcher::addRunningInstance()
|
||||||
{
|
{
|
||||||
m_runningInstances ++;
|
m_runningInstances ++;
|
||||||
if(m_runningInstances == 1)
|
if(m_runningInstances == 1)
|
||||||
@ -1261,7 +1261,7 @@ void MultiMC::addRunningInstance()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::subRunningInstance()
|
void Launcher::subRunningInstance()
|
||||||
{
|
{
|
||||||
if(m_runningInstances == 0)
|
if(m_runningInstances == 0)
|
||||||
{
|
{
|
||||||
@ -1275,23 +1275,23 @@ void MultiMC::subRunningInstance()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MultiMC::shouldExitNow() const
|
bool Launcher::shouldExitNow() const
|
||||||
{
|
{
|
||||||
return m_runningInstances == 0 && m_openWindows == 0;
|
return m_runningInstances == 0 && m_openWindows == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MultiMC::updatesAreAllowed()
|
bool Launcher::updatesAreAllowed()
|
||||||
{
|
{
|
||||||
return m_runningInstances == 0;
|
return m_runningInstances == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::updateIsRunning(bool running)
|
void Launcher::updateIsRunning(bool running)
|
||||||
{
|
{
|
||||||
m_updateRunning = running;
|
m_updateRunning = running;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void MultiMC::controllerSucceeded()
|
void Launcher::controllerSucceeded()
|
||||||
{
|
{
|
||||||
auto controller = qobject_cast<LaunchController *>(QObject::sender());
|
auto controller = qobject_cast<LaunchController *>(QObject::sender());
|
||||||
if(!controller)
|
if(!controller)
|
||||||
@ -1318,7 +1318,7 @@ void MultiMC::controllerSucceeded()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::controllerFailed(const QString& error)
|
void Launcher::controllerFailed(const QString& error)
|
||||||
{
|
{
|
||||||
Q_UNUSED(error);
|
Q_UNUSED(error);
|
||||||
auto controller = qobject_cast<LaunchController *>(QObject::sender());
|
auto controller = qobject_cast<LaunchController *>(QObject::sender());
|
||||||
@ -1339,21 +1339,21 @@ void MultiMC::controllerFailed(const QString& error)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::ShowGlobalSettings(class QWidget* parent, QString open_page)
|
void Launcher::ShowGlobalSettings(class QWidget* parent, QString open_page)
|
||||||
{
|
{
|
||||||
if(!m_globalSettingsProvider) {
|
if(!m_globalSettingsProvider) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
emit globalSettingsAboutToOpen();
|
emit globalSettingsAboutToOpen();
|
||||||
{
|
{
|
||||||
SettingsObject::Lock lock(MMC->settings());
|
SettingsObject::Lock lock(LAUNCHER->settings());
|
||||||
PageDialog dlg(m_globalSettingsProvider.get(), open_page, parent);
|
PageDialog dlg(m_globalSettingsProvider.get(), open_page, parent);
|
||||||
dlg.exec();
|
dlg.exec();
|
||||||
}
|
}
|
||||||
emit globalSettingsClosed();
|
emit globalSettingsClosed();
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow* MultiMC::showMainWindow(bool minimized)
|
MainWindow* Launcher::showMainWindow(bool minimized)
|
||||||
{
|
{
|
||||||
if(m_mainWindow)
|
if(m_mainWindow)
|
||||||
{
|
{
|
||||||
@ -1364,8 +1364,8 @@ MainWindow* MultiMC::showMainWindow(bool minimized)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_mainWindow = new MainWindow();
|
m_mainWindow = new MainWindow();
|
||||||
m_mainWindow->restoreState(QByteArray::fromBase64(MMC->settings()->get("MainWindowState").toByteArray()));
|
m_mainWindow->restoreState(QByteArray::fromBase64(LAUNCHER->settings()->get("MainWindowState").toByteArray()));
|
||||||
m_mainWindow->restoreGeometry(QByteArray::fromBase64(MMC->settings()->get("MainWindowGeometry").toByteArray()));
|
m_mainWindow->restoreGeometry(QByteArray::fromBase64(LAUNCHER->settings()->get("MainWindowGeometry").toByteArray()));
|
||||||
if(minimized)
|
if(minimized)
|
||||||
{
|
{
|
||||||
m_mainWindow->showMinimized();
|
m_mainWindow->showMinimized();
|
||||||
@ -1376,8 +1376,8 @@ MainWindow* MultiMC::showMainWindow(bool minimized)
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_mainWindow->checkInstancePathForProblems();
|
m_mainWindow->checkInstancePathForProblems();
|
||||||
connect(this, &MultiMC::updateAllowedChanged, m_mainWindow, &MainWindow::updatesAllowedChanged);
|
connect(this, &Launcher::updateAllowedChanged, m_mainWindow, &MainWindow::updatesAllowedChanged);
|
||||||
connect(m_mainWindow, &MainWindow::isClosing, this, &MultiMC::on_windowClose);
|
connect(m_mainWindow, &MainWindow::isClosing, this, &Launcher::on_windowClose);
|
||||||
m_openWindows++;
|
m_openWindows++;
|
||||||
}
|
}
|
||||||
// FIXME: move this somewhere else...
|
// FIXME: move this somewhere else...
|
||||||
@ -1437,7 +1437,7 @@ MainWindow* MultiMC::showMainWindow(bool minimized)
|
|||||||
return m_mainWindow;
|
return m_mainWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
InstanceWindow *MultiMC::showInstanceWindow(InstancePtr instance, QString page)
|
InstanceWindow *Launcher::showInstanceWindow(InstancePtr instance, QString page)
|
||||||
{
|
{
|
||||||
if(!instance)
|
if(!instance)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
@ -1454,7 +1454,7 @@ InstanceWindow *MultiMC::showInstanceWindow(InstancePtr instance, QString page)
|
|||||||
{
|
{
|
||||||
window = new InstanceWindow(instance);
|
window = new InstanceWindow(instance);
|
||||||
m_openWindows ++;
|
m_openWindows ++;
|
||||||
connect(window, &InstanceWindow::isClosing, this, &MultiMC::on_windowClose);
|
connect(window, &InstanceWindow::isClosing, this, &Launcher::on_windowClose);
|
||||||
}
|
}
|
||||||
if(!page.isEmpty())
|
if(!page.isEmpty())
|
||||||
{
|
{
|
||||||
@ -1467,7 +1467,7 @@ InstanceWindow *MultiMC::showInstanceWindow(InstancePtr instance, QString page)
|
|||||||
return window;
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMC::on_windowClose()
|
void Launcher::on_windowClose()
|
||||||
{
|
{
|
||||||
m_openWindows--;
|
m_openWindows--;
|
||||||
auto instWindow = qobject_cast<InstanceWindow *>(QObject::sender());
|
auto instWindow = qobject_cast<InstanceWindow *>(QObject::sender());
|
@ -36,12 +36,12 @@ class ITheme;
|
|||||||
class MCEditTool;
|
class MCEditTool;
|
||||||
class GAnalytics;
|
class GAnalytics;
|
||||||
|
|
||||||
#if defined(MMC)
|
#if defined(LAUNCHER)
|
||||||
#undef MMC
|
#undef LAUNCHER
|
||||||
#endif
|
#endif
|
||||||
#define MMC (static_cast<MultiMC *>(QCoreApplication::instance()))
|
#define LAUNCHER (static_cast<Launcher *>(QCoreApplication::instance()))
|
||||||
|
|
||||||
class MultiMC : public QApplication
|
class Launcher : public QApplication
|
||||||
{
|
{
|
||||||
// friends for the purpose of limiting access to deprecated stuff
|
// friends for the purpose of limiting access to deprecated stuff
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -55,8 +55,8 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MultiMC(int &argc, char **argv);
|
Launcher(int &argc, char **argv);
|
||||||
virtual ~MultiMC();
|
virtual ~Launcher();
|
||||||
|
|
||||||
GAnalytics *analytics() const
|
GAnalytics *analytics() const
|
||||||
{
|
{
|
||||||
@ -198,7 +198,7 @@ private:
|
|||||||
QMap<QString, std::shared_ptr<BaseProfilerFactory>> m_profilers;
|
QMap<QString, std::shared_ptr<BaseProfilerFactory>> m_profilers;
|
||||||
|
|
||||||
QString m_rootPath;
|
QString m_rootPath;
|
||||||
Status m_status = MultiMC::StartingUp;
|
Status m_status = Launcher::StartingUp;
|
||||||
|
|
||||||
#if defined Q_OS_WIN32
|
#if defined Q_OS_WIN32
|
||||||
// used on Windows to attach the standard IO streams
|
// used on Windows to attach the standard IO streams
|
@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Basic start script for running MultiMC with the libs packaged with it.
|
# Basic start script for running the launcher with the libs packaged with it.
|
||||||
|
|
||||||
function printerror {
|
function printerror {
|
||||||
printf "$1"
|
printf "$1"
|
||||||
@ -14,37 +14,38 @@ if [[ $EUID -eq 0 ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
MMC_DIR="$(dirname "$(readlink -f "$0")")"
|
LAUNCHER_NAME=@Launcher_Name@
|
||||||
echo "MultiMC Dir: ${MMC_DIR}"
|
LAUNCHER_DIR="$(dirname "$(readlink -f "$0")")"
|
||||||
|
echo "Launcher Dir: ${LAUNCHER_DIR}"
|
||||||
|
|
||||||
# Set up env - filter out input LD_ variables but pass them in under different names
|
# Set up env - filter out input LD_ variables but pass them in under different names
|
||||||
export GAME_LIBRARY_PATH=${GAME_LIBRARY_PATH-${LD_LIBRARY_PATH}}
|
export GAME_LIBRARY_PATH=${GAME_LIBRARY_PATH-${LD_LIBRARY_PATH}}
|
||||||
export GAME_PRELOAD=${GAME_PRELOAD-${LD_PRELOAD}}
|
export GAME_PRELOAD=${GAME_PRELOAD-${LD_PRELOAD}}
|
||||||
export LD_LIBRARY_PATH="${MMC_DIR}/bin":$MMC_LIBRARY_PATH
|
export LD_LIBRARY_PATH="${LAUNCHER_DIR}/bin":$LAUNCHER_LIBRARY_PATH
|
||||||
export LD_PRELOAD=$MMC_PRELOAD
|
export LD_PRELOAD=$LAUNCHER_PRELOAD
|
||||||
export QT_PLUGIN_PATH="${MMC_DIR}/plugins"
|
export QT_PLUGIN_PATH="${LAUNCHER_DIR}/plugins"
|
||||||
export QT_FONTPATH="${MMC_DIR}/fonts"
|
export QT_FONTPATH="${LAUNCHER_DIR}/fonts"
|
||||||
|
|
||||||
# Detect missing dependencies...
|
# Detect missing dependencies...
|
||||||
DEPS_LIST=`ldd "${MMC_DIR}"/plugins/*/*.so 2>/dev/null | grep "not found" | sort -u | awk -vORS=", " '{ print $1 }'`
|
DEPS_LIST=`ldd "${LAUNCHER_DIR}"/plugins/*/*.so 2>/dev/null | grep "not found" | sort -u | awk -vORS=", " '{ print $1 }'`
|
||||||
if [ "x$DEPS_LIST" = "x" ]; then
|
if [ "x$DEPS_LIST" = "x" ]; then
|
||||||
# We have all our dependencies. Run MultiMC.
|
# We have all our dependencies. Run the launcher.
|
||||||
echo "No missing dependencies found."
|
echo "No missing dependencies found."
|
||||||
|
|
||||||
# Just to be sure...
|
# Just to be sure...
|
||||||
chmod +x "${MMC_DIR}/bin/MultiMC"
|
chmod +x "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}"
|
||||||
|
|
||||||
# Run MultiMC
|
# Run the launcher
|
||||||
exec -a "${MMC_DIR}/MultiMC" "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" "$@"
|
exec -a "${LAUNCHER_DIR}/${LAUNCHER_NAME}" "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}" -d "${LAUNCHER_DIR}" "$@"
|
||||||
|
|
||||||
# Run MultiMC in valgrind
|
# Run the launcher in valgrind
|
||||||
# valgrind --log-file="valgrind.log" --leak-check=full --track-origins=yes "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" "$@"
|
# valgrind --log-file="valgrind.log" --leak-check=full --track-origins=yes "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}" -d "${LAUNCHER_DIR}" "$@"
|
||||||
|
|
||||||
# Run MultiMC with callgrind, delay instrumentation
|
# Run the launcher with callgrind, delay instrumentation
|
||||||
# valgrind --log-file="valgrind.log" --tool=callgrind --instr-atstart=no "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" "$@"
|
# valgrind --log-file="valgrind.log" --tool=callgrind --instr-atstart=no "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}" -d "${LAUNCHER_DIR}" "$@"
|
||||||
# use callgrind_control -i on/off to profile actions
|
# use callgrind_control -i on/off to profile actions
|
||||||
|
|
||||||
# Exit with MultiMC's exit code.
|
# Exit with launcher's exit code.
|
||||||
# exit $?
|
# exit $?
|
||||||
else
|
else
|
||||||
# apt
|
# apt
|
||||||
@ -85,7 +86,7 @@ else
|
|||||||
INSTALL_CMD="sudo emerge $COMMAND_LIBS"
|
INSTALL_CMD="sudo emerge $COMMAND_LIBS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
MESSAGE="Error: MultiMC is missing the following libraries that it needs to work correctly:\n\t${DEPS_LIST}\nPlease install them from your distribution's package manager."
|
MESSAGE="Error: The launcher is missing the following libraries that it needs to work correctly:\n\t${DEPS_LIST}\nPlease install them from your distribution's package manager."
|
||||||
MESSAGE="$MESSAGE\n\nHint (please apply common sense): $INSTALL_CMD\n"
|
MESSAGE="$MESSAGE\n\nHint (please apply common sense): $INSTALL_CMD\n"
|
||||||
|
|
||||||
printerror "$MESSAGE"
|
printerror "$MESSAGE"
|
@ -16,7 +16,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "BuildConfig.h"
|
#include "BuildConfig.h"
|
||||||
|
|
||||||
#include "MainWindow.h"
|
#include "MainWindow.h"
|
||||||
@ -267,7 +267,7 @@ public:
|
|||||||
|
|
||||||
actionAddInstance = TranslatedAction(MainWindow);
|
actionAddInstance = TranslatedAction(MainWindow);
|
||||||
actionAddInstance->setObjectName(QStringLiteral("actionAddInstance"));
|
actionAddInstance->setObjectName(QStringLiteral("actionAddInstance"));
|
||||||
actionAddInstance->setIcon(MMC->getThemedIcon("new"));
|
actionAddInstance->setIcon(LAUNCHER->getThemedIcon("new"));
|
||||||
actionAddInstance.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Add Instance"));
|
actionAddInstance.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Add Instance"));
|
||||||
actionAddInstance.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Add a new instance."));
|
actionAddInstance.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Add a new instance."));
|
||||||
all_actions.append(&actionAddInstance);
|
all_actions.append(&actionAddInstance);
|
||||||
@ -280,7 +280,7 @@ public:
|
|||||||
|
|
||||||
actionViewInstanceFolder = TranslatedAction(MainWindow);
|
actionViewInstanceFolder = TranslatedAction(MainWindow);
|
||||||
actionViewInstanceFolder->setObjectName(QStringLiteral("actionViewInstanceFolder"));
|
actionViewInstanceFolder->setObjectName(QStringLiteral("actionViewInstanceFolder"));
|
||||||
actionViewInstanceFolder->setIcon(MMC->getThemedIcon("viewfolder"));
|
actionViewInstanceFolder->setIcon(LAUNCHER->getThemedIcon("viewfolder"));
|
||||||
actionViewInstanceFolder.setTextId(QT_TRANSLATE_NOOP("MainWindow", "View Instance Folder"));
|
actionViewInstanceFolder.setTextId(QT_TRANSLATE_NOOP("MainWindow", "View Instance Folder"));
|
||||||
actionViewInstanceFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the instance folder in a file browser."));
|
actionViewInstanceFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the instance folder in a file browser."));
|
||||||
all_actions.append(&actionViewInstanceFolder);
|
all_actions.append(&actionViewInstanceFolder);
|
||||||
@ -288,7 +288,7 @@ public:
|
|||||||
|
|
||||||
actionViewCentralModsFolder = TranslatedAction(MainWindow);
|
actionViewCentralModsFolder = TranslatedAction(MainWindow);
|
||||||
actionViewCentralModsFolder->setObjectName(QStringLiteral("actionViewCentralModsFolder"));
|
actionViewCentralModsFolder->setObjectName(QStringLiteral("actionViewCentralModsFolder"));
|
||||||
actionViewCentralModsFolder->setIcon(MMC->getThemedIcon("centralmods"));
|
actionViewCentralModsFolder->setIcon(LAUNCHER->getThemedIcon("centralmods"));
|
||||||
actionViewCentralModsFolder.setTextId(QT_TRANSLATE_NOOP("MainWindow", "View Central Mods Folder"));
|
actionViewCentralModsFolder.setTextId(QT_TRANSLATE_NOOP("MainWindow", "View Central Mods Folder"));
|
||||||
actionViewCentralModsFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the central mods folder in a file browser."));
|
actionViewCentralModsFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the central mods folder in a file browser."));
|
||||||
all_actions.append(&actionViewCentralModsFolder);
|
all_actions.append(&actionViewCentralModsFolder);
|
||||||
@ -300,7 +300,7 @@ public:
|
|||||||
foldersMenuButton->setMenu(foldersMenu);
|
foldersMenuButton->setMenu(foldersMenu);
|
||||||
foldersMenuButton->setPopupMode(QToolButton::InstantPopup);
|
foldersMenuButton->setPopupMode(QToolButton::InstantPopup);
|
||||||
foldersMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
foldersMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
||||||
foldersMenuButton->setIcon(MMC->getThemedIcon("viewfolder"));
|
foldersMenuButton->setIcon(LAUNCHER->getThemedIcon("viewfolder"));
|
||||||
foldersMenuButton->setFocusPolicy(Qt::NoFocus);
|
foldersMenuButton->setFocusPolicy(Qt::NoFocus);
|
||||||
all_toolbuttons.append(&foldersMenuButton);
|
all_toolbuttons.append(&foldersMenuButton);
|
||||||
QWidgetAction* foldersButtonAction = new QWidgetAction(MainWindow);
|
QWidgetAction* foldersButtonAction = new QWidgetAction(MainWindow);
|
||||||
@ -309,7 +309,7 @@ public:
|
|||||||
|
|
||||||
actionSettings = TranslatedAction(MainWindow);
|
actionSettings = TranslatedAction(MainWindow);
|
||||||
actionSettings->setObjectName(QStringLiteral("actionSettings"));
|
actionSettings->setObjectName(QStringLiteral("actionSettings"));
|
||||||
actionSettings->setIcon(MMC->getThemedIcon("settings"));
|
actionSettings->setIcon(LAUNCHER->getThemedIcon("settings"));
|
||||||
actionSettings->setMenuRole(QAction::PreferencesRole);
|
actionSettings->setMenuRole(QAction::PreferencesRole);
|
||||||
actionSettings.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Settings"));
|
actionSettings.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Settings"));
|
||||||
actionSettings.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Change settings."));
|
actionSettings.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Change settings."));
|
||||||
@ -322,7 +322,7 @@ public:
|
|||||||
if (!BuildConfig.BUG_TRACKER_URL.isEmpty()) {
|
if (!BuildConfig.BUG_TRACKER_URL.isEmpty()) {
|
||||||
actionReportBug = TranslatedAction(MainWindow);
|
actionReportBug = TranslatedAction(MainWindow);
|
||||||
actionReportBug->setObjectName(QStringLiteral("actionReportBug"));
|
actionReportBug->setObjectName(QStringLiteral("actionReportBug"));
|
||||||
actionReportBug->setIcon(MMC->getThemedIcon("bug"));
|
actionReportBug->setIcon(LAUNCHER->getThemedIcon("bug"));
|
||||||
actionReportBug.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Report a Bug"));
|
actionReportBug.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Report a Bug"));
|
||||||
actionReportBug.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the bug tracker to report a bug with MultiMC."));
|
actionReportBug.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the bug tracker to report a bug with MultiMC."));
|
||||||
all_actions.append(&actionReportBug);
|
all_actions.append(&actionReportBug);
|
||||||
@ -332,7 +332,7 @@ public:
|
|||||||
if (!BuildConfig.DISCORD_URL.isEmpty()) {
|
if (!BuildConfig.DISCORD_URL.isEmpty()) {
|
||||||
actionDISCORD = TranslatedAction(MainWindow);
|
actionDISCORD = TranslatedAction(MainWindow);
|
||||||
actionDISCORD->setObjectName(QStringLiteral("actionDISCORD"));
|
actionDISCORD->setObjectName(QStringLiteral("actionDISCORD"));
|
||||||
actionDISCORD->setIcon(MMC->getThemedIcon("discord"));
|
actionDISCORD->setIcon(LAUNCHER->getThemedIcon("discord"));
|
||||||
actionDISCORD.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Discord"));
|
actionDISCORD.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Discord"));
|
||||||
actionDISCORD.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open MultiMC discord voice chat."));
|
actionDISCORD.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open MultiMC discord voice chat."));
|
||||||
all_actions.append(&actionDISCORD);
|
all_actions.append(&actionDISCORD);
|
||||||
@ -342,7 +342,7 @@ public:
|
|||||||
if (!BuildConfig.SUBREDDIT_URL.isEmpty()) {
|
if (!BuildConfig.SUBREDDIT_URL.isEmpty()) {
|
||||||
actionREDDIT = TranslatedAction(MainWindow);
|
actionREDDIT = TranslatedAction(MainWindow);
|
||||||
actionREDDIT->setObjectName(QStringLiteral("actionREDDIT"));
|
actionREDDIT->setObjectName(QStringLiteral("actionREDDIT"));
|
||||||
actionREDDIT->setIcon(MMC->getThemedIcon("reddit-alien"));
|
actionREDDIT->setIcon(LAUNCHER->getThemedIcon("reddit-alien"));
|
||||||
actionREDDIT.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Reddit"));
|
actionREDDIT.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Reddit"));
|
||||||
actionREDDIT.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open MultiMC subreddit."));
|
actionREDDIT.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open MultiMC subreddit."));
|
||||||
all_actions.append(&actionREDDIT);
|
all_actions.append(&actionREDDIT);
|
||||||
@ -351,7 +351,7 @@ public:
|
|||||||
|
|
||||||
actionAbout = TranslatedAction(MainWindow);
|
actionAbout = TranslatedAction(MainWindow);
|
||||||
actionAbout->setObjectName(QStringLiteral("actionAbout"));
|
actionAbout->setObjectName(QStringLiteral("actionAbout"));
|
||||||
actionAbout->setIcon(MMC->getThemedIcon("about"));
|
actionAbout->setIcon(LAUNCHER->getThemedIcon("about"));
|
||||||
actionAbout->setMenuRole(QAction::AboutRole);
|
actionAbout->setMenuRole(QAction::AboutRole);
|
||||||
actionAbout.setTextId(QT_TRANSLATE_NOOP("MainWindow", "About MultiMC"));
|
actionAbout.setTextId(QT_TRANSLATE_NOOP("MainWindow", "About MultiMC"));
|
||||||
actionAbout.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "View information about MultiMC."));
|
actionAbout.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "View information about MultiMC."));
|
||||||
@ -364,7 +364,7 @@ public:
|
|||||||
helpMenuButton->setMenu(helpMenu);
|
helpMenuButton->setMenu(helpMenu);
|
||||||
helpMenuButton->setPopupMode(QToolButton::InstantPopup);
|
helpMenuButton->setPopupMode(QToolButton::InstantPopup);
|
||||||
helpMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
helpMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
||||||
helpMenuButton->setIcon(MMC->getThemedIcon("help"));
|
helpMenuButton->setIcon(LAUNCHER->getThemedIcon("help"));
|
||||||
helpMenuButton->setFocusPolicy(Qt::NoFocus);
|
helpMenuButton->setFocusPolicy(Qt::NoFocus);
|
||||||
all_toolbuttons.append(&helpMenuButton);
|
all_toolbuttons.append(&helpMenuButton);
|
||||||
QWidgetAction* helpButtonAction = new QWidgetAction(MainWindow);
|
QWidgetAction* helpButtonAction = new QWidgetAction(MainWindow);
|
||||||
@ -375,7 +375,7 @@ public:
|
|||||||
{
|
{
|
||||||
actionCheckUpdate = TranslatedAction(MainWindow);
|
actionCheckUpdate = TranslatedAction(MainWindow);
|
||||||
actionCheckUpdate->setObjectName(QStringLiteral("actionCheckUpdate"));
|
actionCheckUpdate->setObjectName(QStringLiteral("actionCheckUpdate"));
|
||||||
actionCheckUpdate->setIcon(MMC->getThemedIcon("checkupdate"));
|
actionCheckUpdate->setIcon(LAUNCHER->getThemedIcon("checkupdate"));
|
||||||
actionCheckUpdate.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Update"));
|
actionCheckUpdate.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Update"));
|
||||||
actionCheckUpdate.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Check for new updates for MultiMC."));
|
actionCheckUpdate.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Check for new updates for MultiMC."));
|
||||||
all_actions.append(&actionCheckUpdate);
|
all_actions.append(&actionCheckUpdate);
|
||||||
@ -386,7 +386,7 @@ public:
|
|||||||
|
|
||||||
actionPatreon = TranslatedAction(MainWindow);
|
actionPatreon = TranslatedAction(MainWindow);
|
||||||
actionPatreon->setObjectName(QStringLiteral("actionPatreon"));
|
actionPatreon->setObjectName(QStringLiteral("actionPatreon"));
|
||||||
actionPatreon->setIcon(MMC->getThemedIcon("patreon"));
|
actionPatreon->setIcon(LAUNCHER->getThemedIcon("patreon"));
|
||||||
actionPatreon.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Support MultiMC"));
|
actionPatreon.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Support MultiMC"));
|
||||||
actionPatreon.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the MultiMC Patreon page."));
|
actionPatreon.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the MultiMC Patreon page."));
|
||||||
all_actions.append(&actionPatreon);
|
all_actions.append(&actionPatreon);
|
||||||
@ -395,7 +395,7 @@ public:
|
|||||||
actionCAT = TranslatedAction(MainWindow);
|
actionCAT = TranslatedAction(MainWindow);
|
||||||
actionCAT->setObjectName(QStringLiteral("actionCAT"));
|
actionCAT->setObjectName(QStringLiteral("actionCAT"));
|
||||||
actionCAT->setCheckable(true);
|
actionCAT->setCheckable(true);
|
||||||
actionCAT->setIcon(MMC->getThemedIcon("cat"));
|
actionCAT->setIcon(LAUNCHER->getThemedIcon("cat"));
|
||||||
actionCAT.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Meow"));
|
actionCAT.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Meow"));
|
||||||
actionCAT.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "It's a fluffy kitty :3"));
|
actionCAT.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "It's a fluffy kitty :3"));
|
||||||
actionCAT->setPriority(QAction::LowPriority);
|
actionCAT->setPriority(QAction::LowPriority);
|
||||||
@ -408,7 +408,7 @@ public:
|
|||||||
actionManageAccounts.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Manage Accounts"));
|
actionManageAccounts.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Manage Accounts"));
|
||||||
// FIXME: no tooltip!
|
// FIXME: no tooltip!
|
||||||
actionManageAccounts->setCheckable(false);
|
actionManageAccounts->setCheckable(false);
|
||||||
actionManageAccounts->setIcon(MMC->getThemedIcon("accounts"));
|
actionManageAccounts->setIcon(LAUNCHER->getThemedIcon("accounts"));
|
||||||
all_actions.append(&actionManageAccounts);
|
all_actions.append(&actionManageAccounts);
|
||||||
|
|
||||||
all_toolbars.append(&mainToolBar);
|
all_toolbars.append(&mainToolBar);
|
||||||
@ -435,7 +435,7 @@ public:
|
|||||||
|
|
||||||
actionMoreNews = TranslatedAction(MainWindow);
|
actionMoreNews = TranslatedAction(MainWindow);
|
||||||
actionMoreNews->setObjectName(QStringLiteral("actionMoreNews"));
|
actionMoreNews->setObjectName(QStringLiteral("actionMoreNews"));
|
||||||
actionMoreNews->setIcon(MMC->getThemedIcon("news"));
|
actionMoreNews->setIcon(LAUNCHER->getThemedIcon("news"));
|
||||||
actionMoreNews.setTextId(QT_TRANSLATE_NOOP("MainWindow", "More news..."));
|
actionMoreNews.setTextId(QT_TRANSLATE_NOOP("MainWindow", "More news..."));
|
||||||
actionMoreNews.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the MultiMC development blog to read more news about MultiMC."));
|
actionMoreNews.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the MultiMC development blog to read more news about MultiMC."));
|
||||||
all_actions.append(&actionMoreNews);
|
all_actions.append(&actionMoreNews);
|
||||||
@ -467,7 +467,7 @@ public:
|
|||||||
|
|
||||||
changeIconButton = new LabeledToolButton(MainWindow);
|
changeIconButton = new LabeledToolButton(MainWindow);
|
||||||
changeIconButton->setObjectName(QStringLiteral("changeIconButton"));
|
changeIconButton->setObjectName(QStringLiteral("changeIconButton"));
|
||||||
changeIconButton->setIcon(MMC->getThemedIcon("news"));
|
changeIconButton->setIcon(LAUNCHER->getThemedIcon("news"));
|
||||||
changeIconButton->setToolTip(actionChangeInstIcon->toolTip());
|
changeIconButton->setToolTip(actionChangeInstIcon->toolTip());
|
||||||
changeIconButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
changeIconButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||||
instanceToolBar->addWidget(changeIconButton);
|
instanceToolBar->addWidget(changeIconButton);
|
||||||
@ -578,7 +578,7 @@ public:
|
|||||||
|
|
||||||
actionCopyInstance = TranslatedAction(MainWindow);
|
actionCopyInstance = TranslatedAction(MainWindow);
|
||||||
actionCopyInstance->setObjectName(QStringLiteral("actionCopyInstance"));
|
actionCopyInstance->setObjectName(QStringLiteral("actionCopyInstance"));
|
||||||
actionCopyInstance->setIcon(MMC->getThemedIcon("copy"));
|
actionCopyInstance->setIcon(LAUNCHER->getThemedIcon("copy"));
|
||||||
actionCopyInstance.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Copy Instance"));
|
actionCopyInstance.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Copy Instance"));
|
||||||
actionCopyInstance.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Copy the selected instance."));
|
actionCopyInstance.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Copy the selected instance."));
|
||||||
all_actions.append(&actionCopyInstance);
|
all_actions.append(&actionCopyInstance);
|
||||||
@ -595,7 +595,7 @@ public:
|
|||||||
MainWindow->setObjectName(QStringLiteral("MainWindow"));
|
MainWindow->setObjectName(QStringLiteral("MainWindow"));
|
||||||
}
|
}
|
||||||
MainWindow->resize(800, 600);
|
MainWindow->resize(800, 600);
|
||||||
MainWindow->setWindowIcon(MMC->getThemedIcon("logo"));
|
MainWindow->setWindowIcon(LAUNCHER->getThemedIcon("logo"));
|
||||||
MainWindow->setWindowTitle("MultiMC 5");
|
MainWindow->setWindowTitle("MultiMC 5");
|
||||||
#ifndef QT_NO_ACCESSIBILITY
|
#ifndef QT_NO_ACCESSIBILITY
|
||||||
MainWindow->setAccessibleName("MultiMC");
|
MainWindow->setAccessibleName("MultiMC");
|
||||||
@ -672,7 +672,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
|
|||||||
{
|
{
|
||||||
m_newsChecker.reset(new NewsChecker(BuildConfig.NEWS_RSS_URL));
|
m_newsChecker.reset(new NewsChecker(BuildConfig.NEWS_RSS_URL));
|
||||||
newsLabel = new QToolButton();
|
newsLabel = new QToolButton();
|
||||||
newsLabel->setIcon(MMC->getThemedIcon("news"));
|
newsLabel->setIcon(LAUNCHER->getThemedIcon("news"));
|
||||||
newsLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
newsLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||||
newsLabel->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
newsLabel->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
||||||
newsLabel->setFocusPolicy(Qt::NoFocus);
|
newsLabel->setFocusPolicy(Qt::NoFocus);
|
||||||
@ -699,20 +699,20 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
|
|||||||
connect(view, &GroupView::droppedURLs, this, &MainWindow::droppedURLs, Qt::QueuedConnection);
|
connect(view, &GroupView::droppedURLs, this, &MainWindow::droppedURLs, Qt::QueuedConnection);
|
||||||
|
|
||||||
proxymodel = new InstanceProxyModel(this);
|
proxymodel = new InstanceProxyModel(this);
|
||||||
proxymodel->setSourceModel(MMC->instances().get());
|
proxymodel->setSourceModel(LAUNCHER->instances().get());
|
||||||
proxymodel->sort(0);
|
proxymodel->sort(0);
|
||||||
connect(proxymodel, &InstanceProxyModel::dataChanged, this, &MainWindow::instanceDataChanged);
|
connect(proxymodel, &InstanceProxyModel::dataChanged, this, &MainWindow::instanceDataChanged);
|
||||||
|
|
||||||
view->setModel(proxymodel);
|
view->setModel(proxymodel);
|
||||||
view->setSourceOfGroupCollapseStatus([](const QString & groupName)->bool {
|
view->setSourceOfGroupCollapseStatus([](const QString & groupName)->bool {
|
||||||
return MMC->instances()->isGroupCollapsed(groupName);
|
return LAUNCHER->instances()->isGroupCollapsed(groupName);
|
||||||
});
|
});
|
||||||
connect(view, &GroupView::groupStateChanged, MMC->instances().get(), &InstanceList::on_GroupStateChanged);
|
connect(view, &GroupView::groupStateChanged, LAUNCHER->instances().get(), &InstanceList::on_GroupStateChanged);
|
||||||
ui->horizontalLayout->addWidget(view);
|
ui->horizontalLayout->addWidget(view);
|
||||||
}
|
}
|
||||||
// The cat background
|
// The cat background
|
||||||
{
|
{
|
||||||
bool cat_enable = MMC->settings()->get("TheCat").toBool();
|
bool cat_enable = LAUNCHER->settings()->get("TheCat").toBool();
|
||||||
ui->actionCAT->setChecked(cat_enable);
|
ui->actionCAT->setChecked(cat_enable);
|
||||||
// NOTE: calling the operator like that is an ugly hack to appease ancient gcc...
|
// NOTE: calling the operator like that is an ugly hack to appease ancient gcc...
|
||||||
connect(ui->actionCAT.operator->(), SIGNAL(toggled(bool)), SLOT(onCatToggled(bool)));
|
connect(ui->actionCAT.operator->(), SIGNAL(toggled(bool)), SLOT(onCatToggled(bool)));
|
||||||
@ -725,16 +725,16 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
|
|||||||
connect(view->selectionModel(), &QItemSelectionModel::currentChanged, this, &MainWindow::instanceChanged);
|
connect(view->selectionModel(), &QItemSelectionModel::currentChanged, this, &MainWindow::instanceChanged);
|
||||||
|
|
||||||
// track icon changes and update the toolbar!
|
// track icon changes and update the toolbar!
|
||||||
connect(MMC->icons().get(), &IconList::iconUpdated, this, &MainWindow::iconUpdated);
|
connect(LAUNCHER->icons().get(), &IconList::iconUpdated, this, &MainWindow::iconUpdated);
|
||||||
|
|
||||||
// model reset -> selection is invalid. All the instance pointers are wrong.
|
// model reset -> selection is invalid. All the instance pointers are wrong.
|
||||||
connect(MMC->instances().get(), &InstanceList::dataIsInvalid, this, &MainWindow::selectionBad);
|
connect(LAUNCHER->instances().get(), &InstanceList::dataIsInvalid, this, &MainWindow::selectionBad);
|
||||||
|
|
||||||
// handle newly added instances
|
// handle newly added instances
|
||||||
connect(MMC->instances().get(), &InstanceList::instanceSelectRequest, this, &MainWindow::instanceSelectRequest);
|
connect(LAUNCHER->instances().get(), &InstanceList::instanceSelectRequest, this, &MainWindow::instanceSelectRequest);
|
||||||
|
|
||||||
// When the global settings page closes, we want to know about it and update our state
|
// When the global settings page closes, we want to know about it and update our state
|
||||||
connect(MMC, &MultiMC::globalSettingsClosed, this, &MainWindow::globalSettingsClosed);
|
connect(LAUNCHER, &Launcher::globalSettingsClosed, this, &MainWindow::globalSettingsClosed);
|
||||||
|
|
||||||
m_statusLeft = new QLabel(tr("No instance selected"), this);
|
m_statusLeft = new QLabel(tr("No instance selected"), this);
|
||||||
m_statusCenter = new QLabel(tr("Total playtime: 0s."), this);
|
m_statusCenter = new QLabel(tr("Total playtime: 0s."), this);
|
||||||
@ -754,7 +754,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
|
|||||||
accountMenuButton->setMenu(accountMenu);
|
accountMenuButton->setMenu(accountMenu);
|
||||||
accountMenuButton->setPopupMode(QToolButton::InstantPopup);
|
accountMenuButton->setPopupMode(QToolButton::InstantPopup);
|
||||||
accountMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
accountMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
||||||
accountMenuButton->setIcon(MMC->getThemedIcon("noaccount"));
|
accountMenuButton->setIcon(LAUNCHER->getThemedIcon("noaccount"));
|
||||||
|
|
||||||
QWidgetAction *accountMenuButtonAction = new QWidgetAction(this);
|
QWidgetAction *accountMenuButtonAction = new QWidgetAction(this);
|
||||||
accountMenuButtonAction->setDefaultWidget(accountMenuButton);
|
accountMenuButtonAction->setDefaultWidget(accountMenuButton);
|
||||||
@ -765,14 +765,14 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
|
|||||||
// Shouldn't have to use lambdas here like this, but if I don't, the compiler throws a fit.
|
// Shouldn't have to use lambdas here like this, but if I don't, the compiler throws a fit.
|
||||||
// Template hell sucks...
|
// Template hell sucks...
|
||||||
connect(
|
connect(
|
||||||
MMC->accounts().get(),
|
LAUNCHER->accounts().get(),
|
||||||
&AccountList::activeAccountChanged,
|
&AccountList::activeAccountChanged,
|
||||||
[this] {
|
[this] {
|
||||||
activeAccountChanged();
|
activeAccountChanged();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
connect(
|
connect(
|
||||||
MMC->accounts().get(),
|
LAUNCHER->accounts().get(),
|
||||||
&AccountList::listChanged,
|
&AccountList::listChanged,
|
||||||
[this]
|
[this]
|
||||||
{
|
{
|
||||||
@ -784,7 +784,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
|
|||||||
activeAccountChanged();
|
activeAccountChanged();
|
||||||
|
|
||||||
// TODO: refresh accounts here?
|
// TODO: refresh accounts here?
|
||||||
// auto accounts = MMC->accounts();
|
// auto accounts = LAUNCHER->accounts();
|
||||||
|
|
||||||
// load the news
|
// load the news
|
||||||
{
|
{
|
||||||
@ -795,20 +795,20 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
|
|||||||
|
|
||||||
if(BuildConfig.UPDATER_ENABLED)
|
if(BuildConfig.UPDATER_ENABLED)
|
||||||
{
|
{
|
||||||
bool updatesAllowed = MMC->updatesAreAllowed();
|
bool updatesAllowed = LAUNCHER->updatesAreAllowed();
|
||||||
updatesAllowedChanged(updatesAllowed);
|
updatesAllowedChanged(updatesAllowed);
|
||||||
|
|
||||||
// NOTE: calling the operator like that is an ugly hack to appease ancient gcc...
|
// NOTE: calling the operator like that is an ugly hack to appease ancient gcc...
|
||||||
connect(ui->actionCheckUpdate.operator->(), &QAction::triggered, this, &MainWindow::checkForUpdates);
|
connect(ui->actionCheckUpdate.operator->(), &QAction::triggered, this, &MainWindow::checkForUpdates);
|
||||||
|
|
||||||
// set up the updater object.
|
// set up the updater object.
|
||||||
auto updater = MMC->updateChecker();
|
auto updater = LAUNCHER->updateChecker();
|
||||||
connect(updater.get(), &UpdateChecker::updateAvailable, this, &MainWindow::updateAvailable);
|
connect(updater.get(), &UpdateChecker::updateAvailable, this, &MainWindow::updateAvailable);
|
||||||
connect(updater.get(), &UpdateChecker::noUpdateFound, this, &MainWindow::updateNotAvailable);
|
connect(updater.get(), &UpdateChecker::noUpdateFound, this, &MainWindow::updateNotAvailable);
|
||||||
// if automatic update checks are allowed, start one.
|
// if automatic update checks are allowed, start one.
|
||||||
if (MMC->settings()->get("AutoUpdate").toBool() && updatesAllowed)
|
if (LAUNCHER->settings()->get("AutoUpdate").toBool() && updatesAllowed)
|
||||||
{
|
{
|
||||||
updater->checkForUpdate(MMC->settings()->get("UpdateChannel").toString(), false);
|
updater->checkForUpdate(LAUNCHER->settings()->get("UpdateChannel").toString(), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -823,7 +823,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
|
|||||||
checker->checkForNotifications();
|
checker->checkForNotifications();
|
||||||
}
|
}
|
||||||
|
|
||||||
setSelectedInstanceById(MMC->settings()->get("SelectedInstance").toString());
|
setSelectedInstanceById(LAUNCHER->settings()->get("SelectedInstance").toString());
|
||||||
|
|
||||||
// removing this looks stupid
|
// removing this looks stupid
|
||||||
view->setFocus();
|
view->setFocus();
|
||||||
@ -833,7 +833,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
|
|||||||
|
|
||||||
void MainWindow::retranslateUi()
|
void MainWindow::retranslateUi()
|
||||||
{
|
{
|
||||||
std::shared_ptr<AccountList> accounts = MMC->accounts();
|
std::shared_ptr<AccountList> accounts = LAUNCHER->accounts();
|
||||||
MinecraftAccountPtr active_account = accounts->activeAccount();
|
MinecraftAccountPtr active_account = accounts->activeAccount();
|
||||||
if(active_account) {
|
if(active_account) {
|
||||||
auto profileLabel = profileInUseFilter(active_account->profileName(), active_account->isInUse());
|
auto profileLabel = profileInUseFilter(active_account->profileName(), active_account->isInUse());
|
||||||
@ -971,16 +971,16 @@ void MainWindow::updateToolsMenu()
|
|||||||
QAction *normalLaunchOffline = launchOfflineMenu->addAction(tr("Launch Offline"));
|
QAction *normalLaunchOffline = launchOfflineMenu->addAction(tr("Launch Offline"));
|
||||||
connect(normalLaunch, &QAction::triggered, [this]()
|
connect(normalLaunch, &QAction::triggered, [this]()
|
||||||
{
|
{
|
||||||
MMC->launch(m_selectedInstance, true);
|
LAUNCHER->launch(m_selectedInstance, true);
|
||||||
});
|
});
|
||||||
connect(normalLaunchOffline, &QAction::triggered, [this]()
|
connect(normalLaunchOffline, &QAction::triggered, [this]()
|
||||||
{
|
{
|
||||||
MMC->launch(m_selectedInstance, false);
|
LAUNCHER->launch(m_selectedInstance, false);
|
||||||
});
|
});
|
||||||
QString profilersTitle = tr("Profilers");
|
QString profilersTitle = tr("Profilers");
|
||||||
launchMenu->addSeparator()->setText(profilersTitle);
|
launchMenu->addSeparator()->setText(profilersTitle);
|
||||||
launchOfflineMenu->addSeparator()->setText(profilersTitle);
|
launchOfflineMenu->addSeparator()->setText(profilersTitle);
|
||||||
for (auto profiler : MMC->profilers().values())
|
for (auto profiler : LAUNCHER->profilers().values())
|
||||||
{
|
{
|
||||||
QAction *profilerAction = launchMenu->addAction(profiler->name());
|
QAction *profilerAction = launchMenu->addAction(profiler->name());
|
||||||
QAction *profilerOfflineAction = launchOfflineMenu->addAction(profiler->name());
|
QAction *profilerOfflineAction = launchOfflineMenu->addAction(profiler->name());
|
||||||
@ -997,11 +997,11 @@ void MainWindow::updateToolsMenu()
|
|||||||
{
|
{
|
||||||
connect(profilerAction, &QAction::triggered, [this, profiler]()
|
connect(profilerAction, &QAction::triggered, [this, profiler]()
|
||||||
{
|
{
|
||||||
MMC->launch(m_selectedInstance, true, profiler.get());
|
LAUNCHER->launch(m_selectedInstance, true, profiler.get());
|
||||||
});
|
});
|
||||||
connect(profilerOfflineAction, &QAction::triggered, [this, profiler]()
|
connect(profilerOfflineAction, &QAction::triggered, [this, profiler]()
|
||||||
{
|
{
|
||||||
MMC->launch(m_selectedInstance, false, profiler.get());
|
LAUNCHER->launch(m_selectedInstance, false, profiler.get());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1013,7 +1013,7 @@ void MainWindow::repopulateAccountsMenu()
|
|||||||
{
|
{
|
||||||
accountMenu->clear();
|
accountMenu->clear();
|
||||||
|
|
||||||
std::shared_ptr<AccountList> accounts = MMC->accounts();
|
std::shared_ptr<AccountList> accounts = LAUNCHER->accounts();
|
||||||
MinecraftAccountPtr active_account = accounts->activeAccount();
|
MinecraftAccountPtr active_account = accounts->activeAccount();
|
||||||
|
|
||||||
QString active_profileId = "";
|
QString active_profileId = "";
|
||||||
@ -1059,7 +1059,7 @@ void MainWindow::repopulateAccountsMenu()
|
|||||||
|
|
||||||
QAction *action = new QAction(tr("No Default Account"), this);
|
QAction *action = new QAction(tr("No Default Account"), this);
|
||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
action->setIcon(MMC->getThemedIcon("noaccount"));
|
action->setIcon(LAUNCHER->getThemedIcon("noaccount"));
|
||||||
action->setData("");
|
action->setData("");
|
||||||
if (active_profileId.isEmpty()) {
|
if (active_profileId.isEmpty()) {
|
||||||
action->setChecked(true);
|
action->setChecked(true);
|
||||||
@ -1099,7 +1099,7 @@ void MainWindow::changeActiveAccount()
|
|||||||
id = data.toString();
|
id = data.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
MMC->accounts()->setActiveAccount(id);
|
LAUNCHER->accounts()->setActiveAccount(id);
|
||||||
|
|
||||||
activeAccountChanged();
|
activeAccountChanged();
|
||||||
}
|
}
|
||||||
@ -1108,7 +1108,7 @@ void MainWindow::activeAccountChanged()
|
|||||||
{
|
{
|
||||||
repopulateAccountsMenu();
|
repopulateAccountsMenu();
|
||||||
|
|
||||||
MinecraftAccountPtr account = MMC->accounts()->activeAccount();
|
MinecraftAccountPtr account = LAUNCHER->accounts()->activeAccount();
|
||||||
|
|
||||||
// FIXME: this needs adjustment for MSA
|
// FIXME: this needs adjustment for MSA
|
||||||
if (account != nullptr && account->profileName() != "")
|
if (account != nullptr && account->profileName() != "")
|
||||||
@ -1120,7 +1120,7 @@ void MainWindow::activeAccountChanged()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set the icon to the "no account" icon.
|
// Set the icon to the "no account" icon.
|
||||||
accountMenuButton->setIcon(MMC->getThemedIcon("noaccount"));
|
accountMenuButton->setIcon(LAUNCHER->getThemedIcon("noaccount"));
|
||||||
accountMenuButton->setText(tr("Profiles"));
|
accountMenuButton->setText(tr("Profiles"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1182,7 +1182,7 @@ void MainWindow::updateNewsLabel()
|
|||||||
|
|
||||||
void MainWindow::updateAvailable(GoUpdate::Status status)
|
void MainWindow::updateAvailable(GoUpdate::Status status)
|
||||||
{
|
{
|
||||||
if(!MMC->updatesAreAllowed())
|
if(!LAUNCHER->updatesAreAllowed())
|
||||||
{
|
{
|
||||||
updateNotAvailable();
|
updateNotAvailable();
|
||||||
return;
|
return;
|
||||||
@ -1228,7 +1228,7 @@ QString intListToString(const QList<int> &list)
|
|||||||
void MainWindow::notificationsChanged()
|
void MainWindow::notificationsChanged()
|
||||||
{
|
{
|
||||||
QList<NotificationChecker::NotificationEntry> entries = m_notificationChecker->notificationEntries();
|
QList<NotificationChecker::NotificationEntry> entries = m_notificationChecker->notificationEntries();
|
||||||
QList<int> shownNotifications = stringToIntList(MMC->settings()->get("ShownNotifications").toString());
|
QList<int> shownNotifications = stringToIntList(LAUNCHER->settings()->get("ShownNotifications").toString());
|
||||||
for (auto it = entries.begin(); it != entries.end(); ++it)
|
for (auto it = entries.begin(); it != entries.end(); ++it)
|
||||||
{
|
{
|
||||||
NotificationChecker::NotificationEntry entry = *it;
|
NotificationChecker::NotificationEntry entry = *it;
|
||||||
@ -1241,20 +1241,20 @@ void MainWindow::notificationsChanged()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MMC->settings()->set("ShownNotifications", intListToString(shownNotifications));
|
LAUNCHER->settings()->set("ShownNotifications", intListToString(shownNotifications));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::downloadUpdates(GoUpdate::Status status)
|
void MainWindow::downloadUpdates(GoUpdate::Status status)
|
||||||
{
|
{
|
||||||
if(!MMC->updatesAreAllowed())
|
if(!LAUNCHER->updatesAreAllowed())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
qDebug() << "Downloading updates.";
|
qDebug() << "Downloading updates.";
|
||||||
ProgressDialog updateDlg(this);
|
ProgressDialog updateDlg(this);
|
||||||
status.rootPath = MMC->root();
|
status.rootPath = LAUNCHER->root();
|
||||||
|
|
||||||
auto dlPath = FS::PathCombine(MMC->root(), "update", "XXXXXX");
|
auto dlPath = FS::PathCombine(LAUNCHER->root(), "update", "XXXXXX");
|
||||||
if (!FS::ensureFilePathExists(dlPath))
|
if (!FS::ensureFilePathExists(dlPath))
|
||||||
{
|
{
|
||||||
CustomMessageBox::selectable(this, tr("Error"), tr("Couldn't create folder for update downloads:\n%1").arg(dlPath), QMessageBox::Warning)->show();
|
CustomMessageBox::selectable(this, tr("Error"), tr("Couldn't create folder for update downloads:\n%1").arg(dlPath), QMessageBox::Warning)->show();
|
||||||
@ -1267,10 +1267,10 @@ void MainWindow::downloadUpdates(GoUpdate::Status status)
|
|||||||
* NOTE: This disables launching instances until the update either succeeds (and this process exits)
|
* NOTE: This disables launching instances until the update either succeeds (and this process exits)
|
||||||
* or the update fails (and the control leaves this scope).
|
* or the update fails (and the control leaves this scope).
|
||||||
*/
|
*/
|
||||||
MMC->updateIsRunning(true);
|
LAUNCHER->updateIsRunning(true);
|
||||||
UpdateController update(this, MMC->root(), updateTask.updateFilesDir(), updateTask.operations());
|
UpdateController update(this, LAUNCHER->root(), updateTask.updateFilesDir(), updateTask.operations());
|
||||||
update.installUpdates();
|
update.installUpdates();
|
||||||
MMC->updateIsRunning(false);
|
LAUNCHER->updateIsRunning(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1281,7 +1281,7 @@ void MainWindow::downloadUpdates(GoUpdate::Status status)
|
|||||||
void MainWindow::onCatToggled(bool state)
|
void MainWindow::onCatToggled(bool state)
|
||||||
{
|
{
|
||||||
setCatBackground(state);
|
setCatBackground(state);
|
||||||
MMC->settings()->set("TheCat", state);
|
LAUNCHER->settings()->set("TheCat", state);
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
@ -1339,7 +1339,7 @@ void MainWindow::runModalTask(Task *task)
|
|||||||
|
|
||||||
void MainWindow::instanceFromInstanceTask(InstanceTask *rawTask)
|
void MainWindow::instanceFromInstanceTask(InstanceTask *rawTask)
|
||||||
{
|
{
|
||||||
unique_qobject_ptr<Task> task(MMC->instances()->wrapInstanceTask(rawTask));
|
unique_qobject_ptr<Task> task(LAUNCHER->instances()->wrapInstanceTask(rawTask));
|
||||||
runModalTask(task.get());
|
runModalTask(task.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1356,7 +1356,7 @@ void MainWindow::on_actionCopyInstance_triggered()
|
|||||||
copyTask->setName(copyInstDlg.instName());
|
copyTask->setName(copyInstDlg.instName());
|
||||||
copyTask->setGroup(copyInstDlg.instGroup());
|
copyTask->setGroup(copyInstDlg.instGroup());
|
||||||
copyTask->setIcon(copyInstDlg.iconKey());
|
copyTask->setIcon(copyInstDlg.iconKey());
|
||||||
unique_qobject_ptr<Task> task(MMC->instances()->wrapInstanceTask(copyTask));
|
unique_qobject_ptr<Task> task(LAUNCHER->instances()->wrapInstanceTask(copyTask));
|
||||||
runModalTask(task.get());
|
runModalTask(task.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1364,7 +1364,7 @@ void MainWindow::finalizeInstance(InstancePtr inst)
|
|||||||
{
|
{
|
||||||
view->updateGeometries();
|
view->updateGeometries();
|
||||||
setSelectedInstanceById(inst->id());
|
setSelectedInstanceById(inst->id());
|
||||||
if (MMC->accounts()->anyAccountIsValid())
|
if (LAUNCHER->accounts()->anyAccountIsValid())
|
||||||
{
|
{
|
||||||
ProgressDialog loadDialog(this);
|
ProgressDialog loadDialog(this);
|
||||||
auto update = inst->createUpdateTask(Net::Mode::Online);
|
auto update = inst->createUpdateTask(Net::Mode::Online);
|
||||||
@ -1407,14 +1407,14 @@ void MainWindow::addInstance(QString url)
|
|||||||
|
|
||||||
if(groupName.isEmpty())
|
if(groupName.isEmpty())
|
||||||
{
|
{
|
||||||
groupName = MMC->settings()->get("LastUsedGroupForNewInstance").toString();
|
groupName = LAUNCHER->settings()->get("LastUsedGroupForNewInstance").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
NewInstanceDialog newInstDlg(groupName, url, this);
|
NewInstanceDialog newInstDlg(groupName, url, this);
|
||||||
if (!newInstDlg.exec())
|
if (!newInstDlg.exec())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
MMC->settings()->set("LastUsedGroupForNewInstance", newInstDlg.instGroup());
|
LAUNCHER->settings()->set("LastUsedGroupForNewInstance", newInstDlg.instGroup());
|
||||||
|
|
||||||
InstanceTask * creationTask = newInstDlg.extractTask();
|
InstanceTask * creationTask = newInstDlg.extractTask();
|
||||||
if(creationTask)
|
if(creationTask)
|
||||||
@ -1465,7 +1465,7 @@ void MainWindow::on_actionChangeInstIcon_triggered()
|
|||||||
if (dlg.result() == QDialog::Accepted)
|
if (dlg.result() == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
m_selectedInstance->setIconKey(dlg.selectedIconKey);
|
m_selectedInstance->setIconKey(dlg.selectedIconKey);
|
||||||
auto icon = MMC->icons()->getIcon(dlg.selectedIconKey);
|
auto icon = LAUNCHER->icons()->getIcon(dlg.selectedIconKey);
|
||||||
ui->actionChangeInstIcon->setIcon(icon);
|
ui->actionChangeInstIcon->setIcon(icon);
|
||||||
ui->changeIconButton->setIcon(icon);
|
ui->changeIconButton->setIcon(icon);
|
||||||
}
|
}
|
||||||
@ -1475,7 +1475,7 @@ void MainWindow::iconUpdated(QString icon)
|
|||||||
{
|
{
|
||||||
if (icon == m_currentInstIcon)
|
if (icon == m_currentInstIcon)
|
||||||
{
|
{
|
||||||
auto icon = MMC->icons()->getIcon(m_currentInstIcon);
|
auto icon = LAUNCHER->icons()->getIcon(m_currentInstIcon);
|
||||||
ui->actionChangeInstIcon->setIcon(icon);
|
ui->actionChangeInstIcon->setIcon(icon);
|
||||||
ui->changeIconButton->setIcon(icon);
|
ui->changeIconButton->setIcon(icon);
|
||||||
}
|
}
|
||||||
@ -1484,7 +1484,7 @@ void MainWindow::iconUpdated(QString icon)
|
|||||||
void MainWindow::updateInstanceToolIcon(QString new_icon)
|
void MainWindow::updateInstanceToolIcon(QString new_icon)
|
||||||
{
|
{
|
||||||
m_currentInstIcon = new_icon;
|
m_currentInstIcon = new_icon;
|
||||||
auto icon = MMC->icons()->getIcon(m_currentInstIcon);
|
auto icon = LAUNCHER->icons()->getIcon(m_currentInstIcon);
|
||||||
ui->actionChangeInstIcon->setIcon(icon);
|
ui->actionChangeInstIcon->setIcon(icon);
|
||||||
ui->changeIconButton->setIcon(icon);
|
ui->changeIconButton->setIcon(icon);
|
||||||
}
|
}
|
||||||
@ -1493,7 +1493,7 @@ void MainWindow::setSelectedInstanceById(const QString &id)
|
|||||||
{
|
{
|
||||||
if (id.isNull())
|
if (id.isNull())
|
||||||
return;
|
return;
|
||||||
const QModelIndex index = MMC->instances()->getInstanceIndexById(id);
|
const QModelIndex index = LAUNCHER->instances()->getInstanceIndexById(id);
|
||||||
if (index.isValid())
|
if (index.isValid())
|
||||||
{
|
{
|
||||||
QModelIndex selectionIndex = proxymodel->mapFromSource(index);
|
QModelIndex selectionIndex = proxymodel->mapFromSource(index);
|
||||||
@ -1509,8 +1509,8 @@ void MainWindow::on_actionChangeInstGroup_triggered()
|
|||||||
|
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
InstanceId instId = m_selectedInstance->id();
|
InstanceId instId = m_selectedInstance->id();
|
||||||
QString name(MMC->instances()->getInstanceGroup(instId));
|
QString name(LAUNCHER->instances()->getInstanceGroup(instId));
|
||||||
auto groups = MMC->instances()->getGroups();
|
auto groups = LAUNCHER->instances()->getGroups();
|
||||||
groups.insert(0, "");
|
groups.insert(0, "");
|
||||||
groups.sort(Qt::CaseInsensitive);
|
groups.sort(Qt::CaseInsensitive);
|
||||||
int foo = groups.indexOf(name);
|
int foo = groups.indexOf(name);
|
||||||
@ -1519,7 +1519,7 @@ void MainWindow::on_actionChangeInstGroup_triggered()
|
|||||||
name = name.simplified();
|
name = name.simplified();
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
MMC->instances()->setInstanceGroup(instId, name);
|
LAUNCHER->instances()->setInstanceGroup(instId, name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1541,25 +1541,25 @@ void MainWindow::deleteGroup()
|
|||||||
.arg(groupName), QMessageBox::Yes | QMessageBox::No);
|
.arg(groupName), QMessageBox::Yes | QMessageBox::No);
|
||||||
if(reply == QMessageBox::Yes)
|
if(reply == QMessageBox::Yes)
|
||||||
{
|
{
|
||||||
MMC->instances()->deleteGroup(groupName);
|
LAUNCHER->instances()->deleteGroup(groupName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionViewInstanceFolder_triggered()
|
void MainWindow::on_actionViewInstanceFolder_triggered()
|
||||||
{
|
{
|
||||||
QString str = MMC->settings()->get("InstanceDir").toString();
|
QString str = LAUNCHER->settings()->get("InstanceDir").toString();
|
||||||
DesktopServices::openDirectory(str);
|
DesktopServices::openDirectory(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::refreshInstances()
|
void MainWindow::refreshInstances()
|
||||||
{
|
{
|
||||||
MMC->instances()->loadList();
|
LAUNCHER->instances()->loadList();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionViewCentralModsFolder_triggered()
|
void MainWindow::on_actionViewCentralModsFolder_triggered()
|
||||||
{
|
{
|
||||||
DesktopServices::openDirectory(MMC->settings()->get("CentralModsDir").toString(), true);
|
DesktopServices::openDirectory(LAUNCHER->settings()->get("CentralModsDir").toString(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionConfig_Folder_triggered()
|
void MainWindow::on_actionConfig_Folder_triggered()
|
||||||
@ -1575,8 +1575,8 @@ void MainWindow::checkForUpdates()
|
|||||||
{
|
{
|
||||||
if(BuildConfig.UPDATER_ENABLED)
|
if(BuildConfig.UPDATER_ENABLED)
|
||||||
{
|
{
|
||||||
auto updater = MMC->updateChecker();
|
auto updater = LAUNCHER->updateChecker();
|
||||||
updater->checkForUpdate(MMC->settings()->get("UpdateChannel").toString(), true);
|
updater->checkForUpdate(LAUNCHER->settings()->get("UpdateChannel").toString(), true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1586,13 +1586,13 @@ void MainWindow::checkForUpdates()
|
|||||||
|
|
||||||
void MainWindow::on_actionSettings_triggered()
|
void MainWindow::on_actionSettings_triggered()
|
||||||
{
|
{
|
||||||
MMC->ShowGlobalSettings(this, "global-settings");
|
LAUNCHER->ShowGlobalSettings(this, "global-settings");
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::globalSettingsClosed()
|
void MainWindow::globalSettingsClosed()
|
||||||
{
|
{
|
||||||
// FIXME: quick HACK to make this work. improve, optimize.
|
// FIXME: quick HACK to make this work. improve, optimize.
|
||||||
MMC->instances()->loadList();
|
LAUNCHER->instances()->loadList();
|
||||||
proxymodel->invalidate();
|
proxymodel->invalidate();
|
||||||
proxymodel->sort(0);
|
proxymodel->sort(0);
|
||||||
updateToolsMenu();
|
updateToolsMenu();
|
||||||
@ -1601,32 +1601,32 @@ void MainWindow::globalSettingsClosed()
|
|||||||
|
|
||||||
void MainWindow::on_actionInstanceSettings_triggered()
|
void MainWindow::on_actionInstanceSettings_triggered()
|
||||||
{
|
{
|
||||||
MMC->showInstanceWindow(m_selectedInstance, "settings");
|
LAUNCHER->showInstanceWindow(m_selectedInstance, "settings");
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionEditInstNotes_triggered()
|
void MainWindow::on_actionEditInstNotes_triggered()
|
||||||
{
|
{
|
||||||
MMC->showInstanceWindow(m_selectedInstance, "notes");
|
LAUNCHER->showInstanceWindow(m_selectedInstance, "notes");
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionWorlds_triggered()
|
void MainWindow::on_actionWorlds_triggered()
|
||||||
{
|
{
|
||||||
MMC->showInstanceWindow(m_selectedInstance, "worlds");
|
LAUNCHER->showInstanceWindow(m_selectedInstance, "worlds");
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionEditInstance_triggered()
|
void MainWindow::on_actionEditInstance_triggered()
|
||||||
{
|
{
|
||||||
MMC->showInstanceWindow(m_selectedInstance);
|
LAUNCHER->showInstanceWindow(m_selectedInstance);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionScreenshots_triggered()
|
void MainWindow::on_actionScreenshots_triggered()
|
||||||
{
|
{
|
||||||
MMC->showInstanceWindow(m_selectedInstance, "screenshots");
|
LAUNCHER->showInstanceWindow(m_selectedInstance, "screenshots");
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionManageAccounts_triggered()
|
void MainWindow::on_actionManageAccounts_triggered()
|
||||||
{
|
{
|
||||||
MMC->ShowGlobalSettings(this, "accounts");
|
LAUNCHER->ShowGlobalSettings(this, "accounts");
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionReportBug_triggered()
|
void MainWindow::on_actionReportBug_triggered()
|
||||||
@ -1680,7 +1680,7 @@ void MainWindow::on_actionDeleteInstance_triggered()
|
|||||||
)->exec();
|
)->exec();
|
||||||
if (response == QMessageBox::Yes)
|
if (response == QMessageBox::Yes)
|
||||||
{
|
{
|
||||||
MMC->instances()->deleteInstance(id);
|
LAUNCHER->instances()->deleteInstance(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1728,8 +1728,8 @@ void MainWindow::on_actionViewSelectedMCFolder_triggered()
|
|||||||
void MainWindow::closeEvent(QCloseEvent *event)
|
void MainWindow::closeEvent(QCloseEvent *event)
|
||||||
{
|
{
|
||||||
// Save the window state and geometry.
|
// Save the window state and geometry.
|
||||||
MMC->settings()->set("MainWindowState", saveState().toBase64());
|
LAUNCHER->settings()->set("MainWindowState", saveState().toBase64());
|
||||||
MMC->settings()->set("MainWindowGeometry", saveGeometry().toBase64());
|
LAUNCHER->settings()->set("MainWindowGeometry", saveGeometry().toBase64());
|
||||||
event->accept();
|
event->accept();
|
||||||
emit isClosing();
|
emit isClosing();
|
||||||
}
|
}
|
||||||
@ -1748,7 +1748,7 @@ void MainWindow::instanceActivated(QModelIndex index)
|
|||||||
if (!index.isValid())
|
if (!index.isValid())
|
||||||
return;
|
return;
|
||||||
QString id = index.data(InstanceList::InstanceIDRole).toString();
|
QString id = index.data(InstanceList::InstanceIDRole).toString();
|
||||||
InstancePtr inst = MMC->instances()->getInstanceById(id);
|
InstancePtr inst = LAUNCHER->instances()->getInstanceById(id);
|
||||||
if (!inst)
|
if (!inst)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -1763,24 +1763,24 @@ void MainWindow::on_actionLaunchInstance_triggered()
|
|||||||
}
|
}
|
||||||
if(m_selectedInstance->isRunning())
|
if(m_selectedInstance->isRunning())
|
||||||
{
|
{
|
||||||
MMC->kill(m_selectedInstance);
|
LAUNCHER->kill(m_selectedInstance);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MMC->launch(m_selectedInstance);
|
LAUNCHER->launch(m_selectedInstance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::activateInstance(InstancePtr instance)
|
void MainWindow::activateInstance(InstancePtr instance)
|
||||||
{
|
{
|
||||||
MMC->launch(instance);
|
LAUNCHER->launch(instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionLaunchInstanceOffline_triggered()
|
void MainWindow::on_actionLaunchInstanceOffline_triggered()
|
||||||
{
|
{
|
||||||
if (m_selectedInstance)
|
if (m_selectedInstance)
|
||||||
{
|
{
|
||||||
MMC->launch(m_selectedInstance, false);
|
LAUNCHER->launch(m_selectedInstance, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1804,12 +1804,12 @@ void MainWindow::instanceChanged(const QModelIndex ¤t, const QModelIndex &
|
|||||||
{
|
{
|
||||||
if (!current.isValid())
|
if (!current.isValid())
|
||||||
{
|
{
|
||||||
MMC->settings()->set("SelectedInstance", QString());
|
LAUNCHER->settings()->set("SelectedInstance", QString());
|
||||||
selectionBad();
|
selectionBad();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QString id = current.data(InstanceList::InstanceIDRole).toString();
|
QString id = current.data(InstanceList::InstanceIDRole).toString();
|
||||||
m_selectedInstance = MMC->instances()->getInstanceById(id);
|
m_selectedInstance = LAUNCHER->instances()->getInstanceById(id);
|
||||||
if (m_selectedInstance)
|
if (m_selectedInstance)
|
||||||
{
|
{
|
||||||
ui->instanceToolBar->setEnabled(true);
|
ui->instanceToolBar->setEnabled(true);
|
||||||
@ -1832,12 +1832,12 @@ void MainWindow::instanceChanged(const QModelIndex ¤t, const QModelIndex &
|
|||||||
|
|
||||||
updateToolsMenu();
|
updateToolsMenu();
|
||||||
|
|
||||||
MMC->settings()->set("SelectedInstance", m_selectedInstance->id());
|
LAUNCHER->settings()->set("SelectedInstance", m_selectedInstance->id());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ui->instanceToolBar->setEnabled(false);
|
ui->instanceToolBar->setEnabled(false);
|
||||||
MMC->settings()->set("SelectedInstance", QString());
|
LAUNCHER->settings()->set("SelectedInstance", QString());
|
||||||
selectionBad();
|
selectionBad();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1869,12 +1869,12 @@ void MainWindow::selectionBad()
|
|||||||
updateInstanceToolIcon("infinity");
|
updateInstanceToolIcon("infinity");
|
||||||
|
|
||||||
// ...and then see if we can enable the previously selected instance
|
// ...and then see if we can enable the previously selected instance
|
||||||
setSelectedInstanceById(MMC->settings()->get("SelectedInstance").toString());
|
setSelectedInstanceById(LAUNCHER->settings()->get("SelectedInstance").toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::checkInstancePathForProblems()
|
void MainWindow::checkInstancePathForProblems()
|
||||||
{
|
{
|
||||||
QString instanceFolder = MMC->settings()->get("InstanceDir").toString();
|
QString instanceFolder = LAUNCHER->settings()->get("InstanceDir").toString();
|
||||||
if (FS::checkProblemticPathJava(QDir(instanceFolder)))
|
if (FS::checkProblemticPathJava(QDir(instanceFolder)))
|
||||||
{
|
{
|
||||||
QMessageBox warning(this);
|
QMessageBox warning(this);
|
||||||
@ -1909,7 +1909,7 @@ void MainWindow::checkInstancePathForProblems()
|
|||||||
|
|
||||||
void MainWindow::updateStatusCenter()
|
void MainWindow::updateStatusCenter()
|
||||||
{
|
{
|
||||||
int timeplayed = MMC->instances()->getTotalPlayTime();
|
int timeplayed = LAUNCHER->instances()->getTotalPlayTime();
|
||||||
int minutesTotal = timeplayed / 60;
|
int minutesTotal = timeplayed / 60;
|
||||||
int seconds = timeplayed % 60;
|
int seconds = timeplayed % 60;
|
||||||
int minutes = minutesTotal % 60;
|
int minutes = minutesTotal % 60;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "VersionProxyModel.h"
|
#include "VersionProxyModel.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
#include <QPixmapCache>
|
#include <QPixmapCache>
|
||||||
#include <Version.h>
|
#include <Version.h>
|
||||||
@ -194,19 +194,19 @@ QVariant VersionProxyModel::data(const QModelIndex &index, int role) const
|
|||||||
auto value = sourceModel()->data(parentIndex, BaseVersionList::RecommendedRole);
|
auto value = sourceModel()->data(parentIndex, BaseVersionList::RecommendedRole);
|
||||||
if(value.toBool())
|
if(value.toBool())
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("star");
|
return LAUNCHER->getThemedIcon("star");
|
||||||
}
|
}
|
||||||
else if(hasLatest)
|
else if(hasLatest)
|
||||||
{
|
{
|
||||||
auto value = sourceModel()->data(parentIndex, BaseVersionList::LatestRole);
|
auto value = sourceModel()->data(parentIndex, BaseVersionList::LatestRole);
|
||||||
if(value.toBool())
|
if(value.toBool())
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("bug");
|
return LAUNCHER->getThemedIcon("bug");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(index.row() == 0)
|
else if(index.row() == 0)
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("bug");
|
return LAUNCHER->getThemedIcon("bug");
|
||||||
}
|
}
|
||||||
auto pixmap = QPixmapCache::find("placeholder");
|
auto pixmap = QPixmapCache::find("placeholder");
|
||||||
if(!pixmap)
|
if(!pixmap)
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#include "AboutDialog.h"
|
#include "AboutDialog.h"
|
||||||
#include "ui_AboutDialog.h"
|
#include "ui_AboutDialog.h"
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "BuildConfig.h"
|
#include "BuildConfig.h"
|
||||||
|
|
||||||
#include <net/NetJob.h>
|
#include <net/NetJob.h>
|
||||||
@ -83,7 +83,7 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDia
|
|||||||
|
|
||||||
ui->urlLabel->setOpenExternalLinks(true);
|
ui->urlLabel->setOpenExternalLinks(true);
|
||||||
|
|
||||||
ui->icon->setPixmap(MMC->getThemedIcon("logo").pixmap(64));
|
ui->icon->setPixmap(LAUNCHER->getThemedIcon("logo").pixmap(64));
|
||||||
ui->title->setText("MultiMC 5");
|
ui->title->setText("MultiMC 5");
|
||||||
|
|
||||||
ui->versionLabel->setText(tr("Version") +": " + BuildConfig.printableVersionString());
|
ui->versionLabel->setText(tr("Version") +": " + BuildConfig.printableVersionString());
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#include <QLayout>
|
#include <QLayout>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "CopyInstanceDialog.h"
|
#include "CopyInstanceDialog.h"
|
||||||
#include "ui_CopyInstanceDialog.h"
|
#include "ui_CopyInstanceDialog.h"
|
||||||
|
|
||||||
@ -36,16 +36,16 @@ CopyInstanceDialog::CopyInstanceDialog(InstancePtr original, QWidget *parent)
|
|||||||
layout()->setSizeConstraint(QLayout::SetFixedSize);
|
layout()->setSizeConstraint(QLayout::SetFixedSize);
|
||||||
|
|
||||||
InstIconKey = original->iconKey();
|
InstIconKey = original->iconKey();
|
||||||
ui->iconButton->setIcon(MMC->icons()->getIcon(InstIconKey));
|
ui->iconButton->setIcon(LAUNCHER->icons()->getIcon(InstIconKey));
|
||||||
ui->instNameTextBox->setText(original->name());
|
ui->instNameTextBox->setText(original->name());
|
||||||
ui->instNameTextBox->setFocus();
|
ui->instNameTextBox->setFocus();
|
||||||
auto groups = MMC->instances()->getGroups().toSet();
|
auto groups = LAUNCHER->instances()->getGroups().toSet();
|
||||||
auto groupList = QStringList(groups.toList());
|
auto groupList = QStringList(groups.toList());
|
||||||
groupList.sort(Qt::CaseInsensitive);
|
groupList.sort(Qt::CaseInsensitive);
|
||||||
groupList.removeOne("");
|
groupList.removeOne("");
|
||||||
groupList.push_front("");
|
groupList.push_front("");
|
||||||
ui->groupBox->addItems(groupList);
|
ui->groupBox->addItems(groupList);
|
||||||
int index = groupList.indexOf(MMC->instances()->getInstanceGroup(m_original->id()));
|
int index = groupList.indexOf(LAUNCHER->instances()->getInstanceGroup(m_original->id()));
|
||||||
if(index == -1)
|
if(index == -1)
|
||||||
{
|
{
|
||||||
index = 0;
|
index = 0;
|
||||||
@ -99,7 +99,7 @@ void CopyInstanceDialog::on_iconButton_clicked()
|
|||||||
if (dlg.result() == QDialog::Accepted)
|
if (dlg.result() == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
InstIconKey = dlg.selectedIconKey;
|
InstIconKey = dlg.selectedIconKey;
|
||||||
ui->iconButton->setIcon(MMC->icons()->getIcon(InstIconKey));
|
ui->iconButton->setIcon(LAUNCHER->icons()->getIcon(InstIconKey));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#include <QSaveFile>
|
#include <QSaveFile>
|
||||||
#include "MMCStrings.h"
|
#include "MMCStrings.h"
|
||||||
#include "SeparatorPrefixTree.h"
|
#include "SeparatorPrefixTree.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include <icons/IconList.h>
|
#include <icons/IconList.h>
|
||||||
#include <FileSystem.h>
|
#include <FileSystem.h>
|
||||||
|
|
||||||
@ -341,7 +341,7 @@ ExportInstanceDialog::~ExportInstanceDialog()
|
|||||||
void SaveIcon(InstancePtr m_instance)
|
void SaveIcon(InstancePtr m_instance)
|
||||||
{
|
{
|
||||||
auto iconKey = m_instance->iconKey();
|
auto iconKey = m_instance->iconKey();
|
||||||
auto iconList = MMC->icons();
|
auto iconList = LAUNCHER->icons();
|
||||||
auto mmcIcon = iconList->icon(iconKey);
|
auto mmcIcon = iconList->icon(iconKey);
|
||||||
if(!mmcIcon || mmcIcon->isBuiltIn()) {
|
if(!mmcIcon || mmcIcon->isBuiltIn()) {
|
||||||
return;
|
return;
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
#include "IconPickerDialog.h"
|
#include "IconPickerDialog.h"
|
||||||
#include "ui_IconPickerDialog.h"
|
#include "ui_IconPickerDialog.h"
|
||||||
@ -59,7 +59,7 @@ IconPickerDialog::IconPickerDialog(QWidget *parent)
|
|||||||
|
|
||||||
contentsWidget->installEventFilter(this);
|
contentsWidget->installEventFilter(this);
|
||||||
|
|
||||||
contentsWidget->setModel(MMC->icons().get());
|
contentsWidget->setModel(LAUNCHER->icons().get());
|
||||||
|
|
||||||
// NOTE: ResetRole forces the button to be on the left, while the OK/Cancel ones are on the right. We win.
|
// NOTE: ResetRole forces the button to be on the left, while the OK/Cancel ones are on the right. We win.
|
||||||
auto buttonAdd = ui->buttonBox->addButton(tr("Add Icon"), QDialogButtonBox::ResetRole);
|
auto buttonAdd = ui->buttonBox->addButton(tr("Add Icon"), QDialogButtonBox::ResetRole);
|
||||||
@ -106,12 +106,12 @@ void IconPickerDialog::addNewIcon()
|
|||||||
//: The type of icon files
|
//: The type of icon files
|
||||||
auto filter = IconUtils::getIconFilter();
|
auto filter = IconUtils::getIconFilter();
|
||||||
QStringList fileNames = QFileDialog::getOpenFileNames(this, selectIcons, QString(), tr("Icons %1").arg(filter));
|
QStringList fileNames = QFileDialog::getOpenFileNames(this, selectIcons, QString(), tr("Icons %1").arg(filter));
|
||||||
MMC->icons()->installIcons(fileNames);
|
LAUNCHER->icons()->installIcons(fileNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IconPickerDialog::removeSelectedIcon()
|
void IconPickerDialog::removeSelectedIcon()
|
||||||
{
|
{
|
||||||
MMC->icons()->deleteIcon(selectedIconKey);
|
LAUNCHER->icons()->deleteIcon(selectedIconKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IconPickerDialog::activated(QModelIndex index)
|
void IconPickerDialog::activated(QModelIndex index)
|
||||||
@ -132,7 +132,7 @@ void IconPickerDialog::selectionChanged(QItemSelection selected, QItemSelection
|
|||||||
|
|
||||||
int IconPickerDialog::execWithSelection(QString selection)
|
int IconPickerDialog::execWithSelection(QString selection)
|
||||||
{
|
{
|
||||||
auto list = MMC->icons();
|
auto list = LAUNCHER->icons();
|
||||||
auto contentsWidget = ui->iconView;
|
auto contentsWidget = ui->iconView;
|
||||||
selectedIconKey = selection;
|
selectedIconKey = selection;
|
||||||
|
|
||||||
@ -159,5 +159,5 @@ IconPickerDialog::~IconPickerDialog()
|
|||||||
|
|
||||||
void IconPickerDialog::openFolder()
|
void IconPickerDialog::openFolder()
|
||||||
{
|
{
|
||||||
DesktopServices::openDirectory(MMC->icons()->getDirectory(), true);
|
DesktopServices::openDirectory(LAUNCHER->icons()->getDirectory(), true);
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "NewComponentDialog.h"
|
#include "NewComponentDialog.h"
|
||||||
#include "ui_NewComponentDialog.h"
|
#include "ui_NewComponentDialog.h"
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ NewComponentDialog::NewComponentDialog(const QString & initialName, const QStrin
|
|||||||
connect(ui->nameTextBox, &QLineEdit::textChanged, this, &NewComponentDialog::updateDialogState);
|
connect(ui->nameTextBox, &QLineEdit::textChanged, this, &NewComponentDialog::updateDialogState);
|
||||||
connect(ui->uidTextBox, &QLineEdit::textChanged, this, &NewComponentDialog::updateDialogState);
|
connect(ui->uidTextBox, &QLineEdit::textChanged, this, &NewComponentDialog::updateDialogState);
|
||||||
|
|
||||||
auto groups = MMC->instances()->getGroups().toSet();
|
auto groups = LAUNCHER->instances()->getGroups().toSet();
|
||||||
ui->nameTextBox->setFocus();
|
ui->nameTextBox->setFocus();
|
||||||
|
|
||||||
originalPlaceholderText = ui->uidTextBox->placeholderText();
|
originalPlaceholderText = ui->uidTextBox->placeholderText();
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "NewInstanceDialog.h"
|
#include "NewInstanceDialog.h"
|
||||||
#include "ui_NewInstanceDialog.h"
|
#include "ui_NewInstanceDialog.h"
|
||||||
|
|
||||||
@ -48,12 +48,12 @@ NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString
|
|||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
setWindowIcon(MMC->getThemedIcon("new"));
|
setWindowIcon(LAUNCHER->getThemedIcon("new"));
|
||||||
|
|
||||||
InstIconKey = "default";
|
InstIconKey = "default";
|
||||||
ui->iconButton->setIcon(MMC->icons()->getIcon(InstIconKey));
|
ui->iconButton->setIcon(LAUNCHER->icons()->getIcon(InstIconKey));
|
||||||
|
|
||||||
auto groups = MMC->instances()->getGroups().toSet();
|
auto groups = LAUNCHER->instances()->getGroups().toSet();
|
||||||
auto groupList = QStringList(groups.toList());
|
auto groupList = QStringList(groups.toList());
|
||||||
groupList.sort(Qt::CaseInsensitive);
|
groupList.sort(Qt::CaseInsensitive);
|
||||||
groupList.removeOne("");
|
groupList.removeOne("");
|
||||||
@ -105,18 +105,18 @@ NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString
|
|||||||
|
|
||||||
updateDialogState();
|
updateDialogState();
|
||||||
|
|
||||||
restoreGeometry(QByteArray::fromBase64(MMC->settings()->get("NewInstanceGeometry").toByteArray()));
|
restoreGeometry(QByteArray::fromBase64(LAUNCHER->settings()->get("NewInstanceGeometry").toByteArray()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void NewInstanceDialog::reject()
|
void NewInstanceDialog::reject()
|
||||||
{
|
{
|
||||||
MMC->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
|
LAUNCHER->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
|
||||||
QDialog::reject();
|
QDialog::reject();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NewInstanceDialog::accept()
|
void NewInstanceDialog::accept()
|
||||||
{
|
{
|
||||||
MMC->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
|
LAUNCHER->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
|
||||||
importIconNow();
|
importIconNow();
|
||||||
QDialog::accept();
|
QDialog::accept();
|
||||||
}
|
}
|
||||||
@ -155,7 +155,7 @@ void NewInstanceDialog::setSuggestedPack(const QString& name, InstanceTask* task
|
|||||||
|
|
||||||
if(!task)
|
if(!task)
|
||||||
{
|
{
|
||||||
ui->iconButton->setIcon(MMC->icons()->getIcon("default"));
|
ui->iconButton->setIcon(LAUNCHER->icons()->getIcon("default"));
|
||||||
importIcon = false;
|
importIcon = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,7 +175,7 @@ void NewInstanceDialog::setSuggestedIconFromFile(const QString &path, const QStr
|
|||||||
|
|
||||||
void NewInstanceDialog::setSuggestedIcon(const QString &key)
|
void NewInstanceDialog::setSuggestedIcon(const QString &key)
|
||||||
{
|
{
|
||||||
auto icon = MMC->icons()->getIcon(key);
|
auto icon = LAUNCHER->icons()->getIcon(key);
|
||||||
importIcon = false;
|
importIcon = false;
|
||||||
|
|
||||||
ui->iconButton->setIcon(icon);
|
ui->iconButton->setIcon(icon);
|
||||||
@ -234,7 +234,7 @@ void NewInstanceDialog::on_iconButton_clicked()
|
|||||||
if (dlg.result() == QDialog::Accepted)
|
if (dlg.result() == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
InstIconKey = dlg.selectedIconKey;
|
InstIconKey = dlg.selectedIconKey;
|
||||||
ui->iconButton->setIcon(MMC->icons()->getIcon(InstIconKey));
|
ui->iconButton->setIcon(LAUNCHER->icons()->getIcon(InstIconKey));
|
||||||
importIcon = false;
|
importIcon = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -247,9 +247,9 @@ void NewInstanceDialog::on_instNameTextBox_textChanged(const QString &arg1)
|
|||||||
void NewInstanceDialog::importIconNow()
|
void NewInstanceDialog::importIconNow()
|
||||||
{
|
{
|
||||||
if(importIcon) {
|
if(importIcon) {
|
||||||
MMC->icons()->installIcon(importIconPath, importIconName);
|
LAUNCHER->icons()->installIcon(importIconPath, importIconName);
|
||||||
InstIconKey = importIconName;
|
InstIconKey = importIconName;
|
||||||
importIcon = false;
|
importIcon = false;
|
||||||
}
|
}
|
||||||
MMC->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
|
LAUNCHER->settings()->set("NewInstanceGeometry", saveGeometry().toBase64());
|
||||||
}
|
}
|
||||||
|
@ -23,14 +23,14 @@
|
|||||||
|
|
||||||
#include <dialogs/ProgressDialog.h>
|
#include <dialogs/ProgressDialog.h>
|
||||||
|
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
ProfileSelectDialog::ProfileSelectDialog(const QString &message, int flags, QWidget *parent)
|
ProfileSelectDialog::ProfileSelectDialog(const QString &message, int flags, QWidget *parent)
|
||||||
: QDialog(parent), ui(new Ui::ProfileSelectDialog)
|
: QDialog(parent), ui(new Ui::ProfileSelectDialog)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
m_accounts = MMC->accounts();
|
m_accounts = LAUNCHER->accounts();
|
||||||
auto view = ui->listView;
|
auto view = ui->listView;
|
||||||
//view->setModel(m_accounts.get());
|
//view->setModel(m_accounts.get());
|
||||||
//view->hideColumn(AccountList::ActiveColumn);
|
//view->hideColumn(AccountList::ActiveColumn);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "UpdateDialog.h"
|
#include "UpdateDialog.h"
|
||||||
#include "ui_UpdateDialog.h"
|
#include "ui_UpdateDialog.h"
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include <settings/SettingsObject.h>
|
#include <settings/SettingsObject.h>
|
||||||
#include <Json.h>
|
#include <Json.h>
|
||||||
|
|
||||||
@ -11,7 +11,7 @@
|
|||||||
UpdateDialog::UpdateDialog(bool hasUpdate, QWidget *parent) : QDialog(parent), ui(new Ui::UpdateDialog)
|
UpdateDialog::UpdateDialog(bool hasUpdate, QWidget *parent) : QDialog(parent), ui(new Ui::UpdateDialog)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
auto channel = MMC->settings()->get("UpdateChannel").toString();
|
auto channel = LAUNCHER->settings()->get("UpdateChannel").toString();
|
||||||
if(hasUpdate)
|
if(hasUpdate)
|
||||||
{
|
{
|
||||||
ui->label->setText(tr("A new %1 update is available!").arg(channel));
|
ui->label->setText(tr("A new %1 update is available!").arg(channel));
|
||||||
@ -24,7 +24,7 @@ UpdateDialog::UpdateDialog(bool hasUpdate, QWidget *parent) : QDialog(parent), u
|
|||||||
}
|
}
|
||||||
ui->changelogBrowser->setHtml(tr("<center><h1>Loading changelog...</h1></center>"));
|
ui->changelogBrowser->setHtml(tr("<center><h1>Loading changelog...</h1></center>"));
|
||||||
loadChangelog();
|
loadChangelog();
|
||||||
restoreGeometry(QByteArray::fromBase64(MMC->settings()->get("UpdateDialogGeometry").toByteArray()));
|
restoreGeometry(QByteArray::fromBase64(LAUNCHER->settings()->get("UpdateDialogGeometry").toByteArray()));
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateDialog::~UpdateDialog()
|
UpdateDialog::~UpdateDialog()
|
||||||
@ -33,7 +33,7 @@ UpdateDialog::~UpdateDialog()
|
|||||||
|
|
||||||
void UpdateDialog::loadChangelog()
|
void UpdateDialog::loadChangelog()
|
||||||
{
|
{
|
||||||
auto channel = MMC->settings()->get("UpdateChannel").toString();
|
auto channel = LAUNCHER->settings()->get("UpdateChannel").toString();
|
||||||
dljob.reset(new NetJob("Changelog"));
|
dljob.reset(new NetJob("Changelog"));
|
||||||
QString url;
|
QString url;
|
||||||
if(channel == "stable")
|
if(channel == "stable")
|
||||||
@ -65,7 +65,7 @@ QString reprocessMarkdown(QByteArray markdown)
|
|||||||
|
|
||||||
QString reprocessCommits(QByteArray json)
|
QString reprocessCommits(QByteArray json)
|
||||||
{
|
{
|
||||||
auto channel = MMC->settings()->get("UpdateChannel").toString();
|
auto channel = LAUNCHER->settings()->get("UpdateChannel").toString();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
QString result;
|
QString result;
|
||||||
@ -177,6 +177,6 @@ void UpdateDialog::on_btnUpdateNow_clicked()
|
|||||||
|
|
||||||
void UpdateDialog::closeEvent(QCloseEvent* evt)
|
void UpdateDialog::closeEvent(QCloseEvent* evt)
|
||||||
{
|
{
|
||||||
MMC->settings()->set("UpdateDialogGeometry", saveGeometry().toBase64());
|
LAUNCHER->settings()->set("UpdateDialogGeometry", saveGeometry().toBase64());
|
||||||
QDialog::closeEvent(evt);
|
QDialog::closeEvent(evt);
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
#include <BaseVersionList.h>
|
#include <BaseVersionList.h>
|
||||||
#include <tasks/Task.h>
|
#include <tasks/Task.h>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include <VersionProxyModel.h>
|
#include <VersionProxyModel.h>
|
||||||
#include <widgets/VersionSelectWidget.h>
|
#include <widgets/VersionSelectWidget.h>
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "MainWindow.h"
|
#include "MainWindow.h"
|
||||||
#include "LaunchController.h"
|
#include "LaunchController.h"
|
||||||
#include <InstanceList.h>
|
#include <InstanceList.h>
|
||||||
@ -34,12 +34,12 @@ int main(int argc, char *argv[])
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// initialize Qt
|
// initialize Qt
|
||||||
MultiMC app(argc, argv);
|
Launcher app(argc, argv);
|
||||||
|
|
||||||
switch (app.status())
|
switch (app.status())
|
||||||
{
|
{
|
||||||
case MultiMC::StartingUp:
|
case Launcher::StartingUp:
|
||||||
case MultiMC::Initialized:
|
case Launcher::Initialized:
|
||||||
{
|
{
|
||||||
Q_INIT_RESOURCE(multimc);
|
Q_INIT_RESOURCE(multimc);
|
||||||
Q_INIT_RESOURCE(backgrounds);
|
Q_INIT_RESOURCE(backgrounds);
|
||||||
@ -53,9 +53,9 @@ int main(int argc, char *argv[])
|
|||||||
Q_INIT_RESOURCE(flat);
|
Q_INIT_RESOURCE(flat);
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
case MultiMC::Failed:
|
case Launcher::Failed:
|
||||||
return 1;
|
return 1;
|
||||||
case MultiMC::Succeeded:
|
case Launcher::Succeeded:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,11 +16,11 @@ static void readString(const QJsonObject &root, const QString &key, QString &var
|
|||||||
LibraryPtr OneSixVersionFormat::libraryFromJson(ProblemContainer & problems, const QJsonObject &libObj, const QString &filename)
|
LibraryPtr OneSixVersionFormat::libraryFromJson(ProblemContainer & problems, const QJsonObject &libObj, const QString &filename)
|
||||||
{
|
{
|
||||||
LibraryPtr out = MojangVersionFormat::libraryFromJson(problems, libObj, filename);
|
LibraryPtr out = MojangVersionFormat::libraryFromJson(problems, libObj, filename);
|
||||||
readString(libObj, "MMC-hint", out->m_hint);
|
readString(libObj, "LAUNCHER-hint", out->m_hint);
|
||||||
readString(libObj, "MMC-absulute_url", out->m_absoluteURL);
|
readString(libObj, "LAUNCHER-absulute_url", out->m_absoluteURL);
|
||||||
readString(libObj, "MMC-absoluteUrl", out->m_absoluteURL);
|
readString(libObj, "LAUNCHER-absoluteUrl", out->m_absoluteURL);
|
||||||
readString(libObj, "MMC-filename", out->m_filename);
|
readString(libObj, "LAUNCHER-filename", out->m_filename);
|
||||||
readString(libObj, "MMC-displayname", out->m_displayname);
|
readString(libObj, "LAUNCHER-displayname", out->m_displayname);
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,13 +28,13 @@ QJsonObject OneSixVersionFormat::libraryToJson(Library *library)
|
|||||||
{
|
{
|
||||||
QJsonObject libRoot = MojangVersionFormat::libraryToJson(library);
|
QJsonObject libRoot = MojangVersionFormat::libraryToJson(library);
|
||||||
if (library->m_absoluteURL.size())
|
if (library->m_absoluteURL.size())
|
||||||
libRoot.insert("MMC-absoluteUrl", library->m_absoluteURL);
|
libRoot.insert("LAUNCHER-absoluteUrl", library->m_absoluteURL);
|
||||||
if (library->m_hint.size())
|
if (library->m_hint.size())
|
||||||
libRoot.insert("MMC-hint", library->m_hint);
|
libRoot.insert("LAUNCHER-hint", library->m_hint);
|
||||||
if (library->m_filename.size())
|
if (library->m_filename.size())
|
||||||
libRoot.insert("MMC-filename", library->m_filename);
|
libRoot.insert("LAUNCHER-filename", library->m_filename);
|
||||||
if (library->m_displayname.size())
|
if (library->m_displayname.size())
|
||||||
libRoot.insert("MMC-displayname", library->m_displayname);
|
libRoot.insert("LAUNCHER-displayname", library->m_displayname);
|
||||||
return libRoot;
|
return libRoot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
|
@ -20,7 +20,7 @@
|
|||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "settings/SettingsObject.h"
|
#include "settings/SettingsObject.h"
|
||||||
#include "widgets/IconLabel.h"
|
#include "widgets/IconLabel.h"
|
||||||
#include "widgets/PageContainer.h"
|
#include "widgets/PageContainer.h"
|
||||||
@ -45,7 +45,7 @@ PageDialog::PageDialog(BasePageProvider *pageProvider, QString defaultId, QWidge
|
|||||||
connect(buttons->button(QDialogButtonBox::Close), SIGNAL(clicked()), this, SLOT(close()));
|
connect(buttons->button(QDialogButtonBox::Close), SIGNAL(clicked()), this, SLOT(close()));
|
||||||
connect(buttons->button(QDialogButtonBox::Help), SIGNAL(clicked()), m_container, SLOT(help()));
|
connect(buttons->button(QDialogButtonBox::Help), SIGNAL(clicked()), m_container, SLOT(help()));
|
||||||
|
|
||||||
restoreGeometry(QByteArray::fromBase64(MMC->settings()->get("PagedGeometry").toByteArray()));
|
restoreGeometry(QByteArray::fromBase64(LAUNCHER->settings()->get("PagedGeometry").toByteArray()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void PageDialog::closeEvent(QCloseEvent *event)
|
void PageDialog::closeEvent(QCloseEvent *event)
|
||||||
@ -54,7 +54,7 @@ void PageDialog::closeEvent(QCloseEvent *event)
|
|||||||
if (m_container->prepareToClose())
|
if (m_container->prepareToClose())
|
||||||
{
|
{
|
||||||
qDebug() << "Paged dialog close approved";
|
qDebug() << "Paged dialog close approved";
|
||||||
MMC->settings()->set("PagedGeometry", saveGeometry().toBase64());
|
LAUNCHER->settings()->set("PagedGeometry", saveGeometry().toBase64());
|
||||||
qDebug() << "Paged dialog geometry saved";
|
qDebug() << "Paged dialog geometry saved";
|
||||||
QDialog::closeEvent(event);
|
QDialog::closeEvent(event);
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
#include "minecraft/auth/AccountTask.h"
|
#include "minecraft/auth/AccountTask.h"
|
||||||
#include "minecraft/services/SkinDelete.h"
|
#include "minecraft/services/SkinDelete.h"
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
#include "BuildConfig.h"
|
#include "BuildConfig.h"
|
||||||
#include <dialogs/MSALoginDialog.h>
|
#include <dialogs/MSALoginDialog.h>
|
||||||
@ -50,7 +50,7 @@ AccountListPage::AccountListPage(QWidget *parent)
|
|||||||
ui->listView->setEmptyMode(VersionListView::String);
|
ui->listView->setEmptyMode(VersionListView::String);
|
||||||
ui->listView->setContextMenuPolicy(Qt::CustomContextMenu);
|
ui->listView->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
|
|
||||||
m_accounts = MMC->accounts();
|
m_accounts = LAUNCHER->accounts();
|
||||||
|
|
||||||
ui->listView->setModel(m_accounts.get());
|
ui->listView->setModel(m_accounts.get());
|
||||||
ui->listView->header()->setSectionResizeMode(0, QHeaderView::Stretch);
|
ui->listView->header()->setSectionResizeMode(0, QHeaderView::Stretch);
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
|
|
||||||
#include "minecraft/auth/AccountList.h"
|
#include "minecraft/auth/AccountList.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
||||||
@ -43,10 +43,10 @@ public:
|
|||||||
}
|
}
|
||||||
QIcon icon() const override
|
QIcon icon() const override
|
||||||
{
|
{
|
||||||
auto icon = MMC->getThemedIcon("accounts");
|
auto icon = LAUNCHER->getThemedIcon("accounts");
|
||||||
if(icon.isNull())
|
if(icon.isNull())
|
||||||
{
|
{
|
||||||
icon = MMC->getThemedIcon("noaccount");
|
icon = LAUNCHER->getThemedIcon("noaccount");
|
||||||
}
|
}
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ bool CustomCommandsPage::apply()
|
|||||||
|
|
||||||
void CustomCommandsPage::applySettings()
|
void CustomCommandsPage::applySettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
s->set("PreLaunchCommand", commands->prelaunchCommand());
|
s->set("PreLaunchCommand", commands->prelaunchCommand());
|
||||||
s->set("WrapperCommand", commands->wrapperCommand());
|
s->set("WrapperCommand", commands->wrapperCommand());
|
||||||
s->set("PostExitCommand", commands->postexitCommand());
|
s->set("PostExitCommand", commands->postexitCommand());
|
||||||
@ -40,7 +40,7 @@ void CustomCommandsPage::applySettings()
|
|||||||
|
|
||||||
void CustomCommandsPage::loadSettings()
|
void CustomCommandsPage::loadSettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
commands->initialize(
|
commands->initialize(
|
||||||
false,
|
false,
|
||||||
true,
|
true,
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include "widgets/CustomCommands.h"
|
#include "widgets/CustomCommands.h"
|
||||||
|
|
||||||
class CustomCommandsPage : public QWidget, public BasePage
|
class CustomCommandsPage : public QWidget, public BasePage
|
||||||
@ -36,7 +36,7 @@ public:
|
|||||||
}
|
}
|
||||||
QIcon icon() const override
|
QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("custom-commands");
|
return LAUNCHER->getThemedIcon("custom-commands");
|
||||||
}
|
}
|
||||||
QString id() const override
|
QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#include "settings/SettingsObject.h"
|
#include "settings/SettingsObject.h"
|
||||||
#include "tools/BaseProfiler.h"
|
#include "tools/BaseProfiler.h"
|
||||||
#include <FileSystem.h>
|
#include <FileSystem.h>
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include <tools/MCEditTool.h>
|
#include <tools/MCEditTool.h>
|
||||||
|
|
||||||
ExternalToolsPage::ExternalToolsPage(QWidget *parent) :
|
ExternalToolsPage::ExternalToolsPage(QWidget *parent) :
|
||||||
@ -51,7 +51,7 @@ ExternalToolsPage::~ExternalToolsPage()
|
|||||||
|
|
||||||
void ExternalToolsPage::loadSettings()
|
void ExternalToolsPage::loadSettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
ui->jprofilerPathEdit->setText(s->get("JProfilerPath").toString());
|
ui->jprofilerPathEdit->setText(s->get("JProfilerPath").toString());
|
||||||
ui->jvisualvmPathEdit->setText(s->get("JVisualVMPath").toString());
|
ui->jvisualvmPathEdit->setText(s->get("JVisualVMPath").toString());
|
||||||
ui->mceditPathEdit->setText(s->get("MCEditPath").toString());
|
ui->mceditPathEdit->setText(s->get("MCEditPath").toString());
|
||||||
@ -61,7 +61,7 @@ void ExternalToolsPage::loadSettings()
|
|||||||
}
|
}
|
||||||
void ExternalToolsPage::applySettings()
|
void ExternalToolsPage::applySettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
|
|
||||||
s->set("JProfilerPath", ui->jprofilerPathEdit->text());
|
s->set("JProfilerPath", ui->jprofilerPathEdit->text());
|
||||||
s->set("JVisualVMPath", ui->jvisualvmPathEdit->text());
|
s->set("JVisualVMPath", ui->jvisualvmPathEdit->text());
|
||||||
@ -93,7 +93,7 @@ void ExternalToolsPage::on_jprofilerPathBtn_clicked()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
QString cooked_dir = FS::NormalizePath(raw_dir);
|
QString cooked_dir = FS::NormalizePath(raw_dir);
|
||||||
if (!MMC->profilers()["jprofiler"]->check(cooked_dir, &error))
|
if (!LAUNCHER->profilers()["jprofiler"]->check(cooked_dir, &error))
|
||||||
{
|
{
|
||||||
QMessageBox::critical(this, tr("Error"), tr("Error while checking JProfiler install:\n%1").arg(error));
|
QMessageBox::critical(this, tr("Error"), tr("Error while checking JProfiler install:\n%1").arg(error));
|
||||||
continue;
|
continue;
|
||||||
@ -108,7 +108,7 @@ void ExternalToolsPage::on_jprofilerPathBtn_clicked()
|
|||||||
void ExternalToolsPage::on_jprofilerCheckBtn_clicked()
|
void ExternalToolsPage::on_jprofilerCheckBtn_clicked()
|
||||||
{
|
{
|
||||||
QString error;
|
QString error;
|
||||||
if (!MMC->profilers()["jprofiler"]->check(ui->jprofilerPathEdit->text(), &error))
|
if (!LAUNCHER->profilers()["jprofiler"]->check(ui->jprofilerPathEdit->text(), &error))
|
||||||
{
|
{
|
||||||
QMessageBox::critical(this, tr("Error"), tr("Error while checking JProfiler install:\n%1").arg(error));
|
QMessageBox::critical(this, tr("Error"), tr("Error while checking JProfiler install:\n%1").arg(error));
|
||||||
}
|
}
|
||||||
@ -130,7 +130,7 @@ void ExternalToolsPage::on_jvisualvmPathBtn_clicked()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
QString cooked_dir = FS::NormalizePath(raw_dir);
|
QString cooked_dir = FS::NormalizePath(raw_dir);
|
||||||
if (!MMC->profilers()["jvisualvm"]->check(cooked_dir, &error))
|
if (!LAUNCHER->profilers()["jvisualvm"]->check(cooked_dir, &error))
|
||||||
{
|
{
|
||||||
QMessageBox::critical(this, tr("Error"), tr("Error while checking JVisualVM install:\n%1").arg(error));
|
QMessageBox::critical(this, tr("Error"), tr("Error while checking JVisualVM install:\n%1").arg(error));
|
||||||
continue;
|
continue;
|
||||||
@ -145,7 +145,7 @@ void ExternalToolsPage::on_jvisualvmPathBtn_clicked()
|
|||||||
void ExternalToolsPage::on_jvisualvmCheckBtn_clicked()
|
void ExternalToolsPage::on_jvisualvmCheckBtn_clicked()
|
||||||
{
|
{
|
||||||
QString error;
|
QString error;
|
||||||
if (!MMC->profilers()["jvisualvm"]->check(ui->jvisualvmPathEdit->text(), &error))
|
if (!LAUNCHER->profilers()["jvisualvm"]->check(ui->jvisualvmPathEdit->text(), &error))
|
||||||
{
|
{
|
||||||
QMessageBox::critical(this, tr("Error"), tr("Error while checking JVisualVM install:\n%1").arg(error));
|
QMessageBox::critical(this, tr("Error"), tr("Error while checking JVisualVM install:\n%1").arg(error));
|
||||||
}
|
}
|
||||||
@ -171,7 +171,7 @@ void ExternalToolsPage::on_mceditPathBtn_clicked()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
QString cooked_dir = FS::NormalizePath(raw_dir);
|
QString cooked_dir = FS::NormalizePath(raw_dir);
|
||||||
if (!MMC->mcedit()->check(cooked_dir, error))
|
if (!LAUNCHER->mcedit()->check(cooked_dir, error))
|
||||||
{
|
{
|
||||||
QMessageBox::critical(this, tr("Error"), tr("Error while checking MCEdit install:\n%1").arg(error));
|
QMessageBox::critical(this, tr("Error"), tr("Error while checking MCEdit install:\n%1").arg(error));
|
||||||
continue;
|
continue;
|
||||||
@ -186,7 +186,7 @@ void ExternalToolsPage::on_mceditPathBtn_clicked()
|
|||||||
void ExternalToolsPage::on_mceditCheckBtn_clicked()
|
void ExternalToolsPage::on_mceditCheckBtn_clicked()
|
||||||
{
|
{
|
||||||
QString error;
|
QString error;
|
||||||
if (!MMC->mcedit()->check(ui->mceditPathEdit->text(), error))
|
if (!LAUNCHER->mcedit()->check(ui->mceditPathEdit->text(), error))
|
||||||
{
|
{
|
||||||
QMessageBox::critical(this, tr("Error"), tr("Error while checking MCEdit install:\n%1").arg(error));
|
QMessageBox::critical(this, tr("Error"), tr("Error while checking MCEdit install:\n%1").arg(error));
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class ExternalToolsPage;
|
class ExternalToolsPage;
|
||||||
@ -38,10 +38,10 @@ public:
|
|||||||
}
|
}
|
||||||
QIcon icon() const override
|
QIcon icon() const override
|
||||||
{
|
{
|
||||||
auto icon = MMC->getThemedIcon("externaltools");
|
auto icon = LAUNCHER->getThemedIcon("externaltools");
|
||||||
if(icon.isNull())
|
if(icon.isNull())
|
||||||
{
|
{
|
||||||
icon = MMC->getThemedIcon("loadermods");
|
icon = LAUNCHER->getThemedIcon("loadermods");
|
||||||
}
|
}
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
#include "settings/SettingsObject.h"
|
#include "settings/SettingsObject.h"
|
||||||
#include <FileSystem.h>
|
#include <FileSystem.h>
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include <sys.h>
|
#include <sys.h>
|
||||||
|
|
||||||
JavaPage::JavaPage(QWidget *parent) : QWidget(parent), ui(new Ui::JavaPage)
|
JavaPage::JavaPage(QWidget *parent) : QWidget(parent), ui(new Ui::JavaPage)
|
||||||
@ -55,7 +55,7 @@ bool JavaPage::apply()
|
|||||||
|
|
||||||
void JavaPage::applySettings()
|
void JavaPage::applySettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
|
|
||||||
// Memory
|
// Memory
|
||||||
int min = ui->minMemSpinBox->value();
|
int min = ui->minMemSpinBox->value();
|
||||||
@ -79,7 +79,7 @@ void JavaPage::applySettings()
|
|||||||
}
|
}
|
||||||
void JavaPage::loadSettings()
|
void JavaPage::loadSettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
// Memory
|
// Memory
|
||||||
int min = s->get("MinMemAlloc").toInt();
|
int min = s->get("MinMemAlloc").toInt();
|
||||||
int max = s->get("MaxMemAlloc").toInt();
|
int max = s->get("MaxMemAlloc").toInt();
|
||||||
@ -104,7 +104,7 @@ void JavaPage::on_javaDetectBtn_clicked()
|
|||||||
{
|
{
|
||||||
JavaInstallPtr java;
|
JavaInstallPtr java;
|
||||||
|
|
||||||
VersionSelectDialog vselect(MMC->javalist().get(), tr("Select a Java version"), this, true);
|
VersionSelectDialog vselect(LAUNCHER->javalist().get(), tr("Select a Java version"), this, true);
|
||||||
vselect.setResizeOn(2);
|
vselect.setResizeOn(2);
|
||||||
vselect.exec();
|
vselect.exec();
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include "JavaCommon.h"
|
#include "JavaCommon.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include <QObjectPtr.h>
|
#include <QObjectPtr.h>
|
||||||
|
|
||||||
class SettingsObject;
|
class SettingsObject;
|
||||||
@ -43,7 +43,7 @@ public:
|
|||||||
}
|
}
|
||||||
QIcon icon() const override
|
QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("java");
|
return LAUNCHER->getThemedIcon("java");
|
||||||
}
|
}
|
||||||
QString id() const override
|
QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -26,7 +26,7 @@ bool LanguagePage::apply()
|
|||||||
|
|
||||||
void LanguagePage::applySettings()
|
void LanguagePage::applySettings()
|
||||||
{
|
{
|
||||||
auto settings = MMC->settings();
|
auto settings = LAUNCHER->settings();
|
||||||
QString key = mainWidget->getSelectedLanguageKey();
|
QString key = mainWidget->getSelectedLanguageKey();
|
||||||
settings->set("Language", key);
|
settings->set("Language", key);
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
class LanguageSelectionWidget;
|
class LanguageSelectionWidget;
|
||||||
@ -36,7 +36,7 @@ public:
|
|||||||
}
|
}
|
||||||
QIcon icon() const override
|
QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("language");
|
return LAUNCHER->getThemedIcon("language");
|
||||||
}
|
}
|
||||||
QString id() const override
|
QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -13,8 +13,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MultiMCPage.h"
|
#include "LauncherPage.h"
|
||||||
#include "ui_MultiMCPage.h"
|
#include "ui_LauncherPage.h"
|
||||||
|
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
#include "settings/SettingsObject.h"
|
#include "settings/SettingsObject.h"
|
||||||
#include <FileSystem.h>
|
#include <FileSystem.h>
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "BuildConfig.h"
|
#include "BuildConfig.h"
|
||||||
#include "themes/ITheme.h"
|
#include "themes/ITheme.h"
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ enum InstSortMode
|
|||||||
Sort_LastLaunch
|
Sort_LastLaunch
|
||||||
};
|
};
|
||||||
|
|
||||||
MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCPage)
|
LauncherPage::LauncherPage(QWidget *parent) : QWidget(parent), ui(new Ui::LauncherPage)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
auto origForeground = ui->fontPreview->palette().color(ui->fontPreview->foregroundRole());
|
auto origForeground = ui->fontPreview->palette().color(ui->fontPreview->foregroundRole());
|
||||||
@ -53,20 +53,20 @@ MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCP
|
|||||||
|
|
||||||
defaultFormat = new QTextCharFormat(ui->fontPreview->currentCharFormat());
|
defaultFormat = new QTextCharFormat(ui->fontPreview->currentCharFormat());
|
||||||
|
|
||||||
m_languageModel = MMC->translations();
|
m_languageModel = LAUNCHER->translations();
|
||||||
loadSettings();
|
loadSettings();
|
||||||
|
|
||||||
if(BuildConfig.UPDATER_ENABLED)
|
if(BuildConfig.UPDATER_ENABLED)
|
||||||
{
|
{
|
||||||
QObject::connect(MMC->updateChecker().get(), &UpdateChecker::channelListLoaded, this, &MultiMCPage::refreshUpdateChannelList);
|
QObject::connect(LAUNCHER->updateChecker().get(), &UpdateChecker::channelListLoaded, this, &LauncherPage::refreshUpdateChannelList);
|
||||||
|
|
||||||
if (MMC->updateChecker()->hasChannels())
|
if (LAUNCHER->updateChecker()->hasChannels())
|
||||||
{
|
{
|
||||||
refreshUpdateChannelList();
|
refreshUpdateChannelList();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MMC->updateChecker()->updateChanList(false);
|
LAUNCHER->updateChecker()->updateChanList(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -89,19 +89,19 @@ MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCP
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MultiMCPage::~MultiMCPage()
|
LauncherPage::~LauncherPage()
|
||||||
{
|
{
|
||||||
delete ui;
|
delete ui;
|
||||||
delete defaultFormat;
|
delete defaultFormat;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MultiMCPage::apply()
|
bool LauncherPage::apply()
|
||||||
{
|
{
|
||||||
applySettings();
|
applySettings();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMCPage::on_instDirBrowseBtn_clicked()
|
void LauncherPage::on_instDirBrowseBtn_clicked()
|
||||||
{
|
{
|
||||||
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Instance Folder"), ui->instDirTextBox->text());
|
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Instance Folder"), ui->instDirTextBox->text());
|
||||||
|
|
||||||
@ -133,7 +133,7 @@ void MultiMCPage::on_instDirBrowseBtn_clicked()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMCPage::on_iconsDirBrowseBtn_clicked()
|
void LauncherPage::on_iconsDirBrowseBtn_clicked()
|
||||||
{
|
{
|
||||||
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Icons Folder"), ui->iconsDirTextBox->text());
|
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Icons Folder"), ui->iconsDirTextBox->text());
|
||||||
|
|
||||||
@ -144,7 +144,7 @@ void MultiMCPage::on_iconsDirBrowseBtn_clicked()
|
|||||||
ui->iconsDirTextBox->setText(cooked_dir);
|
ui->iconsDirTextBox->setText(cooked_dir);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void MultiMCPage::on_modsDirBrowseBtn_clicked()
|
void LauncherPage::on_modsDirBrowseBtn_clicked()
|
||||||
{
|
{
|
||||||
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Mods Folder"), ui->modsDirTextBox->text());
|
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Mods Folder"), ui->modsDirTextBox->text());
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ void MultiMCPage::on_modsDirBrowseBtn_clicked()
|
|||||||
ui->modsDirTextBox->setText(cooked_dir);
|
ui->modsDirTextBox->setText(cooked_dir);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void MultiMCPage::on_migrateDataFolderMacBtn_clicked()
|
void LauncherPage::on_migrateDataFolderMacBtn_clicked()
|
||||||
{
|
{
|
||||||
QFile file(QDir::current().absolutePath() + "/dontmovemacdata");
|
QFile file(QDir::current().absolutePath() + "/dontmovemacdata");
|
||||||
file.remove();
|
file.remove();
|
||||||
@ -163,7 +163,7 @@ void MultiMCPage::on_migrateDataFolderMacBtn_clicked()
|
|||||||
qApp->quit();
|
qApp->quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMCPage::refreshUpdateChannelList()
|
void LauncherPage::refreshUpdateChannelList()
|
||||||
{
|
{
|
||||||
// Stop listening for selection changes. It's going to change a lot while we update it and
|
// Stop listening for selection changes. It's going to change a lot while we update it and
|
||||||
// we don't need to update the
|
// we don't need to update the
|
||||||
@ -171,7 +171,7 @@ void MultiMCPage::refreshUpdateChannelList()
|
|||||||
QObject::disconnect(ui->updateChannelComboBox, SIGNAL(currentIndexChanged(int)), this,
|
QObject::disconnect(ui->updateChannelComboBox, SIGNAL(currentIndexChanged(int)), this,
|
||||||
SLOT(updateChannelSelectionChanged(int)));
|
SLOT(updateChannelSelectionChanged(int)));
|
||||||
|
|
||||||
QList<UpdateChecker::ChannelListEntry> channelList = MMC->updateChecker()->getChannelList();
|
QList<UpdateChecker::ChannelListEntry> channelList = LAUNCHER->updateChecker()->getChannelList();
|
||||||
ui->updateChannelComboBox->clear();
|
ui->updateChannelComboBox->clear();
|
||||||
int selection = -1;
|
int selection = -1;
|
||||||
for (int i = 0; i < channelList.count(); i++)
|
for (int i = 0; i < channelList.count(); i++)
|
||||||
@ -208,15 +208,15 @@ void MultiMCPage::refreshUpdateChannelList()
|
|||||||
ui->updateChannelComboBox->setEnabled(true);
|
ui->updateChannelComboBox->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMCPage::updateChannelSelectionChanged(int index)
|
void LauncherPage::updateChannelSelectionChanged(int index)
|
||||||
{
|
{
|
||||||
refreshUpdateChannelDesc();
|
refreshUpdateChannelDesc();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMCPage::refreshUpdateChannelDesc()
|
void LauncherPage::refreshUpdateChannelDesc()
|
||||||
{
|
{
|
||||||
// Get the channel list.
|
// Get the channel list.
|
||||||
QList<UpdateChecker::ChannelListEntry> channelList = MMC->updateChecker()->getChannelList();
|
QList<UpdateChecker::ChannelListEntry> channelList = LAUNCHER->updateChecker()->getChannelList();
|
||||||
int selectedIndex = ui->updateChannelComboBox->currentIndex();
|
int selectedIndex = ui->updateChannelComboBox->currentIndex();
|
||||||
if (selectedIndex < 0)
|
if (selectedIndex < 0)
|
||||||
{
|
{
|
||||||
@ -235,9 +235,9 @@ void MultiMCPage::refreshUpdateChannelDesc()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMCPage::applySettings()
|
void LauncherPage::applySettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
|
|
||||||
if (ui->resetNotificationsBtn->isChecked())
|
if (ui->resetNotificationsBtn->isChecked())
|
||||||
{
|
{
|
||||||
@ -283,7 +283,7 @@ void MultiMCPage::applySettings()
|
|||||||
|
|
||||||
if(original != s->get("IconTheme"))
|
if(original != s->get("IconTheme"))
|
||||||
{
|
{
|
||||||
MMC->setIconTheme(s->get("IconTheme").toString());
|
LAUNCHER->setIconTheme(s->get("IconTheme").toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
auto originalAppTheme = s->get("ApplicationTheme").toString();
|
auto originalAppTheme = s->get("ApplicationTheme").toString();
|
||||||
@ -291,7 +291,7 @@ void MultiMCPage::applySettings()
|
|||||||
if(originalAppTheme != newAppTheme)
|
if(originalAppTheme != newAppTheme)
|
||||||
{
|
{
|
||||||
s->set("ApplicationTheme", newAppTheme);
|
s->set("ApplicationTheme", newAppTheme);
|
||||||
MMC->setApplicationTheme(newAppTheme, false);
|
LAUNCHER->setApplicationTheme(newAppTheme, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Console settings
|
// Console settings
|
||||||
@ -328,9 +328,9 @@ void MultiMCPage::applySettings()
|
|||||||
s->set("Analytics", ui->analyticsCheck->isChecked());
|
s->set("Analytics", ui->analyticsCheck->isChecked());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void MultiMCPage::loadSettings()
|
void LauncherPage::loadSettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
// Updates
|
// Updates
|
||||||
ui->autoUpdateCheckBox->setChecked(s->get("AutoUpdate").toBool());
|
ui->autoUpdateCheckBox->setChecked(s->get("AutoUpdate").toBool());
|
||||||
m_currentUpdateChannel = s->get("UpdateChannel").toString();
|
m_currentUpdateChannel = s->get("UpdateChannel").toString();
|
||||||
@ -375,7 +375,7 @@ void MultiMCPage::loadSettings()
|
|||||||
|
|
||||||
{
|
{
|
||||||
auto currentTheme = s->get("ApplicationTheme").toString();
|
auto currentTheme = s->get("ApplicationTheme").toString();
|
||||||
auto themes = MMC->getValidApplicationThemes();
|
auto themes = LAUNCHER->getValidApplicationThemes();
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
for(auto &theme: themes)
|
for(auto &theme: themes)
|
||||||
{
|
{
|
||||||
@ -392,12 +392,12 @@ void MultiMCPage::loadSettings()
|
|||||||
ui->showConsoleCheck->setChecked(s->get("ShowConsole").toBool());
|
ui->showConsoleCheck->setChecked(s->get("ShowConsole").toBool());
|
||||||
ui->autoCloseConsoleCheck->setChecked(s->get("AutoCloseConsole").toBool());
|
ui->autoCloseConsoleCheck->setChecked(s->get("AutoCloseConsole").toBool());
|
||||||
ui->showConsoleErrorCheck->setChecked(s->get("ShowConsoleOnError").toBool());
|
ui->showConsoleErrorCheck->setChecked(s->get("ShowConsoleOnError").toBool());
|
||||||
QString fontFamily = MMC->settings()->get("ConsoleFont").toString();
|
QString fontFamily = LAUNCHER->settings()->get("ConsoleFont").toString();
|
||||||
QFont consoleFont(fontFamily);
|
QFont consoleFont(fontFamily);
|
||||||
ui->consoleFont->setCurrentFont(consoleFont);
|
ui->consoleFont->setCurrentFont(consoleFont);
|
||||||
|
|
||||||
bool conversionOk = true;
|
bool conversionOk = true;
|
||||||
int fontSize = MMC->settings()->get("ConsoleFontSize").toInt(&conversionOk);
|
int fontSize = LAUNCHER->settings()->get("ConsoleFontSize").toInt(&conversionOk);
|
||||||
if(!conversionOk)
|
if(!conversionOk)
|
||||||
{
|
{
|
||||||
fontSize = 11;
|
fontSize = 11;
|
||||||
@ -430,7 +430,7 @@ void MultiMCPage::loadSettings()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiMCPage::refreshFontPreview()
|
void LauncherPage::refreshFontPreview()
|
||||||
{
|
{
|
||||||
int fontSize = ui->fontSizeBox->value();
|
int fontSize = ui->fontSizeBox->value();
|
||||||
QString fontFamily = ui->consoleFont->currentFont().family();
|
QString fontFamily = ui->consoleFont->currentFont().family();
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#include "java/JavaChecker.h"
|
#include "java/JavaChecker.h"
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include "ColorCache.h"
|
#include "ColorCache.h"
|
||||||
#include <translations/TranslationsModel.h>
|
#include <translations/TranslationsModel.h>
|
||||||
|
|
||||||
@ -29,16 +29,16 @@ class SettingsObject;
|
|||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
||||||
class MultiMCPage;
|
class LauncherPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
class MultiMCPage : public QWidget, public BasePage
|
class LauncherPage : public QWidget, public BasePage
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit MultiMCPage(QWidget *parent = 0);
|
explicit LauncherPage(QWidget *parent = 0);
|
||||||
~MultiMCPage();
|
~LauncherPage();
|
||||||
|
|
||||||
QString displayName() const override
|
QString displayName() const override
|
||||||
{
|
{
|
||||||
@ -46,7 +46,7 @@ public:
|
|||||||
}
|
}
|
||||||
QIcon icon() const override
|
QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("multimc");
|
return LAUNCHER->getThemedIcon("multimc");
|
||||||
}
|
}
|
||||||
QString id() const override
|
QString id() const override
|
||||||
{
|
{
|
||||||
@ -87,7 +87,7 @@ slots:
|
|||||||
void updateChannelSelectionChanged(int index);
|
void updateChannelSelectionChanged(int index);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MultiMCPage *ui;
|
Ui::LauncherPage *ui;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Stores the currently selected update channel.
|
* Stores the currently selected update channel.
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>MultiMCPage</class>
|
<class>LauncherPage</class>
|
||||||
<widget class="QWidget" name="MultiMCPage">
|
<widget class="QWidget" name="LauncherPage">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
@ -21,7 +21,7 @@
|
|||||||
#include <QTabBar>
|
#include <QTabBar>
|
||||||
|
|
||||||
#include "settings/SettingsObject.h"
|
#include "settings/SettingsObject.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
MinecraftPage::MinecraftPage(QWidget *parent) : QWidget(parent), ui(new Ui::MinecraftPage)
|
MinecraftPage::MinecraftPage(QWidget *parent) : QWidget(parent), ui(new Ui::MinecraftPage)
|
||||||
{
|
{
|
||||||
@ -57,7 +57,7 @@ void MinecraftPage::on_maximizedCheckBox_clicked(bool checked)
|
|||||||
|
|
||||||
void MinecraftPage::applySettings()
|
void MinecraftPage::applySettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
|
|
||||||
// Window Size
|
// Window Size
|
||||||
s->set("LaunchMaximized", ui->maximizedCheckBox->isChecked());
|
s->set("LaunchMaximized", ui->maximizedCheckBox->isChecked());
|
||||||
@ -75,7 +75,7 @@ void MinecraftPage::applySettings()
|
|||||||
|
|
||||||
void MinecraftPage::loadSettings()
|
void MinecraftPage::loadSettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
|
|
||||||
// Window Size
|
// Window Size
|
||||||
ui->maximizedCheckBox->setChecked(s->get("LaunchMaximized").toBool());
|
ui->maximizedCheckBox->setChecked(s->get("LaunchMaximized").toBool());
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#include "java/JavaChecker.h"
|
#include "java/JavaChecker.h"
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
class SettingsObject;
|
class SettingsObject;
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ public:
|
|||||||
}
|
}
|
||||||
QIcon icon() const override
|
QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("minecraft");
|
return LAUNCHER->getThemedIcon("minecraft");
|
||||||
}
|
}
|
||||||
QString id() const override
|
QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
#include "settings/SettingsObject.h"
|
#include "settings/SettingsObject.h"
|
||||||
#include "tools/BaseProfiler.h"
|
#include "tools/BaseProfiler.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
PasteEEPage::PasteEEPage(QWidget *parent) :
|
PasteEEPage::PasteEEPage(QWidget *parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
@ -42,7 +42,7 @@ PasteEEPage::~PasteEEPage()
|
|||||||
|
|
||||||
void PasteEEPage::loadSettings()
|
void PasteEEPage::loadSettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
QString keyToUse = s->get("PasteEEAPIKey").toString();
|
QString keyToUse = s->get("PasteEEAPIKey").toString();
|
||||||
if(keyToUse == "multimc")
|
if(keyToUse == "multimc")
|
||||||
{
|
{
|
||||||
@ -57,7 +57,7 @@ void PasteEEPage::loadSettings()
|
|||||||
|
|
||||||
void PasteEEPage::applySettings()
|
void PasteEEPage::applySettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
|
|
||||||
QString pasteKeyToUse;
|
QString pasteKeyToUse;
|
||||||
if (ui->customButton->isChecked())
|
if (ui->customButton->isChecked())
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class PasteEEPage;
|
class PasteEEPage;
|
||||||
@ -38,7 +38,7 @@ public:
|
|||||||
}
|
}
|
||||||
QIcon icon() const override
|
QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("log");
|
return LAUNCHER->getThemedIcon("log");
|
||||||
}
|
}
|
||||||
QString id() const override
|
QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include <QTabBar>
|
#include <QTabBar>
|
||||||
|
|
||||||
#include "settings/SettingsObject.h"
|
#include "settings/SettingsObject.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "Env.h"
|
#include "Env.h"
|
||||||
|
|
||||||
ProxyPage::ProxyPage(QWidget *parent) : QWidget(parent), ui(new Ui::ProxyPage)
|
ProxyPage::ProxyPage(QWidget *parent) : QWidget(parent), ui(new Ui::ProxyPage)
|
||||||
@ -58,7 +58,7 @@ void ProxyPage::proxyChanged(int)
|
|||||||
|
|
||||||
void ProxyPage::applySettings()
|
void ProxyPage::applySettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
|
|
||||||
// Proxy
|
// Proxy
|
||||||
QString proxyType = "None";
|
QString proxyType = "None";
|
||||||
@ -82,7 +82,7 @@ void ProxyPage::applySettings()
|
|||||||
}
|
}
|
||||||
void ProxyPage::loadSettings()
|
void ProxyPage::loadSettings()
|
||||||
{
|
{
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
// Proxy
|
// Proxy
|
||||||
QString proxyType = s->get("ProxyType").toString();
|
QString proxyType = s->get("ProxyType").toString();
|
||||||
if (proxyType == "Default")
|
if (proxyType == "Default")
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
||||||
@ -40,7 +40,7 @@ public:
|
|||||||
}
|
}
|
||||||
QIcon icon() const override
|
QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("proxy");
|
return LAUNCHER->getThemedIcon("proxy");
|
||||||
}
|
}
|
||||||
QString id() const override
|
QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
||||||
@ -46,7 +46,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("settings");
|
return LAUNCHER->getThemedIcon("settings");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#include "dialogs/VersionSelectDialog.h"
|
#include "dialogs/VersionSelectDialog.h"
|
||||||
#include "JavaCommon.h"
|
#include "JavaCommon.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
#include <java/JavaInstallList.h>
|
#include <java/JavaInstallList.h>
|
||||||
#include <FileSystem.h>
|
#include <FileSystem.h>
|
||||||
@ -22,8 +22,8 @@ InstanceSettingsPage::InstanceSettingsPage(BaseInstance *inst, QWidget *parent)
|
|||||||
auto sysMB = Sys::getSystemRam() / Sys::mebibyte;
|
auto sysMB = Sys::getSystemRam() / Sys::mebibyte;
|
||||||
ui->maxMemSpinBox->setMaximum(sysMB);
|
ui->maxMemSpinBox->setMaximum(sysMB);
|
||||||
connect(ui->openGlobalJavaSettingsButton, &QCommandLinkButton::clicked, this, &InstanceSettingsPage::globalSettingsButtonClicked);
|
connect(ui->openGlobalJavaSettingsButton, &QCommandLinkButton::clicked, this, &InstanceSettingsPage::globalSettingsButtonClicked);
|
||||||
connect(MMC, &MultiMC::globalSettingsAboutToOpen, this, &InstanceSettingsPage::applySettings);
|
connect(LAUNCHER, &Launcher::globalSettingsAboutToOpen, this, &InstanceSettingsPage::applySettings);
|
||||||
connect(MMC, &MultiMC::globalSettingsClosed, this, &InstanceSettingsPage::loadSettings);
|
connect(LAUNCHER, &Launcher::globalSettingsClosed, this, &InstanceSettingsPage::loadSettings);
|
||||||
loadSettings();
|
loadSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,13 +41,13 @@ void InstanceSettingsPage::globalSettingsButtonClicked(bool)
|
|||||||
{
|
{
|
||||||
switch(ui->settingsTabs->currentIndex()) {
|
switch(ui->settingsTabs->currentIndex()) {
|
||||||
case 0:
|
case 0:
|
||||||
MMC->ShowGlobalSettings(this, "java-settings");
|
LAUNCHER->ShowGlobalSettings(this, "java-settings");
|
||||||
return;
|
return;
|
||||||
case 1:
|
case 1:
|
||||||
MMC->ShowGlobalSettings(this, "minecraft-settings");
|
LAUNCHER->ShowGlobalSettings(this, "minecraft-settings");
|
||||||
return;
|
return;
|
||||||
case 2:
|
case 2:
|
||||||
MMC->ShowGlobalSettings(this, "custom-commands");
|
LAUNCHER->ShowGlobalSettings(this, "custom-commands");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -278,7 +278,7 @@ void InstanceSettingsPage::on_javaDetectBtn_clicked()
|
|||||||
{
|
{
|
||||||
JavaInstallPtr java;
|
JavaInstallPtr java;
|
||||||
|
|
||||||
VersionSelectDialog vselect(MMC->javalist().get(), tr("Select a Java version"), this, true);
|
VersionSelectDialog vselect(LAUNCHER->javalist().get(), tr("Select a Java version"), this, true);
|
||||||
vselect.setResizeOn(2);
|
vselect.setResizeOn(2);
|
||||||
vselect.exec();
|
vselect.exec();
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include <QObjectPtr.h>
|
#include <QObjectPtr.h>
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include "JavaCommon.h"
|
#include "JavaCommon.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
class JavaChecker;
|
class JavaChecker;
|
||||||
namespace Ui
|
namespace Ui
|
||||||
@ -43,7 +43,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("instance-settings");
|
return LAUNCHER->getThemedIcon("instance-settings");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include "InstanceList.h"
|
#include "InstanceList.h"
|
||||||
#include "minecraft/legacy/LegacyInstance.h"
|
#include "minecraft/legacy/LegacyInstance.h"
|
||||||
#include "minecraft/legacy/LegacyUpgradeTask.h"
|
#include "minecraft/legacy/LegacyUpgradeTask.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "dialogs/CustomMessageBox.h"
|
#include "dialogs/CustomMessageBox.h"
|
||||||
#include "dialogs/ProgressDialog.h"
|
#include "dialogs/ProgressDialog.h"
|
||||||
|
|
||||||
@ -38,9 +38,9 @@ void LegacyUpgradePage::on_upgradeButton_clicked()
|
|||||||
QString newName = tr("%1 (Migrated)").arg(m_inst->name());
|
QString newName = tr("%1 (Migrated)").arg(m_inst->name());
|
||||||
auto upgradeTask = new LegacyUpgradeTask(m_inst);
|
auto upgradeTask = new LegacyUpgradeTask(m_inst);
|
||||||
upgradeTask->setName(newName);
|
upgradeTask->setName(newName);
|
||||||
upgradeTask->setGroup(MMC->instances()->getInstanceGroup(m_inst->id()));
|
upgradeTask->setGroup(LAUNCHER->instances()->getInstanceGroup(m_inst->id()));
|
||||||
upgradeTask->setIcon(m_inst->iconKey());
|
upgradeTask->setIcon(m_inst->iconKey());
|
||||||
unique_qobject_ptr<Task> task(MMC->instances()->wrapInstanceTask(upgradeTask));
|
unique_qobject_ptr<Task> task(LAUNCHER->instances()->wrapInstanceTask(upgradeTask));
|
||||||
runModalTask(task.get());
|
runModalTask(task.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#include "minecraft/legacy/LegacyInstance.h"
|
#include "minecraft/legacy/LegacyInstance.h"
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include "tasks/Task.h"
|
#include "tasks/Task.h"
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
@ -40,7 +40,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("checkupdate");
|
return LAUNCHER->getThemedIcon("checkupdate");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "LogPage.h"
|
#include "LogPage.h"
|
||||||
#include "ui_LogPage.h"
|
#include "ui_LogPage.h"
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
@ -124,9 +124,9 @@ LogPage::LogPage(InstancePtr instance, QWidget *parent)
|
|||||||
|
|
||||||
// set up fonts in the log proxy
|
// set up fonts in the log proxy
|
||||||
{
|
{
|
||||||
QString fontFamily = MMC->settings()->get("ConsoleFont").toString();
|
QString fontFamily = LAUNCHER->settings()->get("ConsoleFont").toString();
|
||||||
bool conversionOk = false;
|
bool conversionOk = false;
|
||||||
int fontSize = MMC->settings()->get("ConsoleFontSize").toInt(&conversionOk);
|
int fontSize = LAUNCHER->settings()->get("ConsoleFontSize").toInt(&conversionOk);
|
||||||
if(!conversionOk)
|
if(!conversionOk)
|
||||||
{
|
{
|
||||||
fontSize = 11;
|
fontSize = 11;
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#include "BaseInstance.h"
|
#include "BaseInstance.h"
|
||||||
#include "launch/LaunchTask.h"
|
#include "launch/LaunchTask.h"
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
||||||
@ -42,7 +42,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("log");
|
return LAUNCHER->getThemedIcon("log");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include <QAbstractItemModel>
|
#include <QAbstractItemModel>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "dialogs/CustomMessageBox.h"
|
#include "dialogs/CustomMessageBox.h"
|
||||||
#include <GuiUtil.h>
|
#include <GuiUtil.h>
|
||||||
#include "minecraft/mod/ModFolderModel.h"
|
#include "minecraft/mod/ModFolderModel.h"
|
||||||
@ -301,7 +301,7 @@ void ModFolderPage::on_actionAdd_triggered()
|
|||||||
tr("Select %1",
|
tr("Select %1",
|
||||||
"Select whatever type of files the page contains. Example: 'Loader Mods'")
|
"Select whatever type of files the page contains. Example: 'Loader Mods'")
|
||||||
.arg(m_displayName),
|
.arg(m_displayName),
|
||||||
m_fileSelectionFilter.arg(m_displayName), MMC->settings()->get("CentralModsDir").toString(),
|
m_fileSelectionFilter.arg(m_displayName), LAUNCHER->settings()->get("CentralModsDir").toString(),
|
||||||
this->parentWidget());
|
this->parentWidget());
|
||||||
if (!list.empty())
|
if (!list.empty())
|
||||||
{
|
{
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#include "minecraft/MinecraftInstance.h"
|
#include "minecraft/MinecraftInstance.h"
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
class ModFolderModel;
|
class ModFolderModel;
|
||||||
namespace Ui
|
namespace Ui
|
||||||
@ -54,7 +54,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon(m_iconName);
|
return LAUNCHER->getThemedIcon(m_iconName);
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#include "BaseInstance.h"
|
#include "BaseInstance.h"
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
||||||
@ -39,9 +39,9 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
auto icon = MMC->getThemedIcon("notes");
|
auto icon = LAUNCHER->getThemedIcon("notes");
|
||||||
if(icon.isNull())
|
if(icon.isNull())
|
||||||
icon = MMC->getThemedIcon("news");
|
icon = LAUNCHER->getThemedIcon("news");
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
|
@ -129,9 +129,9 @@ void OtherLogsPage::on_btnReload_clicked()
|
|||||||
{
|
{
|
||||||
auto setPlainText = [&](const QString & text)
|
auto setPlainText = [&](const QString & text)
|
||||||
{
|
{
|
||||||
QString fontFamily = MMC->settings()->get("ConsoleFont").toString();
|
QString fontFamily = LAUNCHER->settings()->get("ConsoleFont").toString();
|
||||||
bool conversionOk = false;
|
bool conversionOk = false;
|
||||||
int fontSize = MMC->settings()->get("ConsoleFontSize").toInt(&conversionOk);
|
int fontSize = LAUNCHER->settings()->get("ConsoleFontSize").toInt(&conversionOk);
|
||||||
if(!conversionOk)
|
if(!conversionOk)
|
||||||
{
|
{
|
||||||
fontSize = 11;
|
fontSize = 11;
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include <pathmatcher/IPathMatcher.h>
|
#include <pathmatcher/IPathMatcher.h>
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
@ -46,7 +46,7 @@ public:
|
|||||||
}
|
}
|
||||||
QIcon icon() const override
|
QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("log");
|
return LAUNCHER->getThemedIcon("log");
|
||||||
}
|
}
|
||||||
QString helpPage() const override
|
QString helpPage() const override
|
||||||
{
|
{
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
#include "dialogs/ProgressDialog.h"
|
#include "dialogs/ProgressDialog.h"
|
||||||
#include "dialogs/CustomMessageBox.h"
|
#include "dialogs/CustomMessageBox.h"
|
||||||
@ -104,7 +104,7 @@ public:
|
|||||||
{
|
{
|
||||||
m_thumbnailingPool.setMaxThreadCount(4);
|
m_thumbnailingPool.setMaxThreadCount(4);
|
||||||
m_thumbnailCache = std::make_shared<SharedIconCache>();
|
m_thumbnailCache = std::make_shared<SharedIconCache>();
|
||||||
m_thumbnailCache->add("placeholder", MMC->getThemedIcon("screenshot-placeholder"));
|
m_thumbnailCache->add("placeholder", LAUNCHER->getThemedIcon("screenshot-placeholder"));
|
||||||
connect(&watcher, SIGNAL(fileChanged(QString)), SLOT(fileChanged(QString)));
|
connect(&watcher, SIGNAL(fileChanged(QString)), SLOT(fileChanged(QString)));
|
||||||
// FIXME: the watched file set is not updated when files are removed
|
// FIXME: the watched file set is not updated when files are removed
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
class QFileSystemModel;
|
class QFileSystemModel;
|
||||||
class QIdentityProxyModel;
|
class QIdentityProxyModel;
|
||||||
@ -53,7 +53,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("screenshots");
|
return LAUNCHER->getThemedIcon("screenshots");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -324,7 +324,7 @@ public:
|
|||||||
if(px.loadFromData(bytes))
|
if(px.loadFromData(bytes))
|
||||||
return QIcon(px);
|
return QIcon(px);
|
||||||
}
|
}
|
||||||
return MMC->getThemedIcon("unknown_server");
|
return LAUNCHER->getThemedIcon("unknown_server");
|
||||||
}
|
}
|
||||||
case Qt::DisplayRole:
|
case Qt::DisplayRole:
|
||||||
return m_servers[row].m_name;
|
return m_servers[row].m_name;
|
||||||
@ -762,7 +762,7 @@ void ServersPage::on_actionMove_Down_triggered()
|
|||||||
void ServersPage::on_actionJoin_triggered()
|
void ServersPage::on_actionJoin_triggered()
|
||||||
{
|
{
|
||||||
const auto &address = m_model->at(currentServer)->m_address;
|
const auto &address = m_model->at(currentServer)->m_address;
|
||||||
MMC->launch(m_inst, true, nullptr, std::make_shared<MinecraftServerTarget>(MinecraftServerTarget::parse(address)));
|
LAUNCHER->launch(m_inst, true, nullptr, std::make_shared<MinecraftServerTarget>(MinecraftServerTarget::parse(address)));
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "ServersPage.moc"
|
#include "ServersPage.moc"
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
||||||
@ -47,7 +47,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("unknown_server");
|
return LAUNCHER->getThemedIcon("unknown_server");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
@ -70,14 +70,14 @@ public:
|
|||||||
auto string = var.toString();
|
auto string = var.toString();
|
||||||
if(string == "warning")
|
if(string == "warning")
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("status-yellow");
|
return LAUNCHER->getThemedIcon("status-yellow");
|
||||||
}
|
}
|
||||||
else if(string == "error")
|
else if(string == "error")
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("status-bad");
|
return LAUNCHER->getThemedIcon("status-bad");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return MMC->getThemedIcon("status-good");
|
return LAUNCHER->getThemedIcon("status-good");
|
||||||
}
|
}
|
||||||
return var;
|
return var;
|
||||||
}
|
}
|
||||||
@ -93,7 +93,7 @@ private:
|
|||||||
|
|
||||||
QIcon VersionPage::icon() const
|
QIcon VersionPage::icon() const
|
||||||
{
|
{
|
||||||
return MMC->icons()->getIcon(m_inst->iconKey());
|
return LAUNCHER->icons()->getIcon(m_inst->iconKey());
|
||||||
}
|
}
|
||||||
bool VersionPage::shouldDisplay() const
|
bool VersionPage::shouldDisplay() const
|
||||||
{
|
{
|
||||||
@ -297,7 +297,7 @@ void VersionPage::on_actionInstall_mods_triggered()
|
|||||||
|
|
||||||
void VersionPage::on_actionAdd_to_Minecraft_jar_triggered()
|
void VersionPage::on_actionAdd_to_Minecraft_jar_triggered()
|
||||||
{
|
{
|
||||||
auto list = GuiUtil::BrowseForFiles("jarmod", tr("Select jar mods"), tr("Minecraft.jar mods (*.zip *.jar)"), MMC->settings()->get("CentralModsDir").toString(), this->parentWidget());
|
auto list = GuiUtil::BrowseForFiles("jarmod", tr("Select jar mods"), tr("Minecraft.jar mods (*.zip *.jar)"), LAUNCHER->settings()->get("CentralModsDir").toString(), this->parentWidget());
|
||||||
if(!list.empty())
|
if(!list.empty())
|
||||||
{
|
{
|
||||||
m_profile->installJarMods(list);
|
m_profile->installJarMods(list);
|
||||||
@ -307,7 +307,7 @@ void VersionPage::on_actionAdd_to_Minecraft_jar_triggered()
|
|||||||
|
|
||||||
void VersionPage::on_actionReplace_Minecraft_jar_triggered()
|
void VersionPage::on_actionReplace_Minecraft_jar_triggered()
|
||||||
{
|
{
|
||||||
auto jarPath = GuiUtil::BrowseForFile("jar", tr("Select jar"), tr("Minecraft.jar replacement (*.jar)"), MMC->settings()->get("CentralModsDir").toString(), this->parentWidget());
|
auto jarPath = GuiUtil::BrowseForFile("jar", tr("Select jar"), tr("Minecraft.jar replacement (*.jar)"), LAUNCHER->settings()->get("CentralModsDir").toString(), this->parentWidget());
|
||||||
if(!jarPath.isEmpty())
|
if(!jarPath.isEmpty())
|
||||||
{
|
{
|
||||||
m_profile->installCustomJar(jarPath);
|
m_profile->installCustomJar(jarPath);
|
||||||
@ -395,7 +395,7 @@ void VersionPage::on_actionChange_version_triggered()
|
|||||||
|
|
||||||
void VersionPage::on_actionDownload_All_triggered()
|
void VersionPage::on_actionDownload_All_triggered()
|
||||||
{
|
{
|
||||||
if (!MMC->accounts()->anyAccountIsValid())
|
if (!LAUNCHER->accounts()->anyAccountIsValid())
|
||||||
{
|
{
|
||||||
CustomMessageBox::selectable(
|
CustomMessageBox::selectable(
|
||||||
this, tr("Error"),
|
this, tr("Error"),
|
||||||
@ -614,7 +614,7 @@ void VersionPage::on_actionEdit_triggered()
|
|||||||
qWarning() << "file" << filename << "can't be opened for editing, doesn't exist!";
|
qWarning() << "file" << filename << "can't be opened for editing, doesn't exist!";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
MMC->openJsonEditor(filename);
|
LAUNCHER->openJsonEditor(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VersionPage::on_actionRevert_triggered()
|
void VersionPage::on_actionRevert_triggered()
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#include <QInputDialog>
|
#include <QInputDialog>
|
||||||
#include <tools/MCEditTool.h>
|
#include <tools/MCEditTool.h>
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include <GuiUtil.h>
|
#include <GuiUtil.h>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <FileSystem.h>
|
#include <FileSystem.h>
|
||||||
@ -48,7 +48,7 @@ public:
|
|||||||
auto iconFile = worlds->data(sourceIndex, WorldList::IconFileRole).toString();
|
auto iconFile = worlds->data(sourceIndex, WorldList::IconFileRole).toString();
|
||||||
if(iconFile.isNull()) {
|
if(iconFile.isNull()) {
|
||||||
// NOTE: Minecraft uses the same placeholder for servers AND worlds
|
// NOTE: Minecraft uses the same placeholder for servers AND worlds
|
||||||
return MMC->getThemedIcon("unknown_server");
|
return LAUNCHER->getThemedIcon("unknown_server");
|
||||||
}
|
}
|
||||||
return QIcon(iconFile);
|
return QIcon(iconFile);
|
||||||
}
|
}
|
||||||
@ -218,7 +218,7 @@ void WorldListPage::on_actionCopy_Seed_triggered()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int64_t seed = m_worlds->data(index, WorldList::SeedRole).toLongLong();
|
int64_t seed = m_worlds->data(index, WorldList::SeedRole).toLongLong();
|
||||||
MMC->clipboard()->setText(QString::number(seed));
|
LAUNCHER->clipboard()->setText(QString::number(seed));
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldListPage::on_actionMCEdit_triggered()
|
void WorldListPage::on_actionMCEdit_triggered()
|
||||||
@ -226,7 +226,7 @@ void WorldListPage::on_actionMCEdit_triggered()
|
|||||||
if(m_mceditStarting)
|
if(m_mceditStarting)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto mcedit = MMC->mcedit();
|
auto mcedit = LAUNCHER->mcedit();
|
||||||
|
|
||||||
const QString mceditPath = mcedit->path();
|
const QString mceditPath = mcedit->path();
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#include "minecraft/MinecraftInstance.h"
|
#include "minecraft/MinecraftInstance.h"
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include <LoggedProcess.h>
|
#include <LoggedProcess.h>
|
||||||
|
|
||||||
class WorldList;
|
class WorldList;
|
||||||
@ -46,7 +46,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("worlds");
|
return LAUNCHER->getThemedIcon("worlds");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "ImportPage.h"
|
#include "ImportPage.h"
|
||||||
#include "ui_ImportPage.h"
|
#include "ui_ImportPage.h"
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "dialogs/NewInstanceDialog.h"
|
#include "dialogs/NewInstanceDialog.h"
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QValidator>
|
#include <QValidator>
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include "tasks/Task.h"
|
#include "tasks/Task.h"
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
@ -41,7 +41,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("viewfolder");
|
return LAUNCHER->getThemedIcon("viewfolder");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "VanillaPage.h"
|
#include "VanillaPage.h"
|
||||||
#include "ui_VanillaPage.h"
|
#include "ui_VanillaPage.h"
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
#include <meta/Index.h>
|
#include <meta/Index.h>
|
||||||
#include <meta/VersionList.h>
|
#include <meta/VersionList.h>
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include "tasks/Task.h"
|
#include "tasks/Task.h"
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
@ -41,7 +41,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("minecraft");
|
return LAUNCHER->getThemedIcon("minecraft");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "AtlListModel.h"
|
#include "AtlListModel.h"
|
||||||
|
|
||||||
#include <BuildConfig.h>
|
#include <BuildConfig.h>
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include <Env.h>
|
#include <Env.h>
|
||||||
#include <Json.h>
|
#include <Json.h>
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
|
|||||||
{
|
{
|
||||||
return (m_logoMap.value(pack.safeName));
|
return (m_logoMap.value(pack.safeName));
|
||||||
}
|
}
|
||||||
auto icon = MMC->getThemedIcon("atlauncher-placeholder");
|
auto icon = LAUNCHER->getThemedIcon("atlauncher-placeholder");
|
||||||
|
|
||||||
auto url = QString(BuildConfig.ATL_DOWNLOAD_SERVER_URL + "launcher/images/%1.png").arg(pack.safeName.toLower());
|
auto url = QString(BuildConfig.ATL_DOWNLOAD_SERVER_URL + "launcher/images/%1.png").arg(pack.safeName.toLower());
|
||||||
((ListModel *)this)->requestLogo(pack.safeName, url);
|
((ListModel *)this)->requestLogo(pack.safeName, url);
|
||||||
|
@ -139,7 +139,7 @@ QVector<QString> AtlPage::chooseOptionalMods(QVector<ATLauncher::VersionMod> mod
|
|||||||
}
|
}
|
||||||
|
|
||||||
QString AtlPage::chooseVersion(Meta::VersionListPtr vlist, QString minecraftVersion) {
|
QString AtlPage::chooseVersion(Meta::VersionListPtr vlist, QString minecraftVersion) {
|
||||||
VersionSelectDialog vselect(vlist.get(), "Choose Version", MMC->activeWindow(), false);
|
VersionSelectDialog vselect(vlist.get(), "Choose Version", LAUNCHER->activeWindow(), false);
|
||||||
if (minecraftVersion != Q_NULLPTR) {
|
if (minecraftVersion != Q_NULLPTR) {
|
||||||
vselect.setExactFilter(BaseVersionList::ParentVersionRole, minecraftVersion);
|
vselect.setExactFilter(BaseVersionList::ParentVersionRole, minecraftVersion);
|
||||||
vselect.setEmptyString(tr("No versions are currently available for Minecraft %1").arg(minecraftVersion));
|
vselect.setEmptyString(tr("No versions are currently available for Minecraft %1").arg(minecraftVersion));
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <modplatform/atlauncher/ATLPackInstallTask.h>
|
#include <modplatform/atlauncher/ATLPackInstallTask.h>
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include "tasks/Task.h"
|
#include "tasks/Task.h"
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("atlauncher");
|
return LAUNCHER->getThemedIcon("atlauncher");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "FlameModel.h"
|
#include "FlameModel.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include <Json.h>
|
#include <Json.h>
|
||||||
|
|
||||||
#include <MMCStrings.h>
|
#include <MMCStrings.h>
|
||||||
@ -62,7 +62,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
|
|||||||
{
|
{
|
||||||
return (m_logoMap.value(pack.logoName));
|
return (m_logoMap.value(pack.logoName));
|
||||||
}
|
}
|
||||||
QIcon icon = MMC->getThemedIcon("screenshot-placeholder");
|
QIcon icon = LAUNCHER->getThemedIcon("screenshot-placeholder");
|
||||||
((ListModel *)this)->requestLogo(pack.logoName, pack.logoUrl);
|
((ListModel *)this)->requestLogo(pack.logoName, pack.logoUrl);
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "FlamePage.h"
|
#include "FlamePage.h"
|
||||||
#include "ui_FlamePage.h"
|
#include "ui_FlamePage.h"
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include <Json.h>
|
#include <Json.h>
|
||||||
#include "dialogs/NewInstanceDialog.h"
|
#include "dialogs/NewInstanceDialog.h"
|
||||||
#include <InstanceImportTask.h>
|
#include <InstanceImportTask.h>
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include "tasks/Task.h"
|
#include "tasks/Task.h"
|
||||||
#include <modplatform/flame/FlamePackIndex.h>
|
#include <modplatform/flame/FlamePackIndex.h>
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("flame");
|
return LAUNCHER->getThemedIcon("flame");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#include "BuildConfig.h"
|
#include "BuildConfig.h"
|
||||||
#include "Env.h"
|
#include "Env.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "Json.h"
|
#include "Json.h"
|
||||||
|
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
@ -46,7 +46,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
|
|||||||
}
|
}
|
||||||
else if(role == Qt::DecorationRole)
|
else if(role == Qt::DecorationRole)
|
||||||
{
|
{
|
||||||
QIcon placeholder = MMC->getThemedIcon("screenshot-placeholder");
|
QIcon placeholder = LAUNCHER->getThemedIcon("screenshot-placeholder");
|
||||||
|
|
||||||
auto iter = m_logoMap.find(pack.name);
|
auto iter = m_logoMap.find(pack.name);
|
||||||
if (iter != m_logoMap.end()) {
|
if (iter != m_logoMap.end()) {
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include "tasks/Task.h"
|
#include "tasks/Task.h"
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("ftb_logo");
|
return LAUNCHER->getThemedIcon("ftb_logo");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "ListModel.h"
|
#include "ListModel.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
#include <MMCStrings.h>
|
#include <MMCStrings.h>
|
||||||
#include <Version.h>
|
#include <Version.h>
|
||||||
@ -130,7 +130,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
|
|||||||
{
|
{
|
||||||
return (m_logoMap.value(pack.logo));
|
return (m_logoMap.value(pack.logo));
|
||||||
}
|
}
|
||||||
QIcon icon = MMC->getThemedIcon("screenshot-placeholder");
|
QIcon icon = LAUNCHER->getThemedIcon("screenshot-placeholder");
|
||||||
((ListModel *)this)->requestLogo(pack.logo);
|
((ListModel *)this)->requestLogo(pack.logo);
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include <QInputDialog>
|
#include <QInputDialog>
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "dialogs/CustomMessageBox.h"
|
#include "dialogs/CustomMessageBox.h"
|
||||||
#include "dialogs/NewInstanceDialog.h"
|
#include "dialogs/NewInstanceDialog.h"
|
||||||
#include "modplatform/legacy_ftb/PackFetchTask.h"
|
#include "modplatform/legacy_ftb/PackFetchTask.h"
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#include <QTextBrowser>
|
#include <QTextBrowser>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include "tasks/Task.h"
|
#include "tasks/Task.h"
|
||||||
#include "modplatform/legacy_ftb/PackHelpers.h"
|
#include "modplatform/legacy_ftb/PackHelpers.h"
|
||||||
#include "modplatform/legacy_ftb/PackFetchTask.h"
|
#include "modplatform/legacy_ftb/PackFetchTask.h"
|
||||||
@ -54,7 +54,7 @@ public:
|
|||||||
}
|
}
|
||||||
QIcon icon() const override
|
QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("ftb_logo");
|
return LAUNCHER->getThemedIcon("ftb_logo");
|
||||||
}
|
}
|
||||||
QString id() const override
|
QString id() const override
|
||||||
{
|
{
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
#include "TechnicModel.h"
|
#include "TechnicModel.h"
|
||||||
#include "Env.h"
|
#include "Env.h"
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "Json.h"
|
#include "Json.h"
|
||||||
|
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
@ -47,7 +47,7 @@ QVariant Technic::ListModel::data(const QModelIndex& index, int role) const
|
|||||||
{
|
{
|
||||||
return (m_logoMap.value(pack.logoName));
|
return (m_logoMap.value(pack.logoName));
|
||||||
}
|
}
|
||||||
QIcon icon = MMC->getThemedIcon("screenshot-placeholder");
|
QIcon icon = LAUNCHER->getThemedIcon("screenshot-placeholder");
|
||||||
((ListModel *)this)->requestLogo(pack.logoName, pack.logoUrl);
|
((ListModel *)this)->requestLogo(pack.logoName, pack.logoUrl);
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#include "TechnicPage.h"
|
#include "TechnicPage.h"
|
||||||
#include "ui_TechnicPage.h"
|
#include "ui_TechnicPage.h"
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "dialogs/NewInstanceDialog.h"
|
#include "dialogs/NewInstanceDialog.h"
|
||||||
#include "TechnicModel.h"
|
#include "TechnicModel.h"
|
||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include "tasks/Task.h"
|
#include "tasks/Task.h"
|
||||||
#include "TechnicData.h"
|
#include "TechnicData.h"
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual QIcon icon() const override
|
virtual QIcon icon() const override
|
||||||
{
|
{
|
||||||
return MMC->getThemedIcon("technic");
|
return LAUNCHER->getThemedIcon("technic");
|
||||||
}
|
}
|
||||||
virtual QString id() const override
|
virtual QString id() const override
|
||||||
{
|
{
|
||||||
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 54 KiB |
@ -1,5 +1,5 @@
|
|||||||
#include "AnalyticsWizardPage.h"
|
#include "AnalyticsWizardPage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QTextBrowser>
|
#include <QTextBrowser>
|
||||||
@ -33,8 +33,8 @@ AnalyticsWizardPage::~AnalyticsWizardPage()
|
|||||||
|
|
||||||
bool AnalyticsWizardPage::validatePage()
|
bool AnalyticsWizardPage::validatePage()
|
||||||
{
|
{
|
||||||
auto settings = MMC->settings();
|
auto settings = LAUNCHER->settings();
|
||||||
auto analytics = MMC->analytics();
|
auto analytics = LAUNCHER->analytics();
|
||||||
auto status = checkBox->isChecked();
|
auto status = checkBox->isChecked();
|
||||||
settings->set("AnalyticsSeen", analytics->version());
|
settings->set("AnalyticsSeen", analytics->version());
|
||||||
settings->set("Analytics", status);
|
settings->set("Analytics", status);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "JavaWizardPage.h"
|
#include "JavaWizardPage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QGroupBox>
|
#include <QGroupBox>
|
||||||
@ -55,7 +55,7 @@ bool JavaWizardPage::wantsRefreshButton()
|
|||||||
|
|
||||||
bool JavaWizardPage::validatePage()
|
bool JavaWizardPage::validatePage()
|
||||||
{
|
{
|
||||||
auto settings = MMC->settings();
|
auto settings = LAUNCHER->settings();
|
||||||
auto result = m_java_widget->validate();
|
auto result = m_java_widget->validate();
|
||||||
switch(result)
|
switch(result)
|
||||||
{
|
{
|
||||||
@ -71,7 +71,7 @@ bool JavaWizardPage::validatePage()
|
|||||||
case JavaSettingsWidget::ValidationStatus::JavaBad:
|
case JavaSettingsWidget::ValidationStatus::JavaBad:
|
||||||
{
|
{
|
||||||
// Memory
|
// Memory
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
s->set("MinMemAlloc", m_java_widget->minHeapSize());
|
s->set("MinMemAlloc", m_java_widget->minHeapSize());
|
||||||
s->set("MaxMemAlloc", m_java_widget->maxHeapSize());
|
s->set("MaxMemAlloc", m_java_widget->maxHeapSize());
|
||||||
if (m_java_widget->permGenEnabled())
|
if (m_java_widget->permGenEnabled())
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "LanguageWizardPage.h"
|
#include "LanguageWizardPage.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include <translations/TranslationsModel.h>
|
#include <translations/TranslationsModel.h>
|
||||||
|
|
||||||
#include "widgets/LanguageSelectionWidget.h"
|
#include "widgets/LanguageSelectionWidget.h"
|
||||||
@ -28,13 +28,13 @@ bool LanguageWizardPage::wantsRefreshButton()
|
|||||||
|
|
||||||
void LanguageWizardPage::refresh()
|
void LanguageWizardPage::refresh()
|
||||||
{
|
{
|
||||||
auto translations = MMC->translations();
|
auto translations = LAUNCHER->translations();
|
||||||
translations->downloadIndex();
|
translations->downloadIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LanguageWizardPage::validatePage()
|
bool LanguageWizardPage::validatePage()
|
||||||
{
|
{
|
||||||
auto settings = MMC->settings();
|
auto settings = LAUNCHER->settings();
|
||||||
QString key = mainWidget->getSelectedLanguageKey();
|
QString key = mainWidget->getSelectedLanguageKey();
|
||||||
settings->set("Language", key);
|
settings->set("Language", key);
|
||||||
return true;
|
return true;
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
#include "AnalyticsWizardPage.h"
|
#include "AnalyticsWizardPage.h"
|
||||||
|
|
||||||
#include "translations/TranslationsModel.h"
|
#include "translations/TranslationsModel.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include <FileSystem.h>
|
#include <FileSystem.h>
|
||||||
#include <ganalytics.h>
|
#include <ganalytics.h>
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include "rainbow.h"
|
#include "rainbow.h"
|
||||||
#include <QStyleFactory>
|
#include <QStyleFactory>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
|
|
||||||
void ITheme::apply(bool)
|
void ITheme::apply(bool)
|
||||||
{
|
{
|
||||||
@ -13,11 +13,11 @@ void ITheme::apply(bool)
|
|||||||
}
|
}
|
||||||
if(hasStyleSheet())
|
if(hasStyleSheet())
|
||||||
{
|
{
|
||||||
MMC->setStyleSheet(appStyleSheet());
|
LAUNCHER->setStyleSheet(appStyleSheet());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MMC->setStyleSheet(QString());
|
LAUNCHER->setStyleSheet(QString());
|
||||||
}
|
}
|
||||||
QDir::setSearchPaths("theme", searchPaths());
|
QDir::setSearchPaths("theme", searchPaths());
|
||||||
}
|
}
|
||||||
|
@ -182,7 +182,7 @@ void readIndex(const QString & path, QMap<QString, Language>& languages)
|
|||||||
auto toplevel_doc = Json::requireDocument(data);
|
auto toplevel_doc = Json::requireDocument(data);
|
||||||
auto doc = Json::requireObject(toplevel_doc);
|
auto doc = Json::requireObject(toplevel_doc);
|
||||||
auto file_type = Json::requireString(doc, "file_type");
|
auto file_type = Json::requireString(doc, "file_type");
|
||||||
if(file_type != "MMC-TRANSLATION-INDEX")
|
if(file_type != "LAUNCHER-TRANSLATION-INDEX")
|
||||||
{
|
{
|
||||||
qCritical() << "Translations Download Failed: index file is of unknown file type" << file_type;
|
qCritical() << "Translations Download Failed: index file is of unknown file type" << file_type;
|
||||||
return;
|
return;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "JavaSettingsWidget.h"
|
#include "JavaSettingsWidget.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
|
|
||||||
#include <java/JavaInstall.h>
|
#include <java/JavaInstall.h>
|
||||||
#include <dialogs/CustomMessageBox.h>
|
#include <dialogs/CustomMessageBox.h>
|
||||||
@ -21,9 +21,9 @@ JavaSettingsWidget::JavaSettingsWidget(QWidget* parent) : QWidget(parent)
|
|||||||
{
|
{
|
||||||
m_availableMemory = Sys::getSystemRam() / Sys::mebibyte;
|
m_availableMemory = Sys::getSystemRam() / Sys::mebibyte;
|
||||||
|
|
||||||
goodIcon = MMC->getThemedIcon("status-good");
|
goodIcon = LAUNCHER->getThemedIcon("status-good");
|
||||||
yellowIcon = MMC->getThemedIcon("status-yellow");
|
yellowIcon = LAUNCHER->getThemedIcon("status-yellow");
|
||||||
badIcon = MMC->getThemedIcon("status-bad");
|
badIcon = LAUNCHER->getThemedIcon("status-bad");
|
||||||
setupUi();
|
setupUi();
|
||||||
|
|
||||||
connect(m_minMemSpinBox, SIGNAL(valueChanged(int)), this, SLOT(memoryValueChanged(int)));
|
connect(m_minMemSpinBox, SIGNAL(valueChanged(int)), this, SLOT(memoryValueChanged(int)));
|
||||||
@ -115,9 +115,9 @@ void JavaSettingsWidget::setupUi()
|
|||||||
|
|
||||||
void JavaSettingsWidget::initialize()
|
void JavaSettingsWidget::initialize()
|
||||||
{
|
{
|
||||||
m_versionWidget->initialize(MMC->javalist().get());
|
m_versionWidget->initialize(LAUNCHER->javalist().get());
|
||||||
m_versionWidget->setResizeOn(2);
|
m_versionWidget->setResizeOn(2);
|
||||||
auto s = MMC->settings();
|
auto s = LAUNCHER->settings();
|
||||||
// Memory
|
// Memory
|
||||||
observedMinMemory = s->get("MinMemAlloc").toInt();
|
observedMinMemory = s->get("MinMemAlloc").toInt();
|
||||||
observedMaxMemory = s->get("MaxMemAlloc").toInt();
|
observedMaxMemory = s->get("MaxMemAlloc").toInt();
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include <QTreeView>
|
#include <QTreeView>
|
||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "translations/TranslationsModel.h"
|
#include "translations/TranslationsModel.h"
|
||||||
|
|
||||||
LanguageSelectionWidget::LanguageSelectionWidget(QWidget *parent) :
|
LanguageSelectionWidget::LanguageSelectionWidget(QWidget *parent) :
|
||||||
@ -29,7 +29,7 @@ LanguageSelectionWidget::LanguageSelectionWidget(QWidget *parent) :
|
|||||||
helpUsLabel->setWordWrap(true);
|
helpUsLabel->setWordWrap(true);
|
||||||
verticalLayout->addWidget(helpUsLabel);
|
verticalLayout->addWidget(helpUsLabel);
|
||||||
|
|
||||||
auto translations = MMC->translations();
|
auto translations = LAUNCHER->translations();
|
||||||
auto index = translations->selectedIndex();
|
auto index = translations->selectedIndex();
|
||||||
languageView->setModel(translations.get());
|
languageView->setModel(translations.get());
|
||||||
languageView->setCurrentIndex(index);
|
languageView->setCurrentIndex(index);
|
||||||
@ -41,7 +41,7 @@ LanguageSelectionWidget::LanguageSelectionWidget(QWidget *parent) :
|
|||||||
|
|
||||||
QString LanguageSelectionWidget::getSelectedLanguageKey() const
|
QString LanguageSelectionWidget::getSelectedLanguageKey() const
|
||||||
{
|
{
|
||||||
auto translations = MMC->translations();
|
auto translations = LAUNCHER->translations();
|
||||||
return translations->data(languageView->currentIndex(), Qt::UserRole).toString();
|
return translations->data(languageView->currentIndex(), Qt::UserRole).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ void LanguageSelectionWidget::languageRowChanged(const QModelIndex& current, con
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto translations = MMC->translations();
|
auto translations = LAUNCHER->translations();
|
||||||
QString key = translations->data(current, Qt::UserRole).toString();
|
QString key = translations->data(current, Qt::UserRole).toString();
|
||||||
translations->selectLanguage(key);
|
translations->selectLanguage(key);
|
||||||
translations->updateLanguage(key);
|
translations->updateLanguage(key);
|
||||||
|
@ -26,11 +26,11 @@
|
|||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
|
|
||||||
#include "MultiMC.h"
|
#include "Launcher.h"
|
||||||
#include "settings/SettingsObject.h"
|
#include "settings/SettingsObject.h"
|
||||||
#include "widgets/IconLabel.h"
|
#include "widgets/IconLabel.h"
|
||||||
#include "PageContainer_p.h"
|
#include "PageContainer_p.h"
|
||||||
#include <MultiMC.h>
|
#include <Launcher.h>
|
||||||
#include <DesktopServices.h>
|
#include <DesktopServices.h>
|
||||||
|
|
||||||
class PageEntryFilterModel : public QSortFilterProxyModel
|
class PageEntryFilterModel : public QSortFilterProxyModel
|
||||||
@ -139,12 +139,12 @@ void PageContainer::createUI()
|
|||||||
m_header->setFont(headerLabelFont);
|
m_header->setFont(headerLabelFont);
|
||||||
|
|
||||||
QHBoxLayout *headerHLayout = new QHBoxLayout;
|
QHBoxLayout *headerHLayout = new QHBoxLayout;
|
||||||
const int leftMargin = MMC->style()->pixelMetric(QStyle::PM_LayoutLeftMargin);
|
const int leftMargin = LAUNCHER->style()->pixelMetric(QStyle::PM_LayoutLeftMargin);
|
||||||
headerHLayout->addSpacerItem(new QSpacerItem(leftMargin, 0, QSizePolicy::Fixed, QSizePolicy::Ignored));
|
headerHLayout->addSpacerItem(new QSpacerItem(leftMargin, 0, QSizePolicy::Fixed, QSizePolicy::Ignored));
|
||||||
headerHLayout->addWidget(m_header);
|
headerHLayout->addWidget(m_header);
|
||||||
headerHLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored));
|
headerHLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored));
|
||||||
headerHLayout->addWidget(m_iconHeader);
|
headerHLayout->addWidget(m_iconHeader);
|
||||||
const int rightMargin = MMC->style()->pixelMetric(QStyle::PM_LayoutRightMargin);
|
const int rightMargin = LAUNCHER->style()->pixelMetric(QStyle::PM_LayoutRightMargin);
|
||||||
headerHLayout->addSpacerItem(new QSpacerItem(rightMargin, 0, QSizePolicy::Fixed, QSizePolicy::Ignored));
|
headerHLayout->addSpacerItem(new QSpacerItem(rightMargin, 0, QSizePolicy::Fixed, QSizePolicy::Ignored));
|
||||||
headerHLayout->setContentsMargins(0, 6, 0, 0);
|
headerHLayout->setContentsMargins(0, 6, 0, 0);
|
||||||
|
|
||||||
@ -195,7 +195,7 @@ void PageContainer::showPage(int row)
|
|||||||
{
|
{
|
||||||
m_pageStack->setCurrentIndex(0);
|
m_pageStack->setCurrentIndex(0);
|
||||||
m_header->setText(QString());
|
m_header->setText(QString());
|
||||||
m_iconHeader->setIcon(MMC->getThemedIcon("bug"));
|
m_iconHeader->setIcon(LAUNCHER->getThemedIcon("bug"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user