Simplify implementation by removing some unused code
Only applies to cauldron loader which doesn't exist on Modrinth or CurseForge, and doesn't even make sense for shaders. Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
@@ -22,7 +22,6 @@
|
|||||||
#include "Application.h"
|
#include "Application.h"
|
||||||
|
|
||||||
#include "FileSystem.h"
|
#include "FileSystem.h"
|
||||||
#include "minecraft/mod/ModFolderModel.h"
|
|
||||||
#include "minecraft/mod/ResourceFolderModel.h"
|
#include "minecraft/mod/ResourceFolderModel.h"
|
||||||
|
|
||||||
#include "minecraft/mod/ShaderPackFolderModel.h"
|
#include "minecraft/mod/ShaderPackFolderModel.h"
|
||||||
@@ -33,9 +32,8 @@
|
|||||||
ResourceDownloadTask::ResourceDownloadTask(ModPlatform::IndexedPack::Ptr pack,
|
ResourceDownloadTask::ResourceDownloadTask(ModPlatform::IndexedPack::Ptr pack,
|
||||||
ModPlatform::IndexedVersion version,
|
ModPlatform::IndexedVersion version,
|
||||||
const std::shared_ptr<ResourceFolderModel> packs,
|
const std::shared_ptr<ResourceFolderModel> packs,
|
||||||
bool is_indexed,
|
bool is_indexed)
|
||||||
QString custom_target_folder)
|
: m_pack(std::move(pack)), m_pack_version(std::move(version)), m_pack_model(packs)
|
||||||
: m_pack(std::move(pack)), m_pack_version(std::move(version)), m_pack_model(packs), m_custom_target_folder(custom_target_folder)
|
|
||||||
{
|
{
|
||||||
if (is_indexed) {
|
if (is_indexed) {
|
||||||
m_update_task.reset(new LocalResourceUpdateTask(m_pack_model->indexDir(), *m_pack, m_pack_version));
|
m_update_task.reset(new LocalResourceUpdateTask(m_pack_model->indexDir(), *m_pack, m_pack_version));
|
||||||
@@ -47,19 +45,7 @@ ResourceDownloadTask::ResourceDownloadTask(ModPlatform::IndexedPack::Ptr pack,
|
|||||||
m_filesNetJob.reset(new NetJob(tr("Resource download"), APPLICATION->network()));
|
m_filesNetJob.reset(new NetJob(tr("Resource download"), APPLICATION->network()));
|
||||||
m_filesNetJob->setStatus(tr("Downloading resource:\n%1").arg(m_pack_version.downloadUrl));
|
m_filesNetJob->setStatus(tr("Downloading resource:\n%1").arg(m_pack_version.downloadUrl));
|
||||||
|
|
||||||
QDir dir{ m_pack_model->dir() };
|
auto action = Net::ApiDownload::makeFile(m_pack_version.downloadUrl, m_pack_model->dir().absoluteFilePath(getFilename()));
|
||||||
{
|
|
||||||
// FIXME: Make this more generic. May require adding additional info to IndexedVersion,
|
|
||||||
// or adquiring a reference to the base instance.
|
|
||||||
if (!m_custom_target_folder.isEmpty()) {
|
|
||||||
dir.cdUp();
|
|
||||||
dir.cd(m_custom_target_folder);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
m_targetPath = dir.absoluteFilePath(getFilename());
|
|
||||||
|
|
||||||
auto action = Net::ApiDownload::makeFile(m_pack_version.downloadUrl, m_targetPath);
|
|
||||||
if (!m_pack_version.hash_type.isEmpty() && !m_pack_version.hash.isEmpty()) {
|
if (!m_pack_version.hash_type.isEmpty() && !m_pack_version.hash.isEmpty()) {
|
||||||
switch (Hashing::algorithmFromString(m_pack_version.hash_type)) {
|
switch (Hashing::algorithmFromString(m_pack_version.hash_type)) {
|
||||||
case Hashing::Algorithm::Md4:
|
case Hashing::Algorithm::Md4:
|
||||||
@@ -93,26 +79,24 @@ ResourceDownloadTask::ResourceDownloadTask(ModPlatform::IndexedPack::Ptr pack,
|
|||||||
void ResourceDownloadTask::downloadSucceeded()
|
void ResourceDownloadTask::downloadSucceeded()
|
||||||
{
|
{
|
||||||
m_filesNetJob.reset();
|
m_filesNetJob.reset();
|
||||||
auto name = std::get<0>(to_delete);
|
auto oldName = std::get<0>(to_delete);
|
||||||
auto filename = std::get<1>(to_delete);
|
auto oldFilename = std::get<1>(to_delete);
|
||||||
|
|
||||||
if (name.isEmpty() || filename == m_pack_version.fileName)
|
if (oldName.isEmpty() || oldFilename == m_pack_version.fileName)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_pack_model->uninstallResource(filename, true);
|
m_pack_model->uninstallResource(oldFilename, true);
|
||||||
|
|
||||||
// also rename the shader config file
|
// also rename the shader config file
|
||||||
if (dynamic_cast<ShaderPackFolderModel*>(m_pack_model.get()) != nullptr) {
|
if (dynamic_cast<ShaderPackFolderModel*>(m_pack_model.get()) != nullptr) {
|
||||||
QFileInfo oldConfig(m_pack_model->dir(), filename + ".txt");
|
QFileInfo oldConfig(m_pack_model->dir(), oldFilename + ".txt");
|
||||||
QFileInfo newConfig(m_targetPath + ".txt");
|
QFileInfo newConfig(m_pack_model->dir(), getFilename() + ".txt");
|
||||||
|
|
||||||
if (oldConfig.exists() && !newConfig.exists()) {
|
if (oldConfig.exists() && !newConfig.exists()) {
|
||||||
bool success = FS::move(oldConfig.filePath(), newConfig.filePath());
|
bool success = FS::move(oldConfig.filePath(), newConfig.filePath());
|
||||||
|
|
||||||
if (!success) {
|
if (!success)
|
||||||
emit logWarning(
|
emit logWarning(tr("Failed to rename shader config from '%1' to '%2'").arg(oldConfig.fileName(), newConfig.fileName()));
|
||||||
tr("Failed to rename shader config from '%1' to '%2'").arg(oldConfig.absoluteFilePath(), newConfig.absoluteFilePath()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,10 +33,8 @@ class ResourceDownloadTask : public SequentialTask {
|
|||||||
explicit ResourceDownloadTask(ModPlatform::IndexedPack::Ptr pack,
|
explicit ResourceDownloadTask(ModPlatform::IndexedPack::Ptr pack,
|
||||||
ModPlatform::IndexedVersion version,
|
ModPlatform::IndexedVersion version,
|
||||||
std::shared_ptr<ResourceFolderModel> packs,
|
std::shared_ptr<ResourceFolderModel> packs,
|
||||||
bool is_indexed = true,
|
bool is_indexed = true);
|
||||||
QString custom_target_folder = {});
|
|
||||||
const QString& getFilename() const { return m_pack_version.fileName; }
|
const QString& getFilename() const { return m_pack_version.fileName; }
|
||||||
const QString& getCustomPath() const { return m_custom_target_folder; }
|
|
||||||
const QVariant& getVersionID() const { return m_pack_version.fileId; }
|
const QVariant& getVersionID() const { return m_pack_version.fileId; }
|
||||||
const ModPlatform::IndexedVersion& getVersion() const { return m_pack_version; }
|
const ModPlatform::IndexedVersion& getVersion() const { return m_pack_version; }
|
||||||
const ModPlatform::ResourceProvider& getProvider() const { return m_pack->provider; }
|
const ModPlatform::ResourceProvider& getProvider() const { return m_pack->provider; }
|
||||||
@@ -47,8 +45,6 @@ class ResourceDownloadTask : public SequentialTask {
|
|||||||
ModPlatform::IndexedPack::Ptr m_pack;
|
ModPlatform::IndexedPack::Ptr m_pack;
|
||||||
ModPlatform::IndexedVersion m_pack_version;
|
ModPlatform::IndexedVersion m_pack_version;
|
||||||
const std::shared_ptr<ResourceFolderModel> m_pack_model;
|
const std::shared_ptr<ResourceFolderModel> m_pack_model;
|
||||||
QString m_custom_target_folder;
|
|
||||||
QString m_targetPath;
|
|
||||||
|
|
||||||
NetJob::Ptr m_filesNetJob;
|
NetJob::Ptr m_filesNetJob;
|
||||||
LocalResourceUpdateTask::Ptr m_update_task;
|
LocalResourceUpdateTask::Ptr m_update_task;
|
||||||
|
|||||||
@@ -185,9 +185,8 @@ void ResourceDownloadDialog::confirm()
|
|||||||
});
|
});
|
||||||
for (auto& task : selected) {
|
for (auto& task : selected) {
|
||||||
auto extraInfo = dependencyExtraInfo.value(task->getPack()->addonId.toString());
|
auto extraInfo = dependencyExtraInfo.value(task->getPack()->addonId.toString());
|
||||||
confirm_dialog->appendResource({ task->getName(), task->getFilename(), task->getCustomPath(),
|
confirm_dialog->appendResource({ task->getName(), task->getFilename(), ModPlatform::ProviderCapabilities::name(task->getProvider()),
|
||||||
ModPlatform::ProviderCapabilities::name(task->getProvider()), extraInfo.required_by,
|
extraInfo.required_by, ModPlatform::indexedVersionTypeToString(task->getVersion().version_type),
|
||||||
ModPlatform::indexedVersionTypeToString(task->getVersion().version_type),
|
|
||||||
!extraInfo.maybe_installed });
|
!extraInfo.maybe_installed });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,17 +68,6 @@ void ReviewMessageBox::appendResource(ResourceInformation&& info)
|
|||||||
filenameItem->setText(0, tr("Filename: %1").arg(info.filename));
|
filenameItem->setText(0, tr("Filename: %1").arg(info.filename));
|
||||||
filenameItem->setData(0, Qt::UserRole, info.filename);
|
filenameItem->setData(0, Qt::UserRole, info.filename);
|
||||||
|
|
||||||
if (!info.custom_file_path.isEmpty()) {
|
|
||||||
auto customPathItem = new QTreeWidgetItem(itemTop);
|
|
||||||
customPathItem->setText(0, tr("This download will be placed in: %1").arg(info.custom_file_path));
|
|
||||||
customPathItem->setData(0, Qt::UserRole, info.custom_file_path);
|
|
||||||
|
|
||||||
itemTop->setIcon(1, QIcon(QIcon::fromTheme("status-yellow")));
|
|
||||||
itemTop->setToolTip(
|
|
||||||
1,
|
|
||||||
tr("This file will be downloaded to a folder location different from the default, possibly due to its loader requiring it."));
|
|
||||||
}
|
|
||||||
|
|
||||||
auto providerItem = new QTreeWidgetItem(itemTop);
|
auto providerItem = new QTreeWidgetItem(itemTop);
|
||||||
providerItem->setText(0, tr("Provider: %1").arg(info.provider));
|
providerItem->setText(0, tr("Provider: %1").arg(info.provider));
|
||||||
providerItem->setData(0, Qt::UserRole, info.provider);
|
providerItem->setData(0, Qt::UserRole, info.provider);
|
||||||
@@ -137,4 +126,4 @@ void ReviewMessageBox::on_toggleDepsButton_clicked()
|
|||||||
auto state = m_deps_checked ? Qt::Checked : Qt::Unchecked;
|
auto state = m_deps_checked ? Qt::Checked : Qt::Unchecked;
|
||||||
for (auto dep : m_deps)
|
for (auto dep : m_deps)
|
||||||
dep->setCheckState(0, state);
|
dep->setCheckState(0, state);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ class ReviewMessageBox : public QDialog {
|
|||||||
using ResourceInformation = struct res_info {
|
using ResourceInformation = struct res_info {
|
||||||
QString name;
|
QString name;
|
||||||
QString filename;
|
QString filename;
|
||||||
QString custom_file_path{};
|
|
||||||
QString provider;
|
QString provider;
|
||||||
QStringList required_by;
|
QStringList required_by;
|
||||||
QString version_type;
|
QString version_type;
|
||||||
|
|||||||
@@ -472,11 +472,10 @@ void ResourceModel::infoRequestSucceeded(ModPlatform::IndexedPack::Ptr pack, con
|
|||||||
void ResourceModel::addPack(ModPlatform::IndexedPack::Ptr pack,
|
void ResourceModel::addPack(ModPlatform::IndexedPack::Ptr pack,
|
||||||
ModPlatform::IndexedVersion& version,
|
ModPlatform::IndexedVersion& version,
|
||||||
const std::shared_ptr<ResourceFolderModel> packs,
|
const std::shared_ptr<ResourceFolderModel> packs,
|
||||||
bool is_indexed,
|
bool is_indexed)
|
||||||
QString custom_target_folder)
|
|
||||||
{
|
{
|
||||||
version.is_currently_selected = true;
|
version.is_currently_selected = true;
|
||||||
m_selected.append(makeShared<ResourceDownloadTask>(pack, version, packs, is_indexed, custom_target_folder));
|
m_selected.append(makeShared<ResourceDownloadTask>(pack, version, packs, is_indexed));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResourceModel::removePack(const QString& rem)
|
void ResourceModel::removePack(const QString& rem)
|
||||||
|
|||||||
@@ -94,8 +94,7 @@ class ResourceModel : public QAbstractListModel {
|
|||||||
void addPack(ModPlatform::IndexedPack::Ptr pack,
|
void addPack(ModPlatform::IndexedPack::Ptr pack,
|
||||||
ModPlatform::IndexedVersion& version,
|
ModPlatform::IndexedVersion& version,
|
||||||
std::shared_ptr<ResourceFolderModel> packs,
|
std::shared_ptr<ResourceFolderModel> packs,
|
||||||
bool is_indexed = false,
|
bool is_indexed = false);
|
||||||
QString custom_target_folder = {});
|
|
||||||
void removePack(const QString& rem);
|
void removePack(const QString& rem);
|
||||||
QList<DownloadTaskPtr> selectedPacks() { return m_selected; }
|
QList<DownloadTaskPtr> selectedPacks() { return m_selected; }
|
||||||
|
|
||||||
|
|||||||
@@ -47,10 +47,7 @@ void ShaderPackResourcePage::addResourceToPage(ModPlatform::IndexedPack::Ptr pac
|
|||||||
const std::shared_ptr<ResourceFolderModel> base_model)
|
const std::shared_ptr<ResourceFolderModel> base_model)
|
||||||
{
|
{
|
||||||
bool is_indexed = !APPLICATION->settings()->get("ModMetadataDisabled").toBool();
|
bool is_indexed = !APPLICATION->settings()->get("ModMetadataDisabled").toBool();
|
||||||
QString custom_target_folder;
|
m_model->addPack(pack, version, base_model, is_indexed);
|
||||||
if (version.loaders & ModPlatform::Cauldron)
|
|
||||||
custom_target_folder = QStringLiteral("resourcepacks");
|
|
||||||
m_model->addPack(pack, version, base_model, is_indexed, custom_target_folder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace ResourceDownload
|
} // namespace ResourceDownload
|
||||||
|
|||||||
Reference in New Issue
Block a user