fix: treat renamed printer presets as compatible aliases (#14504)

# Description

Fixes user filament presets that reference an old printer preset name in
`compatible_printers`, even when the current system printer preset
correctly declares that old name in `renamed_from`.

## Core Issue

`PresetCollection::find_preset()` was updated to resolve `renamed_from`,
but this specific failure does not go through `find_preset()`.

For root user filament presets with empty `inherits`, Orca infers
`compatible_printers` from the filament name suffix after `@`. For
example:

```json
"ELEGOO PLA Base @Elegoo Neptune 4 Pro (0.4 nozzle)"
```

loads with:

```json
"compatible_printers": ["Elegoo Neptune 4 Pro (0.4 nozzle)"]
```

The current system printer preset is named:

```text
Elegoo Neptune 4 Pro 0.4 nozzle
```

and has:

```json
"renamed_from": "Elegoo Neptune 4 Pro (0.4 nozzle)"
```

However, filament compatibility was doing a direct string comparison
against the active printer name. Since that compatibility path does not
call `find_preset()`, the `renamed_from` mapping was never considered.

## Fix

Teach printer compatibility checks to treat
`active_printer.preset.renamed_from` entries as aliases of the active
printer name.

This preserves existing user preset JSON and avoids rewriting
`compatible_printers`, while allowing old printer suffixes to remain
compatible with renamed system printer presets.

## Tests

<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
This commit is contained in:
SoftFever
2026-07-01 21:56:31 +08:00
parent 128068cb65
commit feeea3e651
703 changed files with 2121 additions and 2193 deletions

View File

@@ -1,10 +1,10 @@
{
"type": "machine",
"setting_id": "QgiXsDkRCjIHtpEa",
"name": "Qidi X-Max 4 0.2 nozzle",
"from": "system",
"instantiation": "true",
"inherits": "Qidi X-Max 4 0.4 nozzle",
"from": "system",
"setting_id": "QgiXsDkRCjIHtpEa",
"instantiation": "true",
"printer_model": "Qidi X-Max 4",
"printer_variant": "0.2",
"default_filament_profile": [

View File

@@ -1,11 +1,11 @@
{
"box_id": "3",
"type": "machine",
"setting_id": "uzcPSO0U1ZQCXXNN",
"name": "Qidi X-Max 4 0.4 nozzle",
"from": "system",
"instantiation": "true",
"inherits": "fdm_machine_x_common",
"from": "system",
"setting_id": "uzcPSO0U1ZQCXXNN",
"instantiation": "true",
"box_id": "3",
"printer_model": "Qidi X-Max 4",
"gcode_flavor": "klipper",
"default_print_profile": "0.20mm Standard @X-Max 4",

View File

@@ -1,10 +1,10 @@
{
"type": "machine",
"setting_id": "Ict0ZAEiGgYeu7AJ",
"name": "Qidi X-Max 4 0.6 nozzle",
"from": "system",
"instantiation": "true",
"inherits": "Qidi X-Max 4 0.4 nozzle",
"from": "system",
"setting_id": "Ict0ZAEiGgYeu7AJ",
"instantiation": "true",
"default_filament_profile": [
"QIDI PLA Rapido @Qidi X-Max 4 0.6 nozzle"
],

View File

@@ -1,10 +1,10 @@
{
"type": "machine",
"setting_id": "pJbz2SGfvEar8cGh",
"name": "Qidi X-Max 4 0.8 nozzle",
"from": "system",
"instantiation": "true",
"inherits": "Qidi X-Max 4 0.4 nozzle",
"from": "system",
"setting_id": "pJbz2SGfvEar8cGh",
"instantiation": "true",
"default_filament_profile": [
"QIDI PLA Rapido @Qidi X-Max 4 0.8 nozzle"
],