diff --git a/xs/src/slic3r/GUI/Field.cpp b/xs/src/slic3r/GUI/Field.cpp index 5bb41f93e1..0b52480083 100644 --- a/xs/src/slic3r/GUI/Field.cpp +++ b/xs/src/slic3r/GUI/Field.cpp @@ -112,13 +112,13 @@ namespace Slic3r { namespace GUI { if (vec->size() > 1) break; double val = vec->get_at(0); - text_value = val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2); + text_value = val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2, wxNumberFormatter::Style_None); break; } case coFloat: { double val = m_opt.default_value->getFloat(); - text_value = (val - int(val)) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2); + text_value = (val - int(val)) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2, wxNumberFormatter::Style_None); break; } case coFloats: @@ -128,7 +128,7 @@ namespace Slic3r { namespace GUI { if (vec->size() > 1) break; double val = vec->get_at(0); - text_value = val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2); + text_value = val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2, wxNumberFormatter::Style_None); break; } case coString: @@ -161,13 +161,12 @@ namespace Slic3r { namespace GUI { temp->Bind(wxEVT_KILL_FOCUS, ([this, temp](wxEvent& e) { - //! change value after kill focus - //! to avoid update_config during every one changes inside control - on_change_field(); on_kill_focus(e); temp->GetToolTip()->Enable(true); }), temp->GetId()); + temp->Bind(wxEVT_TEXT, ([this](wxCommandEvent) { on_change_field(); }), temp->GetId()); + // recast as a wxWindow to fit the calling convention window = dynamic_cast(temp); } @@ -489,9 +488,9 @@ void PointCtrl::BUILD() auto default_pt = static_cast(m_opt.default_value)->values.at(0); double val = default_pt.x; - wxString X = val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2); + wxString X = val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2, wxNumberFormatter::Style_None); val = default_pt.y; - wxString Y = val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2); + wxString Y = val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2, wxNumberFormatter::Style_None); x_textctrl = new wxTextCtrl(m_parent, wxID_ANY, X, wxDefaultPosition, field_size); y_textctrl = new wxTextCtrl(m_parent, wxID_ANY, Y, wxDefaultPosition, field_size); @@ -516,9 +515,9 @@ void PointCtrl::set_value(const Pointf value) m_disable_change_event = true; double val = value.x; - x_textctrl->SetValue(val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2)); + x_textctrl->SetValue(val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2, wxNumberFormatter::Style_None)); val = value.y; - y_textctrl->SetValue(val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2)); + y_textctrl->SetValue(val - int(val) == 0 ? wxString::Format(_T("%i"), int(val)) : wxNumberFormatter::ToString(val, 2, wxNumberFormatter::Style_None)); m_disable_change_event = false; } diff --git a/xs/src/slic3r/GUI/OptionsGroup.cpp b/xs/src/slic3r/GUI/OptionsGroup.cpp index 46f395e5c2..1b91567130 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.cpp +++ b/xs/src/slic3r/GUI/OptionsGroup.cpp @@ -287,11 +287,10 @@ boost::any ConfigOptionsGroup::config_value(std::string opt_key, int opt_index, wxString double_to_string(double const value) { + int precision = 10 * value - int(10 * value) == 0 ? 1 : 2; return value - int(value) == 0 ? wxString::Format(_T("%i"), int(value)) : - 10 * value - int(10 * value) == 0 ? - wxNumberFormatter::ToString(value, 1) : - wxNumberFormatter::ToString(value, 2); + wxNumberFormatter::ToString(value, precision, wxNumberFormatter::Style_None); } boost::any ConfigOptionsGroup::get_config_value(DynamicPrintConfig& config, std::string opt_key, int opt_index/* = -1*/)