remove extra ResourceDownloadDialogs

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
Trial97
2026-02-07 00:20:43 +02:00
parent 97f9da8336
commit 68c77a586a
23 changed files with 229 additions and 322 deletions

View File

@@ -29,9 +29,6 @@
#include "minecraft/PackProfile.h"
#include "minecraft/mod/ModFolderModel.h"
#include "minecraft/mod/ResourcePackFolderModel.h"
#include "minecraft/mod/ShaderPackFolderModel.h"
#include "minecraft/mod/TexturePackFolderModel.h"
#include "minecraft/mod/tasks/GetModDependenciesTask.h"
#include "modplatform/ModIndex.h"
@@ -50,12 +47,20 @@
namespace ResourceDownload {
ResourceDownloadDialog::ResourceDownloadDialog(QWidget* parent, ResourceFolderModel* baseModel, bool suppressInitialSearch)
ResourceDownloadDialog::ResourceDownloadDialog(QWidget* parent,
ResourceFolderModel* baseModel,
BaseInstance* instance,
QString resourcesString,
QString geometrySaveKey,
bool suppressInitialSearch)
: QDialog(parent)
, m_base_model(baseModel)
, m_buttons(QDialogButtonBox::Help | QDialogButtonBox::Ok | QDialogButtonBox::Cancel)
, m_vertical_layout(this)
, m_suppressInitialSearch(suppressInitialSearch)
, m_instance(instance)
, m_resourcesString(std::move(resourcesString))
, m_geometrySaveKey(std::move(geometrySaveKey))
{
setObjectName(QStringLiteral("ResourceDownloadDialog"));
@@ -85,6 +90,8 @@ ResourceDownloadDialog::ResourceDownloadDialog(QWidget* parent, ResourceFolderMo
helpButton->setAutoDefault(false);
setWindowModality(Qt::WindowModal);
setWindowTitle(dialogTitle());
}
void ResourceDownloadDialog::accept()
@@ -289,147 +296,6 @@ void ResourceDownloadDialog::selectedPageChanged(BasePage* previous, BasePage* s
result->setSearchTerm(prevPage->getSearchTerm());
}
ModDownloadDialog::ModDownloadDialog(QWidget* parent, ModFolderModel* mods, BaseInstance* instance, bool suppressInitialSearch)
: ResourceDownloadDialog(parent, mods, suppressInitialSearch), m_instance(instance)
{
setWindowTitle(dialogTitle());
initializeContainer();
connectButtons();
if (!geometrySaveKey().isEmpty()) {
restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toString().toUtf8()));
}
}
QList<BasePage*> ModDownloadDialog::getPages()
{
QList<BasePage*> pages;
auto loaders = static_cast<MinecraftInstance*>(m_instance)->getPackProfile()->getSupportedModLoaders().value_or(ModPlatform::ModLoaderTypes(0));
if (ModrinthAPI::validateModLoaders(loaders)) {
auto* page = Modrinth::createModPage(this, *m_instance);
page->setSuppressInitialSearch(m_suppressInitialSearch);
pages.append(page);
}
if (APPLICATION->capabilities() & Application::SupportsFlame && FlameAPI::validateModLoaders(loaders)) {
auto* page = Flame::createModPage(this, *m_instance);
page->setSuppressInitialSearch(m_suppressInitialSearch);
pages.append(page);
}
return pages;
}
GetModDependenciesTask::Ptr ModDownloadDialog::getModDependenciesTask()
{
if (!APPLICATION->settings()->get("ModDependenciesDisabled").toBool()) { // dependencies
if (auto* model = dynamic_cast<ModFolderModel*>(getBaseModel()); model) {
QList<std::shared_ptr<GetModDependenciesTask::PackDependency>> selectedVers;
for (const auto& selected : getTasks()) {
selectedVers.append(std::make_shared<GetModDependenciesTask::PackDependency>(selected->getPack(), selected->getVersion()));
}
return makeShared<GetModDependenciesTask>(m_instance, model, selectedVers);
}
}
return nullptr;
}
ResourcePackDownloadDialog::ResourcePackDownloadDialog(QWidget* parent,
ResourcePackFolderModel* resourcePacks,
BaseInstance* instance,
bool suppressInitialSearch)
: ResourceDownloadDialog(parent, resourcePacks, suppressInitialSearch), m_instance(instance)
{
setWindowTitle(dialogTitle());
initializeContainer();
connectButtons();
if (!geometrySaveKey().isEmpty()) {
restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toString().toUtf8()));
}
}
QList<BasePage*> ResourcePackDownloadDialog::getPages()
{
QList<BasePage*> pages;
auto* modrinthPage = Modrinth::createResourcePackResourcePage(this, *m_instance);
modrinthPage->setSuppressInitialSearch(m_suppressInitialSearch);
pages.append(modrinthPage);
if (APPLICATION->capabilities() & Application::SupportsFlame) {
auto* flamePage = Flame::createResourcePackResourcePage(this, *m_instance);
flamePage->setSuppressInitialSearch(m_suppressInitialSearch);
pages.append(flamePage);
}
return pages;
}
TexturePackDownloadDialog::TexturePackDownloadDialog(QWidget* parent,
TexturePackFolderModel* resourcePacks,
BaseInstance* instance,
bool suppressInitialSearch)
: ResourceDownloadDialog(parent, resourcePacks, suppressInitialSearch), m_instance(instance)
{
setWindowTitle(dialogTitle());
initializeContainer();
connectButtons();
if (!geometrySaveKey().isEmpty()) {
restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toString().toUtf8()));
}
}
QList<BasePage*> TexturePackDownloadDialog::getPages()
{
QList<BasePage*> pages;
auto* modrinthPage =Modrinth::createTexturePackResourcePage(this, *m_instance);
modrinthPage->setSuppressInitialSearch(m_suppressInitialSearch);
pages.append(modrinthPage);
if (APPLICATION->capabilities() & Application::SupportsFlame) {
auto* flamePage = Flame::createTexturePackResourcePage(this, *m_instance);
flamePage->setSuppressInitialSearch(m_suppressInitialSearch);
pages.append(flamePage);
}
return pages;
}
ShaderPackDownloadDialog::ShaderPackDownloadDialog(QWidget* parent,
ShaderPackFolderModel* shaders,
BaseInstance* instance,
bool suppressInitialSearch)
: ResourceDownloadDialog(parent, shaders, suppressInitialSearch), m_instance(instance)
{
setWindowTitle(dialogTitle());
initializeContainer();
connectButtons();
if (!geometrySaveKey().isEmpty()) {
restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toString().toUtf8()));
}
}
QList<BasePage*> ShaderPackDownloadDialog::getPages()
{
QList<BasePage*> pages;
auto* modrinthPage = Modrinth::createShaderPackResourcePage(this, *m_instance);
modrinthPage->setSuppressInitialSearch(m_suppressInitialSearch);
pages.append(modrinthPage);
if (APPLICATION->capabilities() & Application::SupportsFlame) {
auto* flamePage = Flame::createShaderPackResourcePage(this, *m_instance);
flamePage->setSuppressInitialSearch(m_suppressInitialSearch);
pages.append(flamePage);
}
return pages;
}
void ResourceDownloadDialog::setResourceMetadata(const std::shared_ptr<Metadata::ModStruct>& meta)
{
@@ -449,34 +315,138 @@ void ResourceDownloadDialog::setResourceMetadata(const std::shared_ptr<Metadata:
page->openProject(meta->project_id);
}
DataPackDownloadDialog::DataPackDownloadDialog(QWidget* parent,
DataPackFolderModel* dataPacks,
BaseInstance* instance,
bool suppressInitialSearch)
: ResourceDownloadDialog(parent, dataPacks, suppressInitialSearch), m_instance(instance)
GetModDependenciesTask::Ptr ResourceDownloadDialog::getModDependenciesTask()
{
setWindowTitle(dialogTitle());
if (!APPLICATION->settings()->get("ModDependenciesDisabled").toBool()) { // dependencies
if (auto* model = dynamic_cast<ModFolderModel*>(getBaseModel()); model) {
QList<std::shared_ptr<GetModDependenciesTask::PackDependency>> selectedVers;
for (auto& selected : getTasks()) {
selectedVers.append(std::make_shared<GetModDependenciesTask::PackDependency>(selected->getPack(), selected->getVersion()));
}
return makeShared<GetModDependenciesTask>(m_instance, model, selectedVers);
}
}
return nullptr;
}
ResourceDownloadDialog* ResourceDownloadDialog::createMod(QWidget* parent,
ResourceFolderModel* mods,
BaseInstance* instance,
bool suppressInitialSearch)
{
auto* dialog = new ResourceDownloadDialog(parent, mods, instance, tr("mods"), "ModDownloadGeometry", suppressInitialSearch);
QList<BasePage*> pages;
auto loaders = static_cast<MinecraftInstance*>(instance)->getPackProfile()->getSupportedModLoaders().value_or(ModPlatform::ModLoaderTypes(0));
if (ModrinthAPI::validateModLoaders(loaders)) {
auto* page = Modrinth::createModPage(dialog, *instance);
page->setSuppressInitialSearch(suppressInitialSearch);
pages.append(page);
}
if (APPLICATION->capabilities() & Application::SupportsFlame && FlameAPI::validateModLoaders(loaders)) {
auto* page = Flame::createModPage(dialog, *instance);
page->setSuppressInitialSearch(suppressInitialSearch);
pages.append(page);
}
dialog->initPages(pages);
return dialog;
}
ResourceDownloadDialog* ResourceDownloadDialog::createResourcePack(QWidget* parent,
ResourceFolderModel* mods,
BaseInstance* instance,
bool suppressInitialSearch)
{
auto* dialog = new ResourceDownloadDialog(parent, mods, instance, tr("resource packs"), "RPDownloadGeometry", suppressInitialSearch);
QList<BasePage*> pages;
auto* page = Modrinth::createResourcePackResourcePage(dialog, *instance);
page->setSuppressInitialSearch(suppressInitialSearch);
pages.append(page);
if (APPLICATION->capabilities() & Application::SupportsFlame) {
auto* page = Flame::createResourcePackResourcePage(dialog, *instance);
page->setSuppressInitialSearch(suppressInitialSearch);
pages.append(page);
}
dialog->initPages(pages);
return dialog;
}
ResourceDownloadDialog* ResourceDownloadDialog::createTexturePack(QWidget* parent,
ResourceFolderModel* mods,
BaseInstance* instance,
bool suppressInitialSearch)
{
auto* dialog = new ResourceDownloadDialog(parent, mods, instance, tr("texture packs"), "TPDownloadGeometry", suppressInitialSearch);
QList<BasePage*> pages;
auto* page = Modrinth::createTexturePackResourcePage(dialog, *instance);
page->setSuppressInitialSearch(suppressInitialSearch);
pages.append(page);
if (APPLICATION->capabilities() & Application::SupportsFlame) {
auto* page = Flame::createTexturePackResourcePage(dialog, *instance);
page->setSuppressInitialSearch(suppressInitialSearch);
pages.append(page);
}
dialog->initPages(pages);
return dialog;
}
ResourceDownloadDialog* ResourceDownloadDialog::createShaderPack(QWidget* parent,
ResourceFolderModel* mods,
BaseInstance* instance,
bool suppressInitialSearch)
{
auto* dialog = new ResourceDownloadDialog(parent, mods, instance, tr("shader packs"), "ShaderDownloadGeometry", suppressInitialSearch);
QList<BasePage*> pages;
auto* page = Modrinth::createShaderPackResourcePage(dialog, *instance);
page->setSuppressInitialSearch(suppressInitialSearch);
pages.append(page);
if (APPLICATION->capabilities() & Application::SupportsFlame) {
auto* page = Flame::createShaderPackResourcePage(dialog, *instance);
page->setSuppressInitialSearch(suppressInitialSearch);
pages.append(page);
}
dialog->initPages(pages);
return dialog;
}
ResourceDownloadDialog* ResourceDownloadDialog::createDataPack(QWidget* parent,
ResourceFolderModel* mods,
BaseInstance* instance,
bool suppressInitialSearch)
{
auto* dialog = new ResourceDownloadDialog(parent, mods, instance, tr("data packs"), "DataPackDownloadGeometry", suppressInitialSearch);
QList<BasePage*> pages;
auto* page = Modrinth::createDataPackResourcePage(dialog, *instance);
page->setSuppressInitialSearch(suppressInitialSearch);
pages.append(page);
if (APPLICATION->capabilities() & Application::SupportsFlame) {
auto* page = Flame::createDataPackResourcePage(dialog, *instance);
page->setSuppressInitialSearch(suppressInitialSearch);
pages.append(page);
}
dialog->initPages(pages);
return dialog;
}
void ResourceDownloadDialog::initPages(QList<BasePage*> pages)
{
m_pages = std::move(pages);
initializeContainer();
connectButtons();
if (!geometrySaveKey().isEmpty()) {
restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toByteArray()));
restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toString().toUtf8()));
}
}
QList<BasePage*> DataPackDownloadDialog::getPages()
{
QList<BasePage*> pages;
auto* modrinthPage =Modrinth::createDataPackResourcePage(this, *m_instance);
modrinthPage->setSuppressInitialSearch(m_suppressInitialSearch);
pages.append(modrinthPage);
if (APPLICATION->capabilities() & Application::SupportsFlame) {
auto* flamePage = Flame::createDataPackResourcePage(this, *m_instance);
flamePage->setSuppressInitialSearch(m_suppressInitialSearch);
pages.append(flamePage);
}
return pages;
}
} // namespace ResourceDownload

