preparing java autodownload

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
Trial97 2024-02-03 00:11:05 +02:00
parent 0384e652fb
commit 82b15268bc
No known key found for this signature in database
GPG Key ID: 55EF5DA53DB36318
5 changed files with 22 additions and 8 deletions

View File

@ -30,11 +30,11 @@ class JavaVersion {
QString toString() const;
int major() { return m_major; }
int minor() { return m_minor; }
int security() { return m_security; }
QString build() { return m_prerelease; }
QString name() { return m_name; }
int major() const { return m_major; }
int minor() const { return m_minor; }
int security() const { return m_security; }
QString build() const { return m_prerelease; }
QString name() const { return m_name; }
private:
QString m_string;

View File

@ -164,6 +164,10 @@ void LaunchProfile::applyCompatibleJavaMajors(QList<int>& javaMajor)
{
m_compatibleJavaMajors.append(javaMajor);
}
void LaunchProfile::applyCompatibleJavaName(QString javaName)
{
m_compatibleJavaName = javaName;
}
void LaunchProfile::applyLibrary(LibraryPtr library, const RuntimeContext& runtimeContext)
{
@ -334,6 +338,11 @@ const QList<int>& LaunchProfile::getCompatibleJavaMajors() const
return m_compatibleJavaMajors;
}
const QString LaunchProfile::getCompatibleJavaName() const
{
return m_compatibleJavaName;
}
void LaunchProfile::getLibraryFiles(const RuntimeContext& runtimeContext,
QStringList& jars,
QStringList& nativeJars,

View File

@ -59,6 +59,7 @@ class LaunchProfile : public ProblemProvider {
void applyMavenFile(LibraryPtr library, const RuntimeContext& runtimeContext);
void applyAgent(AgentPtr agent, const RuntimeContext& runtimeContext);
void applyCompatibleJavaMajors(QList<int>& javaMajor);
void applyCompatibleJavaName(QString javaName);
void applyMainJar(LibraryPtr jar);
void applyProblemSeverity(ProblemSeverity severity);
/// clear the profile
@ -80,6 +81,7 @@ class LaunchProfile : public ProblemProvider {
const QList<LibraryPtr>& getMavenFiles() const;
const QList<AgentPtr>& getAgents() const;
const QList<int>& getCompatibleJavaMajors() const;
const QString getCompatibleJavaName() const;
const LibraryPtr getMainJar() const;
void getLibraryFiles(const RuntimeContext& runtimeContext,
QStringList& jars,
@ -150,5 +152,7 @@ class LaunchProfile : public ProblemProvider {
/// compatible java major versions
QList<int> m_compatibleJavaMajors;
QString m_compatibleJavaName;
ProblemSeverity m_problemSeverity = ProblemSeverity::None;
};

View File

@ -73,6 +73,7 @@ void VersionFile::applyTo(LaunchProfile* profile, const RuntimeContext& runtimeC
profile->applyMods(mods);
profile->applyTraits(traits);
profile->applyCompatibleJavaMajors(compatibleJavaMajors);
profile->applyCompatibleJavaName(compatibleJavaName);
for (auto library : libraries) {
profile->applyLibrary(library, runtimeContext);

View File

@ -45,9 +45,9 @@ namespace Java {
Downloader::Downloader(QWidget* parent) : QDialog(parent), ui(new Ui::JavaDownloader)
{
ui->setupUi(this);
auto versionList = new Meta::VersionList("net.minecraft.java", this);
auto versionList = APPLICATION->metadataIndex()->get("net.minecraft.java");
versionList->setProvidedRoles({ BaseVersionList::VersionRole, BaseVersionList::RecommendedRole, BaseVersionList::VersionPointerRole });
ui->majorVersionSelect->initialize(versionList);
ui->majorVersionSelect->initialize(versionList.get());
ui->majorVersionSelect->selectCurrent();
ui->majorVersionSelect->setEmptyString(tr("No java versions are currently available in the meta"));
ui->majorVersionSelect->setEmptyErrorString(tr("Couldn't load or download the java version lists!"));
@ -85,7 +85,7 @@ void Downloader::accept()
return;
}
Task::Ptr task;
auto final_path = FS::PathCombine(APPLICATION->dataRoot(), "java", meta->m_name);
auto final_path = FS::PathCombine(APPLICATION->dataRoot(), "java", meta->vendor, meta->m_name);
switch (meta->downloadType) {
case Java::DownloadType::Manifest:
task = makeShared<ManifestDownloadTask>(meta->url, final_path, meta->checksumType, meta->checksumHash);