NOISSUE Flatten gui and logic libraries into MultiMC
This commit is contained in:
CMakeLists.txt
api
application
launcher
BaseInstaller.cppBaseInstaller.hBaseInstance.cppBaseInstance.hBaseVersion.hBaseVersionList.cppBaseVersionList.hCMakeLists.txtColorCache.cppColorCache.hColumnResizer.cppColumnResizer.hCommandline.cppCommandline.hDefaultVariable.hDesktopServices.cppDesktopServices.hEnv.cppEnv.hException.hExponentialSeries.hFileSystem.cppFileSystem.hFileSystem_test.cppFilter.cppFilter.hGZip.cppGZip.hGZip_test.cppGuiUtil.cppGuiUtil.hHoeDown.hInstanceCopyTask.cppInstanceCopyTask.hInstanceCreationTask.cppInstanceCreationTask.hInstanceImportTask.cppInstanceImportTask.hInstanceList.cppInstanceList.hInstancePageProvider.hInstanceProxyModel.cppInstanceProxyModel.hInstanceTask.cppInstanceTask.hInstanceWindow.cppInstanceWindow.hJavaCommon.cppJavaCommon.hJson.cppJson.hKonamiCode.cppKonamiCode.hLaunchController.cppLaunchController.hLoggedProcess.cppLoggedProcess.hMMCStrings.cppMMCStrings.hMMCZip.cppMMCZip.hMainWindow.cppMainWindow.hMessageLevel.cppMessageLevel.hMultiMC.cppMultiMC.hNullInstance.hProblemProvider.hQObjectPtr.hRWStorage.hRecursiveFileSystemWatcher.cppRecursiveFileSystemWatcher.hSeparatorPrefixTree.hSkinUtils.cppSkinUtils.hUpdateController.cppUpdateController.hUsable.hVersion.cppVersion.hVersionProxyModel.cppVersionProxyModel.hVersion_test.cppWatchLock.h
dialogs
AboutDialog.cppAboutDialog.hAboutDialog.uiCopyInstanceDialog.cppCopyInstanceDialog.hCopyInstanceDialog.uiCustomMessageBox.cppCustomMessageBox.hEditAccountDialog.cppEditAccountDialog.hEditAccountDialog.uiExportInstanceDialog.cppExportInstanceDialog.hExportInstanceDialog.uiIconPickerDialog.cppIconPickerDialog.hIconPickerDialog.uiLoginDialog.cppLoginDialog.hLoginDialog.uiNewComponentDialog.cppNewComponentDialog.hNewComponentDialog.uiNewInstanceDialog.cppNewInstanceDialog.hNewInstanceDialog.uiNotificationDialog.cppNotificationDialog.hNotificationDialog.uiProfileSelectDialog.cppProfileSelectDialog.hProfileSelectDialog.uiProgressDialog.cppProgressDialog.hProgressDialog.uiSkinUploadDialog.cppSkinUploadDialog.hSkinUploadDialog.uiUpdateDialog.cppUpdateDialog.hUpdateDialog.uiVersionSelectDialog.cppVersionSelectDialog.h
groupview
AccessibleGroupView.cppAccessibleGroupView.hAccessibleGroupView_p.hGroupView.cppGroupView.hGroupedProxyModel.cppGroupedProxyModel.hInstanceDelegate.cppInstanceDelegate.hVisualGroup.cppVisualGroup.h
icons
install_prereqs.cmake.injava
JavaChecker.cppJavaChecker.hJavaCheckerJob.cppJavaCheckerJob.hJavaInstall.cppJavaInstall.hJavaInstallList.cppJavaInstallList.hJavaUtils.cppJavaUtils.hJavaVersion.cppJavaVersion.hJavaVersion_test.cpp
launch
launch
main.cppmeta
BaseEntity.cppBaseEntity.hIndex.cppIndex.hIndex_test.cppJsonFormat.cppJsonFormat.hVersion.cppVersion.hVersionList.cppVersionList.h
minecraft
AssetsUtils.cppAssetsUtils.hComponent.cppComponent.hComponentUpdateTask.cppComponentUpdateTask.hComponentUpdateTask_p.hGradleSpecifier.hGradleSpecifier_test.cppLaunchProfile.cppLaunchProfile.hLibrary.cppLibrary.hLibrary_test.cppMinecraftInstance.cppMinecraftInstance.hMinecraftLoadAndCheck.cppMinecraftLoadAndCheck.hMinecraftUpdate.cppMinecraftUpdate.hMojangDownloadInfo.hMojangVersionFormat.cppMojangVersionFormat.hMojangVersionFormat_test.cppOneSixVersionFormat.cppOneSixVersionFormat.hOpSys.cppOpSys.hPackProfile.cppPackProfile.hPackProfile_p.hParseUtils.cppParseUtils.hParseUtils_test.cppProfileUtils.cppProfileUtils.hRule.cppRule.hVersionFile.cppVersionFile.hVersionFilterData.cppVersionFilterData.hWorld.cppWorld.hWorldList.cppWorldList.h
auth-msa
BuildConfig.cpp.inBuildConfig.hCMakeLists.txtcontext.cppcontext.hmain.cppmainwindow.cppmainwindow.hmainwindow.ui
auth
AuthSession.cppAuthSession.hMojangAccount.cppMojangAccount.hMojangAccountList.cppMojangAccountList.hYggdrasilTask.cppYggdrasilTask.h
flows
gameoptions
launch
ClaimAccount.cppClaimAccount.hCreateGameFolders.cppCreateGameFolders.hDirectJavaLaunch.cppDirectJavaLaunch.hExtractNatives.cppExtractNatives.hLauncherPartLaunch.cppLauncherPartLaunch.hMinecraftServerTarget.cppMinecraftServerTarget.hModMinecraftJar.cppModMinecraftJar.hPrintInstanceInfo.cppPrintInstanceInfo.hReconstructAssets.cppReconstructAssets.hScanModFolders.cppScanModFolders.hVerifyJavaInstall.cppVerifyJavaInstall.h
legacy
LegacyInstance.cppLegacyInstance.hLegacyModList.cppLegacyModList.hLegacyUpgradeTask.cppLegacyUpgradeTask.h
mod
LocalModParseTask.cppLocalModParseTask.hMod.cppMod.hModDetails.hModFolderLoadTask.cppModFolderLoadTask.hModFolderModel.cppModFolderModel.hModFolderModel_test.cppResourcePackFolderModel.cppResourcePackFolderModel.hTexturePackFolderModel.cppTexturePackFolderModel.h
services
testdata
1.9-simple.json1.9.jsoncodecwav-20101023.jarlib-native-arch.jsonlib-native.jsonlib-simple.jsontestname-testversion-linux-32.jar
update
modplatform
atlauncher
ATLPackIndex.cppATLPackIndex.hATLPackInstallTask.cppATLPackInstallTask.hATLPackManifest.cppATLPackManifest.h
flame
FileResolvingTask.cppFileResolvingTask.hFlamePackIndex.cppFlamePackIndex.hPackManifest.cppPackManifest.h
legacy_ftb
PackFetchTask.cppPackFetchTask.hPackHelpers.hPackInstallTask.cppPackInstallTask.hPrivatePackManager.cppPrivatePackManager.h
modpacksch
technic
mojang
net
ByteArraySink.hChecksumValidator.hDownload.cppDownload.hFileSink.cppFileSink.hHttpMetaCache.cppHttpMetaCache.hMetaCacheSink.cppMetaCacheSink.hMode.hNetAction.hNetJob.cppNetJob.hPasteUpload.cppPasteUpload.hSink.hValidator.h
news
notifications
package
pagedialog
pages
BasePage.hBasePageContainer.hBasePageProvider.h
global
AccountListPage.cppAccountListPage.hAccountListPage.uiCustomCommandsPage.cppCustomCommandsPage.hExternalToolsPage.cppExternalToolsPage.hExternalToolsPage.uiJavaPage.cppJavaPage.hJavaPage.uiLanguagePage.cppLanguagePage.hMinecraftPage.cppMinecraftPage.hMinecraftPage.uiMultiMCPage.cppMultiMCPage.hMultiMCPage.uiPasteEEPage.cppPasteEEPage.hPasteEEPage.uiProxyPage.cppProxyPage.hProxyPage.ui
instance
GameOptionsPage.cppGameOptionsPage.hGameOptionsPage.uiInstanceSettingsPage.cppInstanceSettingsPage.hInstanceSettingsPage.uiLegacyUpgradePage.cppLegacyUpgradePage.hLegacyUpgradePage.uiLogPage.cppLogPage.hLogPage.uiModFolderPage.cppModFolderPage.hModFolderPage.uiNotesPage.cppNotesPage.hNotesPage.uiOtherLogsPage.cppOtherLogsPage.hOtherLogsPage.uiResourcePackPage.hScreenshotsPage.cppScreenshotsPage.hScreenshotsPage.uiServersPage.cppServersPage.hServersPage.uiTexturePackPage.hVersionPage.cppVersionPage.hVersionPage.uiWorldListPage.cppWorldListPage.hWorldListPage.ui
modplatform
pathmatcher
resources
MultiMC.icnsMultiMC.icoMultiMC.manifest
OSX
OSX.qrcindex.theme
scalable
about.svgaccounts.svgbug.svgcentralmods.svgcheckupdate.svgcopy.svgcoremods.svgexternaltools.svghelp.svginstance-settings.svgjarmods.svgjava.svglanguage.svgloadermods.svglog.svgminecraft.svgmultimc.svgnew.svgnews.svgnotes.svgpatreon.svgproxy.svgquickmods.svgrefresh.svgresourcepacks.svgscreenshots.svgsettings.svgstatus-bad.svgstatus-good.svgstatus-yellow.svgviewfolder.svgworlds.svg
assets
backgrounds
documents
flat
flat.qrcindex.theme
scalable
about.svgaccounts.svgbug.svgcat.svgcentralmods.svgcheckupdate.svgcopy.svgcoremods.svgdiscord.svgexternaltools.svghelp.svginstance-settings.svgjarmods.svgjava.svglanguage.svgloadermods.svglog.svgminecraft.svgmultimc.svgnew.svgnews.svgnotes.svgpackages.svgpatreon.svgproxy.svgquickmods.svgreddit-alien.svgrefresh.svgresourcepacks.svgscreenshot-placeholder.svgscreenshots.svgsettings.svgstar.svgstatus-bad.svgstatus-good.svgstatus-running.svgstatus-yellow.svgviewfolder.svgworlds.svg
iOS
iOS.qrcindex.theme
multimc.rcscalable
about.svgaccounts.svgbug.svgcentralmods.svgcheckupdate.svgcopy.svgcoremods.svgexternaltools.svghelp.svginstance-settings.svgjarmods.svgjava.svglanguage.svgloadermods.svglog.svgminecraft.svgmultimc.svgnew.svgnews.svgnotes.svgpatreon.svgproxy.svgquickmods.svgrefresh.svgresourcepacks.svgscreenshots.svgsettings.svgstatus-bad.svgstatus-good.svgstatus-yellow.svgviewfolder.svgworlds.svg
multimc
128x128
instances
chicken.pngcreeper.pngenderpearl.pngflame.pngftb_glow.pngftb_logo.pnggear.pngherobrine.pnginfinity.pngmagitech.pngmeat.pngnetherstar.pngskeleton.pngsquarecreeper.pngsteve.png
unknown_server.png16x16
about.pngbug.pngcat.pngcentralmods.pngcheckupdate.pngcopy.pngcoremods.pnghelp.pnginstance-settings.pngjarmods.pngloadermods.pnglog.pngminecraft.pngnew.pngnews.pngnoaccount.pngpatreon.pngrefresh.pngresourcepacks.pngscreenshots.pngsettings.pngstar.pngstatus-bad.pngstatus-good.pngstatus-running.pngstatus-yellow.pngviewfolder.pngworlds.png
22x22
about.pngbug.pngcat.pngcentralmods.pngcheckupdate.pngcopy.pnghelp.pnginstance-settings.pngnew.pngnews.pngpatreon.pngrefresh.pngscreenshots.pngsettings.pngstatus-bad.pngstatus-good.pngstatus-running.pngstatus-yellow.pngviewfolder.pngworlds.png
24x24
cat.pngcoremods.pngjarmods.pngloadermods.pnglog.pngminecraft.pngnoaccount.pngpatreon.pngresourcepacks.pngstar.pngstatus-bad.pngstatus-good.pngstatus-running.pngstatus-yellow.png
256x256
32x32
about.pngbug.pngcat.pngcentralmods.pngcheckupdate.pngcopy.pngcoremods.pnghelp.pnginstance-settings.png
instances
brick.pngchicken.pngcreeper.pngdiamond.pngdirt.pngenderpearl.pngflame.pngftb_glow.pngftb_logo.pnggear.pnggold.pnggrass.pngherobrine.pnginfinity.pngiron.pngmagitech.pngmeat.pngnetherstar.pngplanks.pngskeleton.pngsquarecreeper.pngsteve.pngstone.pngtnt.png
jarmods.pngloadermods.pnglog.pngminecraft.pngnew.pngnews.pngnoaccount.pngpatreon.pngrefresh.pngresourcepacks.pngscreenshots.pngsettings.pngstar.pngstatus-bad.pngstatus-good.pngstatus-running.pngstatus-yellow.pngviewfolder.pngworlds.png48x48
about.pngbug.pngcat.pngcentralmods.pngcheckupdate.pngcopy.pnghelp.pnginstance-settings.pnglog.pngminecraft.pngnew.pngnews.pngnoaccount.pngpatreon.pngrefresh.pngscreenshots.pngsettings.pngstar.pngstatus-bad.pngstatus-good.pngstatus-running.pngstatus-yellow.pngviewfolder.pngworlds.png
50x50
instances
64x64
about.pngbug.pngcat.pngcentralmods.pngcheckupdate.pngcopy.pngcoremods.pnghelp.pnginstance-settings.pngjarmods.pngloadermods.pnglog.pngnew.pngnews.pngpatreon.pngrefresh.pngresourcepacks.pngscreenshots.pngsettings.pngstar.pngstatus-bad.pngstatus-good.pngstatus-running.pngstatus-yellow.pngviewfolder.pngworlds.png
8x8
index.thememultimc.qrcscalable
atlauncher-placeholder.pngatlauncher.svgbug.svgcentralmods.svgcheckupdate.svgcustom-commands.svgdiscord.svg
instances
java.svglanguage.svglogo.svgmultimc.svgnew.svgnews.svgproxy.svgreddit-alien.svgscreenshot-placeholder.svgscreenshots.svgstatus-bad.svgstatus-good.svgstatus-running.svgstatus-yellow.svgtechnic.svgviewfolder.svgpe_blue
index.themepe_blue.qrc
scalable
about.svgaccounts.svgbug.svgcentralmods.svgcheckupdate.svgcopy.svgcoremods.svgexternaltools.svghelp.svginstance-settings.svgjarmods.svgjava.svglanguage.svgloadermods.svglog.svgminecraft.svgmultimc.svgnew.svgnews.svgnotes.svgpatreon.svgproxy.svgquickmods.svgrefresh.svgresourcepacks.svgscreenshots.svgsettings.svgstatus-bad.svgstatus-good.svgstatus-yellow.svgviewfolder.svgworlds.svg
pe_colored
index.themepe_colored.qrc
scalable
about.svgaccounts.svgbug.svgcentralmods.svgcheckupdate.svgcopy.svgcoremods.svgexternaltools.svghelp.svginstance-settings.svgjarmods.svgjava.svglanguage.svgloadermods.svglog.svgminecraft.svgmultimc.svgnew.svgnews.svgnotes.svgpatreon.svgproxy.svgquickmods.svgrefresh.svgresourcepacks.svgscreenshots.svgsettings.svgstatus-bad.svgstatus-good.svgstatus-yellow.svgviewfolder.svgworlds.svg
pe_dark
index.themepe_dark.qrc
scalable
about.svgaccounts.svgbug.svgcentralmods.svgcheckupdate.svgcopy.svgcoremods.svgexternaltools.svghelp.svginstance-settings.svgjarmods.svgjava.svglanguage.svgloadermods.svglog.svgminecraft.svgmultimc.svgnew.svgnews.svgnotes.svgpatreon.svgproxy.svgquickmods.svgrefresh.svgresourcepacks.svgscreenshots.svgsettings.svgstatus-bad.svgstatus-good.svgstatus-yellow.svgviewfolder.svgworlds.svg
pe_light
index.themepe_light.qrc
scalable
about.svgaccounts.svgbug.svgcentralmods.svgcheckupdate.svgcopy.svgcoremods.svgexternaltools.svghelp.svginstance-settings.svgjarmods.svgjava.svglanguage.svgloadermods.svglog.svgminecraft.svgmultimc.svgnew.svgnews.svgnotes.svgpatreon.svgproxy.svgquickmods.svgrefresh.svgresourcepacks.svgscreenshots.svgsettings.svgstatus-bad.svgstatus-good.svgstatus-yellow.svgviewfolder.svgworlds.svg
sources
screenshots
settings
INIFile.cppINIFile.hINIFile_test.cppINISettingsObject.cppINISettingsObject.hOverrideSetting.cppOverrideSetting.hPassthroughSetting.cppPassthroughSetting.hSetting.cppSetting.hSettingsObject.cppSettingsObject.h
setupwizard
AnalyticsWizardPage.cppAnalyticsWizardPage.hBaseWizardPage.hJavaWizardPage.cppJavaWizardPage.hLanguageWizardPage.cppLanguageWizardPage.hSetupWizard.cppSetupWizard.h
status
tasks
testdata
themes
BrightTheme.cppBrightTheme.hCustomTheme.cppCustomTheme.hDarkTheme.cppDarkTheme.hFusionTheme.cppFusionTheme.hITheme.cppITheme.hSystemTheme.cppSystemTheme.h
tools
BaseExternalTool.cppBaseExternalTool.hBaseProfiler.cppBaseProfiler.hJProfiler.cppJProfiler.hJVisualVM.cppJVisualVM.hMCEditTool.cppMCEditTool.h
translations
updater
DownloadTask.cppDownloadTask.hDownloadTask_test.cppGoUpdate.cppGoUpdate.hUpdateChecker.cppUpdateChecker.hUpdateChecker_test.cpp
testdata
widgets
Common.cppCommon.hCustomCommands.cppCustomCommands.hCustomCommands.uiDropLabel.cppDropLabel.hFocusLineEdit.cppFocusLineEdit.hIconLabel.cppIconLabel.hInstanceCardWidget.uiJavaSettingsWidget.cppJavaSettingsWidget.hLabeledToolButton.cppLabeledToolButton.hLanguageSelectionWidget.cppLanguageSelectionWidget.hLineSeparator.cppLineSeparator.hLogView.cppLogView.hMCModInfoFrame.cppMCModInfoFrame.hMCModInfoFrame.uiModListView.cppModListView.hPageContainer.cppPageContainer.hPageContainer_p.hProgressWidget.cppProgressWidget.hServerStatus.cppServerStatus.hVersionListView.cppVersionListView.hVersionSelectWidget.cppVersionSelectWidget.hWideBar.cppWideBar.h
121
launcher/java/JavaVersion.cpp
Normal file
121
launcher/java/JavaVersion.cpp
Normal file
@@ -0,0 +1,121 @@
|
||||
#include "JavaVersion.h"
|
||||
#include <MMCStrings.h>
|
||||
|
||||
#include <QRegularExpression>
|
||||
#include <QString>
|
||||
|
||||
JavaVersion & JavaVersion::operator=(const QString & javaVersionString)
|
||||
{
|
||||
m_string = javaVersionString;
|
||||
|
||||
auto getCapturedInteger = [](const QRegularExpressionMatch & match, const QString &what) -> int
|
||||
{
|
||||
auto str = match.captured(what);
|
||||
if(str.isEmpty())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return str.toInt();
|
||||
};
|
||||
|
||||
QRegularExpression pattern;
|
||||
if(javaVersionString.startsWith("1."))
|
||||
{
|
||||
pattern = QRegularExpression ("1[.](?<major>[0-9]+)([.](?<minor>[0-9]+))?(_(?<security>[0-9]+)?)?(-(?<prerelease>[a-zA-Z0-9]+))?");
|
||||
}
|
||||
else
|
||||
{
|
||||
pattern = QRegularExpression("(?<major>[0-9]+)([.](?<minor>[0-9]+))?([.](?<security>[0-9]+))?(-(?<prerelease>[a-zA-Z0-9]+))?");
|
||||
}
|
||||
|
||||
auto match = pattern.match(m_string);
|
||||
m_parseable = match.hasMatch();
|
||||
m_major = getCapturedInteger(match, "major");
|
||||
m_minor = getCapturedInteger(match, "minor");
|
||||
m_security = getCapturedInteger(match, "security");
|
||||
m_prerelease = match.captured("prerelease");
|
||||
return *this;
|
||||
}
|
||||
|
||||
JavaVersion::JavaVersion(const QString &rhs)
|
||||
{
|
||||
operator=(rhs);
|
||||
}
|
||||
|
||||
QString JavaVersion::toString()
|
||||
{
|
||||
return m_string;
|
||||
}
|
||||
|
||||
bool JavaVersion::requiresPermGen()
|
||||
{
|
||||
if(m_parseable)
|
||||
{
|
||||
return m_major < 8;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool JavaVersion::operator<(const JavaVersion &rhs)
|
||||
{
|
||||
if(m_parseable && rhs.m_parseable)
|
||||
{
|
||||
auto major = m_major;
|
||||
auto rmajor = rhs.m_major;
|
||||
|
||||
// HACK: discourage using java 9
|
||||
if(major > 8)
|
||||
major = -major;
|
||||
if(rmajor > 8)
|
||||
rmajor = -rmajor;
|
||||
|
||||
if(major < rmajor)
|
||||
return true;
|
||||
if(major > rmajor)
|
||||
return false;
|
||||
if(m_minor < rhs.m_minor)
|
||||
return true;
|
||||
if(m_minor > rhs.m_minor)
|
||||
return false;
|
||||
if(m_security < rhs.m_security)
|
||||
return true;
|
||||
if(m_security > rhs.m_security)
|
||||
return false;
|
||||
|
||||
// everything else being equal, consider prerelease status
|
||||
bool thisPre = !m_prerelease.isEmpty();
|
||||
bool rhsPre = !rhs.m_prerelease.isEmpty();
|
||||
if(thisPre && !rhsPre)
|
||||
{
|
||||
// this is a prerelease and the other one isn't -> lesser
|
||||
return true;
|
||||
}
|
||||
else if(!thisPre && rhsPre)
|
||||
{
|
||||
// this isn't a prerelease and the other one is -> greater
|
||||
return false;
|
||||
}
|
||||
else if(thisPre && rhsPre)
|
||||
{
|
||||
// both are prereleases - use natural compare...
|
||||
return Strings::naturalCompare(m_prerelease, rhs.m_prerelease, Qt::CaseSensitive) < 0;
|
||||
}
|
||||
// neither is prerelease, so they are the same -> this cannot be less than rhs
|
||||
return false;
|
||||
}
|
||||
else return Strings::naturalCompare(m_string, rhs.m_string, Qt::CaseSensitive) < 0;
|
||||
}
|
||||
|
||||
bool JavaVersion::operator==(const JavaVersion &rhs)
|
||||
{
|
||||
if(m_parseable && rhs.m_parseable)
|
||||
{
|
||||
return m_major == rhs.m_major && m_minor == rhs.m_minor && m_security == rhs.m_security && m_prerelease == rhs.m_prerelease;
|
||||
}
|
||||
return m_string == rhs.m_string;
|
||||
}
|
||||
|
||||
bool JavaVersion::operator>(const JavaVersion &rhs)
|
||||
{
|
||||
return (!operator<(rhs)) && (!operator==(rhs));
|
||||
}
|
Reference in New Issue
Block a user