From 741e98804cf2a32172cc7989d53202c99c76feb1 Mon Sep 17 00:00:00 2001 From: Lukas Matena <lukasmatena@seznam.cz> Date: Wed, 18 Sep 2019 11:47:19 +0200 Subject: [PATCH 1/2] Purging volumes dialog now uses filament colour in case extruder color is undefined --- src/slic3r/GUI/Plater.cpp | 11 ++++++++++- src/slic3r/GUI/Plater.hpp | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index c5aad48a9..e548ed3ba 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -522,7 +522,11 @@ FreqChangedParams::FreqChangedParams(wxWindow* parent) : const std::vector<double> &init_extruders = (project_config.option<ConfigOptionFloats>("wiping_volumes_extruders"))->values; const DynamicPrintConfig* config = &wxGetApp().preset_bundle->printers.get_edited_preset().config; - const std::vector<std::string> &extruder_colours = (config->option<ConfigOptionStrings>("extruder_colour"))->values; + std::vector<std::string> extruder_colours = (config->option<ConfigOptionStrings>("extruder_colour"))->values; + const std::vector<std::string>& filament_colours = (wxGetApp().plater()->get_plater_config()->option<ConfigOptionStrings>("filament_colour"))->values; + for (size_t i=0; i<extruder_colours.size(); ++i) + if (extruder_colours[i] == "") + extruder_colours[i] = filament_colours[i]; WipingDialog dlg(parent, cast<float>(init_matrix), cast<float>(init_extruders), extruder_colours); @@ -4838,6 +4842,11 @@ void Plater::on_activate() this->p->show_delayed_error_message(); } +const DynamicPrintConfig* Plater::get_plater_config() const +{ + return p->config; +} + wxString Plater::get_project_filename(const wxString& extension) const { return p->get_project_filename(extension); diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 6b488fef1..0dc298566 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -213,6 +213,7 @@ public: void on_config_change(const DynamicPrintConfig &config); // On activating the parent window. void on_activate(); + const DynamicPrintConfig* get_plater_config() const; void update_object_menu(); From 76a657ce5217ffb92cfa1b68e2080575186e3244 Mon Sep 17 00:00:00 2001 From: Lukas Matena <lukasmatena@seznam.cz> Date: Wed, 18 Sep 2019 12:54:21 +0200 Subject: [PATCH 2/2] Plater.cpp - better added a range-check when selecting filament color in purging volumes dialog --- src/slic3r/GUI/Plater.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index e548ed3ba..0dc7519e8 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -525,7 +525,7 @@ FreqChangedParams::FreqChangedParams(wxWindow* parent) : std::vector<std::string> extruder_colours = (config->option<ConfigOptionStrings>("extruder_colour"))->values; const std::vector<std::string>& filament_colours = (wxGetApp().plater()->get_plater_config()->option<ConfigOptionStrings>("filament_colour"))->values; for (size_t i=0; i<extruder_colours.size(); ++i) - if (extruder_colours[i] == "") + if (extruder_colours[i] == "" && i < filament_colours.size()) extruder_colours[i] = filament_colours[i]; WipingDialog dlg(parent, cast<float>(init_matrix), cast<float>(init_extruders), extruder_colours);