aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt3
-rw-r--r--README.md2
-rw-r--r--buildconfig/BuildConfig.cpp.in1
-rw-r--r--buildconfig/BuildConfig.h1
-rw-r--r--launcher/ui/pages/modplatform/flame/FlameModPage.cpp22
-rw-r--r--launcher/ui/pages/modplatform/flame/FlameModPage.h2
-rw-r--r--launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp8
-rw-r--r--launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp23
-rw-r--r--launcher/ui/pages/modplatform/modrinth/ModrinthPage.h2
-rw-r--r--launcher/ui/widgets/LanguageSelectionWidget.cpp3
10 files changed, 42 insertions, 25 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index aca8b898..c63b7a29 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -78,6 +78,9 @@ set(Launcher_MSA_CLIENT_ID "17b47edd-c884-4997-926d-9e7f9a6b4647" CACHE STRING "
# Bug tracker URL
set(Launcher_BUG_TRACKER_URL "https://github.com/PolyMC/PolyMC/issues" CACHE STRING "URL for the bug tracker.")
+# Translations Platform URL
+set(Launcher_TRANSLATIONS_URL "https://hosted.weblate.org/projects/polymc/polymc/" CACHE STRING "URL for the translations platform.")
+
# Discord URL
set(Launcher_DISCORD_URL "https://discord.gg/Z52pwxWCHP" CACHE STRING "URL for the Discord guild.")
diff --git a/README.md b/README.md
index 981ec0a4..74d0493c 100644
--- a/README.md
+++ b/README.md
@@ -138,7 +138,7 @@ In general, in order of importance:
## Translations
-The translation effort for PolyMC is hosted on [Weblate](https://hosted.weblate.org/polymc/polymc) and information about translating PolyMC is available at https://github.com/PolyMC/Translations
+The translation effort for PolyMC is hosted on [Weblate](https://hosted.weblate.org/projects/polymc/polymc/) and information about translating PolyMC is available at https://github.com/PolyMC/Translations
## Forking/Redistributing/Custom builds policy
diff --git a/buildconfig/BuildConfig.cpp.in b/buildconfig/BuildConfig.cpp.in
index 655d3bfb..2c872124 100644
--- a/buildconfig/BuildConfig.cpp.in
+++ b/buildconfig/BuildConfig.cpp.in
@@ -48,6 +48,7 @@ Config::Config()
META_URL = "@Launcher_META_URL@";
BUG_TRACKER_URL = "@Launcher_BUG_TRACKER_URL@";
+ TRANSLATIONS_URL = "@Launcher_TRANSLATIONS_URL@";
DISCORD_URL = "@Launcher_DISCORD_URL@";
SUBREDDIT_URL = "@Launcher_SUBREDDIT_URL@";
}
diff --git a/buildconfig/BuildConfig.h b/buildconfig/BuildConfig.h
index c733f276..e70cd5c0 100644
--- a/buildconfig/BuildConfig.h
+++ b/buildconfig/BuildConfig.h
@@ -88,6 +88,7 @@ public:
QString META_URL;
QString BUG_TRACKER_URL;
+ QString TRANSLATIONS_URL;
QString DISCORD_URL;
QString SUBREDDIT_URL;
diff --git a/launcher/ui/pages/modplatform/flame/FlameModPage.cpp b/launcher/ui/pages/modplatform/flame/FlameModPage.cpp
index 80f3de19..a816c681 100644
--- a/launcher/ui/pages/modplatform/flame/FlameModPage.cpp
+++ b/launcher/ui/pages/modplatform/flame/FlameModPage.cpp
@@ -140,14 +140,15 @@ void FlameModPage::onSelectionChanged(QModelIndex first, QModelIndex second)
auto packProfile = ((MinecraftInstance *)m_instance)->getPackProfile();
QString mcVersion = packProfile->getComponentVersion("net.minecraft");
QString loaderString = (packProfile->getComponentVersion("net.minecraftforge").isEmpty()) ? "fabric" : "forge";
- for(const auto& version : current.versions) {
+ for(int i = 0; i < current.versions.size(); i++) {
+ auto version = current.versions[i];
if(!version.mcVersion.contains(mcVersion)){
continue;
}
- ui->versionSelectionBox->addItem(version.version, QVariant(version.downloadUrl));
+ ui->versionSelectionBox->addItem(version.version, QVariant(i));
}
if(ui->versionSelectionBox->count() == 0){
- ui->versionSelectionBox->addItem(tr("No Valid Version found!"), QVariant(""));
+ ui->versionSelectionBox->addItem(tr("No Valid Version found!"), QVariant(-1));
}
suggestCurrent();
@@ -156,11 +157,11 @@ void FlameModPage::onSelectionChanged(QModelIndex first, QModelIndex second)
}
else
{
- for(auto version : current.versions) {
- ui->versionSelectionBox->addItem(version.version, QVariant(version.downloadUrl));
+ for(int i = 0; i < current.versions.size(); i++) {
+ ui->versionSelectionBox->addItem(current.versions[i].version, QVariant(i));
}
if(ui->versionSelectionBox->count() == 0){
- ui->versionSelectionBox->addItem(tr("No Valid Version found!"), QVariant(""));
+ ui->versionSelectionBox->addItem(tr("No Valid Version found!"), QVariant(-1));
}
suggestCurrent();
}
@@ -173,22 +174,23 @@ void FlameModPage::suggestCurrent()
return;
}
- if (selectedVersion.isEmpty())
+ if (selectedVersion == -1)
{
dialog->setSuggestedMod();
return;
}
- dialog->setSuggestedMod(current.name, new ModDownloadTask(selectedVersion, current.versions.at(0).fileName ,dialog->mods));
+ auto version = current.versions[selectedVersion];
+ dialog->setSuggestedMod(current.name, new ModDownloadTask(version.downloadUrl, version.fileName , dialog->mods));
}
void FlameModPage::onVersionSelectionChanged(QString data)
{
if(data.isNull() || data.isEmpty())
{
- selectedVersion = "";
+ selectedVersion = -1;
return;
}
- selectedVersion = ui->versionSelectionBox->currentData().toString();
+ selectedVersion = ui->versionSelectionBox->currentData().toInt();
suggestCurrent();
}
diff --git a/launcher/ui/pages/modplatform/flame/FlameModPage.h b/launcher/ui/pages/modplatform/flame/FlameModPage.h
index 85c68620..8fa3248a 100644
--- a/launcher/ui/pages/modplatform/flame/FlameModPage.h
+++ b/launcher/ui/pages/modplatform/flame/FlameModPage.h
@@ -63,5 +63,5 @@ private:
FlameMod::ListModel* listModel = nullptr;
FlameMod::IndexedPack current;
- QString selectedVersion;
+ int selectedVersion = -1;
};
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp
index 71574156..5a18830a 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp
@@ -3,12 +3,14 @@
#include "minecraft/MinecraftInstance.h"
#include "minecraft/PackProfile.h"
#include "ModrinthPage.h"
+#include "ui/dialogs/ModDownloadDialog.h"
#include <Json.h>
#include <MMCStrings.h>
#include <Version.h>
#include <QtMath>
+#include <QMessageBox>
namespace Modrinth {
@@ -250,6 +252,12 @@ void Modrinth::ListModel::searchRequestFinished()
void Modrinth::ListModel::searchRequestFailed(QString reason)
{
+ if(jobPtr->first()->m_reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 409){
+ //409 Gone, notify user to update
+ QMessageBox::critical(nullptr, tr("Error"), tr("Modrinth API version too old!\nPlease update PolyMC!"));
+ //self-destruct
+ ((ModDownloadDialog *)((ModrinthPage *)parent())->parentWidget())->reject();
+ }
jobPtr.reset();
if(searchState == ResetRequested) {
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
index ee3c9e76..c5a54c29 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
@@ -125,14 +125,15 @@ void ModrinthPage::onSelectionChanged(QModelIndex first, QModelIndex second)
auto packProfile = ((MinecraftInstance *)m_instance)->getPackProfile();
QString mcVersion = packProfile->getComponentVersion("net.minecraft");
QString loaderString = (packProfile->getComponentVersion("net.minecraftforge").isEmpty()) ? "fabric" : "forge";
- for(const auto& version : current.versions) {
+ for(int i = 0; i < current.versions.size(); i++) {
+ auto version = current.versions[i];
if(!version.mcVersion.contains(mcVersion) || !version.loaders.contains(loaderString)){
continue;
}
- ui->versionSelectionBox->addItem(version.version, QVariant(version.downloadUrl));
+ ui->versionSelectionBox->addItem(version.version, QVariant(i));
}
if(ui->versionSelectionBox->count() == 0){
- ui->versionSelectionBox->addItem(tr("No Valid Version found !"), QVariant(""));
+ ui->versionSelectionBox->addItem(tr("No Valid Version found !"), QVariant(-1));
}
suggestCurrent();
@@ -141,11 +142,11 @@ void ModrinthPage::onSelectionChanged(QModelIndex first, QModelIndex second)
}
else
{
- for(auto version : current.versions) {
- ui->versionSelectionBox->addItem(version.version, QVariant(version.downloadUrl));
+ for(int i = 0; i < current.versions.size(); i++) {
+ ui->versionSelectionBox->addItem(current.versions[i].version, QVariant(i));
}
if(ui->versionSelectionBox->count() == 0){
- ui->versionSelectionBox->addItem(tr("No Valid Version found !"), QVariant(""));
+ ui->versionSelectionBox->addItem(tr("No Valid Version found !"), QVariant(-1));
}
suggestCurrent();
}
@@ -158,22 +159,22 @@ void ModrinthPage::suggestCurrent()
return;
}
- if (selectedVersion.isEmpty())
+ if (selectedVersion == -1)
{
dialog->setSuggestedMod();
return;
}
-
- dialog->setSuggestedMod(current.name, new ModDownloadTask(selectedVersion, current.versions.at(0).fileName ,dialog->mods));
+ auto version = current.versions[selectedVersion];
+ dialog->setSuggestedMod(current.name, new ModDownloadTask(version.downloadUrl, version.fileName , dialog->mods));
}
void ModrinthPage::onVersionSelectionChanged(QString data)
{
if(data.isNull() || data.isEmpty())
{
- selectedVersion = "";
+ selectedVersion = -1;
return;
}
- selectedVersion = ui->versionSelectionBox->currentData().toString();
+ selectedVersion = ui->versionSelectionBox->currentData().toInt();
suggestCurrent();
}
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.h b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.h
index 3748d836..3c517069 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.h
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.h
@@ -63,5 +63,5 @@ private:
Modrinth::ListModel* listModel = nullptr;
Modrinth::IndexedPack current;
- QString selectedVersion;
+ int selectedVersion = -1;
};
diff --git a/launcher/ui/widgets/LanguageSelectionWidget.cpp b/launcher/ui/widgets/LanguageSelectionWidget.cpp
index 964d2b7c..256b09da 100644
--- a/launcher/ui/widgets/LanguageSelectionWidget.cpp
+++ b/launcher/ui/widgets/LanguageSelectionWidget.cpp
@@ -5,6 +5,7 @@
#include <QHeaderView>
#include <QLabel>
#include "Application.h"
+#include "BuildConfig.h"
#include "translations/TranslationsModel.h"
#include "settings/Setting.h"
@@ -52,7 +53,7 @@ QString LanguageSelectionWidget::getSelectedLanguageKey() const
void LanguageSelectionWidget::retranslate()
{
QString text = tr("Don't see your language or the quality is poor?<br/><a href=\"%1\">Help us with translations!</a>")
- .arg("https://github.com/MultiMC/Launcher/wiki/Translating-MultiMC");
+ .arg(BuildConfig.TRANSLATIONS_URL);
helpUsLabel->setText(text);
}