View File

@@ -25,7 +25,6 @@
#include <QLayout>
#include "QObjectPtr.h"
#include "minecraft/mod/DataPackFolderModel.h"
#include "minecraft/mod/tasks/GetModDependenciesTask.h"
#include "modplatform/ModIndex.h"
#include "ui/pages/BasePageProvider.h"
@@ -51,13 +50,32 @@ class ResourceDownloadDialog : public QDialog, public BasePageProvider {
public:
using DownloadTaskPtr = shared_qobject_ptr<ResourceDownloadTask>;
ResourceDownloadDialog(QWidget* parent, ResourceFolderModel* baseModel, bool suppressInitialSearch = false);
static ResourceDownloadDialog* createMod(QWidget* parent,
ResourceFolderModel* mods,
BaseInstance* instance,
bool suppressInitialSearch = false);
static ResourceDownloadDialog* createResourcePack(QWidget* parent,
ResourceFolderModel* mods,
BaseInstance* instance,
bool suppressInitialSearch = false);
static ResourceDownloadDialog* createTexturePack(QWidget* parent,
ResourceFolderModel* mods,
BaseInstance* instance,
bool suppressInitialSearch = false);
static ResourceDownloadDialog* createShaderPack(QWidget* parent,
ResourceFolderModel* mods,
BaseInstance* instance,
bool suppressInitialSearch = false);
static ResourceDownloadDialog* createDataPack(QWidget* parent,
ResourceFolderModel* mods,
BaseInstance* instance,
bool suppressInitialSearch = false);
void initializeContainer();
void connectButtons();
//: String that gets appended to the download dialog title ("Download " + resourcesString())
virtual QString resourcesString() const { return tr("resources"); }
QString resourcesString() const { return m_resourcesString; }
QString dialogTitle() override { return tr("Download %1").arg(resourcesString()); };
@@ -72,6 +90,8 @@ class ResourceDownloadDialog : public QDialog, public BasePageProvider {
void setResourceMetadata(const std::shared_ptr<Metadata::ModStruct>& meta);
QList<BasePage*> getPages() override { return m_pages; };
public slots:
void accept() override;
void reject() override;
@@ -82,10 +102,19 @@ class ResourceDownloadDialog : public QDialog, public BasePageProvider {
virtual void confirm();
protected:
virtual QString geometrySaveKey() const { return ""; }
ResourceDownloadDialog(QWidget* parent,
ResourceFolderModel* baseModel,
BaseInstance* instance,
QString resourcesString = tr("resources"),
QString geometrySaveKey = "",
bool suppressInitialSearch = false);
QString geometrySaveKey() const { return m_geometrySaveKey; }
void setButtonStatus();
virtual GetModDependenciesTask::Ptr getModDependenciesTask() { return nullptr; }
GetModDependenciesTask::Ptr getModDependenciesTask();
void initPages(QList<BasePage*> pages);
protected:
ResourceFolderModel* m_base_model;
@@ -97,104 +126,11 @@ class ResourceDownloadDialog : public QDialog, public BasePageProvider {
protected:
bool m_suppressInitialSearch = false;
};
class ModDownloadDialog final : public ResourceDownloadDialog {
Q_OBJECT
public:
explicit ModDownloadDialog(QWidget* parent, ModFolderModel* mods, BaseInstance* instance, bool suppressInitialSearch = false);
~ModDownloadDialog() override = default;
//: String that gets appended to the mod download dialog title ("Download " + resourcesString())
QString resourcesString() const override { return tr("mods"); }
QString geometrySaveKey() const override { return "ModDownloadGeometry"; }
QList<BasePage*> getPages() override;
GetModDependenciesTask::Ptr getModDependenciesTask() override;
private:
BaseInstance* m_instance;
};
class ResourcePackDownloadDialog final : public ResourceDownloadDialog {
Q_OBJECT
public:
explicit ResourcePackDownloadDialog(QWidget* parent,
ResourcePackFolderModel* resourcePacks,
BaseInstance* instance,
bool suppressInitialSearch = false);
~ResourcePackDownloadDialog() override = default;
//: String that gets appended to the resource pack download dialog title ("Download " + resourcesString())
QString resourcesString() const override { return tr("resource packs"); }
QString geometrySaveKey() const override { return "RPDownloadGeometry"; }
QList<BasePage*> getPages() override;
private:
BaseInstance* m_instance;
};
class TexturePackDownloadDialog final : public ResourceDownloadDialog {
Q_OBJECT
public:
explicit TexturePackDownloadDialog(QWidget* parent,
TexturePackFolderModel* resourcePacks,
BaseInstance* instance,
bool suppressInitialSearch = false);
~TexturePackDownloadDialog() override = default;
//: String that gets appended to the texture pack download dialog title ("Download " + resourcesString())
QString resourcesString() const override { return tr("texture packs"); }
QString geometrySaveKey() const override { return "TPDownloadGeometry"; }
QList<BasePage*> getPages() override;
private:
BaseInstance* m_instance;
};
class ShaderPackDownloadDialog final : public ResourceDownloadDialog {
Q_OBJECT
public:
explicit ShaderPackDownloadDialog(QWidget* parent,
ShaderPackFolderModel* shaders,
BaseInstance* instance,
bool suppressInitialSearch = false);
~ShaderPackDownloadDialog() override = default;
//: String that gets appended to the shader pack download dialog title ("Download " + resourcesString())
QString resourcesString() const override { return tr("shader packs"); }
QString geometrySaveKey() const override { return "ShaderDownloadGeometry"; }
QList<BasePage*> getPages() override;
private:
BaseInstance* m_instance;
};
class DataPackDownloadDialog final : public ResourceDownloadDialog {
Q_OBJECT
public:
explicit DataPackDownloadDialog(QWidget* parent,
DataPackFolderModel* dataPacks,
BaseInstance* instance,
bool suppressInitialSearch = false);
~DataPackDownloadDialog() override = default;
//: String that gets appended to the data pack download dialog title ("Download " + resourcesString())
QString resourcesString() const override { return tr("data packs"); }
QString geometrySaveKey() const override { return "DataPackDownloadGeometry"; }
QList<BasePage*> getPages() override;
private:
BaseInstance* m_instance;
QString m_resourcesString;
QString m_geometrySaveKey;
QList<BasePage*> m_pages;
};
} // namespace ResourceDownload

View File

@@ -68,7 +68,7 @@ void DataPackPage::downloadDataPacks()
return; // this is a null instance or a legacy instance
}
m_downloadDialog = new ResourceDownload::DataPackDownloadDialog(this, m_model, m_instance);
m_downloadDialog = ResourceDownload::ResourceDownloadDialog::createDataPack(this, m_model, m_instance);
connect(this, &QObject::destroyed, m_downloadDialog, &QDialog::close);
connect(m_downloadDialog, &QDialog::finished, this, &DataPackPage::downloadDialogFinished);
@@ -242,9 +242,9 @@ void DataPackPage::changeDataPackVersion()
return;
}
ResourceDownload::DataPackDownloadDialog mdownload(this, m_model, m_instance, true);
mdownload.setResourceMetadata(resource.metadata());
if (mdownload.exec() != 0) {
m_downloadDialog = ResourceDownload::ResourceDownloadDialog::createDataPack(this, m_model, m_instance, true);
m_downloadDialog->setResourceMetadata(resource.metadata());
if (m_downloadDialog->exec() != 0) {
auto* tasks = new ConcurrentTask("Download Data Packs", APPLICATION->settings()->get("NumberOfConcurrentDownloads").toInt());
connect(tasks, &Task::failed, [this, tasks](const QString& reason) {
CustomMessageBox::selectable(this, tr("Error"), reason, QMessageBox::Critical)->show();
@@ -263,7 +263,7 @@ void DataPackPage::changeDataPackVersion()
tasks->deleteLater();
});
for (auto& task : mdownload.getTasks()) {
for (auto& task : m_downloadDialog->getTasks()) {
tasks->addTask(task);
}

View File

@@ -44,7 +44,7 @@ class DataPackPage : public ExternalResourcesPage {
private:
DataPackFolderModel* m_model;
QPointer<ResourceDownload::DataPackDownloadDialog> m_downloadDialog;
QPointer<ResourceDownload::ResourceDownloadDialog> m_downloadDialog;
};
/**

View File

@@ -171,7 +171,7 @@ void ModFolderPage::downloadMods()
return;
}
m_downloadDialog = new ResourceDownload::ModDownloadDialog(this, m_model, m_instance);
m_downloadDialog = ResourceDownload::ResourceDownloadDialog::createMod(this, m_model, m_instance);
connect(this, &QObject::destroyed, m_downloadDialog, &QDialog::close);
connect(m_downloadDialog, &QDialog::finished, this, &ModFolderPage::downloadDialogFinished);
@@ -346,7 +346,7 @@ void ModFolderPage::changeModVersion()
return;
}
m_downloadDialog = new ResourceDownload::ModDownloadDialog(this, m_model, m_instance, true);
m_downloadDialog = ResourceDownload::ResourceDownloadDialog::createMod(this, m_model, m_instance, true);
connect(this, &QObject::destroyed, m_downloadDialog, &QDialog::close);
connect(m_downloadDialog, &QDialog::finished, this, &ModFolderPage::downloadDialogFinished);

View File

@@ -75,7 +75,7 @@ class ModFolderPage : public ExternalResourcesPage {
protected:
ModFolderModel* m_model;
QPointer<ResourceDownload::ModDownloadDialog> m_downloadDialog;
QPointer<ResourceDownload::ResourceDownloadDialog> m_downloadDialog;
};
class CoreModFolderPage : public ModFolderPage {

View File

@@ -85,7 +85,7 @@ void ResourcePackPage::downloadResourcePacks()
return; // this is a null instance or a legacy instance
}
m_downloadDialog = new ResourceDownload::ResourcePackDownloadDialog(this, m_model, m_instance);
m_downloadDialog = ResourceDownload::ResourceDownloadDialog::createResourcePack(this, m_model, m_instance);
connect(this, &QObject::destroyed, m_downloadDialog, &QDialog::close);
connect(m_downloadDialog, &QDialog::finished, this, &ResourcePackPage::downloadDialogFinished);
@@ -259,7 +259,7 @@ void ResourcePackPage::changeResourcePackVersion()
return;
}
m_downloadDialog = new ResourceDownload::ResourcePackDownloadDialog(this, m_model, m_instance, true);
m_downloadDialog = ResourceDownload::ResourceDownloadDialog::createResourcePack(this, m_model, m_instance, true);
connect(this, &QObject::destroyed, m_downloadDialog, &QDialog::close);
connect(m_downloadDialog, &QDialog::finished, this, &ResourcePackPage::downloadDialogFinished);

View File

@@ -38,8 +38,6 @@
#include "ShaderPackPage.h"
#include "ui_ExternalResourcesPage.h"
#include "ResourceDownloadTask.h"
#include "minecraft/mod/ShaderPackFolderModel.h"
#include "ui/dialogs/CustomMessageBox.h"
@@ -82,7 +80,7 @@ void ShaderPackPage::downloadShaderPack()
return; // this is a null instance or a legacy instance
}
m_downloadDialog = new ResourceDownload::ShaderPackDownloadDialog(this, m_model, m_instance);
m_downloadDialog = ResourceDownload::ResourceDownloadDialog::createShaderPack(this, m_model, m_instance);
connect(this, &QObject::destroyed, m_downloadDialog, &QDialog::close);
connect(m_downloadDialog, &QDialog::finished, this, &ShaderPackPage::downloadDialogFinished);
@@ -256,7 +254,7 @@ void ShaderPackPage::changeShaderPackVersion()
return;
}
m_downloadDialog = new ResourceDownload::ShaderPackDownloadDialog(this, m_model, m_instance, true);
m_downloadDialog = ResourceDownload::ResourceDownloadDialog::createShaderPack(this, m_model, m_instance, true);
connect(this, &QObject::destroyed, m_downloadDialog, &QDialog::close);
connect(m_downloadDialog, &QDialog::finished, this, &ShaderPackPage::downloadDialogFinished);

View File

@@ -63,5 +63,5 @@ class ShaderPackPage : public ExternalResourcesPage {
private:
ShaderPackFolderModel* m_model;
QPointer<ResourceDownload::ShaderPackDownloadDialog> m_downloadDialog;
QPointer<ResourceDownload::ResourceDownloadDialog> m_downloadDialog;
};

View File

@@ -37,10 +37,6 @@
#include "TexturePackPage.h"
#include "ResourceDownloadTask.h"
#include "minecraft/mod/TexturePack.h"
#include "ui/dialogs/CustomMessageBox.h"
#include "ui/dialogs/ProgressDialog.h"
#include "ui/dialogs/ResourceDownloadDialog.h"
@@ -91,7 +87,7 @@ void TexturePackPage::downloadTexturePacks()
return; // this is a null instance or a legacy instance
}
m_downloadDialog = new ResourceDownload::TexturePackDownloadDialog(this, m_model, m_instance);
m_downloadDialog = ResourceDownload::ResourceDownloadDialog::createTexturePack(this, m_model, m_instance);
connect(this, &QObject::destroyed, m_downloadDialog, &QDialog::close);
connect(m_downloadDialog, &QDialog::finished, this, &TexturePackPage::downloadDialogFinished);
m_downloadDialog->open();
@@ -264,7 +260,7 @@ void TexturePackPage::changeTexturePackVersion()
return;
}
m_downloadDialog = new ResourceDownload::TexturePackDownloadDialog(this, m_model, m_instance, true);
m_downloadDialog = ResourceDownload::ResourceDownloadDialog::createTexturePack(this, m_model, m_instance, true);
connect(this, &QObject::destroyed, m_downloadDialog, &QDialog::close);
connect(m_downloadDialog, &QDialog::finished, this, &TexturePackPage::downloadDialogFinished);

View File

@@ -67,5 +67,5 @@ class TexturePackPage : public ExternalResourcesPage {
private:
TexturePackFolderModel* m_model;
QPointer<ResourceDownload::TexturePackDownloadDialog> m_downloadDialog;
QPointer<ResourceDownload::ResourceDownloadDialog> m_downloadDialog;
};

View File

@@ -33,7 +33,7 @@ static ResourceDescriptor prepareDataPackDescriptor()
};
}
DataPackResourcePage::DataPackResourcePage(DataPackDownloadDialog* dialog, BaseInstance& instance, ResourceProviderData p, ResourceAPI* api)
DataPackResourcePage::DataPackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance, ResourceProviderData p, ResourceAPI* api)
: ResourcePage(dialog, instance, prepareDataPackDescriptor(), p)
{
m_model = new DataPackResourceModel(instance, api, debugName(), metaEntryBase());

View File

@@ -14,7 +14,7 @@ class DataPackResourcePage : public ResourcePage {
Q_OBJECT
public:
DataPackResourcePage(DataPackDownloadDialog* dialog, BaseInstance& instance, ResourceProviderData p, ResourceAPI* api);
DataPackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance, ResourceProviderData p, ResourceAPI* api);
protected slots:
void triggerSearch() override;

View File

@@ -68,8 +68,11 @@ ResourceDownload::ResourceDescriptor prepareModDescriptor()
}
} // namespace
namespace ResourceDownload {
ModPage::ModPage(ModDownloadDialog* dialog, BaseInstance& instance, ResourceProviderData p, ResourceAPI* api, ModFilterWidget* filterWidget)
ModPage::ModPage(ResourceDownloadDialog* dialog,
BaseInstance& instance,
ResourceProviderData p,
ResourceAPI* api,
ModFilterWidget* filterWidget)
: ResourcePage(dialog, instance, prepareModDescriptor(), std::move(p)), m_api(api)
{
auto* model = new ModModel(instance, api, debugName(), metaEntryBase());

View File

@@ -12,7 +12,7 @@
namespace ResourceDownload {
class ModDownloadDialog;
class ResourceDownloadDialog;
/* This page handles most logic related to browsing and selecting mods to download. */
class ModPage : public ResourcePage {
@@ -21,7 +21,11 @@ class ModPage : public ResourcePage {
public:
auto getFilter() const -> const std::shared_ptr<ModFilterWidget::Filter> { return m_filter; }
ModPage(ModDownloadDialog* dialog, BaseInstance& instance, ResourceProviderData p, ResourceAPI* api, ModFilterWidget* filterWidget);
ModPage(ResourceDownloadDialog* dialog,
BaseInstance& instance,
ResourceProviderData p,
ResourceAPI* api,
ModFilterWidget* filterWidget);
protected:
void prepareProviderCategories();

View File

@@ -32,7 +32,7 @@ static ResourceDescriptor prepareShaderPackDescriptor()
};
}
ShaderPackResourcePage::ShaderPackResourcePage(ShaderPackDownloadDialog* dialog,
ShaderPackResourcePage::ShaderPackResourcePage(ResourceDownloadDialog* dialog,
BaseInstance& instance,
ResourceProviderData p,
ResourceAPI* api)

View File

@@ -8,13 +8,13 @@
namespace ResourceDownload {
class ShaderPackDownloadDialog;
class ResourceDownloadDialog;
class ShaderPackResourcePage : public ResourcePage {
Q_OBJECT
public:
ShaderPackResourcePage(ShaderPackDownloadDialog* dialog, BaseInstance& instance, ResourceProviderData p, ResourceAPI* api);
ShaderPackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance, ResourceProviderData p, ResourceAPI* api);
protected slots:
void triggerSearch() override;

View File

@@ -32,7 +32,7 @@ static ResourceDescriptor prepareResourcePackDescriptor()
};
}
TexturePackResourcePage::TexturePackResourcePage(TexturePackDownloadDialog* dialog,
TexturePackResourcePage::TexturePackResourcePage(ResourceDownloadDialog* dialog,
BaseInstance& instance,
ResourceProviderData p,
ResourceAPI* api,

View File

@@ -15,7 +15,7 @@ class TexturePackResourcePage : public ResourcePage {
Q_OBJECT
public:
TexturePackResourcePage(TexturePackDownloadDialog* dialog,
TexturePackResourcePage(ResourceDownloadDialog* dialog,
BaseInstance& instance,
ResourceProviderData p,
ResourceAPI* api,

View File

@@ -57,27 +57,27 @@ static ResourceProviderData prepareFlame()
};
}
ShaderPackResourcePage* Flame::createShaderPackResourcePage(ShaderPackDownloadDialog* dialog, BaseInstance& instance)
ShaderPackResourcePage* Flame::createShaderPackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance)
{
return new ShaderPackResourcePage(dialog, instance, prepareFlame(), new FlameAPI());
}
DataPackResourcePage* Flame::createDataPackResourcePage(DataPackDownloadDialog* dialog, BaseInstance& instance)
DataPackResourcePage* Flame::createDataPackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance)
{
return new DataPackResourcePage(dialog, instance, prepareFlame(), new FlameAPI());
}
ResourcePackResourcePage* Flame::createResourcePackResourcePage(ResourcePackDownloadDialog* dialog, BaseInstance& instance)
ResourcePackResourcePage* Flame::createResourcePackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance)
{
return new ResourcePackResourcePage(dialog, instance, prepareFlame(), new FlameAPI());
}
TexturePackResourcePage* Flame::createTexturePackResourcePage(TexturePackDownloadDialog* dialog, BaseInstance& instance)
TexturePackResourcePage* Flame::createTexturePackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance)
{
return new TexturePackResourcePage(dialog, instance, prepareFlame(), new FlameAPI(), new FlameTexturePackModel(instance));
}
ModPage* Flame::createModPage(ModDownloadDialog* dialog, BaseInstance& instance)
ModPage* Flame::createModPage(ResourceDownloadDialog* dialog, BaseInstance& instance)
{
return new ModPage(dialog, instance, prepareFlame(), new FlameAPI(),
ModFilterWidget::create(&static_cast<MinecraftInstance&>(instance), false));

View File

@@ -70,11 +70,11 @@ static inline QString metaEntryBase()
return "FlameMods";
}
ShaderPackResourcePage* createShaderPackResourcePage(ShaderPackDownloadDialog* dialog, BaseInstance& instance);
DataPackResourcePage* createDataPackResourcePage(DataPackDownloadDialog* dialog, BaseInstance& instance);
ResourcePackResourcePage* createResourcePackResourcePage(ResourcePackDownloadDialog* dialog, BaseInstance& instance);
TexturePackResourcePage* createTexturePackResourcePage(TexturePackDownloadDialog* dialog, BaseInstance& instance);
ModPage* createModPage(ModDownloadDialog* dialog, BaseInstance& instance);
ShaderPackResourcePage* createShaderPackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance);
DataPackResourcePage* createDataPackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance);
ResourcePackResourcePage* createResourcePackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance);
TexturePackResourcePage* createTexturePackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance);
ModPage* createModPage(ResourceDownloadDialog* dialog, BaseInstance& instance);
} // namespace Flame
} // namespace ResourceDownload

