mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-09 10:16:50 +00:00
Refresh dynamic filament list on mixed slot changes (#15375)
Call update_dynamic_filament_list() alongside update_mixed_filament_list() in two places: after editing a mixed filament slot and when the filament count doesn't change (e.g., adding a mixed/virtual slot). This ensures per-feature filament lists reflect the updated blended colour and type without requiring a full filament count change.
This commit is contained in:
@@ -4914,7 +4914,10 @@ void Sidebar::edit_mixed_filament(size_t panel_idx)
|
|||||||
if (multi_colour_opt && cfg_idx < multi_colour_opt->values.size())
|
if (multi_colour_opt && cfg_idx < multi_colour_opt->values.size())
|
||||||
multi_colour_opt->values[cfg_idx] = blended;
|
multi_colour_opt->values[cfg_idx] = blended;
|
||||||
|
|
||||||
|
// The edited slot keeps its index, so nothing else refreshes the per-feature filament
|
||||||
|
// lists - and its blended colour and type are what they show for it.
|
||||||
update_mixed_filament_list();
|
update_mixed_filament_list();
|
||||||
|
update_dynamic_filament_list();
|
||||||
wxGetApp().plater()->update_project_dirty_from_presets();
|
wxGetApp().plater()->update_project_dirty_from_presets();
|
||||||
wxPostEvent(this, SimpleEvent(EVT_SCHEDULE_BACKGROUND_PROCESS, this));
|
wxPostEvent(this, SimpleEvent(EVT_SCHEDULE_BACKGROUND_PROCESS, this));
|
||||||
}
|
}
|
||||||
@@ -5286,8 +5289,11 @@ void Sidebar::on_filament_count_change(size_t num_filaments)
|
|||||||
if (num_physical == choices.size()) {
|
if (num_physical == choices.size()) {
|
||||||
// The ctor pre-creates one combo, so a single-filament project hits this guard before
|
// The ctor pre-creates one combo, so a single-filament project hits this guard before
|
||||||
// any layout pass has sized the scroll areas; refresh them here as well.
|
// any layout pass has sized the scroll areas; refresh them here as well.
|
||||||
|
// Adding a mixed slot also lands here, since only the virtual count changed, so the
|
||||||
|
// per-feature filament lists - which do list mixed slots - have to be refreshed too.
|
||||||
recalc_filament_scroll_sizes();
|
recalc_filament_scroll_sizes();
|
||||||
update_mixed_filament_list();
|
update_mixed_filament_list();
|
||||||
|
update_dynamic_filament_list();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user