PresetCollection: Fixed update_vendor_ptrs_after_copy().

Ptrs are updated for edited preset too.

Related to SPE-2690
This commit is contained in:
YuSanka 2025-02-18 12:30:31 +01:00 committed by Lukas Matena
parent 49f78f9770
commit 5df9a9901a

View File

@ -1604,7 +1604,7 @@ std::vector<std::string> PresetCollection::merge_presets(PresetCollection &&othe
void PresetCollection::update_vendor_ptrs_after_copy(const VendorMap &new_vendors) 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) { if (preset.vendor != nullptr) {
assert(! preset.is_default && ! preset.is_external); assert(! preset.is_default && ! preset.is_external);
// Re-assign a pointer to the vendor structure in the new PresetBundle. // 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()); assert(it != new_vendors.end());
preset.vendor = &it->second; 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() void PresetCollection::update_map_alias_to_profile_name()