From 5df9a9901a2501ead8705ec2a88eaf975582b7f4 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Tue, 18 Feb 2025 12:30:31 +0100 Subject: [PATCH] PresetCollection: Fixed update_vendor_ptrs_after_copy(). Ptrs are updated for edited preset too. Related to SPE-2690 --- src/libslic3r/Preset.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 9dc76a45c9..375da5550a 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -1604,7 +1604,7 @@ std::vector PresetCollection::merge_presets(PresetCollection &&othe void PresetCollection::update_vendor_ptrs_after_copy(const VendorMap &new_vendors) { - for (Preset &preset : m_presets) + auto update = [&new_vendors](Preset& preset) { if (preset.vendor != nullptr) { assert(! preset.is_default && ! preset.is_external); // Re-assign a pointer to the vendor structure in the new PresetBundle. @@ -1612,6 +1612,12 @@ void PresetCollection::update_vendor_ptrs_after_copy(const VendorMap &new_vendor assert(it != new_vendors.end()); preset.vendor = &it->second; } + }; + + for (Preset& preset : m_presets) + update(preset); + // update vendor for edited preset too + update(m_edited_preset); } void PresetCollection::update_map_alias_to_profile_name()