Bugfix: legacy config options were not properly processed

This commit is contained in:
Lukas Matena 2018-04-13 13:43:53 +02:00
parent 52a3f4a2bb
commit abe6e8a783
3 changed files with 10 additions and 2 deletions

View File

@ -644,7 +644,7 @@ std::string Print::validate() const
unsigned int total_extruders_count = this->config.nozzle_diameter.size(); unsigned int total_extruders_count = this->config.nozzle_diameter.size();
for (const auto& extruder_idx : extruders) for (const auto& extruder_idx : extruders)
if ( extruder_idx >= total_extruders_count ) if ( extruder_idx >= total_extruders_count )
return "One or more object have assigned an extruder that the printer does not have."; return "One or more object were assigned an extruder that the printer does not have.";
for (PrintObject *object : this->objects) { for (PrintObject *object : this->objects) {
if ((object->config.support_material_extruder == -1 || object->config.support_material_interface_extruder == -1) && if ((object->config.support_material_extruder == -1 || object->config.support_material_interface_extruder == -1) &&

View File

@ -1944,8 +1944,9 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va
"standby_temperature", "scale", "rotate", "duplicate", "duplicate_grid", "standby_temperature", "scale", "rotate", "duplicate", "duplicate_grid",
"start_perimeters_at_concave_points", "start_perimeters_at_non_overhang", "randomize_start", "start_perimeters_at_concave_points", "start_perimeters_at_non_overhang", "randomize_start",
"seal_position", "vibration_limit", "bed_size", "octoprint_host", "seal_position", "vibration_limit", "bed_size", "octoprint_host",
"print_center", "g0", "threads", "pressure_advance" "print_center", "g0", "threads", "pressure_advance", "wipe_tower_per_color_wipe"
}; };
if (ignore.find(opt_key) != ignore.end()) { if (ignore.find(opt_key) != ignore.end()) {
opt_key = ""; opt_key = "";
return; return;

View File

@ -154,6 +154,13 @@ public:
// Validate the PrintConfig. Returns an empty string on success, otherwise an error message is returned. // Validate the PrintConfig. Returns an empty string on success, otherwise an error message is returned.
std::string validate(); std::string validate();
// Verify whether the opt_key has not been obsoleted or renamed.
// Both opt_key and value may be modified by handle_legacy().
// If the opt_key is no more valid in this version of Slic3r, opt_key is cleared by handle_legacy().
// handle_legacy() is called internally by set_deserialize().
void handle_legacy(t_config_option_key &opt_key, std::string &value) const override
{ PrintConfigDef::handle_legacy(opt_key, value); }
}; };
template<typename CONFIG> template<typename CONFIG>