aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/pages/modplatform/ResourcePackModel.h
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-12-16 20:26:10 -0300
committerflow <flowlnlnln@gmail.com>2023-02-05 17:02:52 -0300
commitc3ea303a3742c886aae9e05d2e5f5fbb497260a1 (patch)
treea6d0d45d75b3761c8b92194d167b7128352efb09 /launcher/ui/pages/modplatform/ResourcePackModel.h
parente89a10945c683a1212fa6aa7824173f4f20cdee6 (diff)
downloadPrismLauncher-c3ea303a3742c886aae9e05d2e5f5fbb497260a1.tar.gz
PrismLauncher-c3ea303a3742c886aae9e05d2e5f5fbb497260a1.tar.bz2
PrismLauncher-c3ea303a3742c886aae9e05d2e5f5fbb497260a1.zip
feat(RD): add resource pack downloader
Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/ui/pages/modplatform/ResourcePackModel.h')
-rw-r--r--launcher/ui/pages/modplatform/ResourcePackModel.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/launcher/ui/pages/modplatform/ResourcePackModel.h b/launcher/ui/pages/modplatform/ResourcePackModel.h
new file mode 100644
index 00000000..63aa533c
--- /dev/null
+++ b/launcher/ui/pages/modplatform/ResourcePackModel.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include <QAbstractListModel>
+
+#include "BaseInstance.h"
+
+#include "modplatform/ModIndex.h"
+
+#include "ui/pages/modplatform/ResourceModel.h"
+
+class Version;
+
+namespace ResourceDownload {
+
+class ResourcePackResourceModel : public ResourceModel {
+ Q_OBJECT
+
+ public:
+ ResourcePackResourceModel(BaseInstance const&, ResourceAPI*);
+
+ /* Ask the API for more information */
+ void searchWithTerm(const QString& term, unsigned int sort);
+
+ void loadIndexedPack(ModPlatform::IndexedPack&, QJsonObject&) override = 0;
+ void loadExtraPackInfo(ModPlatform::IndexedPack&, QJsonObject&) override = 0;
+ void loadIndexedPackVersions(ModPlatform::IndexedPack&, QJsonArray&) override = 0;
+
+ public slots:
+ ResourceAPI::SearchArgs createSearchArguments() override;
+ ResourceAPI::VersionSearchArgs createVersionsArguments(QModelIndex&) override;
+ ResourceAPI::ProjectInfoArgs createInfoArguments(QModelIndex&) override;
+
+ protected:
+ const BaseInstance& m_base_instance;
+
+ auto documentToArray(QJsonDocument& obj) const -> QJsonArray override = 0;
+};
+
+} // namespace ResourceDownload