Moving files around

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
Trial97
2024-02-02 15:51:32 +02:00
parent 6c5bb3817b
commit 3c58fb0677
25 changed files with 254 additions and 224 deletions

View File

@ -108,7 +108,7 @@ QVariant JavaInstallList::data(const QModelIndex& index, int role) const
return version->recommended;
case PathRole:
return version->path;
case ArchitectureRole:
case CPUArchitectureRole:
return version->arch;
default:
return QVariant();
@ -117,7 +117,7 @@ QVariant JavaInstallList::data(const QModelIndex& index, int role) const
BaseVersionList::RoleList JavaInstallList::providesRoles() const
{
return { VersionPointerRole, VersionIdRole, VersionRole, RecommendedRole, PathRole, ArchitectureRole };
return { VersionPointerRole, VersionIdRole, VersionRole, RecommendedRole, PathRole, CPUArchitectureRole };
}
void JavaInstallList::updateListData(QList<BaseVersion::Ptr> versions)

View File

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "java/JavaRuntime.h"
#include "java/JavaMetadata.h"
#include <memory>
@ -25,7 +25,7 @@
#include "java/JavaVersion.h"
#include "minecraft/ParseUtils.h"
namespace JavaRuntime {
namespace Java {
DownloadType parseDownloadType(QString javaDownload)
{
@ -44,9 +44,9 @@ QString downloadTypeToString(DownloadType javaDownload)
}
return "";
}
MetaPtr parseJavaMeta(const QJsonObject& in)
MetadataPtr parseJavaMeta(const QJsonObject& in)
{
auto meta = std::make_shared<Meta>();
auto meta = std::make_shared<Metadata>();
meta->m_name = Json::ensureString(in, "name", "");
meta->vendor = Json::ensureString(in, "vendor", "");
@ -74,7 +74,7 @@ MetaPtr parseJavaMeta(const QJsonObject& in)
return meta;
}
bool Meta::operator<(const Meta& rhs)
bool Metadata::operator<(const Metadata& rhs)
{
auto id = version;
if (id < rhs.version) {
@ -86,32 +86,32 @@ bool Meta::operator<(const Meta& rhs)
return StringUtils::naturalCompare(m_name, rhs.m_name, Qt::CaseInsensitive) < 0;
}
bool Meta::operator==(const Meta& rhs)
bool Metadata::operator==(const Metadata& rhs)
{
return version == rhs.version && m_name == rhs.m_name;
}
bool Meta::operator>(const Meta& rhs)
bool Metadata::operator>(const Metadata& rhs)
{
return (!operator<(rhs)) && (!operator==(rhs));
}
bool Meta::operator<(BaseVersion& a)
bool Metadata::operator<(BaseVersion& a)
{
try {
return operator<(dynamic_cast<Meta&>(a));
return operator<(dynamic_cast<Metadata&>(a));
} catch (const std::bad_cast& e) {
return BaseVersion::operator<(a);
}
}
bool Meta::operator>(BaseVersion& a)
bool Metadata::operator>(BaseVersion& a)
{
try {
return operator>(dynamic_cast<Meta&>(a));
return operator>(dynamic_cast<Metadata&>(a));
} catch (const std::bad_cast& e) {
return BaseVersion::operator>(a);
}
}
} // namespace JavaRuntime
} // namespace Java

View File

