feat(RD): add shader pack downloader

Signed-off-by: flow <flowlnlnln@gmail.com>
This commit is contained in:
flow
2022-12-30 14:06:07 -03:00
parent c3ea303a37
commit b724607e31
18 changed files with 421 additions and 14 deletions

View File

@ -26,6 +26,7 @@
#include "minecraft/mod/ModFolderModel.h"
#include "minecraft/mod/ResourcePackFolderModel.h"
#include "minecraft/mod/ShaderPackFolderModel.h"
#include "ui/dialogs/ReviewMessageBox.h"
@ -256,4 +257,28 @@ QList<BasePage*> ResourcePackDownloadDialog::getPages()
return pages;
}
ShaderPackDownloadDialog::ShaderPackDownloadDialog(QWidget* parent,
const std::shared_ptr<ShaderPackFolderModel>& shaders,
BaseInstance* instance)
: ResourceDownloadDialog(parent, shaders), m_instance(instance)
{
setWindowTitle(dialogTitle());
initializeContainer();
connectButtons();
if (!geometrySaveKey().isEmpty())
restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toByteArray()));
}
QList<BasePage*> ShaderPackDownloadDialog::getPages()
{
QList<BasePage*> pages;
pages.append(ModrinthShaderPackPage::create(this, *m_instance));
return pages;
}
} // namespace ResourceDownload

View File

@ -36,6 +36,7 @@ class QDialogButtonBox;
class ResourceDownloadTask;
class ResourceFolderModel;
class ResourcePackFolderModel;
class ShaderPackFolderModel;
namespace ResourceDownload {
@ -128,4 +129,23 @@ class ResourcePackDownloadDialog final : public ResourceDownloadDialog {
BaseInstance* m_instance;
};
class ShaderPackDownloadDialog final : public ResourceDownloadDialog {
Q_OBJECT
public:
explicit ShaderPackDownloadDialog(QWidget* parent,
const std::shared_ptr<ShaderPackFolderModel>& shader_packs,
BaseInstance* instance);
~ShaderPackDownloadDialog() override = default;
//: String that gets appended to the shader pack download dialog title ("Download " + resourcesString())
[[nodiscard]] QString resourcesString() const override { return tr("shader packs"); }
[[nodiscard]] QString geometrySaveKey() const override { return "ShaderDownloadGeometry"; }
QList<BasePage*> getPages() override;
private:
BaseInstance* m_instance;
};
} // namespace ResourceDownload