fix(preset): sync_ams_list auch User-Presets (P-Prefix IDs) berücksichtigen

This commit is contained in:
viewit
2026-06-03 14:47:19 +02:00
parent b2a133822c
commit ba5abddfab

View File

@@ -3216,6 +3216,13 @@ unsigned int PresetBundle::sync_ams_list(std::vector<std::pair<DynamicPrintConfi
has_type |= f.config.opt_string("filament_type", 0u) == filament_type;
return f.is_compatible && filaments.get_preset_base(f) == &f && f.filament_id == filament_id; });
}
// Also search user presets (not base presets) with matching filament_id.
// User presets have P-prefix IDs and are not returned by get_preset_base(f) == &f.
if (iter == filaments.end() && !filament_id.empty()) {
iter = std::find_if(filaments.begin(), filaments.end(), [&filament_id, &has_type, filament_type](auto &f) {
has_type |= f.config.opt_string("filament_type", 0u) == filament_type;
return f.is_compatible && !f.is_system && f.filament_id == filament_id; });
}
if (iter == filaments.end()) {
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": filament_id %1% not found or system or compatible") % filament_id;
if (!filament_type.empty()) {