G=code substitutions: Debugger: Fixed wxWidgets assert when new substitution is added

+ Fixed representation of the gcode_substitution in DiffDialog and UnsavedChangesDialog
This commit is contained in:
YuSanka 2022-01-29 11:16:28 +01:00
parent ddb14fa7f9
commit ea84a46cdc
2 changed files with 5 additions and 4 deletions

View file

@ -4000,7 +4000,7 @@ void SubstitutionManager::add_substitution( int substitution_id,
editor->SetFont(wxGetApp().normal_font());
wxGetApp().UpdateDarkUI(editor);
top_sizer->Add(editor, proportion, wxALIGN_CENTER_VERTICAL | wxEXPAND| wxRIGHT, m_em);
top_sizer->Add(editor, proportion, wxALIGN_CENTER_VERTICAL | wxRIGHT, m_em);
editor->Bind(wxEVT_TEXT_ENTER, [this, editor, substitution_id, opt_pos](wxEvent& e) {
#if !defined(__WXGTK__)
@ -4065,7 +4065,7 @@ void SubstitutionManager::add_substitution( int substitution_id,
auto v_sizer = new wxBoxSizer(wxVERTICAL);
v_sizer->Add(top_sizer, 1, wxEXPAND);
v_sizer->Add(params_sizer, 1, wxEXPAND|wxTOP|wxBOTTOM, int(0.5* m_em));
m_grid_sizer->Add(v_sizer, 1, wxALIGN_CENTER_VERTICAL | wxEXPAND);
m_grid_sizer->Add(v_sizer, 1, wxEXPAND);
if (call_after_layout) {
m_parent->GetParent()->Layout();

View file

@ -1158,10 +1158,11 @@ static wxString get_string_value(std::string opt_key, const DynamicPrintConfig&
}
if (opt_key == "gcode_substitutions") {
if (!strings->empty())
for (size_t id = 0; id < strings->size(); id += 3)
for (size_t id = 0; id < strings->size(); id += 4)
out += from_u8(strings->get_at(id)) + ";\t" +
from_u8(strings->get_at(id + 1)) + ";\t" +
from_u8(strings->get_at(id + 2)) + ";\n";
from_u8(strings->get_at(id + 2)) + ";\t" +
from_u8(strings->get_at(id + 3)) + ";\n";
return out;
}
if (!strings->empty() && opt_idx < strings->values.size())