mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2026-08-01 02:50:54 -04:00
remove extra ResourceDownloadDialogs
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ class DataPackPage : public ExternalResourcesPage {
|
||||
|
||||
private:
|
||||
DataPackFolderModel* m_model;
|
||||
QPointer<ResourceDownload::DataPackDownloadDialog> m_downloadDialog;
|
||||
QPointer<ResourceDownload::ResourceDownloadDialog> m_downloadDialog;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -63,5 +63,5 @@ class ShaderPackPage : public ExternalResourcesPage {
|
||||
|
||||
private:
|
||||
ShaderPackFolderModel* m_model;
|
||||
QPointer<ResourceDownload::ShaderPackDownloadDialog> m_downloadDialog;
|
||||
QPointer<ResourceDownload::ResourceDownloadDialog> m_downloadDialog;
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -67,5 +67,5 @@ class TexturePackPage : public ExternalResourcesPage {
|
||||
|
||||
private:
|
||||
TexturePackFolderModel* m_model;
|
||||
QPointer<ResourceDownload::TexturePackDownloadDialog> m_downloadDialog;
|
||||
QPointer<ResourceDownload::ResourceDownloadDialog> m_downloadDialog;
|
||||
};
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -32,7 +32,7 @@ static ResourceDescriptor prepareShaderPackDescriptor()
|
||||
};
|
||||
}
|
||||
|
||||
ShaderPackResourcePage::ShaderPackResourcePage(ShaderPackDownloadDialog* dialog,
|
||||
ShaderPackResourcePage::ShaderPackResourcePage(ResourceDownloadDialog* dialog,
|
||||
BaseInstance& instance,
|
||||
ResourceProviderData p,
|
||||
ResourceAPI* api)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -32,7 +32,7 @@ static ResourceDescriptor prepareResourcePackDescriptor()
|
||||
};
|
||||
}
|
||||
|
||||
TexturePackResourcePage::TexturePackResourcePage(TexturePackDownloadDialog* dialog,
|
||||
TexturePackResourcePage::TexturePackResourcePage(ResourceDownloadDialog* dialog,
|
||||
BaseInstance& instance,
|
||||
ResourceProviderData p,
|
||||
ResourceAPI* api,
|
||||
|
||||
@@ -15,7 +15,7 @@ class TexturePackResourcePage : public ResourcePage {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TexturePackResourcePage(TexturePackDownloadDialog* dialog,
|
||||
TexturePackResourcePage(ResourceDownloadDialog* dialog,
|
||||
BaseInstance& instance,
|
||||
ResourceProviderData p,
|
||||
ResourceAPI* api,
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user