From 1d71ed5adec953140bbae215cd61576fa53df5ae Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Sat, 8 Mar 2025 00:49:25 +0800 Subject: [PATCH] Fix preset transfer crash (#8744) Fix preset transfer crash (SoftFever/OrcaSlicer#7991) --- src/slic3r/GUI/UnsavedChangesDialog.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/UnsavedChangesDialog.cpp b/src/slic3r/GUI/UnsavedChangesDialog.cpp index 85b718d0b8..61bae94ad9 100644 --- a/src/slic3r/GUI/UnsavedChangesDialog.cpp +++ b/src/slic3r/GUI/UnsavedChangesDialog.cpp @@ -2383,13 +2383,17 @@ void DiffPresetDialog::button_event(Action act) std::string DiffPresetDialog::get_left_preset_name(Preset::Type type) { - PresetComboBox* cb = m_preset_combos[int(type - Preset::TYPE_PRINT)].presets_left; + PresetComboBox* cb = std::find_if(m_preset_combos.begin(), m_preset_combos.end(), [type](const DiffPresets& p) { + return p.presets_left->get_type() == type; + })->presets_left; return Preset::remove_suffix_modified(get_selection(cb)); } std::string DiffPresetDialog::get_right_preset_name(Preset::Type type) { - PresetComboBox* cb = m_preset_combos[int(type - Preset::TYPE_PRINT)].presets_right; + PresetComboBox* cb = std::find_if(m_preset_combos.begin(), m_preset_combos.end(), [type](const DiffPresets& p) { + return p.presets_right->get_type() == type; + })->presets_right; return Preset::remove_suffix_modified(get_selection(cb)); }