diff options
author | YuSanka <yusanka@gmail.com> | 2019-07-28 23:00:39 +0300 |
---|---|---|
committer | YuSanka <yusanka@gmail.com> | 2019-07-28 23:00:39 +0300 |
commit | 40a576a8adb73e755fcdb0a4a8d6331e1ffa098a (patch) | |
tree | 6449c71bc4c2bc2efc66b45c90d758ae01cbb5f9 /src/slic3r/GUI/OptionsGroup.cpp | |
parent | ab2519cde43cb5de6547c1b43eff0894daaad5a2 (diff) |
Implemented update of the override filaments options from/to config
Diffstat (limited to 'src/slic3r/GUI/OptionsGroup.cpp')
-rw-r--r-- | src/slic3r/GUI/OptionsGroup.cpp | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index f4f97a47d..2aca87d87 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -372,30 +372,10 @@ void ConfigOptionsGroup::on_change_OG(const t_config_option_key& opt_id, const b auto option = m_options.at(opt_id).opt; - // get value -//! auto field_value = get_value(opt_id); - if (option.gui_flags.compare("serialized")==0) { - if (opt_index != -1) { - // die "Can't set serialized option indexed value" ; - } - change_opt_value(*m_config, opt_key, value); - } - else { - if (opt_index == -1) { - // change_opt_value(*m_config, opt_key, field_value); - //!? why field_value?? in this case changed value will be lose! No? - change_opt_value(*m_config, opt_key, value); - } - else { - change_opt_value(*m_config, opt_key, value, opt_index); -// auto value = m_config->get($opt_key); -// $value->[$opt_index] = $field_value; -// $self->config->set($opt_key, $value); - } - } + change_opt_value(*m_config, opt_key, value, opt_index == -1 ? 0 : opt_index); } - OptionsGroup::on_change_OG(opt_id, value); //!? Why doing this + OptionsGroup::on_change_OG(opt_id, value); } void ConfigOptionsGroup::back_to_initial_value(const std::string& opt_key) @@ -578,6 +558,31 @@ boost::any ConfigOptionsGroup::get_config_value(const DynamicPrintConfig& config boost::any ret; wxString text_value = wxString(""); const ConfigOptionDef* opt = config.def()->get(opt_key); + + if (opt->nullable) + { + switch (opt->type) + { + case coPercents: + case coFloats: { + double val = opt->type == coFloats ? + config.option<ConfigOptionFloatsNullable>(opt_key)->get_at(idx) : + config.option<ConfigOptionPercentsNullable>(opt_key)->get_at(idx); + ret = double_to_string(val); + } + break; + case coBools: + ret = config.option<ConfigOptionBoolsNullable>(opt_key)->values[idx]; + break; + case coInts: + ret = config.option<ConfigOptionIntsNullable>(opt_key)->get_at(idx); + break; + default: + break; + } + return ret; + } + switch (opt->type) { case coFloatOrPercent:{ const auto &value = *config.option<ConfigOptionFloatOrPercent>(opt_key); |