From 568734eb8ad6ae716a94bbc80632b63028a747fa Mon Sep 17 00:00:00 2001 From: lumiscosity Date: Fri, 22 Dec 2023 22:01:05 +0100 Subject: [PATCH 1/4] add archived project warning Signed-off-by: lumiscosity (cherry picked from commit 358cf5b3485cfb23cce226c02fef03523468d4eb) --- launcher/modplatform/ModIndex.h | 2 ++ launcher/modplatform/modrinth/ModrinthPackIndex.cpp | 2 ++ launcher/modplatform/modrinth/ModrinthPackManifest.cpp | 2 ++ launcher/modplatform/modrinth/ModrinthPackManifest.h | 2 ++ launcher/ui/pages/modplatform/ResourcePage.cpp | 4 ++++ launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp | 2 +- launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp | 4 ++++ 7 files changed, 17 insertions(+), 1 deletion(-) diff --git a/launcher/modplatform/ModIndex.h b/launcher/modplatform/ModIndex.h index 72294c399..eff7e7f9f 100644 --- a/launcher/modplatform/ModIndex.h +++ b/launcher/modplatform/ModIndex.h @@ -122,6 +122,8 @@ struct ExtraPackData { QString wikiUrl; QString discordUrl; + QString status; + QString body; }; diff --git a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp index 7d0893261..c1c30ab5f 100644 --- a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp +++ b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp @@ -104,6 +104,8 @@ void Modrinth::loadExtraPackData(ModPlatform::IndexedPack& pack, QJsonObject& ob pack.extraData.donate.append(donate); } + pack.extraData.status = Json::ensureString(obj, "status"); + pack.extraData.body = Json::ensureString(obj, "body").remove("
"); pack.extraDataLoaded = true; diff --git a/launcher/modplatform/modrinth/ModrinthPackManifest.cpp b/launcher/modplatform/modrinth/ModrinthPackManifest.cpp index d86f1c0e5..014d990f0 100644 --- a/launcher/modplatform/modrinth/ModrinthPackManifest.cpp +++ b/launcher/modplatform/modrinth/ModrinthPackManifest.cpp @@ -94,6 +94,8 @@ void loadIndexedInfo(Modpack& pack, QJsonObject& obj) pack.extra.donate.append(donate); } + + pack.extra.status = Json::ensureString(obj, "status"); pack.extraInfoLoaded = true; } diff --git a/launcher/modplatform/modrinth/ModrinthPackManifest.h b/launcher/modplatform/modrinth/ModrinthPackManifest.h index 6fc55a043..1ffd31d83 100644 --- a/launcher/modplatform/modrinth/ModrinthPackManifest.h +++ b/launcher/modplatform/modrinth/ModrinthPackManifest.h @@ -77,6 +77,8 @@ struct ModpackExtra { QString discordUrl; QList donate; + + QString status; }; struct ModpackVersion { diff --git a/launcher/ui/pages/modplatform/ResourcePage.cpp b/launcher/ui/pages/modplatform/ResourcePage.cpp index 8f660a8b0..2c71cbeec 100644 --- a/launcher/ui/pages/modplatform/ResourcePage.cpp +++ b/launcher/ui/pages/modplatform/ResourcePage.cpp @@ -200,6 +200,10 @@ void ResourcePage::updateUi() } if (current_pack->extraDataLoaded) { + if (current_pack->extraData.status == "archived") { + text += "

" + tr("This project has been archived. It will not receive any further updates unless the author decides to unarchive the project."); + } + if (!current_pack->extraData.donate.isEmpty()) { text += "

" + tr("Donate information: "); auto donateToStr = [](ModPlatform::DonationData& donate) -> QString { diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp index 227ed646b..bac294b60 100644 --- a/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp +++ b/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp @@ -142,7 +142,7 @@ void ModpackListModel::performPaginatedSearch() callbacks.on_succeed = [this](auto& doc, auto& pack) { searchRequestForOneSucceeded(doc); }; callbacks.on_abort = [this] { qCritical() << "Search task aborted by an unknown reason!"; - searchRequestFailed("Abborted"); + searchRequestFailed("Aborted"); }; static const ModrinthAPI api; if (auto job = api.getProjectInfo({ projectId }, std::move(callbacks)); job) { diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp index b4045a046..79ebfefd6 100644 --- a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp +++ b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp @@ -267,6 +267,10 @@ void ModrinthPage::updateUI() text += "
" + tr(" by ") + QString("%2").arg(std::get<1>(current.author).toString(), std::get<0>(current.author)); if (current.extraInfoLoaded) { + if (current.extra.status == "archived") { + text += "

" + tr("This project has been archived. It will not receive any further updates unless the author decides to unarchive the project."); + } + if (!current.extra.donate.isEmpty()) { text += "

" + tr("Donate information: "); auto donateToStr = [](Modrinth::DonationData& donate) -> QString { From 42ea2ecbc8b73f31c5865d1d3154f07dd6db66c1 Mon Sep 17 00:00:00 2001 From: lumiscosity Date: Sat, 23 Dec 2023 11:27:19 +0100 Subject: [PATCH 2/4] Strip newlines in mod descriptions Mirrors Modrinth page behaviour. Signed-off-by: lumiscosity (cherry picked from commit 1bf386603dece42df0815495ae6b43b0e2d665c8) --- launcher/ui/pages/modplatform/ResourceModel.cpp | 2 +- launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/launcher/ui/pages/modplatform/ResourceModel.cpp b/launcher/ui/pages/modplatform/ResourceModel.cpp index 8a70eb4de..aafec7f57 100644 --- a/launcher/ui/pages/modplatform/ResourceModel.cpp +++ b/launcher/ui/pages/modplatform/ResourceModel.cpp @@ -77,7 +77,7 @@ auto ResourceModel::data(const QModelIndex& index, int role) const -> QVariant case UserDataTypes::TITLE: return pack->name; case UserDataTypes::DESCRIPTION: - return pack->description; + return pack->description.simplified(); case UserDataTypes::SELECTED: return pack->isAnyVersionSelected(); case UserDataTypes::INSTALLED: diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp index bac294b60..6ee3e0c67 100644 --- a/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp +++ b/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp @@ -105,7 +105,7 @@ auto ModpackListModel::data(const QModelIndex& index, int role) const -> QVarian case UserDataTypes::TITLE: return pack.name; case UserDataTypes::DESCRIPTION: - return pack.description; + return pack.description.simplified(); case UserDataTypes::SELECTED: return false; case UserDataTypes::INSTALLED: From a00966986cc09d70e75598600aff7b49ae923816 Mon Sep 17 00:00:00 2001 From: lumiscosity Date: Sat, 23 Dec 2023 12:05:07 +0100 Subject: [PATCH 3/4] move simplify call to drawing Signed-off-by: lumiscosity (cherry picked from commit 1e48bf838db3f72fd391ecf9c91aa8e693daf213) --- launcher/ui/pages/modplatform/ResourceModel.cpp | 2 +- launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp | 2 +- launcher/ui/widgets/ProjectItem.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/launcher/ui/pages/modplatform/ResourceModel.cpp b/launcher/ui/pages/modplatform/ResourceModel.cpp index aafec7f57..8a70eb4de 100644 --- a/launcher/ui/pages/modplatform/ResourceModel.cpp +++ b/launcher/ui/pages/modplatform/ResourceModel.cpp @@ -77,7 +77,7 @@ auto ResourceModel::data(const QModelIndex& index, int role) const -> QVariant case UserDataTypes::TITLE: return pack->name; case UserDataTypes::DESCRIPTION: - return pack->description.simplified(); + return pack->description; case UserDataTypes::SELECTED: return pack->isAnyVersionSelected(); case UserDataTypes::INSTALLED: diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp index 6ee3e0c67..bac294b60 100644 --- a/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp +++ b/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp @@ -105,7 +105,7 @@ auto ModpackListModel::data(const QModelIndex& index, int role) const -> QVarian case UserDataTypes::TITLE: return pack.name; case UserDataTypes::DESCRIPTION: - return pack.description.simplified(); + return pack.description; case UserDataTypes::SELECTED: return false; case UserDataTypes::INSTALLED: diff --git a/launcher/ui/widgets/ProjectItem.cpp b/launcher/ui/widgets/ProjectItem.cpp index 60b92b28b..6946df41f 100644 --- a/launcher/ui/widgets/ProjectItem.cpp +++ b/launcher/ui/widgets/ProjectItem.cpp @@ -88,7 +88,7 @@ void ProjectItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& o } { // Description painting - auto description = index.data(UserDataTypes::DESCRIPTION).toString(); + auto description = index.data(UserDataTypes::DESCRIPTION).toString().simplified(); QTextLayout text_layout(description, opt.font); From f4617d7c90204bfc9ff4a2a95a45c375f9fcf2cd Mon Sep 17 00:00:00 2001 From: lumiscosity Date: Sat, 23 Dec 2023 14:16:29 +0100 Subject: [PATCH 4/4] fix styling Signed-off-by: lumiscosity (cherry picked from commit c29af83dc328612d340c54e3ec037b1264d66d51) --- launcher/modplatform/modrinth/ModrinthPackManifest.cpp | 2 +- launcher/ui/pages/modplatform/ResourcePage.cpp | 3 ++- launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/launcher/modplatform/modrinth/ModrinthPackManifest.cpp b/launcher/modplatform/modrinth/ModrinthPackManifest.cpp index 014d990f0..7846e966d 100644 --- a/launcher/modplatform/modrinth/ModrinthPackManifest.cpp +++ b/launcher/modplatform/modrinth/ModrinthPackManifest.cpp @@ -94,7 +94,7 @@ void loadIndexedInfo(Modpack& pack, QJsonObject& obj) pack.extra.donate.append(donate); } - + pack.extra.status = Json::ensureString(obj, "status"); pack.extraInfoLoaded = true; diff --git a/launcher/ui/pages/modplatform/ResourcePage.cpp b/launcher/ui/pages/modplatform/ResourcePage.cpp index 2c71cbeec..ae48e5523 100644 --- a/launcher/ui/pages/modplatform/ResourcePage.cpp +++ b/launcher/ui/pages/modplatform/ResourcePage.cpp @@ -201,7 +201,8 @@ void ResourcePage::updateUi() if (current_pack->extraDataLoaded) { if (current_pack->extraData.status == "archived") { - text += "

" + tr("This project has been archived. It will not receive any further updates unless the author decides to unarchive the project."); + text += "

" + tr("This project has been archived. It will not receive any further updates unless the author decides " + "to unarchive the project."); } if (!current_pack->extraData.donate.isEmpty()) { diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp index 79ebfefd6..fffa21940 100644 --- a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp +++ b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp @@ -268,7 +268,8 @@ void ModrinthPage::updateUI() if (current.extraInfoLoaded) { if (current.extra.status == "archived") { - text += "

" + tr("This project has been archived. It will not receive any further updates unless the author decides to unarchive the project."); + text += "

" + tr("This project has been archived. It will not receive any further updates unless the author decides " + "to unarchive the project."); } if (!current.extra.donate.isEmpty()) {