diff --git a/src/slic3r/GUI/LoadStepDialog.cpp b/src/slic3r/GUI/LoadStepDialog.cpp index 0536928ea0..fb4a8a120a 100644 --- a/src/slic3r/GUI/LoadStepDialog.cpp +++ b/src/slic3r/GUI/LoadStepDialog.cpp @@ -35,9 +35,9 @@ namespace Slic3r::GUI { static std::vector> default_step_import_params = { - {"Low" , {0.1, 1. }}, - {"Medium" , {0.05, 0.5 }}, - {"High" , {0.001, 0.03}}, + {"Low" , {0.005, 1. }}, + {"Medium" , {0.003, 0.5 }}, + {"High" , {0.001, 0.25}}, }; LoadStepDialog::LoadStepDialog(wxWindow* parent, const std::string& filename, double linear_precision, double angle_precision, bool multiple_loading) @@ -83,7 +83,7 @@ LoadStepDialog::LoadStepDialog(wxWindow* parent, const std::string& filename, do SetSizer(main_sizer); main_sizer->SetSizeHints(this); - m_custom_sizer->ShowItems(!m_default); + enable_customs(!m_default); // Update DarkUi just for buttons wxGetApp().UpdateDlgDarkUI(this, true); @@ -103,9 +103,9 @@ void LoadStepDialog::add_params(wxSizer* sizer) m_params.linear = params_copy.linear; m_params.angle = params_copy.angle; - m_custom_sizer->ShowItems(false); + enable_customs(false); }); - bool is_selected = m_params.linear == params.linear && params.angle == params.angle; + bool is_selected = m_params.linear == params.linear && m_params.angle == params.angle; radio_def->SetValue(is_selected); m_default |= is_selected; @@ -117,7 +117,7 @@ void LoadStepDialog::add_params(wxSizer* sizer) wxRadioButton* radio_custom = new wxRadioButton(this, wxID_ANY, _L("Custom")); radio_custom->Bind(wxEVT_RADIOBUTTON, [&, this](wxEvent&) { - m_custom_sizer->ShowItems(true); + enable_customs(true); #ifdef __linux__ this->Fit(); #endif // __linux__ @@ -183,7 +183,7 @@ void LoadStepDialog::add_params(wxSizer* sizer) // Add "Linear precision" m_linear_precision_slider = new wxSlider(this, wxID_ANY, m_linear_precision_sl.get_pos(m_params.linear), m_linear_precision_sl.beg_sl_pos, m_linear_precision_sl.end_sl_pos, wxDefaultPosition, def_slider_size, slyder_style); - m_linear_precision_slider->SetTickFreq(10); + m_linear_precision_slider->SetTickFreq(1); m_linear_precision_slider->Bind(wxEVT_SLIDER, [this](wxCommandEvent e) { m_params.linear = m_linear_precision_sl.get_value(m_linear_precision_slider->GetValue()); m_linear_precision_val->SetValue(format_wxstr("%1%", m_params.linear)); @@ -208,7 +208,7 @@ void LoadStepDialog::add_params(wxSizer* sizer) // Add "Angle precision" m_angle_precision_slider = new wxSlider(this, wxID_ANY, m_angle_precision_sl.get_pos(m_params.angle), m_angle_precision_sl.beg_sl_pos, m_angle_precision_sl.end_sl_pos, wxDefaultPosition, def_slider_size, slyder_style); - m_angle_precision_slider->SetTickFreq(10); + m_angle_precision_slider->SetTickFreq(5); m_angle_precision_slider->Bind(wxEVT_SLIDER, [this](wxCommandEvent e) { m_params.angle = m_angle_precision_sl.get_value(m_angle_precision_slider->GetValue()); m_angle_precision_val->SetValue(format_wxstr("%1%", m_params.angle)); @@ -238,6 +238,14 @@ void LoadStepDialog::add_params(wxSizer* sizer) sizer->Add(main_sizer, 1, wxEXPAND | wxALL, em_unit()); } +void LoadStepDialog::enable_customs(bool enable) +{ + m_linear_precision_slider->Enable(enable); + m_linear_precision_val->Enable(enable); + m_angle_precision_slider->Enable(enable); + m_angle_precision_val->Enable(enable); +} + bool LoadStepDialog::IsCheckBoxChecked() { return m_remember_chb && m_remember_chb->GetValue(); diff --git a/src/slic3r/GUI/LoadStepDialog.hpp b/src/slic3r/GUI/LoadStepDialog.hpp index 125d61a061..779aa3df95 100644 --- a/src/slic3r/GUI/LoadStepDialog.hpp +++ b/src/slic3r/GUI/LoadStepDialog.hpp @@ -73,6 +73,7 @@ protected: private: void add_params(wxSizer* sizer); + void enable_customs(bool enable); private: PrecisionParams m_params;