Follow-up of 86d7e1fb90
-> Validation of custom g-code added using vertical slider in preview
This commit is contained in:
parent
aee136cedd
commit
33aa6be7b7
1 changed files with 34 additions and 0 deletions
|
@ -1973,6 +1973,27 @@ static void upgrade_text_entry_dialog(wxTextEntryDialog* dlg, double min = -1.0,
|
||||||
}, btn_OK->GetId());
|
}, btn_OK->GetId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ENABLE_VALIDATE_CUSTOM_GCODE
|
||||||
|
static bool validate_custom_gcode(const std::string& gcode, const wxString& title)
|
||||||
|
{
|
||||||
|
std::vector<std::string> tags;
|
||||||
|
bool invalid = GCodeProcessor::contains_reserved_tags(gcode, 5, tags);
|
||||||
|
if (invalid) {
|
||||||
|
wxString reports = _L_PLURAL("The following line", "The following lines", tags.size());
|
||||||
|
reports += ":\n";
|
||||||
|
for (const std::string& keyword : tags) {
|
||||||
|
reports += ";" + keyword + "\n";
|
||||||
|
}
|
||||||
|
reports += _L("contain reserved keywords.") + "\n";
|
||||||
|
reports += _L("Please remove them, as they may cause problems in g-code visualization and printing time estimation.");
|
||||||
|
|
||||||
|
wxMessageDialog dialog(nullptr, reports, _L("Found reserved keywords in") + " " + title, wxICON_WARNING | wxOK);
|
||||||
|
dialog.ShowModal();
|
||||||
|
}
|
||||||
|
return !invalid;
|
||||||
|
}
|
||||||
|
#endif // ENABLE_VALIDATE_CUSTOM_GCODE
|
||||||
|
|
||||||
static std::string get_custom_code(const std::string& code_in, double height)
|
static std::string get_custom_code(const std::string& code_in, double height)
|
||||||
{
|
{
|
||||||
wxString msg_text = _L("Enter custom G-code used on current layer") + ":";
|
wxString msg_text = _L("Enter custom G-code used on current layer") + ":";
|
||||||
|
@ -1983,10 +2004,23 @@ static std::string get_custom_code(const std::string& code_in, double height)
|
||||||
wxTextEntryDialogStyle | wxTE_MULTILINE);
|
wxTextEntryDialogStyle | wxTE_MULTILINE);
|
||||||
upgrade_text_entry_dialog(&dlg);
|
upgrade_text_entry_dialog(&dlg);
|
||||||
|
|
||||||
|
#if ENABLE_VALIDATE_CUSTOM_GCODE
|
||||||
|
bool valid = true;
|
||||||
|
std::string value;
|
||||||
|
do {
|
||||||
|
if (dlg.ShowModal() != wxID_OK)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
value = dlg.GetValue().ToStdString();
|
||||||
|
valid = validate_custom_gcode(value, _L("Custom G-code"));
|
||||||
|
} while (!valid);
|
||||||
|
return value;
|
||||||
|
#else
|
||||||
if (dlg.ShowModal() != wxID_OK)
|
if (dlg.ShowModal() != wxID_OK)
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
return dlg.GetValue().ToStdString();
|
return dlg.GetValue().ToStdString();
|
||||||
|
#endif // ENABLE_VALIDATE_CUSTOM_GCODE
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string get_pause_print_msg(const std::string& msg_in, double height)
|
static std::string get_pause_print_msg(const std::string& msg_in, double height)
|
||||||
|
|
Loading…
Add table
Reference in a new issue