diff --git a/xs/src/libslic3r/PrintConfig.hpp b/xs/src/libslic3r/PrintConfig.hpp index 1492e61e8..3f6eb8e06 100644 --- a/xs/src/libslic3r/PrintConfig.hpp +++ b/xs/src/libslic3r/PrintConfig.hpp @@ -126,9 +126,10 @@ class PrintObjectConfig : public virtual StaticPrintConfig ConfigOptionInt support_material_threshold; ConfigOptionFloat xy_size_compensation; - PrintObjectConfig() : StaticPrintConfig() { - this->set_defaults(); - }; + PrintObjectConfig(bool initialize = true) : StaticPrintConfig() { + if (initialize) + this->set_defaults(); + } virtual ConfigOption* optptr(const t_config_option_key &opt_key, bool create = false) { OPT_PTR(dont_support_bridges); @@ -195,9 +196,10 @@ class PrintRegionConfig : public virtual StaticPrintConfig ConfigOptionInt top_solid_layers; ConfigOptionFloatOrPercent top_solid_infill_speed; - PrintRegionConfig() : StaticPrintConfig() { - this->set_defaults(); - }; + PrintRegionConfig(bool initialize = true) : StaticPrintConfig() { + if (initialize) + this->set_defaults(); + } virtual ConfigOption* optptr(const t_config_option_key &opt_key, bool create = false) { OPT_PTR(bottom_solid_layers); @@ -266,9 +268,10 @@ class GCodeConfig : public virtual StaticPrintConfig ConfigOptionBool use_relative_e_distances; ConfigOptionBool use_volumetric_e; - GCodeConfig() : StaticPrintConfig() { - this->set_defaults(); - }; + GCodeConfig(bool initialize = true) : StaticPrintConfig() { + if (initialize) + this->set_defaults(); + } virtual ConfigOption* optptr(const t_config_option_key &opt_key, bool create = false) { OPT_PTR(before_layer_gcode); @@ -366,9 +369,10 @@ class PrintConfig : public GCodeConfig ConfigOptionBools wipe; ConfigOptionFloat z_offset; - PrintConfig() : GCodeConfig() { - this->set_defaults(); - }; + PrintConfig(bool initialize = true) : GCodeConfig(false) { + if (initialize) + this->set_defaults(); + } virtual ConfigOption* optptr(const t_config_option_key &opt_key, bool create = false) { OPT_PTR(avoid_crossing_perimeters); @@ -438,9 +442,10 @@ class HostConfig : public virtual StaticPrintConfig ConfigOptionString serial_port; ConfigOptionInt serial_speed; - HostConfig() : StaticPrintConfig() { - this->set_defaults(); - }; + HostConfig(bool initialize = true) : StaticPrintConfig() { + if (initialize) + this->set_defaults(); + } virtual ConfigOption* optptr(const t_config_option_key &opt_key, bool create = false) { OPT_PTR(octoprint_host); @@ -456,6 +461,16 @@ class FullPrintConfig : public PrintObjectConfig, public PrintRegionConfig, public PrintConfig, public HostConfig { public: + FullPrintConfig(bool initialize = true) : + PrintObjectConfig(false), + PrintRegionConfig(false), + PrintConfig(false), + HostConfig(false) + { + if (initialize) + this->set_defaults(); + } + virtual ConfigOption* optptr(const t_config_option_key &opt_key, bool create = false) { ConfigOption* opt; if ((opt = PrintObjectConfig::optptr(opt_key, create)) != NULL) return opt;