Updated UI for the "infill_anchor" parameter
This commit is contained in:
parent
620f94331c
commit
03b336145f
@ -1057,6 +1057,19 @@ void PrintConfigDef::init_fff_params()
|
|||||||
"If expressed as percentage (example: 15%) it is calculated over infill extrusion width.");
|
"If expressed as percentage (example: 15%) it is calculated over infill extrusion width.");
|
||||||
def->sidetext = L("mm or %");
|
def->sidetext = L("mm or %");
|
||||||
def->ratio_over = "infill_extrusion_width";
|
def->ratio_over = "infill_extrusion_width";
|
||||||
|
def->gui_type = "f_enum_open";
|
||||||
|
def->enum_values.push_back("0");
|
||||||
|
def->enum_values.push_back("1");
|
||||||
|
def->enum_values.push_back("2");
|
||||||
|
def->enum_values.push_back("5");
|
||||||
|
def->enum_values.push_back("10");
|
||||||
|
def->enum_values.push_back("1000");
|
||||||
|
def->enum_labels.push_back(L("0 (unprintable)"));
|
||||||
|
def->enum_labels.push_back("1 mm");
|
||||||
|
def->enum_labels.push_back("2 mm");
|
||||||
|
def->enum_labels.push_back("5 mm");
|
||||||
|
def->enum_labels.push_back("10 mm");
|
||||||
|
def->enum_labels.push_back(L("1000 (unlimited)"));
|
||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
def->set_default_value(new ConfigOptionFloatOrPercent(300, true));
|
def->set_default_value(new ConfigOptionFloatOrPercent(300, true));
|
||||||
|
|
||||||
|
@ -867,7 +867,7 @@ void Choice::BUILD() {
|
|||||||
if (m_is_editable) {
|
if (m_is_editable) {
|
||||||
temp->Bind(wxEVT_KILL_FOCUS, ([this](wxEvent& e) {
|
temp->Bind(wxEVT_KILL_FOCUS, ([this](wxEvent& e) {
|
||||||
e.Skip();
|
e.Skip();
|
||||||
if (m_opt.type == coStrings) {
|
if (m_opt.type == coStrings || m_opt.type == coFloatOrPercent) {
|
||||||
on_change_field();
|
on_change_field();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -898,59 +898,42 @@ void Choice::set_selection()
|
|||||||
|
|
||||||
choice_ctrl* field = dynamic_cast<choice_ctrl*>(window);
|
choice_ctrl* field = dynamic_cast<choice_ctrl*>(window);
|
||||||
switch (m_opt.type) {
|
switch (m_opt.type) {
|
||||||
case coFloat:
|
|
||||||
case coPercent: {
|
|
||||||
double val = m_opt.default_value->getFloat();
|
|
||||||
text_value = val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 1);
|
|
||||||
size_t idx = 0;
|
|
||||||
for (auto el : m_opt.enum_values)
|
|
||||||
{
|
|
||||||
if (el == text_value)
|
|
||||||
break;
|
|
||||||
++idx;
|
|
||||||
}
|
|
||||||
// if (m_opt.type == coPercent) text_value += "%";
|
|
||||||
idx == m_opt.enum_values.size() ?
|
|
||||||
field->SetValue(text_value) :
|
|
||||||
field->SetSelection(idx);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case coEnum:{
|
case coEnum:{
|
||||||
int id_value = m_opt.get_default_value<ConfigOptionEnum<SeamPosition>>()->value; //!!
|
int id_value = m_opt.get_default_value<ConfigOptionEnum<SeamPosition>>()->value; //!!
|
||||||
field->SetSelection(id_value);
|
field->SetSelection(id_value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case coFloat:
|
||||||
|
case coPercent: {
|
||||||
|
double val = m_opt.default_value->getFloat();
|
||||||
|
text_value = val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case coInt:{
|
case coInt:{
|
||||||
int val = m_opt.default_value->getInt(); //!!
|
text_value = wxString::Format(_T("%i"), int(m_opt.default_value->getInt()));
|
||||||
text_value = wxString::Format(_T("%i"), int(val));
|
|
||||||
size_t idx = 0;
|
|
||||||
for (auto el : m_opt.enum_values)
|
|
||||||
{
|
|
||||||
if (el == text_value)
|
|
||||||
break;
|
|
||||||
++idx;
|
|
||||||
}
|
|
||||||
idx == m_opt.enum_values.size() ?
|
|
||||||
field->SetValue(text_value) :
|
|
||||||
field->SetSelection(idx);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case coStrings:{
|
case coStrings:{
|
||||||
text_value = m_opt.get_default_value<ConfigOptionStrings>()->get_at(m_opt_idx);
|
text_value = m_opt.get_default_value<ConfigOptionStrings>()->get_at(m_opt_idx);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case coFloatOrPercent: {
|
||||||
|
text_value = double_to_string(m_opt.default_value->getFloat());
|
||||||
|
if (m_opt.get_default_value<ConfigOptionFloatOrPercent>()->percent)
|
||||||
|
text_value += "%";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
|
||||||
size_t idx = 0;
|
if (!text_value.IsEmpty()) {
|
||||||
for (auto el : m_opt.enum_values)
|
int idx = 0;
|
||||||
{
|
for (auto el : m_opt.enum_values) {
|
||||||
if (el == text_value)
|
if (el == text_value)
|
||||||
break;
|
break;
|
||||||
++idx;
|
++idx;
|
||||||
}
|
}
|
||||||
idx == m_opt.enum_values.size() ?
|
idx == m_opt.enum_values.size() ? field->SetValue(text_value) : field->SetSelection(idx);
|
||||||
field->SetValue(text_value) :
|
|
||||||
field->SetSelection(idx);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default: break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -984,6 +967,7 @@ void Choice::set_value(const boost::any& value, bool change_event)
|
|||||||
case coInt:
|
case coInt:
|
||||||
case coFloat:
|
case coFloat:
|
||||||
case coPercent:
|
case coPercent:
|
||||||
|
case coFloatOrPercent:
|
||||||
case coString:
|
case coString:
|
||||||
case coStrings: {
|
case coStrings: {
|
||||||
wxString text_value;
|
wxString text_value;
|
||||||
@ -1137,7 +1121,9 @@ boost::any& Choice::get_value()
|
|||||||
(ret_str != m_opt.enum_values[ret_enum] && ret_str != _(m_opt.enum_labels[ret_enum])))
|
(ret_str != m_opt.enum_values[ret_enum] && ret_str != _(m_opt.enum_labels[ret_enum])))
|
||||||
// modifies ret_string!
|
// modifies ret_string!
|
||||||
get_value_by_opt_type(ret_str);
|
get_value_by_opt_type(ret_str);
|
||||||
else
|
else if (m_opt.type == coFloatOrPercent)
|
||||||
|
m_value = m_opt.enum_values[ret_enum];
|
||||||
|
else
|
||||||
m_value = atof(m_opt.enum_values[ret_enum].c_str());
|
m_value = atof(m_opt.enum_values[ret_enum].c_str());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1422,9 +1422,9 @@ void TabPrint::build()
|
|||||||
optgroup = page->new_optgroup(L("Infill"));
|
optgroup = page->new_optgroup(L("Infill"));
|
||||||
optgroup->append_single_option_line("fill_density", category_path + "fill-density");
|
optgroup->append_single_option_line("fill_density", category_path + "fill-density");
|
||||||
optgroup->append_single_option_line("fill_pattern", category_path + "fill-pattern");
|
optgroup->append_single_option_line("fill_pattern", category_path + "fill-pattern");
|
||||||
|
optgroup->append_single_option_line("infill_anchor", category_path + "fill-pattern");
|
||||||
optgroup->append_single_option_line("top_fill_pattern", category_path + "top-fill-pattern");
|
optgroup->append_single_option_line("top_fill_pattern", category_path + "top-fill-pattern");
|
||||||
optgroup->append_single_option_line("bottom_fill_pattern", category_path + "bottom-fill-pattern");
|
optgroup->append_single_option_line("bottom_fill_pattern", category_path + "bottom-fill-pattern");
|
||||||
optgroup->append_single_option_line("infill_anchor", category_path + "fill-pattern");
|
|
||||||
|
|
||||||
optgroup = page->new_optgroup(L("Ironing"));
|
optgroup = page->new_optgroup(L("Ironing"));
|
||||||
optgroup->append_single_option_line("ironing");
|
optgroup->append_single_option_line("ironing");
|
||||||
|
Loading…
Reference in New Issue
Block a user