From 666851acd5b19a8d5c7903b7ccf4c9210089a582 Mon Sep 17 00:00:00 2001 From: supermerill Date: Thu, 7 Oct 2021 20:49:21 +0200 Subject: [PATCH] Fix color update on fresh extruder --- src/slic3r/GUI/Plater.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 63bb94e40..82e75a6ca 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -6084,6 +6084,17 @@ void Plater::on_config_change(const DynamicPrintConfig &config) } else if(opt_key == "extruder_colour") { update_scheduled = true; + if (p->config->option("filament_colour")->values.size() < config.option(opt_key)->values.size()) { + const std::vector filament_presets = wxGetApp().preset_bundle->filament_presets; + const PresetCollection& filaments = wxGetApp().preset_bundle->filaments; + std::vector filament_colors; + filament_colors.reserve(filament_presets.size()); + + for (const std::string& filament_preset : filament_presets) + filament_colors.push_back(filaments.find_preset(filament_preset, true)->config.opt_string("filament_colour", (unsigned)0)); + + p->config->option("filament_colour")->values = filament_colors; + } #if !ENABLE_PREVIEW_TYPE_CHANGE p->preview->set_number_extruders(p->config->option(opt_key)->values.size()); #endif // !ENABLE_PREVIEW_TYPE_CHANGE