From 9359c4833dfcde684f5d68d31a3bdfa4c8d45cfc Mon Sep 17 00:00:00 2001 From: Trial97 Date: Sun, 30 Mar 2025 17:32:24 +0300 Subject: [PATCH] chore: update link and sync with other providers changes Signed-off-by: Trial97 --- buildconfig/BuildConfig.h | 1 + launcher/Application.cpp | 1 - launcher/CMakeLists.txt | 13 +++---- .../FTBPackInstallTask.cpp | 24 ++++++------ .../{modpacksch => ftb}/FTBPackInstallTask.h | 4 +- .../{modpacksch => ftb}/FTBPackManifest.cpp | 38 +++++++++---------- .../{modpacksch => ftb}/FTBPackManifest.h | 6 +-- .../pages/modplatform/ftb/FtbFilterModel.cpp | 8 ++-- .../ui/pages/modplatform/ftb/FtbListModel.cpp | 26 ++++++------- .../ui/pages/modplatform/ftb/FtbListModel.h | 8 ++-- launcher/ui/pages/modplatform/ftb/FtbPage.cpp | 16 ++++++-- launcher/ui/pages/modplatform/ftb/FtbPage.h | 10 ++++- 12 files changed, 82 insertions(+), 73 deletions(-) rename launcher/modplatform/{modpacksch => ftb}/FTBPackInstallTask.cpp (93%) rename launcher/modplatform/{modpacksch => ftb}/FTBPackInstallTask.h (98%) rename launcher/modplatform/{modpacksch => ftb}/FTBPackManifest.cpp (86%) rename launcher/modplatform/{modpacksch => ftb}/FTBPackManifest.h (97%) diff --git a/buildconfig/BuildConfig.h b/buildconfig/BuildConfig.h index 045d987d4..29e018746 100644 --- a/buildconfig/BuildConfig.h +++ b/buildconfig/BuildConfig.h @@ -173,6 +173,7 @@ class Config { QString TRANSLATION_FILES_URL; QString MODPACKSCH_API_BASE_URL = "https://api.modpacks.ch/"; + QString FTB_API_BASE_URL = "https://api.feed-the-beast.com/v1/modpacks/public"; QString LEGACY_FTB_CDN_BASE_URL = "https://dist.creeper.host/FTB2/"; diff --git a/launcher/Application.cpp b/launcher/Application.cpp index d38770f4e..d7182c48d 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -999,7 +999,6 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv) m_metacache->addBase("FTBPacks", QDir("cache/FTBPacks").absolutePath()); m_metacache->addBase("TechnicPacks", QDir("cache/TechnicPacks").absolutePath()); m_metacache->addBase("FlamePacks", QDir("cache/FlamePacks").absolutePath()); - m_metacache->addBase("ModpacksCHPacks", QDir("cache/ModpacksCHPacks").absolutePath()); m_metacache->addBase("FlameMods", QDir("cache/FlameMods").absolutePath()); m_metacache->addBase("ModrinthPacks", QDir("cache/ModrinthPacks").absolutePath()); m_metacache->addBase("ModrinthModpacks", QDir("cache/ModrinthModpacks").absolutePath()); diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt index b83237dee..ecba9e9cb 100644 --- a/launcher/CMakeLists.txt +++ b/launcher/CMakeLists.txt @@ -533,6 +533,11 @@ set(FTB_SOURCES modplatform/import_ftb/PackInstallTask.cpp modplatform/import_ftb/PackHelpers.h modplatform/import_ftb/PackHelpers.cpp + + modplatform/ftb/FTBPackInstallTask.h + modplatform/ftb/FTBPackInstallTask.cpp + modplatform/ftb/FTBPackManifest.h + modplatform/ftb/FTBPackManifest.cpp ) set(FLAME_SOURCES @@ -566,13 +571,6 @@ set(MODRINTH_SOURCES modplatform/modrinth/ModrinthPackExportTask.h ) -set(MODPACKSCH_SOURCES - modplatform/modpacksch/FTBPackInstallTask.h - modplatform/modpacksch/FTBPackInstallTask.cpp - modplatform/modpacksch/FTBPackManifest.h - modplatform/modpacksch/FTBPackManifest.cpp -) - set(PACKWIZ_SOURCES modplatform/packwiz/Packwiz.h modplatform/packwiz/Packwiz.cpp @@ -785,7 +783,6 @@ set(LOGIC_SOURCES ${FTB_SOURCES} ${FLAME_SOURCES} ${MODRINTH_SOURCES} - ${MODPACKSCH_SOURCES} ${PACKWIZ_SOURCES} ${TECHNIC_SOURCES} ${ATLAUNCHER_SOURCES} diff --git a/launcher/modplatform/modpacksch/FTBPackInstallTask.cpp b/launcher/modplatform/ftb/FTBPackInstallTask.cpp similarity index 93% rename from launcher/modplatform/modpacksch/FTBPackInstallTask.cpp rename to launcher/modplatform/ftb/FTBPackInstallTask.cpp index 455d3f7b1..063b7cbbc 100644 --- a/launcher/modplatform/modpacksch/FTBPackInstallTask.cpp +++ b/launcher/modplatform/ftb/FTBPackInstallTask.cpp @@ -42,6 +42,7 @@ #include "Json.h" #include "minecraft/MinecraftInstance.h" #include "minecraft/PackProfile.h" +#include "modplatform/flame/FileResolvingTask.h" #include "modplatform/flame/PackManifest.h" #include "net/ChecksumValidator.h" #include "settings/INISettingsObject.h" @@ -50,7 +51,7 @@ #include "BuildConfig.h" #include "ui/dialogs/BlockedModsDialog.h" -namespace ModpacksCH { +namespace FTB { PackInstallTask::PackInstallTask(Modpack pack, QString version, QWidget* parent) : m_pack(std::move(pack)), m_versionName(std::move(version)), m_parent(parent) @@ -78,7 +79,7 @@ void PackInstallTask::executeTask() // Find pack version auto version_it = std::find_if(m_pack.versions.constBegin(), m_pack.versions.constEnd(), - [this](ModpacksCH::VersionInfo const& a) { return a.name == m_versionName; }); + [this](FTB::VersionInfo const& a) { return a.name == m_versionName; }); if (version_it == m_pack.versions.constEnd()) { emitFailed(tr("Failed to find pack version %1").arg(m_versionName)); @@ -87,9 +88,9 @@ void PackInstallTask::executeTask() auto version = *version_it; - auto netJob = makeShared("ModpacksCH::VersionFetch", APPLICATION->network()); + auto netJob = makeShared("FTB::VersionFetch", APPLICATION->network()); - auto searchUrl = QString(BuildConfig.MODPACKSCH_API_BASE_URL + "public/modpack/%1/%2").arg(m_pack.id).arg(version.id); + auto searchUrl = QString(BuildConfig.FTB_API_BASE_URL + "/modpack/%1/%2").arg(m_pack.id).arg(version.id); m_response.reset(new QByteArray()); netJob->addNetAction(Net::Download::makeByteArray(QUrl(searchUrl), m_response)); @@ -111,16 +112,15 @@ void PackInstallTask::onManifestDownloadSucceeded() QJsonParseError parse_error{}; QJsonDocument doc = QJsonDocument::fromJson(*m_response, &parse_error); if (parse_error.error != QJsonParseError::NoError) { - qWarning() << "Error while parsing JSON response from ModpacksCH at " << parse_error.offset - << " reason: " << parse_error.errorString(); + qWarning() << "Error while parsing JSON response from FTB at " << parse_error.offset << " reason: " << parse_error.errorString(); qWarning() << *m_response; return; } - ModpacksCH::Version version; + FTB::Version version; try { auto obj = Json::requireObject(doc); - ModpacksCH::loadVersion(version, obj); + FTB::loadVersion(version, obj); } catch (const JSONValidationError& e) { emitFailed(tr("Could not understand pack manifest:\n") + e.cause()); return; @@ -151,8 +151,6 @@ void PackInstallTask::resolveMods() flameFile.projectId = file.curseforge.project_id; flameFile.fileId = file.curseforge.file_id; - // flame_file.hash = file.sha1; - manifest.files.insert(flameFile.fileId, flameFile); m_fileIds.append(flameFile.fileId); } else { @@ -160,7 +158,7 @@ void PackInstallTask::resolveMods() } } - m_modIdResolverTask.reset(new Flame::FileResolvingTask(APPLICATION->network(), manifest)); + m_modIdResolverTask.reset(new Flame::FileResolvingTask(manifest)); connect(m_modIdResolverTask.get(), &Flame::FileResolvingTask::succeeded, this, &PackInstallTask::onResolveModsSucceeded); connect(m_modIdResolverTask.get(), &Flame::FileResolvingTask::failed, this, &PackInstallTask::onResolveModsFailed); @@ -279,7 +277,7 @@ void PackInstallTask::createInstance() instance.setName(name()); instance.setIconKey(m_instIcon); - instance.setManagedPack("modpacksch", QString::number(m_pack.id), m_pack.name, QString::number(m_version.id), m_version.name); + instance.setManagedPack("ftb", QString::number(m_pack.id), m_pack.name, QString::number(m_version.id), m_version.name); instance.saveNow(); @@ -385,4 +383,4 @@ void PackInstallTask::copyBlockedMods() setAbortable(true); } -} // namespace ModpacksCH +} // namespace FTB diff --git a/launcher/modplatform/modpacksch/FTBPackInstallTask.h b/launcher/modplatform/ftb/FTBPackInstallTask.h similarity index 98% rename from launcher/modplatform/modpacksch/FTBPackInstallTask.h rename to launcher/modplatform/ftb/FTBPackInstallTask.h index fdd5420a6..7cbbfc38a 100644 --- a/launcher/modplatform/modpacksch/FTBPackInstallTask.h +++ b/launcher/modplatform/ftb/FTBPackInstallTask.h @@ -47,7 +47,7 @@ #include -namespace ModpacksCH { +namespace FTB { class PackInstallTask final : public InstanceTask { Q_OBJECT @@ -97,4 +97,4 @@ class PackInstallTask final : public InstanceTask { QWidget* m_parent; }; -} // namespace ModpacksCH +} // namespace FTB diff --git a/launcher/modplatform/modpacksch/FTBPackManifest.cpp b/launcher/modplatform/ftb/FTBPackManifest.cpp similarity index 86% rename from launcher/modplatform/modpacksch/FTBPackManifest.cpp rename to launcher/modplatform/ftb/FTBPackManifest.cpp index fc2cf1df8..85337e731 100644 --- a/launcher/modplatform/modpacksch/FTBPackManifest.cpp +++ b/launcher/modplatform/ftb/FTBPackManifest.cpp @@ -38,20 +38,20 @@ #include "Json.h" -static void loadSpecs(ModpacksCH::Specs& s, QJsonObject& obj) +static void loadSpecs(FTB::Specs& s, QJsonObject& obj) { s.id = Json::requireInteger(obj, "id"); s.minimum = Json::requireInteger(obj, "minimum"); s.recommended = Json::requireInteger(obj, "recommended"); } -static void loadTag(ModpacksCH::Tag& t, QJsonObject& obj) +static void loadTag(FTB::Tag& t, QJsonObject& obj) { t.id = Json::requireInteger(obj, "id"); t.name = Json::requireString(obj, "name"); } -static void loadArt(ModpacksCH::Art& a, QJsonObject& obj) +static void loadArt(FTB::Art& a, QJsonObject& obj) { a.id = Json::requireInteger(obj, "id"); a.url = Json::requireString(obj, "url"); @@ -60,11 +60,11 @@ static void loadArt(ModpacksCH::Art& a, QJsonObject& obj) a.height = Json::requireInteger(obj, "height"); a.compressed = Json::requireBoolean(obj, "compressed"); a.sha1 = Json::requireString(obj, "sha1"); - a.size = Json::requireInteger(obj, "size"); + a.size = Json::ensureInteger(obj, "size"); a.updated = Json::requireInteger(obj, "updated"); } -static void loadAuthor(ModpacksCH::Author& a, QJsonObject& obj) +static void loadAuthor(FTB::Author& a, QJsonObject& obj) { a.id = Json::requireInteger(obj, "id"); a.name = Json::requireString(obj, "name"); @@ -73,7 +73,7 @@ static void loadAuthor(ModpacksCH::Author& a, QJsonObject& obj) a.updated = Json::requireInteger(obj, "updated"); } -static void loadVersionInfo(ModpacksCH::VersionInfo& v, QJsonObject& obj) +static void loadVersionInfo(FTB::VersionInfo& v, QJsonObject& obj) { v.id = Json::requireInteger(obj, "id"); v.name = Json::requireString(obj, "name"); @@ -83,7 +83,7 @@ static void loadVersionInfo(ModpacksCH::VersionInfo& v, QJsonObject& obj) loadSpecs(v.specs, specs); } -void ModpacksCH::loadModpack(ModpacksCH::Modpack& m, QJsonObject& obj) +void FTB::loadModpack(FTB::Modpack& m, QJsonObject& obj) { m.id = Json::requireInteger(obj, "id"); m.name = Json::requireString(obj, "name"); @@ -95,39 +95,39 @@ void ModpacksCH::loadModpack(ModpacksCH::Modpack& m, QJsonObject& obj) m.installs = Json::requireInteger(obj, "installs"); m.plays = Json::requireInteger(obj, "plays"); m.updated = Json::requireInteger(obj, "updated"); - m.refreshed = Json::requireInteger(obj, "refreshed"); + m.refreshed = Json::ensureInteger(obj, "refreshed"); auto artArr = Json::requireArray(obj, "art"); for (QJsonValueRef artRaw : artArr) { auto artObj = Json::requireObject(artRaw); - ModpacksCH::Art art; + FTB::Art art; loadArt(art, artObj); m.art.append(art); } auto authorArr = Json::requireArray(obj, "authors"); for (QJsonValueRef authorRaw : authorArr) { auto authorObj = Json::requireObject(authorRaw); - ModpacksCH::Author author; + FTB::Author author; loadAuthor(author, authorObj); m.authors.append(author); } auto versionArr = Json::requireArray(obj, "versions"); for (QJsonValueRef versionRaw : versionArr) { auto versionObj = Json::requireObject(versionRaw); - ModpacksCH::VersionInfo version; + FTB::VersionInfo version; loadVersionInfo(version, versionObj); m.versions.append(version); } auto tagArr = Json::requireArray(obj, "tags"); for (QJsonValueRef tagRaw : tagArr) { auto tagObj = Json::requireObject(tagRaw); - ModpacksCH::Tag tag; + FTB::Tag tag; loadTag(tag, tagObj); m.tags.append(tag); } m.updated = Json::requireInteger(obj, "updated"); } -static void loadVersionTarget(ModpacksCH::VersionTarget& a, QJsonObject& obj) +static void loadVersionTarget(FTB::VersionTarget& a, QJsonObject& obj) { a.id = Json::requireInteger(obj, "id"); a.name = Json::requireString(obj, "name"); @@ -136,7 +136,7 @@ static void loadVersionTarget(ModpacksCH::VersionTarget& a, QJsonObject& obj) a.updated = Json::requireInteger(obj, "updated"); } -static void loadVersionFile(ModpacksCH::VersionFile& a, QJsonObject& obj) +static void loadVersionFile(FTB::VersionFile& a, QJsonObject& obj) { a.id = Json::requireInteger(obj, "id"); a.type = Json::requireString(obj, "type"); @@ -145,7 +145,7 @@ static void loadVersionFile(ModpacksCH::VersionFile& a, QJsonObject& obj) a.version = Json::requireString(obj, "version"); a.url = Json::ensureString(obj, "url"); // optional a.sha1 = Json::requireString(obj, "sha1"); - a.size = Json::requireInteger(obj, "size"); + a.size = Json::ensureInteger(obj, "size"); a.clientOnly = Json::requireBoolean(obj, "clientonly"); a.serverOnly = Json::requireBoolean(obj, "serveronly"); a.optional = Json::requireBoolean(obj, "optional"); @@ -155,7 +155,7 @@ static void loadVersionFile(ModpacksCH::VersionFile& a, QJsonObject& obj) a.curseforge.file_id = Json::ensureInteger(curseforgeObj, "file"); } -void ModpacksCH::loadVersion(ModpacksCH::Version& m, QJsonObject& obj) +void FTB::loadVersion(FTB::Version& m, QJsonObject& obj) { m.id = Json::requireInteger(obj, "id"); m.parent = Json::requireInteger(obj, "parent"); @@ -164,20 +164,20 @@ void ModpacksCH::loadVersion(ModpacksCH::Version& m, QJsonObject& obj) m.installs = Json::requireInteger(obj, "installs"); m.plays = Json::requireInteger(obj, "plays"); m.updated = Json::requireInteger(obj, "updated"); - m.refreshed = Json::requireInteger(obj, "refreshed"); + m.refreshed = Json::ensureInteger(obj, "refreshed"); auto specs = Json::requireObject(obj, "specs"); loadSpecs(m.specs, specs); auto targetArr = Json::requireArray(obj, "targets"); for (QJsonValueRef targetRaw : targetArr) { auto versionObj = Json::requireObject(targetRaw); - ModpacksCH::VersionTarget target; + FTB::VersionTarget target; loadVersionTarget(target, versionObj); m.targets.append(target); } auto fileArr = Json::requireArray(obj, "files"); for (QJsonValueRef fileRaw : fileArr) { auto fileObj = Json::requireObject(fileRaw); - ModpacksCH::VersionFile file; + FTB::VersionFile file; loadVersionFile(file, fileObj); m.files.append(file); } diff --git a/launcher/modplatform/modpacksch/FTBPackManifest.h b/launcher/modplatform/ftb/FTBPackManifest.h similarity index 97% rename from launcher/modplatform/modpacksch/FTBPackManifest.h rename to launcher/modplatform/ftb/FTBPackManifest.h index ee7ed1526..704bde3e5 100644 --- a/launcher/modplatform/modpacksch/FTBPackManifest.h +++ b/launcher/modplatform/ftb/FTBPackManifest.h @@ -42,7 +42,7 @@ #include #include -namespace ModpacksCH { +namespace FTB { struct Specs { int id; @@ -152,6 +152,6 @@ struct VersionChangelog { void loadModpack(Modpack& m, QJsonObject& obj); void loadVersion(Version& m, QJsonObject& obj); -} // namespace ModpacksCH +} // namespace FTB -Q_DECLARE_METATYPE(ModpacksCH::Modpack) +Q_DECLARE_METATYPE(FTB::Modpack) diff --git a/launcher/ui/pages/modplatform/ftb/FtbFilterModel.cpp b/launcher/ui/pages/modplatform/ftb/FtbFilterModel.cpp index ae8f11970..e33dda980 100644 --- a/launcher/ui/pages/modplatform/ftb/FtbFilterModel.cpp +++ b/launcher/ui/pages/modplatform/ftb/FtbFilterModel.cpp @@ -18,7 +18,7 @@ #include -#include "modplatform/modpacksch/FTBPackManifest.h" +#include "modplatform/ftb/FTBPackManifest.h" #include "StringUtils.h" @@ -66,14 +66,14 @@ bool FilterModel::filterAcceptsRow(int sourceRow, const QModelIndex& sourceParen } auto index = sourceModel()->index(sourceRow, 0, sourceParent); - auto pack = sourceModel()->data(index, Qt::UserRole).value(); + auto pack = sourceModel()->data(index, Qt::UserRole).value(); return pack.name.contains(m_searchTerm, Qt::CaseInsensitive); } bool FilterModel::lessThan(const QModelIndex& left, const QModelIndex& right) const { - ModpacksCH::Modpack leftPack = sourceModel()->data(left, Qt::UserRole).value(); - ModpacksCH::Modpack rightPack = sourceModel()->data(right, Qt::UserRole).value(); + FTB::Modpack leftPack = sourceModel()->data(left, Qt::UserRole).value(); + FTB::Modpack rightPack = sourceModel()->data(right, Qt::UserRole).value(); if (m_currentSorting == ByPlays) { return leftPack.plays < rightPack.plays; diff --git a/launcher/ui/pages/modplatform/ftb/FtbListModel.cpp b/launcher/ui/pages/modplatform/ftb/FtbListModel.cpp index 40642eed4..83e6202ef 100644 --- a/launcher/ui/pages/modplatform/ftb/FtbListModel.cpp +++ b/launcher/ui/pages/modplatform/ftb/FtbListModel.cpp @@ -45,7 +45,7 @@ QVariant ListModel::data(const QModelIndex& index, int role) const return QString("INVALID INDEX %1").arg(pos); } - ModpacksCH::Modpack pack = m_modpacks.at(pos); + FTB::Modpack pack = m_modpacks.at(pos); if (role == Qt::DisplayRole) { return pack.name; } else if (role == Qt::ToolTipRole) { @@ -80,7 +80,7 @@ QVariant ListModel::data(const QModelIndex& index, int role) const void ListModel::getLogo(const QString& logo, const QString& logoUrl, LogoCallback callback) { if (m_logoMap.contains(logo)) { - callback(APPLICATION->metacache()->resolveEntry("ModpacksCHPacks", QString("logos/%1").arg(logo))->getFullPath()); + callback(APPLICATION->metacache()->resolveEntry("FTBPacks", QString("logos/%1").arg(logo))->getFullPath()); } else { requestLogo(logo, logoUrl); } @@ -95,7 +95,7 @@ void ListModel::request() endResetModel(); auto netJob = makeShared("Ftb::Request", APPLICATION->network()); - auto url = QString(BuildConfig.MODPACKSCH_API_BASE_URL + "public/modpack/all"); + auto url = QString(BuildConfig.FTB_API_BASE_URL + "/modpack/all"); m_response.reset(new QByteArray()); netJob->addNetAction(Net::Download::makeByteArray(QUrl(url), m_response)); m_jobPtr = netJob; @@ -119,8 +119,7 @@ void ListModel::requestFinished() QJsonParseError parse_error{}; QJsonDocument doc = QJsonDocument::fromJson(*m_response, &parse_error); if (parse_error.error != QJsonParseError::NoError) { - qWarning() << "Error while parsing JSON response from ModpacksCH at " << parse_error.offset - << " reason: " << parse_error.errorString(); + qWarning() << "Error while parsing JSON response from FTB at " << parse_error.offset << " reason: " << parse_error.errorString(); qWarning() << *m_response; return; } @@ -146,7 +145,7 @@ void ListModel::requestFailed(QString) void ListModel::requestPack() { auto netJob = makeShared("Ftb::Search", APPLICATION->network()); - auto searchUrl = QString(BuildConfig.MODPACKSCH_API_BASE_URL + "public/modpack/%1").arg(m_currentPack); + auto searchUrl = QString(BuildConfig.FTB_API_BASE_URL + "/modpack/%1").arg(m_currentPack); m_response.reset(new QByteArray()); netJob->addNetAction(Net::Download::makeByteArray(QUrl(searchUrl), m_response)); m_jobPtr = netJob; @@ -168,27 +167,26 @@ void ListModel::packRequestFinished() QJsonDocument doc = QJsonDocument::fromJson(*m_response, &parse_error); if (parse_error.error != QJsonParseError::NoError) { - qWarning() << "Error while parsing JSON response from ModpacksCH at " << parse_error.offset - << " reason: " << parse_error.errorString(); + qWarning() << "Error while parsing JSON response from FTB at " << parse_error.offset << " reason: " << parse_error.errorString(); qWarning() << *m_response; return; } auto obj = doc.object(); - ModpacksCH::Modpack pack; + FTB::Modpack pack; try { - ModpacksCH::loadModpack(pack, obj); + FTB::loadModpack(pack, obj); } catch (const JSONValidationError& e) { qDebug() << QString::fromUtf8(*m_response); - qWarning() << "Error while reading pack manifest from ModpacksCH: " << e.cause(); + qWarning() << "Error while reading pack manifest from FTB: " << e.cause(); return; } // Since there is no guarantee that packs have a version, this will just // ignore those "dud" packs. if (pack.versions.empty()) { - qWarning() << "ModpacksCH Pack " << pack.id << " ignored. reason: lacking any versions"; + qWarning() << "FTB Pack " << pack.id << " ignored. reason: lacking any versions"; } else { beginInsertRows(QModelIndex(), m_modpacks.size(), m_modpacks.size()); m_modpacks.append(pack); @@ -231,9 +229,9 @@ void ListModel::requestLogo(QString logo, QString url) return; } - MetaEntryPtr entry = APPLICATION->metacache()->resolveEntry("ModpacksCHPacks", QString("logos/%1").arg(logo)); + MetaEntryPtr entry = APPLICATION->metacache()->resolveEntry("FTBPacks", QString("logos/%1").arg(logo)); - auto job = makeShared(QString("ModpacksCH Icon Download %1").arg(logo), APPLICATION->network()); + auto job = makeShared(QString("FTB Icon Download %1").arg(logo), APPLICATION->network()); job->setAskRetry(false); job->addNetAction(Net::Download::makeCached(QUrl(url), entry)); diff --git a/launcher/ui/pages/modplatform/ftb/FtbListModel.h b/launcher/ui/pages/modplatform/ftb/FtbListModel.h index 2b43b027c..eb8a17649 100644 --- a/launcher/ui/pages/modplatform/ftb/FtbListModel.h +++ b/launcher/ui/pages/modplatform/ftb/FtbListModel.h @@ -19,7 +19,7 @@ #include #include -#include "modplatform/modpacksch/FTBPackManifest.h" +#include "modplatform/ftb/FTBPackManifest.h" #include "net/NetJob.h" namespace Ftb { @@ -31,8 +31,8 @@ struct Logo { bool failed = false; }; -typedef QMap LogoMap; -typedef std::function LogoCallback; +using LogoMap = QMap; +using LogoCallback = std::function; class ListModel : public QAbstractListModel { Q_OBJECT @@ -70,7 +70,7 @@ class ListModel : public QAbstractListModel { private: bool m_aborted = false; - QList m_modpacks; + QList m_modpacks; LogoMap m_logoMap; NetJob::Ptr m_jobPtr; diff --git a/launcher/ui/pages/modplatform/ftb/FtbPage.cpp b/launcher/ui/pages/modplatform/ftb/FtbPage.cpp index 36e37c2e8..83eb053f9 100644 --- a/launcher/ui/pages/modplatform/ftb/FtbPage.cpp +++ b/launcher/ui/pages/modplatform/ftb/FtbPage.cpp @@ -40,7 +40,7 @@ #include -#include "modplatform/modpacksch/FTBPackInstallTask.h" +#include "modplatform/ftb/FTBPackInstallTask.h" #include "ui/dialogs/NewInstanceDialog.h" #include "Markdown.h" @@ -130,7 +130,7 @@ void FtbPage::suggestCurrent() return; } - m_dialog->setSuggestedPack(m_selected.name, m_selectedVersion, new ModpacksCH::PackInstallTask(m_selected, m_selectedVersion, this)); + m_dialog->setSuggestedPack(m_selected.name, m_selectedVersion, new FTB::PackInstallTask(m_selected, m_selectedVersion, this)); for (auto art : m_selected.art) { if (art.type == "square") { auto editedLogoName = "ftb_" + m_selected.safeName; @@ -162,7 +162,7 @@ void FtbPage::onSelectionChanged(QModelIndex first, QModelIndex second) return; } - m_selected = m_filterModel->data(first, Qt::UserRole).value(); + m_selected = m_filterModel->data(first, Qt::UserRole).value(); QString output = markdownToHTML(m_selected.description.toUtf8()); m_ui->packDescription->setHtml(output); @@ -185,3 +185,13 @@ void FtbPage::onVersionSelectionChanged(QString data) m_selectedVersion = data; suggestCurrent(); } + +QString FtbPage::getSerachTerm() const +{ + return m_ui->searchEdit->text(); +} + +void FtbPage::setSearchTerm(QString term) +{ + m_ui->searchEdit->setText(term); +} \ No newline at end of file diff --git a/launcher/ui/pages/modplatform/ftb/FtbPage.h b/launcher/ui/pages/modplatform/ftb/FtbPage.h index 46db7a6f4..f484ccef0 100644 --- a/launcher/ui/pages/modplatform/ftb/FtbPage.h +++ b/launcher/ui/pages/modplatform/ftb/FtbPage.h @@ -43,6 +43,7 @@ #include "Application.h" #include "tasks/Task.h" #include "ui/pages/BasePage.h" +#include "ui/pages/modplatform/ModpackProviderBasePage.h" namespace Ui { class FtbPage; @@ -50,7 +51,7 @@ class FtbPage; class NewInstanceDialog; -class FtbPage : public QWidget, public BasePage { +class FtbPage : public QWidget, public ModpackProviderBasePage { Q_OBJECT public: @@ -68,6 +69,11 @@ class FtbPage : public QWidget, public BasePage { bool eventFilter(QObject* watched, QEvent* event) override; + /** Programatically set the term in the search bar. */ + virtual void setSearchTerm(QString) override; + /** Get the current term in the search bar. */ + [[nodiscard]] virtual QString getSerachTerm() const override; + private: void suggestCurrent(); @@ -84,7 +90,7 @@ class FtbPage : public QWidget, public BasePage { Ftb::ListModel* m_listModel = nullptr; Ftb::FilterModel* m_filterModel = nullptr; - ModpacksCH::Modpack m_selected; + FTB::Modpack m_selected; QString m_selectedVersion; bool m_initialised{ false };