View File

@@ -55,27 +55,27 @@ static ResourceProviderData prepareModrinth()
};
}
ShaderPackResourcePage* Modrinth::createShaderPackResourcePage(ShaderPackDownloadDialog* dialog, BaseInstance& instance)
ShaderPackResourcePage* Modrinth::createShaderPackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance)
{
return new ShaderPackResourcePage(dialog, instance, prepareModrinth(), new ModrinthAPI());
}
DataPackResourcePage* Modrinth::createDataPackResourcePage(DataPackDownloadDialog* dialog, BaseInstance& instance)
DataPackResourcePage* Modrinth::createDataPackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance)
{
return new DataPackResourcePage(dialog, instance, prepareModrinth(), new ModrinthAPI());
}
ResourcePackResourcePage* Modrinth::createResourcePackResourcePage(ResourcePackDownloadDialog* dialog, BaseInstance& instance)
ResourcePackResourcePage* Modrinth::createResourcePackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance)
{
return new ResourcePackResourcePage(dialog, instance, prepareModrinth(), new ModrinthAPI());
}
TexturePackResourcePage* Modrinth::createTexturePackResourcePage(TexturePackDownloadDialog* dialog, BaseInstance& instance)
TexturePackResourcePage* Modrinth::createTexturePackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance)
{
return new TexturePackResourcePage(dialog, instance, prepareModrinth(), new ModrinthAPI());
}
ModPage* Modrinth::createModPage(ModDownloadDialog* dialog, BaseInstance& instance)
ModPage* Modrinth::createModPage(ResourceDownloadDialog* dialog, BaseInstance& instance)
{
return new ModPage(dialog, instance, prepareModrinth(), new ModrinthAPI(),
ModFilterWidget::create(&static_cast<MinecraftInstance&>(instance), true));

View File

@@ -68,11 +68,11 @@ static inline QString metaEntryBase()
return "ModrinthPacks";
}
ShaderPackResourcePage* createShaderPackResourcePage(ShaderPackDownloadDialog* dialog, BaseInstance& instance);
DataPackResourcePage* createDataPackResourcePage(DataPackDownloadDialog* dialog, BaseInstance& instance);
ResourcePackResourcePage* createResourcePackResourcePage(ResourcePackDownloadDialog* dialog, BaseInstance& instance);
TexturePackResourcePage* createTexturePackResourcePage(TexturePackDownloadDialog* dialog, BaseInstance& instance);
ModPage* createModPage(ModDownloadDialog* dialog, BaseInstance& instance);
ShaderPackResourcePage* createShaderPackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance);
DataPackResourcePage* createDataPackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance);
ResourcePackResourcePage* createResourcePackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance);
TexturePackResourcePage* createTexturePackResourcePage(ResourceDownloadDialog* dialog, BaseInstance& instance);
ModPage* createModPage(ResourceDownloadDialog* dialog, BaseInstance& instance);
} // namespace Modrinth
} // namespace ResourceDownload