Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuSanka <yusanka@gmail.com>2019-07-28 23:00:39 +0300
committerYuSanka <yusanka@gmail.com>2019-07-28 23:00:39 +0300
commit40a576a8adb73e755fcdb0a4a8d6331e1ffa098a (patch)
tree6449c71bc4c2bc2efc66b45c90d758ae01cbb5f9 /src/slic3r/GUI/OptionsGroup.cpp
parentab2519cde43cb5de6547c1b43eff0894daaad5a2 (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.cpp49
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);