aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-12-16 19:03:52 -0300
committerflow <flowlnlnln@gmail.com>2023-01-13 16:23:06 -0300
commit433a802c6ed3070b1b2f4435937a456eb4192f78 (patch)
treeba939d277a46b0cc0cac8ad62dd9c0442eaf7c35
parent6a1807995390b2a2cbe074ee1f47d3791e0e3f10 (diff)
downloadPrismLauncher-433a802c6ed3070b1b2f4435937a456eb4192f78.tar.gz
PrismLauncher-433a802c6ed3070b1b2f4435937a456eb4192f78.tar.bz2
PrismLauncher-433a802c6ed3070b1b2f4435937a456eb4192f78.zip
refactor: put resource downloading classes in common namespace
Puts them all inside the 'ResourceDownload' namespace, so that it's a bit clearer from the outside that those belong to the same 'module'. Signed-off-by: flow <flowlnlnln@gmail.com>
-rw-r--r--launcher/ui/dialogs/ModDownloadDialog.cpp4
-rw-r--r--launcher/ui/dialogs/ModDownloadDialog.h7
-rw-r--r--launcher/ui/dialogs/ResourceDownloadDialog.cpp4
-rw-r--r--launcher/ui/dialogs/ResourceDownloadDialog.h7
-rw-r--r--launcher/ui/pages/instance/ModFolderPage.cpp2
-rw-r--r--launcher/ui/pages/modplatform/ModModel.cpp30
-rw-r--r--launcher/ui/pages/modplatform/ModModel.h12
-rw-r--r--launcher/ui/pages/modplatform/ModPage.cpp6
-rw-r--r--launcher/ui/pages/modplatform/ModPage.h8
-rw-r--r--launcher/ui/pages/modplatform/ResourceModel.cpp4
-rw-r--r--launcher/ui/pages/modplatform/ResourceModel.h6
-rw-r--r--launcher/ui/pages/modplatform/ResourcePage.cpp4
-rw-r--r--launcher/ui/pages/modplatform/ResourcePage.h7
-rw-r--r--launcher/ui/pages/modplatform/flame/FlameResourceModels.cpp18
-rw-r--r--launcher/ui/pages/modplatform/flame/FlameResourceModels.h14
-rw-r--r--launcher/ui/pages/modplatform/flame/FlameResourcePages.cpp6
-rw-r--r--launcher/ui/pages/modplatform/flame/FlameResourcePages.h30
-rw-r--r--launcher/ui/pages/modplatform/modrinth/ModrinthResourceModels.cpp24
-rw-r--r--launcher/ui/pages/modplatform/modrinth/ModrinthResourceModels.h17
-rw-r--r--launcher/ui/pages/modplatform/modrinth/ModrinthResourcePages.cpp8
-rw-r--r--launcher/ui/pages/modplatform/modrinth/ModrinthResourcePages.h19
21 files changed, 156 insertions, 81 deletions
diff --git a/launcher/ui/dialogs/ModDownloadDialog.cpp b/launcher/ui/dialogs/ModDownloadDialog.cpp
index 8a77ef7f..89b87300 100644
--- a/launcher/ui/dialogs/ModDownloadDialog.cpp
+++ b/launcher/ui/dialogs/ModDownloadDialog.cpp
@@ -24,6 +24,8 @@
#include "ui/pages/modplatform/flame/FlameResourcePages.h"
#include "ui/pages/modplatform/modrinth/ModrinthResourcePages.h"
+namespace ResourceDownload {
+
ModDownloadDialog::ModDownloadDialog(QWidget* parent, const std::shared_ptr<ModFolderModel>& mods, BaseInstance* instance)
: ResourceDownloadDialog(parent, mods), m_instance(instance)
{
@@ -57,3 +59,5 @@ QList<BasePage*> ModDownloadDialog::getPages()
return pages;
}
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/dialogs/ModDownloadDialog.h b/launcher/ui/dialogs/ModDownloadDialog.h
index 19036042..b378b5a9 100644
--- a/launcher/ui/dialogs/ModDownloadDialog.h
+++ b/launcher/ui/dialogs/ModDownloadDialog.h
@@ -25,8 +25,9 @@
class QDialogButtonBox;
-class ModDownloadDialog final : public ResourceDownloadDialog
-{
+namespace ResourceDownload {
+
+class ModDownloadDialog final : public ResourceDownloadDialog {
Q_OBJECT
public:
@@ -45,3 +46,5 @@ class ModDownloadDialog final : public ResourceDownloadDialog
private:
BaseInstance* m_instance;
};
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/dialogs/ResourceDownloadDialog.cpp b/launcher/ui/dialogs/ResourceDownloadDialog.cpp
index 7367548f..b143750b 100644
--- a/launcher/ui/dialogs/ResourceDownloadDialog.cpp
+++ b/launcher/ui/dialogs/ResourceDownloadDialog.cpp
@@ -9,6 +9,8 @@
#include "ui/pages/modplatform/ResourcePage.h"
#include "ui/widgets/PageContainer.h"
+namespace ResourceDownload {
+
ResourceDownloadDialog::ResourceDownloadDialog(QWidget* parent, const std::shared_ptr<ResourceFolderModel> base_model)
: QDialog(parent), m_base_model(base_model), m_buttons(QDialogButtonBox::Help | QDialogButtonBox::Ok | QDialogButtonBox::Cancel), m_vertical_layout(this)
{
@@ -150,3 +152,5 @@ void ResourceDownloadDialog::selectedPageChanged(BasePage* previous, BasePage* s
// Same effect as having a global search bar
m_selectedPage->setSearchTerm(prev_page->getSearchTerm());
}
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/dialogs/ResourceDownloadDialog.h b/launcher/ui/dialogs/ResourceDownloadDialog.h
index d6b3938b..3b234cd1 100644
--- a/launcher/ui/dialogs/ResourceDownloadDialog.h
+++ b/launcher/ui/dialogs/ResourceDownloadDialog.h
@@ -7,12 +7,15 @@
#include "ui/pages/BasePageProvider.h"
class ResourceDownloadTask;
-class ResourcePage;
class ResourceFolderModel;
class PageContainer;
class QVBoxLayout;
class QDialogButtonBox;
+namespace ResourceDownload {
+
+class ResourcePage;
+
class ResourceDownloadDialog : public QDialog, public BasePageProvider {
Q_OBJECT
@@ -53,3 +56,5 @@ class ResourceDownloadDialog : public QDialog, public BasePageProvider {
QHash<QString, ResourceDownloadTask*> m_selected;
};
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/instance/ModFolderPage.cpp b/launcher/ui/pages/instance/ModFolderPage.cpp
index 1bce3c0d..7c4b8952 100644
--- a/launcher/ui/pages/instance/ModFolderPage.cpp
+++ b/launcher/ui/pages/instance/ModFolderPage.cpp
@@ -158,7 +158,7 @@ void ModFolderPage::installMods()
return;
}
- ModDownloadDialog mdownload(this, m_model, m_instance);
+ ResourceDownload::ModDownloadDialog mdownload(this, m_model, m_instance);
if (mdownload.exec()) {
ConcurrentTask* tasks = new ConcurrentTask(this);
connect(tasks, &Task::failed, [this, tasks](QString reason) {
diff --git a/launcher/ui/pages/modplatform/ModModel.cpp b/launcher/ui/pages/modplatform/ModModel.cpp
index 31aae746..59399c59 100644
--- a/launcher/ui/pages/modplatform/ModModel.cpp
+++ b/launcher/ui/pages/modplatform/ModModel.cpp
@@ -7,19 +7,19 @@
#include <QMessageBox>
-namespace ModPlatform {
+namespace ResourceDownload {
-ListModel::ListModel(ModPage* parent, ResourceAPI* api) : ResourceModel(parent, api) {}
+ModModel::ModModel(ModPage* parent, ResourceAPI* api) : ResourceModel(parent, api) {}
/******** Make data requests ********/
-ResourceAPI::SearchArgs ListModel::createSearchArguments()
+ResourceAPI::SearchArgs ModModel::createSearchArguments()
{
auto profile = static_cast<MinecraftInstance&>(m_associated_page->m_base_instance).getPackProfile();
return { ModPlatform::ResourceType::MOD, m_next_search_offset, m_search_term,
getSorts()[currentSort], profile->getModLoaders(), getMineVersions() };
}
-ResourceAPI::SearchCallbacks ListModel::createSearchCallbacks()
+ResourceAPI::SearchCallbacks ModModel::createSearchCallbacks()
{
return { [this](auto& doc) {
if (!s_running_models.constFind(this).value())
@@ -28,14 +28,14 @@ ResourceAPI::SearchCallbacks ListModel::createSearchCallbacks()
} };
}
-ResourceAPI::VersionSearchArgs ListModel::createVersionsArguments(QModelIndex& entry)
+ResourceAPI::VersionSearchArgs ModModel::createVersionsArguments(QModelIndex& entry)
{
auto const& pack = m_packs[entry.row()];
auto profile = static_cast<MinecraftInstance&>(m_associated_page->m_base_instance).getPackProfile();
return { pack.addonId.toString(), getMineVersions(), profile->getModLoaders() };
}
-ResourceAPI::VersionSearchCallbacks ListModel::createVersionsCallbacks(QModelIndex& entry)
+ResourceAPI::VersionSearchCallbacks ModModel::createVersionsCallbacks(QModelIndex& entry)
{
auto const& pack = m_packs[entry.row()];
@@ -46,12 +46,12 @@ ResourceAPI::VersionSearchCallbacks ListModel::createVersionsCallbacks(QModelInd
} };
}
-ResourceAPI::ProjectInfoArgs ListModel::createInfoArguments(QModelIndex& entry)
+ResourceAPI::ProjectInfoArgs ModModel::createInfoArguments(QModelIndex& entry)
{
auto& pack = m_packs[entry.row()];
return { pack };
}
-ResourceAPI::ProjectInfoCallbacks ListModel::createInfoCallbacks(QModelIndex& entry)
+ResourceAPI::ProjectInfoCallbacks ModModel::createInfoCallbacks(QModelIndex& entry)
{
return { [this, entry](auto& doc, auto& pack) {
if (!s_running_models.constFind(this).value())
@@ -60,7 +60,7 @@ ResourceAPI::ProjectInfoCallbacks ListModel::createInfoCallbacks(QModelIndex& en
} };
}
-void ListModel::searchWithTerm(const QString& term, const int sort, const bool filter_changed)
+void ModModel::searchWithTerm(const QString& term, const int sort, const bool filter_changed)
{
if (m_search_term == term && m_search_term.isNull() == term.isNull() && currentSort == sort && !filter_changed) {
return;
@@ -74,7 +74,7 @@ void ListModel::searchWithTerm(const QString& term, const int sort, const bool f
/******** Request callbacks ********/
-void ListModel::searchRequestFinished(QJsonDocument& doc)
+void ModModel::searchRequestFinished(QJsonDocument& doc)
{
QList<ModPlatform::IndexedPack> newList;
auto packs = documentToArray(doc);
@@ -108,7 +108,7 @@ void ListModel::searchRequestFinished(QJsonDocument& doc)
endInsertRows();
}
-void ListModel::infoRequestFinished(QJsonDocument& doc, ModPlatform::IndexedPack& pack, const QModelIndex& index)
+void ModModel::infoRequestFinished(QJsonDocument& doc, ModPlatform::IndexedPack& pack, const QModelIndex& index)
{
qDebug() << "Loading mod info";
@@ -133,7 +133,7 @@ void ListModel::infoRequestFinished(QJsonDocument& doc, ModPlatform::IndexedPack
m_associated_page->updateUi();
}
-void ListModel::versionRequestSucceeded(QJsonDocument doc, QString addonId, const QModelIndex& index)
+void ModModel::versionRequestSucceeded(QJsonDocument doc, QString addonId, const QModelIndex& index)
{
auto current = m_associated_page->getCurrentPack();
if (addonId != current.addonId) {
@@ -159,16 +159,16 @@ void ListModel::versionRequestSucceeded(QJsonDocument doc, QString addonId, cons
m_associated_page->updateVersionList();
}
-} // namespace ModPlatform
-
/******** Helpers ********/
#define MOD_PAGE(x) static_cast<ModPage*>(x)
-auto ModPlatform::ListModel::getMineVersions() const -> std::optional<std::list<Version>>
+auto ModModel::getMineVersions() const -> std::optional<std::list<Version>>
{
auto versions = MOD_PAGE(m_associated_page)->getFilter()->versions;
if (!versions.empty())
return versions;
return {};
}
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/ModModel.h b/launcher/ui/pages/modplatform/ModModel.h
index 7c735d90..e3d760a2 100644
--- a/launcher/ui/pages/modplatform/ModModel.h
+++ b/launcher/ui/pages/modplatform/ModModel.h
@@ -7,16 +7,17 @@
#include "ui/pages/modplatform/ResourceModel.h"
-class ModPage;
class Version;
-namespace ModPlatform {
+namespace ResourceDownload {
+
+class ModPage;
-class ListModel : public ResourceModel {
+class ModModel : public ResourceModel {
Q_OBJECT
public:
- ListModel(ModPage* parent, ResourceAPI* api);
+ ModModel(ModPage* parent, ResourceAPI* api);
/* Ask the API for more information */
void searchWithTerm(const QString& term, const int sort, const bool filter_changed);
@@ -51,4 +52,5 @@ class ListModel : public ResourceModel {
protected:
int currentSort = 0;
};
-} // namespace ModPlatform
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/ModPage.cpp b/launcher/ui/pages/modplatform/ModPage.cpp
index 853f2c54..8941d9b7 100644
--- a/launcher/ui/pages/modplatform/ModPage.cpp
+++ b/launcher/ui/pages/modplatform/ModPage.cpp
@@ -53,6 +53,8 @@
#include "ui/pages/modplatform/ModModel.h"
+namespace ResourceDownload {
+
ModPage::ModPage(ModDownloadDialog* dialog, BaseInstance& instance)
: ResourcePage(dialog, instance)
{
@@ -100,7 +102,7 @@ void ModPage::triggerSearch()
updateSelectionButton();
}
- static_cast<ModPlatform::ListModel*>(m_model)->searchWithTerm(getSearchTerm(), m_ui->sortByBox->currentIndex(), changed);
+ static_cast<ModModel*>(m_model)->searchWithTerm(getSearchTerm(), m_ui->sortByBox->currentIndex(), changed);
m_fetch_progress.watch(&m_model->activeJob());
}
@@ -151,3 +153,5 @@ void ModPage::addResourceToDialog(ModPlatform::IndexedPack& pack, ModPlatform::I
bool is_indexed = !APPLICATION->settings()->get("ModMetadataDisabled").toBool();
m_parent_dialog->addResource(pack.name, new ResourceDownloadTask(pack, version, m_parent_dialog->getBaseModel(), is_indexed));
}
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/ModPage.h b/launcher/ui/pages/modplatform/ModPage.h
index 8c1fec84..137a6046 100644
--- a/launcher/ui/pages/modplatform/ModPage.h
+++ b/launcher/ui/pages/modplatform/ModPage.h
@@ -7,12 +7,14 @@
#include "ui/pages/modplatform/ResourcePage.h"
#include "ui/widgets/ModFilterWidget.h"
-class ModDownloadDialog;
-
namespace Ui {
class ResourcePage;
}
+namespace ResourceDownload {
+
+class ModDownloadDialog;
+
/* This page handles most logic related to browsing and selecting mods to download. */
class ModPage : public ResourcePage {
Q_OBJECT
@@ -57,3 +59,5 @@ class ModPage : public ResourcePage {
unique_qobject_ptr<ModFilterWidget> m_filter_widget;
std::shared_ptr<ModFilterWidget::Filter> m_filter;
};
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/ResourceModel.cpp b/launcher/ui/pages/modplatform/ResourceModel.cpp
index d672a2ac..e8af0e7a 100644
--- a/launcher/ui/pages/modplatform/ResourceModel.cpp
+++ b/launcher/ui/pages/modplatform/ResourceModel.cpp
@@ -20,6 +20,8 @@
#include "ui/pages/modplatform/ResourcePage.h"
#include "ui/widgets/ProjectItem.h"
+namespace ResourceDownload {
+
QHash<ResourceModel*, bool> ResourceModel::s_running_models;
ResourceModel::ResourceModel(ResourcePage* parent, ResourceAPI* api) : QAbstractListModel(), m_api(api), m_associated_page(parent)
@@ -256,3 +258,5 @@ void ResourceModel::searchRequestAborted()
m_next_search_offset = 0;
search();
}
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/ResourceModel.h b/launcher/ui/pages/modplatform/ResourceModel.h
index af0e9f55..6a94c399 100644
--- a/launcher/ui/pages/modplatform/ResourceModel.h
+++ b/launcher/ui/pages/modplatform/ResourceModel.h
@@ -9,13 +9,15 @@
#include "tasks/ConcurrentTask.h"
class NetJob;
-class ResourcePage;
class ResourceAPI;
namespace ModPlatform {
struct IndexedPack;
}
+namespace ResourceDownload {
+
+class ResourcePage;
class ResourceModel : public QAbstractListModel {
Q_OBJECT
@@ -99,3 +101,5 @@ class ResourceModel : public QAbstractListModel {
void searchRequestFailed(QString reason, int network_error_code);
void searchRequestAborted();
};
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/ResourcePage.cpp b/launcher/ui/pages/modplatform/ResourcePage.cpp
index 3b382d20..161b5c22 100644
--- a/launcher/ui/pages/modplatform/ResourcePage.cpp
+++ b/launcher/ui/pages/modplatform/ResourcePage.cpp
@@ -13,6 +13,8 @@
#include "ui/pages/modplatform/ResourceModel.h"
#include "ui/widgets/ProjectItem.h"
+namespace ResourceDownload {
+
ResourcePage::ResourcePage(ResourceDownloadDialog* parent, BaseInstance& base_instance)
: QWidget(parent), m_base_instance(base_instance), m_ui(new Ui::ResourcePage), m_parent_dialog(parent), m_fetch_progress(this, false)
{
@@ -345,3 +347,5 @@ void ResourcePage::openUrl(const QUrl& url)
// open in the user's web browser
QDesktopServices::openUrl(url);
}
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/ResourcePage.h b/launcher/ui/pages/modplatform/ResourcePage.h
index 32aad3d9..f731cf56 100644
--- a/launcher/ui/pages/modplatform/ResourcePage.h
+++ b/launcher/ui/pages/modplatform/ResourcePage.h
@@ -14,8 +14,11 @@ class ResourcePage;
}
class BaseInstance;
-class ResourceModel;
+
+namespace ResourceDownload {
+
class ResourceDownloadDialog;
+class ResourceModel;
class ResourcePage : public QWidget, public BasePage {
Q_OBJECT
@@ -93,3 +96,5 @@ class ResourcePage : public QWidget, public BasePage {
// Used to do instant searching with a delay to cache quick changes
QTimer m_search_timer;
};
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/flame/FlameResourceModels.cpp b/launcher/ui/pages/modplatform/flame/FlameResourceModels.cpp
index b602dfac..cfe4080a 100644
--- a/launcher/ui/pages/modplatform/flame/FlameResourceModels.cpp
+++ b/launcher/ui/pages/modplatform/flame/FlameResourceModels.cpp
@@ -1,31 +1,35 @@
#include "FlameResourceModels.h"
+
#include "Json.h"
+
#include "modplatform/flame/FlameModIndex.h"
-namespace FlameMod {
+namespace ResourceDownload {
// NOLINTNEXTLINE(modernize-avoid-c-arrays)
-const char* ListModel::sorts[6]{ "Featured", "Popularity", "LastUpdated", "Name", "Author", "TotalDownloads" };
+const char* FlameModModel::sorts[6]{ "Featured", "Popularity", "LastUpdated", "Name", "Author", "TotalDownloads" };
+
+FlameModModel::FlameModModel(FlameModPage* parent) : ModModel(parent, new FlameAPI) {}
-void ListModel::loadIndexedPack(ModPlatform::IndexedPack& m, QJsonObject& obj)
+void FlameModModel::loadIndexedPack(ModPlatform::IndexedPack& m, QJsonObject& obj)
{
FlameMod::loadIndexedPack(m, obj);
}
// We already deal with the URLs when initializing the pack, due to the API response's structure
-void ListModel::loadExtraPackInfo(ModPlatform::IndexedPack& m, QJsonObject& obj)
+void FlameModModel::loadExtraPackInfo(ModPlatform::IndexedPack& m, QJsonObject& obj)
{
FlameMod::loadBody(m, obj);
}
-void ListModel::loadIndexedPackVersions(ModPlatform::IndexedPack& m, QJsonArray& arr)
+void FlameModModel::loadIndexedPackVersions(ModPlatform::IndexedPack& m, QJsonArray& arr)
{
FlameMod::loadIndexedPackVersions(m, arr, APPLICATION->network(), &m_associated_page->m_base_instance);
}
-auto ListModel::documentToArray(QJsonDocument& obj) const -> QJsonArray
+auto FlameModModel::documentToArray(QJsonDocument& obj) const -> QJsonArray
{
return Json::ensureArray(obj.object(), "data");
}
-} // namespace FlameMod
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/flame/FlameResourceModels.h b/launcher/ui/pages/modplatform/flame/FlameResourceModels.h
index b94377d3..501937e2 100644
--- a/launcher/ui/pages/modplatform/flame/FlameResourceModels.h
+++ b/launcher/ui/pages/modplatform/flame/FlameResourceModels.h
@@ -2,14 +2,18 @@
#include "modplatform/flame/FlameAPI.h"
-namespace FlameMod {
+#include "ui/pages/modplatform/ModModel.h"
-class ListModel : public ModPlatform::ListModel {
+#include "ui/pages/modplatform/flame/FlameResourcePages.h"
+
+namespace ResourceDownload {
+
+class FlameModModel : public ModModel {
Q_OBJECT
public:
- ListModel(FlameModPage* parent) : ModPlatform::ListModel(parent, new FlameAPI) {}
- ~ListModel() override = default;
+ FlameModModel(FlameModPage* parent);
+ ~FlameModModel() override = default;
private:
void loadIndexedPack(ModPlatform::IndexedPack& m, QJsonObject& obj) override;
@@ -23,4 +27,4 @@ class ListModel : public ModPlatform::ListModel {
inline auto getSorts() const -> const char** override { return sorts; };
};
-} // namespace FlameMod
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/flame/FlameResourcePages.cpp b/launcher/ui/pages/modplatform/flame/FlameResourcePages.cpp
index 490578ad..723819fb 100644
--- a/launcher/ui/pages/modplatform/flame/FlameResourcePages.cpp
+++ b/launcher/ui/pages/modplatform/flame/FlameResourcePages.cpp
@@ -40,10 +40,12 @@
#include "FlameResourceModels.h"
#include "ui/dialogs/ModDownloadDialog.h"
+namespace ResourceDownload {
+
FlameModPage::FlameModPage(ModDownloadDialog* dialog, BaseInstance& instance)
: ModPage(dialog, instance)
{
- m_model = new FlameMod::ListModel(this);
+ m_model = new FlameModModel(this);
m_ui->packView->setModel(m_model);
// index is used to set the sorting with the flame api
@@ -95,3 +97,5 @@ void FlameModPage::openUrl(const QUrl& url)
ModPage::openUrl(url);
}
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/flame/FlameResourcePages.h b/launcher/ui/pages/modplatform/flame/FlameResourcePages.h
index 597a0c25..6c7d0247 100644
--- a/launcher/ui/pages/modplatform/flame/FlameResourcePages.h
+++ b/launcher/ui/pages/modplatform/flame/FlameResourcePages.h
@@ -42,6 +42,16 @@
#include "ui/pages/modplatform/ModPage.h"
+namespace ResourceDownload {
+
+namespace Flame {
+static inline QString displayName() { return "CurseForge"; }
+static inline QIcon icon() { return APPLICATION->getThemedIcon("flame"); }
+static inline QString id() { return "curseforge"; }
+static inline QString debugName() { return "Flame"; }
+static inline QString metaEntryBase() { return "FlameMods"; };
+}
+
class FlameModPage : public ModPage {
Q_OBJECT
@@ -54,18 +64,20 @@ class FlameModPage : public ModPage {
FlameModPage(ModDownloadDialog* dialog, BaseInstance& instance);
~FlameModPage() override = default;
- inline auto displayName() const -> QString override { return "CurseForge"; }
- inline auto icon() const -> QIcon override { return APPLICATION->getThemedIcon("flame"); }
- inline auto id() const -> QString override { return "curseforge"; }
- inline auto helpPage() const -> QString override { return "Mod-platform"; }
+ [[nodiscard]] bool shouldDisplay() const override;
- inline auto debugName() const -> QString override { return "Flame"; }
- inline auto metaEntryBase() const -> QString override { return "FlameMods"; };
+ [[nodiscard]] inline auto displayName() const -> QString override { return Flame::displayName(); }
+ [[nodiscard]] inline auto icon() const -> QIcon override { return Flame::icon(); }
+ [[nodiscard]] inline auto id() const -> QString override { return Flame::id(); }
+ [[nodiscard]] inline auto debugName() const -> QString override { return Flame::debugName(); }
+ [[nodiscard]] inline auto metaEntryBase() const -> QString override { return Flame::metaEntryBase(); }
- auto validateVersion(ModPlatform::IndexedVersion& ver, QString mineVer, std::optional<ResourceAPI::ModLoaderTypes> loaders = {}) const -> bool override;
- bool optedOut(ModPlatform::IndexedVersion& ver) const override;
+ [[nodiscard]] inline auto helpPage() const -> QString override { return "Mod-platform"; }
- auto shouldDisplay() const -> bool override;
+ bool validateVersion(ModPlatform::IndexedVersion& ver, QString mineVer, std::optional<ResourceAPI::ModLoaderTypes> loaders = {}) const override;
+ bool optedOut(ModPlatform::IndexedVersion& ver) const override;
void openUrl(const QUrl& url) override;
};
+
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthResourceModels.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthResourceModels.cpp
index 51278546..ee96f0de 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthResourceModels.cpp
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthResourceModels.cpp
@@ -23,31 +23,31 @@
#include "modplatform/modrinth/ModrinthAPI.h"
#include "modplatform/modrinth/ModrinthPackIndex.h"
-namespace Modrinth {
+namespace ResourceDownload {
// NOLINTNEXTLINE(modernize-avoid-c-arrays)
-const char* ListModel::sorts[5]{ "relevance", "downloads", "follows", "updated", "newest" };
+const char* ModrinthModModel::sorts[5]{ "relevance", "downloads", "follows", "updated", "newest" };
-void ListModel::loadIndexedPack(ModPlatform::IndexedPack& m, QJsonObject& obj)
+ModrinthModModel::ModrinthModModel(ModrinthModPage* parent) : ModModel(parent, new ModrinthAPI){};
+
+void ModrinthModModel::loadIndexedPack(ModPlatform::IndexedPack& m, QJsonObject& obj)
{
- Modrinth::loadIndexedPack(m, obj);
+ ::Modrinth::loadIndexedPack(m, obj);
}
-void ListModel::loadExtraPackInfo(ModPlatform::IndexedPack& m, QJsonObject& obj)
+void ModrinthModModel::loadExtraPackInfo(ModPlatform::IndexedPack& m, QJsonObject& obj)
{
- Modrinth::loadExtraPackData(m, obj);
+ ::Modrinth::loadExtraPackData(m, obj);
}
-void ListModel::loadIndexedPackVersions(ModPlatform::IndexedPack& m, QJsonArray& arr)
+void ModrinthModModel::loadIndexedPackVersions(ModPlatform::IndexedPack& m, QJsonArray& arr)
{
- Modrinth::loadIndexedPackVersions(m, arr, APPLICATION->network(), &m_associated_page->m_base_instance);
+ ::Modrinth::loadIndexedPackVersions(m, arr, APPLICATION->network(), &m_associated_page->m_base_instance);
}
-auto ListModel::documentToArray(QJsonDocument& obj) const -> QJsonArray
+auto ModrinthModModel::documentToArray(QJsonDocument& obj) const -> QJsonArray
{
return obj.object().value("hits").toArray();
}
-} // namespace Modrinth
-
-
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthResourceModels.h b/launcher/ui/pages/modplatform/modrinth/ModrinthResourceModels.h
index bf62d22f..b0088a73 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthResourceModels.h
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthResourceModels.h
@@ -20,24 +20,22 @@
#include "ui/pages/modplatform/ModModel.h"
-#include "ui/pages/modplatform/modrinth/ModrinthResourcePages.h"
+namespace ResourceDownload {
-#include "modplatform/modrinth/ModrinthAPI.h"
+class ModrinthModPage;
-namespace Modrinth {
-
-class ListModel : public ModPlatform::ListModel {
+class ModrinthModModel : public ModModel {
Q_OBJECT
public:
- ListModel(ModrinthModPage* parent) : ModPlatform::ListModel(parent, new ModrinthAPI){};
- ~ListModel() override = default;
+ ModrinthModModel(ModrinthModPage* parent);
+ ~ModrinthModModel() override = default;
private:
void loadIndexedPack(ModPlatform::IndexedPack& m, QJsonObject& obj) override;
void loadExtraPackInfo(ModPlatform::IndexedPack& m, QJsonObject& obj) override;
void loadIndexedPackVersions(ModPlatform::IndexedPack& m, QJsonArray& arr) override;
-
+
auto documentToArray(QJsonDocument& obj) const -> QJsonArray override;
// NOLINTNEXTLINE(modernize-avoid-c-arrays)
@@ -45,5 +43,4 @@ class ListModel : public ModPlatform::ListModel {
inline auto getSorts() const -> const char** override { return sorts; };
};
-} // namespace Modrinth
-
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthResourcePages.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthResourcePages.cpp
index 17f0bc93..5d2680b0 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthResourcePages.cpp
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthResourcePages.cpp
@@ -38,13 +38,16 @@
#include "modplatform/modrinth/ModrinthAPI.h"
-#include "ModrinthResourceModels.h"
#include "ui/dialogs/ModDownloadDialog.h"
+#include "ui/pages/modplatform/modrinth/ModrinthResourceModels.h"
+
+namespace ResourceDownload {
+
ModrinthModPage::ModrinthModPage(ModDownloadDialog* dialog, BaseInstance& instance)
: ModPage(dialog, instance)
{
- m_model = new Modrinth::ListModel(this);
+ m_model = new ModrinthModModel(this);
m_ui->packView->setModel(m_model);
// index is used to set the sorting with the modrinth api
@@ -87,3 +90,4 @@ auto ModrinthModPage::validateVersion(ModPlatform::IndexedVersion& ver, QString
// my Qt, so we need to implement this in every derived class...
auto ModrinthModPage::shouldDisplay() const -> bool { return true; }
+} // namespace ResourceDownload
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthResourcePages.h b/launcher/ui/pages/modplatform/modrinth/ModrinthResourcePages.h
index 6f816cfd..07b32c0c 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthResourcePages.h
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthResourcePages.h
@@ -41,11 +41,15 @@
#include "ui/pages/modplatform/ModPage.h"
+namespace ResourceDownload {
+
+namespace Modrinth {
static inline QString displayName() { return "Modrinth"; }
static inline QIcon icon() { return APPLICATION->getThemedIcon("modrinth"); }
static inline QString id() { return "modrinth"; }
static inline QString debugName() { return "Modrinth"; }
static inline QString metaEntryBase() { return "ModrinthPacks"; };
+}
class ModrinthModPage : public ModPage {
Q_OBJECT
@@ -61,12 +65,15 @@ class ModrinthModPage : public ModPage {
[[nodiscard]] bool shouldDisplay() const override;
- [[nodiscard]] inline auto displayName() const -> QString override { return ::displayName(); } \
- [[nodiscard]] inline auto icon() const -> QIcon override { return ::icon(); } \
- [[nodiscard]] inline auto id() const -> QString override { return ::id(); } \
- [[nodiscard]] inline auto debugName() const -> QString override { return ::debugName(); } \
- [[nodiscard]] inline auto metaEntryBase() const -> QString override { return ::metaEntryBase(); }
- inline auto helpPage() const -> QString override { return "Mod-platform"; }
+ [[nodiscard]] inline auto displayName() const -> QString override { return Modrinth::displayName(); }
+ [[nodiscard]] inline auto icon() const -> QIcon override { return Modrinth::icon(); }
+ [[nodiscard]] inline auto id() const -> QString override { return Modrinth::id(); }
+ [[nodiscard]] inline auto debugName() const -> QString override { return Modrinth::debugName(); }
+ [[nodiscard]] inline auto metaEntryBase() const -> QString override { return Modrinth::metaEntryBase(); }
+
+ [[nodiscard]] inline auto helpPage() const -> QString override { return "Mod-platform"; }
auto validateVersion(ModPlatform::IndexedVersion& ver, QString mineVer, std::optional<ResourceAPI::ModLoaderTypes> loaders = {}) const -> bool override;
};
+
+} // namespace ResourceDownload