FIX:The name of the material in the error prompt is empty

JIRA:STUDIO-4907
Change-Id: I3cf44f099256a51f21a44a89c89c000f734d1f36
This commit is contained in:
hu.wang 2023-11-27 10:46:17 +08:00 committed by Lane.Wei
parent c21a1bf1df
commit 098f319519
1 changed files with 19 additions and 5 deletions

View File

@ -12872,14 +12872,28 @@ bool Plater::show_publish_dialog(bool show)
void Plater::post_process_string_object_exception(StringObjectException &err)
{
PresetBundle* preset_bundle = wxGetApp().preset_bundle;
if (err.type == StringExceptionType::STRING_EXCEPT_FILAMENT_NOT_MATCH_BED_TYPE) {
try {
int extruder_id = atoi(err.params[2].c_str()) - 1;
if (extruder_id < wxGetApp().preset_bundle->filament_presets.size()) {
std::string filament_name = wxGetApp().preset_bundle->filament_presets[extruder_id];
for (auto filament : wxGetApp().preset_bundle->filaments) {
if (filament.name == filament_name) {
filament_name = filament.alias;
if (extruder_id < preset_bundle->filament_presets.size()) {
std::string filament_name = preset_bundle->filament_presets[extruder_id];
for (auto filament_it = preset_bundle->filaments.begin(); filament_it != preset_bundle->filaments.end(); filament_it++) {
if (filament_it->name == filament_name) {
if (filament_it->is_system) {
filament_name = filament_it->alias;
} else {
auto preset = preset_bundle->filaments.get_preset_base(*filament_it);
if (!preset->alias.empty()) {
filament_name = preset->alias;
} else {
char target = '@';
size_t pos = preset->name.find(target);
if (pos != std::string::npos) {
filament_name = preset->name.substr(0, pos - 1);
}
}
}
break;
}
}