Merge branch 'develop' into refactor-filter

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
TheKodeToad 2025-08-18 11:40:38 +01:00 committed by GitHub
commit 8420e75cfa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 167 additions and 131 deletions

View File

@ -90,7 +90,7 @@ runs:
- name: Retrieve ccache cache (MinGW)
if: ${{ inputs.msystem != '' && inputs.build-type == 'Debug' }}
uses: actions/cache@v4.2.3
uses: actions/cache@v4.2.4
with:
path: '${{ github.workspace }}\.ccache'
key: ${{ runner.os }}-mingw-w64-ccache-${{ github.run_id }}

View File

@ -21,11 +21,11 @@ jobs:
if: github.repository_owner == 'PrismLauncher' && github.event.pull_request.merged == true && (github.event_name != 'labeled' || startsWith('backport', github.event.label.name))
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs
uses: korthout/backport-action@v3.2.1
uses: korthout/backport-action@v3.3.0
with:
# Config README: https://github.com/korthout/backport-action#backport-action
pull_description: |-

View File

@ -133,7 +133,7 @@ jobs:
##
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: true

View File

@ -60,7 +60,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: "true"

View File

@ -84,7 +84,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: true

View File

@ -105,7 +105,7 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
ref: ${{ steps.merge-commit.outputs.merge-commit-sha || github.sha }}

View File

@ -20,12 +20,12 @@ jobs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: "true"
path: "PrismLauncher-source"
- name: Download artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
- name: Grab and store version
run: |
tag_name=$(echo ${{ github.ref }} | grep -oE "[^/]+$")

View File

@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: cachix/install-nix-action@c134e4c9e34bac6cab09cf239815f9339aaaf84e # v31
- uses: DeterminateSystems/update-flake-lock@v27

6
flake.lock generated
View File

@ -18,11 +18,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1752687322,
"narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
"lastModified": 1754498491,
"narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
"rev": "c2ae88e026f9525daf89587f3cbee584b92b6134",
"type": "github"
},
"original": {

View File

@ -31,7 +31,7 @@ static const QMap<QString, IndexedVersionType::VersionType> s_indexed_version_ty
{ "alpha", IndexedVersionType::VersionType::Alpha }
};
static const QList<ModLoaderType> loaderList = { NeoForge, Forge, Cauldron, LiteLoader, Quilt, Fabric, Babric, BTA };
static const QList<ModLoaderType> loaderList = { NeoForge, Forge, Cauldron, LiteLoader, Quilt, Fabric, Babric, BTA, LegacyFabric, Ornithe, Rift };
QList<ModLoaderType> modLoaderTypesToList(ModLoaderTypes flags)
{
@ -122,7 +122,7 @@ auto getModLoaderAsString(ModLoaderType type) -> const QString
case Cauldron:
return "cauldron";
case LiteLoader:
return "liteloader";
return "liteloader";
case Fabric:
return "fabric";
case Quilt:
@ -133,6 +133,12 @@ auto getModLoaderAsString(ModLoaderType type) -> const QString
return "babric";
case BTA:
return "bta-babric";
case LegacyFabric:
return "legacy-fabric";
case Ornithe:
return "ornithe";
case Rift:
return "rift";
default:
break;
}
@ -157,6 +163,12 @@ auto getModLoaderFromString(QString type) -> ModLoaderType
return Babric;
if (type == "bta-babric")
return BTA;
if (type == "legacy-fabric")
return LegacyFabric;
if (type == "ornithe")
return Ornithe;
if (type == "rift")
return Rift;
return {};
}

View File

@ -38,7 +38,10 @@ enum ModLoaderType {
Quilt = 1 << 5,
DataPack = 1 << 6,
Babric = 1 << 7,
BTA = 1 << 8
BTA = 1 << 8,
LegacyFabric = 1 << 9,
Ornithe = 1 << 10,
Rift = 1 << 11
};
Q_DECLARE_FLAGS(ModLoaderTypes, ModLoaderType)
QList<ModLoaderType> modLoaderTypesToList(ModLoaderTypes flags);

View File

@ -73,6 +73,9 @@ class FlameAPI : public NetworkResourceAPI {
case ModPlatform::DataPack:
case ModPlatform::Babric:
case ModPlatform::BTA:
case ModPlatform::LegacyFabric:
case ModPlatform::Ornithe:
case ModPlatform::Rift:
break; // not supported
}
return 0;