@ -26,11 +26,11 @@
#include "BaseVersion.h"
#include "java/JavaVersion.h"
namespace JavaRuntime {
namespace Java {
enum class DownloadType { Manifest, Archive };
class Meta : public BaseVersion {
class Metadata : public BaseVersion {
public:
virtual QString descriptor() override { return version.toString(); }
@ -40,9 +40,9 @@ class Meta : public BaseVersion {
virtual bool operator<(BaseVersion& a) override;
virtual bool operator>(BaseVersion& a) override;
bool operator<(const Meta& rhs);
bool operator==(const Meta& rhs);
bool operator>(const Meta& rhs);
bool operator<(const Metadata& rhs);
bool operator==(const Metadata& rhs);
bool operator>(const Metadata& rhs);
QString m_name;
QString vendor;
@ -55,10 +55,10 @@ class Meta : public BaseVersion {
QString packageType;
JavaVersion version;
};
using MetaPtr = std::shared_ptr<Meta>;
using MetadataPtr = std::shared_ptr<Metadata>;
DownloadType parseDownloadType(QString javaDownload);
QString downloadTypeToString(DownloadType javaDownload);
MetaPtr parseJavaMeta(const QJsonObject& libObj);
MetadataPtr parseJavaMeta(const QJsonObject& libObj);
} // namespace JavaRuntime
} // namespace Java

View File

@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "java/download/ArchiveJavaDownloader.h"
#include "java/download/ArchiveDownloadTask.h"
#include <quazip.h>
#include <memory>
#include "MMCZip.h"
@ -25,11 +25,12 @@
#include "net/NetJob.h"
#include "tasks/Task.h"
ArchiveJavaDownloader::ArchiveJavaDownloader(QUrl url, QString final_path, QString checksumType, QString checksumHash)
namespace Java {
ArchiveDownloadTask::ArchiveDownloadTask(QUrl url, QString final_path, QString checksumType, QString checksumHash)
: m_url(url), m_final_path(final_path), m_checksum_type(checksumType), m_checksum_hash(checksumHash)
{}
void ArchiveJavaDownloader::executeTask()
void ArchiveDownloadTask::executeTask()
{
// JRE found ! download the zip
setStatus(tr("Downloading Java"));
@ -49,8 +50,8 @@ void ArchiveJavaDownloader::executeTask()
auto fullPath = entry->getFullPath();
connect(download.get(), &NetJob::finished, [download, this] { disconnect(this, &Task::aborted, download.get(), &NetJob::abort); });
connect(download.get(), &NetJob::progress, this, &ArchiveJavaDownloader::progress);
connect(download.get(), &NetJob::failed, this, &ArchiveJavaDownloader::emitFailed);
connect(download.get(), &NetJob::progress, this, &ArchiveDownloadTask::progress);
connect(download.get(), &NetJob::failed, this, &ArchiveDownloadTask::emitFailed);
connect(this, &Task::aborted, download.get(), &NetJob::abort);
connect(download.get(), &NetJob::succeeded, [this, fullPath] {
// This should do all of the extracting and creating folders
@ -59,7 +60,7 @@ void ArchiveJavaDownloader::executeTask()
download->start();
}
void ArchiveJavaDownloader::extractJava(QString input)
void ArchiveDownloadTask::extractJava(QString input)
{
setStatus(tr("Extracting java"));
auto zip = std::make_shared<QuaZip>(input);
@ -79,14 +80,14 @@ void ArchiveJavaDownloader::extractJava(QString input)
connect(this, &Task::aborted, zipTask.get(), &Task::abort);
connect(zipTask.get(), &Task::finished, [zipTask, this] { disconnect(this, &Task::aborted, zipTask.get(), &Task::abort); });
connect(zipTask.get(), &Task::succeeded, this, &ArchiveJavaDownloader::emitSucceeded);
connect(zipTask.get(), &Task::aborted, this, &ArchiveJavaDownloader::emitAborted);
connect(zipTask.get(), &Task::succeeded, this, &ArchiveDownloadTask::emitSucceeded);
connect(zipTask.get(), &Task::aborted, this, &ArchiveDownloadTask::emitAborted);
connect(zipTask.get(), &Task::failed, this, [this, progressStep](QString reason) {
progressStep->state = TaskStepState::Failed;
stepProgress(*progressStep);
emitFailed(reason);
});
connect(zipTask.get(), &Task::stepProgress, this, &ArchiveJavaDownloader::propagateStepProgress);
connect(zipTask.get(), &Task::stepProgress, this, &ArchiveDownloadTask::propagateStepProgress);
connect(zipTask.get(), &Task::progress, this, [this, progressStep](qint64 current, qint64 total) {
progressStep->update(current, total);
@ -97,4 +98,5 @@ void ArchiveJavaDownloader::extractJava(QString input)
stepProgress(*progressStep);
});
zipTask->start();
}
}
} // namespace Java

View File

@ -21,11 +21,12 @@
#include <QUrl>
#include "tasks/Task.h"
class ArchiveJavaDownloader : public Task {
namespace Java {
class ArchiveDownloadTask : public Task {
Q_OBJECT
public:
ArchiveJavaDownloader(QUrl url, QString final_path, QString checksumType = "", QString checksumHash = "");
virtual ~ArchiveJavaDownloader() = default;
ArchiveDownloadTask(QUrl url, QString final_path, QString checksumType = "", QString checksumHash = "");
virtual ~ArchiveDownloadTask() = default;
[[nodiscard]] bool canAbort() const override { return true; }
void executeTask() override;
@ -38,6 +39,5 @@ class ArchiveJavaDownloader : public Task {
QString m_final_path;
QString m_checksum_type;
QString m_checksum_hash;
Task::Ptr m_current_task;
};
};
} // namespace Java

View File

@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "java/download/ManifestJavaDownloader.h"
#include "java/download/ManifestDownloadTask.h"
#include "Application.h"
#include "FileSystem.h"
@ -30,11 +30,12 @@ struct File {
bool isExec;
};
ManifestJavaDownloader::ManifestJavaDownloader(QUrl url, QString final_path, QString checksumType, QString checksumHash)
namespace Java {
ManifestDownloadTask::ManifestDownloadTask(QUrl url, QString final_path, QString checksumType, QString checksumHash)
: m_url(url), m_final_path(final_path), m_checksum_type(checksumType), m_checksum_hash(checksumHash)
{}
void ManifestJavaDownloader::executeTask()
void ManifestDownloadTask::executeTask()
{
setStatus(tr("Downloading Java"));
auto download = makeShared<NetJob>(QString("JRE::DownloadJava"), APPLICATION->network());
@ -51,8 +52,8 @@ void ManifestJavaDownloader::executeTask()
download->addNetAction(action);
connect(download.get(), &NetJob::finished, [download, this] { disconnect(this, &Task::aborted, download.get(), &NetJob::abort); });
connect(download.get(), &NetJob::progress, this, &ManifestJavaDownloader::progress);
connect(download.get(), &NetJob::failed, this, &ManifestJavaDownloader::emitFailed);
connect(download.get(), &NetJob::progress, this, &ManifestDownloadTask::progress);
connect(download.get(), &NetJob::failed, this, &ManifestDownloadTask::emitFailed);
connect(this, &Task::aborted, download.get(), &NetJob::abort);
connect(download.get(), &NetJob::succeeded, [files, this] {
@ -69,7 +70,7 @@ void ManifestJavaDownloader::executeTask()
download->start();
}
void ManifestJavaDownloader::downloadJava(const QJsonDocument& doc)
void ManifestDownloadTask::downloadJava(const QJsonDocument& doc)
{
// valid json doc, begin making jre spot
FS::ensureFolderPathExists(m_final_path);
@ -116,10 +117,11 @@ void ManifestJavaDownloader::downloadJava(const QJsonDocument& doc)
disconnect(this, &Task::aborted, elementDownload, &NetJob::abort);
elementDownload->deleteLater();
});
connect(elementDownload, &NetJob::progress, this, &ManifestJavaDownloader::progress);
connect(elementDownload, &NetJob::failed, this, &ManifestJavaDownloader::emitFailed);
connect(elementDownload, &NetJob::progress, this, &ManifestDownloadTask::progress);
connect(elementDownload, &NetJob::failed, this, &ManifestDownloadTask::emitFailed);
connect(this, &Task::aborted, elementDownload, &NetJob::abort);
connect(elementDownload, &NetJob::succeeded, [this] { emitSucceeded(); });
elementDownload->start();
}
}
} // namespace Java

View File

@ -21,11 +21,13 @@
#include <QUrl>
#include "tasks/Task.h"
class ManifestJavaDownloader : public Task {
namespace Java {
class ManifestDownloadTask : public Task {
Q_OBJECT
public:
ManifestJavaDownloader(QUrl url, QString final_path, QString checksumType = "", QString checksumHash = "");
virtual ~ManifestJavaDownloader() = default;
ManifestDownloadTask(QUrl url, QString final_path, QString checksumType = "", QString checksumHash = "");
virtual ~ManifestDownloadTask() = default;
[[nodiscard]] bool canAbort() const override { return true; }
void executeTask() override;
@ -38,6 +40,5 @@ class ManifestJavaDownloader : public Task {
QString m_final_path;
QString m_checksum_type;
QString m_checksum_hash;
Task::Ptr m_current_task;
};
};
} // namespace Java