Merge remote-tracking branch 'origin/master' into dev

This commit is contained in:
YuSanka 2022-01-24 08:37:51 +01:00
commit 7111da2dbf
41 changed files with 772 additions and 21286 deletions

View file

@ -349,7 +349,9 @@ bool Print::has_infinite_skirt() const
bool Print::has_skirt() const
{
return (m_config.skirt_height > 0 && m_config.skirts > 0) || m_config.draft_shield != dsDisabled;
return (m_config.skirt_height > 0 && m_config.skirts > 0) || has_infinite_skirt();
// case dsLimited should only be taken into account when skirt_height and skirts are positive,
// so it is covered by the first condition.
}
bool Print::has_brim() const

View file

@ -1048,8 +1048,7 @@ void Choice::set_selection()
choice_ctrl* field = dynamic_cast<choice_ctrl*>(window);
switch (m_opt.type) {
case coEnum:{
int id_value = m_opt.get_default_value<ConfigOptionEnum<SeamPosition>>()->value; //!!
field->SetSelection(id_value);
field->SetSelection(m_opt.default_value->getInt());
break;
}
case coFloat:

View file

@ -1349,6 +1349,7 @@ bool GUI_App::on_init_inner()
app_config->set("restore_win_position", "0");
else if (answer == wxID_NO)
app_config->set("restore_win_position", "1");
app_config->save();
}
return true;
@ -2958,6 +2959,7 @@ void GUI_App::window_pos_restore(wxTopLevelWindow* window, const std::string &na
// revert "restore_win_position" value if application wasn't crashed
app_config->set("restore_win_position", "1");
app_config->save();
}
else
window->CenterOnScreen();

View file

@ -236,7 +236,7 @@ private:
Vec3f hit;
size_t facet;
};
mutable RaycastResult m_rr;
mutable RaycastResult m_rr = {Vec2d::Zero(), -1, Vec3f::Zero(), 0};
protected:
void on_set_state() override;

View file

@ -65,7 +65,7 @@ enum class ActionButtonType : int;
class Sidebar : public wxPanel
{
ConfigOptionMode m_mode;
ConfigOptionMode m_mode{ConfigOptionMode::comSimple};
public:
Sidebar(Plater *parent);
Sidebar(Sidebar &&) = delete;

View file

@ -3950,15 +3950,15 @@ void SubstitutionManager::add_substitution(int substitution_id, const std::strin
bool case_insensitive = strchr(params.c_str(), 'i') != nullptr || strchr(params.c_str(), 'I') != nullptr;
bool whole_word = strchr(params.c_str(), 'w') != nullptr || strchr(params.c_str(), 'W') != nullptr;
auto chb_regexp = new wxCheckBox(m_parent, wxID_ANY, wxString("Regular expression"));
auto chb_regexp = new wxCheckBox(m_parent, wxID_ANY, _L("Regular expression"));
chb_regexp->SetValue(regexp);
params_sizer->Add(chb_regexp, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, m_em);
auto chb_case_insensitive = new wxCheckBox(m_parent, wxID_ANY, wxString("Case insensitive"));
auto chb_case_insensitive = new wxCheckBox(m_parent, wxID_ANY, _L("Case insensitive"));
chb_case_insensitive->SetValue(case_insensitive);
params_sizer->Add(chb_case_insensitive, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, m_em);
auto chb_whole_word = new wxCheckBox(m_parent, wxID_ANY, wxString("Whole word"));
auto chb_whole_word = new wxCheckBox(m_parent, wxID_ANY, _L("Whole word"));
chb_whole_word->SetValue(whole_word);
params_sizer->Add(chb_whole_word, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, m_em);