View File

@ -95,6 +95,12 @@ void PackInstallTask::copySettings()
break;
case ModPlatform::BTA:
break;
case ModPlatform::LegacyFabric:
break;
case ModPlatform::Ornithe:
break;
case ModPlatform::Rift:
break;
}
components->saveNow();

View File

@ -43,7 +43,7 @@ class ModrinthAPI : public NetworkResourceAPI {
{
QStringList l;
for (auto loader : { ModPlatform::NeoForge, ModPlatform::Forge, ModPlatform::Fabric, ModPlatform::Quilt, ModPlatform::LiteLoader,
ModPlatform::DataPack, ModPlatform::Babric, ModPlatform::BTA }) {
ModPlatform::DataPack, ModPlatform::Babric, ModPlatform::BTA, ModPlatform::LegacyFabric, ModPlatform::Ornithe, ModPlatform::Rift }) {
if (types & loader) {
l << getModLoaderAsString(loader);
}
@ -202,7 +202,7 @@ class ModrinthAPI : public NetworkResourceAPI {
static inline auto validateModLoaders(ModPlatform::ModLoaderTypes loaders) -> bool
{
return loaders & (ModPlatform::NeoForge | ModPlatform::Forge | ModPlatform::Fabric | ModPlatform::Quilt | ModPlatform::LiteLoader |
ModPlatform::DataPack | ModPlatform::Babric | ModPlatform::BTA);
ModPlatform::DataPack | ModPlatform::Babric | ModPlatform::BTA | ModPlatform::LegacyFabric | ModPlatform::Ornithe | ModPlatform::Rift);
}
std::optional<QString> getDependencyURL(DependencySearchArgs const& args) const override

View File

@ -65,15 +65,6 @@ enum InstSortMode {
Sort_LastLaunch
};
enum InstRenamingMode {
// Rename metadata only.
Rename_Always,
// Ask everytime.
Rename_Ask,
// Rename physical directory too.
Rename_Never
};
LauncherPage::LauncherPage(QWidget* parent) : QWidget(parent), ui(new Ui::LauncherPage)
{
ui->setupUi(this);
@ -242,18 +233,12 @@ void LauncherPage::applySettings()
break;
}
auto renamingMode = (InstRenamingMode)ui->renamingBehaviorComboBox->currentIndex();
switch (renamingMode) {
case Rename_Always:
s->set("InstRenamingMode", "MetadataOnly");
break;
case Rename_Never:
s->set("InstRenamingMode", "PhysicalDir");
break;
case Rename_Ask:
default:
s->set("InstRenamingMode", "AskEverytime");
break;
if (ui->askToRenameDirBtn->isChecked()) {
s->set("InstRenamingMode", "AskEverytime");
} else if (ui->alwaysRenameDirBtn->isChecked()) {
s->set("InstRenamingMode", "PhysicalDir");
} else if (ui->neverRenameDirBtn->isChecked()) {
s->set("InstRenamingMode", "MetadataOnly");
}
// Mods
@ -300,15 +285,9 @@ void LauncherPage::loadSettings()
}
QString renamingMode = s->get("InstRenamingMode").toString();
InstRenamingMode renamingModeEnum;
if (renamingMode == "MetadataOnly") {
renamingModeEnum = Rename_Always;
} else if (renamingMode == "PhysicalDir") {
renamingModeEnum = Rename_Never;
} else {
renamingModeEnum = Rename_Ask;
}
ui->renamingBehaviorComboBox->setCurrentIndex(renamingModeEnum);
ui->askToRenameDirBtn->setChecked(renamingMode == "AskEverytime");
ui->alwaysRenameDirBtn->setChecked(renamingMode == "PhysicalDir");
ui->neverRenameDirBtn->setChecked(renamingMode == "MetadataOnly");
// Mods
ui->metadataEnableBtn->setChecked(!s->get("ModMetadataDisabled").toBool());

View File

@ -32,7 +32,7 @@
<item>
<widget class="QScrollArea" name="scrollArea">
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAsNeeded</enum>
<enum>Qt::ScrollBarPolicy::ScrollBarAsNeeded</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
@ -41,9 +41,9 @@
<property name="geometry">
<rect>
<x>0</x>
<y>-356</y>
<width>742</width>
<height>1148</height>
<y>0</y>
<width>746</width>
<height>1194</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
@ -86,10 +86,10 @@
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
<enum>QSizePolicy::Policy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -107,37 +107,42 @@
</widget>
</item>
<item>
<widget class="QComboBox" name="renamingBehaviorComboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<widget class="QRadioButton" name="askToRenameDirBtn">
<property name="text">
<string>Ask what to do</string>
</property>
<item>
<property name="text">
<string>Ask what to do with the folder</string>
</property>
</item>
<item>
<property name="text">
<string>Always rename the folder</string>
</property>
</item>
<item>
<property name="text">
<string>Never rename the folder—only the displayed name</string>
</property>
</item>
<attribute name="buttonGroup">
<string notr="true">renamingBehaviorGroup</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="alwaysRenameDirBtn">
<property name="text">
<string>Always rename the folder</string>
</property>
<attribute name="buttonGroup">
<string notr="true">renamingBehaviorGroup</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="neverRenameDirBtn">
<property name="text">
<string>Never rename the folder</string>
</property>
<attribute name="buttonGroup">
<string notr="true">renamingBehaviorGroup</string>
</attribute>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
<enum>QSizePolicy::Policy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -206,7 +211,7 @@
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -433,7 +438,7 @@
</property>
<layout class="QFormLayout" name="formLayout">
<property name="labelAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
</property>
<item row="0" column="0">
<widget class="QLabel" name="lineLimitLabel">
@ -602,7 +607,7 @@
<item row="0" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -618,7 +623,7 @@
<item>
<spacer name="verticalSpacer_FeaturesTab">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -636,9 +641,6 @@
</widget>
<tabstops>
<tabstop>scrollArea</tabstop>
<tabstop>sortByNameBtn</tabstop>
<tabstop>sortLastLaunchedBtn</tabstop>
<tabstop>renamingBehaviorComboBox</tabstop>
<tabstop>preferMenuBarCheckBox</tabstop>
<tabstop>autoUpdateCheckBox</tabstop>
<tabstop>updateIntervalSpinBox</tabstop>
@ -670,5 +672,6 @@
<connections/>
<buttongroups>
<buttongroup name="sortingModeGroup"/>
<buttongroup name="renamingBehaviorGroup"/>
</buttongroups>
</ui>

View File

@ -203,53 +203,6 @@
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="catFitLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Fit</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="catFitComboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>77</width>
<height>30</height>
</size>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<item>
<property name="text">
<string>Fit</string>
</property>
</item>
<item>
<property name="text">
<string>Fill</string>
</property>
</item>
<item>
<property name="text">
<string>Stretch</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QLabel" name="catOpacityLabel">
<property name="text">
@ -370,6 +323,53 @@
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="catFitLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Cat Scaling</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="catFitComboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>77</width>
<height>30</height>
</size>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<item>
<property name="text">
<string>Fit</string>
</property>
</item>
<item>
<property name="text">
<string>Fill</string>
</property>
</item>
<item>
<property name="text">
<string>Stretch</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</item>

View File

@ -152,6 +152,9 @@ ModFilterWidget::ModFilterWidget(MinecraftInstance* instance, bool extended)
connect(ui->liteLoader, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->babric, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->btaBabric, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->legacyFabric, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->ornithe, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->rift, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->showMoreButton, &QPushButton::clicked, this, &ModFilterWidget::onShowMoreClicked);
@ -289,6 +292,12 @@ void ModFilterWidget::onLoadersFilterChanged()
loaders |= ModPlatform::Babric;
if (ui->btaBabric->isChecked())
loaders |= ModPlatform::BTA;
if (ui->legacyFabric->isChecked())
loaders |= ModPlatform::LegacyFabric;
if (ui->ornithe->isChecked())
loaders |= ModPlatform::Ornithe;
if (ui->rift->isChecked())
loaders |= ModPlatform::Rift;
m_filter_changed = loaders != m_filter->loaders;
m_filter->loaders = loaders;
if (m_filter_changed)

View File

@ -167,6 +167,27 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="legacyFabric">
<property name="text">
<string>Legacy Fabric</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="ornithe">
<property name="text">
<string>Ornithe</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rift">
<property name="text">
<string>Rift</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>