FIX: PA for custom filament not available in BL Studio

github: 2971
Change-Id: I6ccd36a183e7367d69557300f7242f5403f4bb33
This commit is contained in:
zhimin.zeng 2023-11-27 17:57:22 +08:00 committed by Lane.Wei
parent 8ab180c5e1
commit d92791cb6d
2 changed files with 25 additions and 6 deletions

View File

@ -484,8 +484,8 @@ void AMSMaterialsSetting::on_select_ok(wxCommandEvent &event)
if (preset_bundle) {
for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) {
auto filament_id = map_filament_items[m_comboBox_filament->GetValue().ToStdString()];
auto filament_item = map_filament_items[m_comboBox_filament->GetValue().ToStdString()];
std::string filament_id = filament_item.filament_id;
if (it->filament_id.compare(filament_id) == 0) {
@ -816,7 +816,10 @@ void AMSMaterialsSetting::Popup(wxString filament, wxString sn, wxString temp_mi
// name matched
if (filament_it->is_system) {
filament_items.push_back(filament_it->alias);
map_filament_items[filament_it->alias] = filament_it->filament_id;
FilamentInfos filament_infos;
filament_infos.filament_id = filament_it->filament_id;
filament_infos.setting_id = filament_it->setting_id;
map_filament_items[filament_it->alias] = filament_infos;
}
else {
char target = '@';
@ -827,7 +830,10 @@ void AMSMaterialsSetting::Popup(wxString filament, wxString sn, wxString temp_mi
user_preset_alias = wx_user_preset_alias.ToStdString();
filament_items.push_back(user_preset_alias);
map_filament_items[user_preset_alias] = filament_it->filament_id;
FilamentInfos filament_infos;
filament_infos.filament_id = filament_it->filament_id;
filament_infos.setting_id = filament_it->setting_id;
map_filament_items[user_preset_alias] = filament_infos;
}
}
@ -943,7 +949,8 @@ void AMSMaterialsSetting::on_select_filament(wxCommandEvent &evt)
if (preset_bundle) {
for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) {
if (!m_comboBox_filament->GetValue().IsEmpty()) {
auto filament_id = map_filament_items[m_comboBox_filament->GetValue().ToStdString()];
auto filament_item = map_filament_items[m_comboBox_filament->GetValue().ToStdString()];
std::string filament_id = filament_item.filament_id;
if (it->filament_id.compare(filament_id) == 0) {
// ) if nozzle_temperature_range is found
@ -1017,6 +1024,13 @@ void AMSMaterialsSetting::on_select_filament(wxCommandEvent &evt)
if (preset_bundle) {
for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) {
auto itor = map_filament_items.find(m_comboBox_filament->GetValue().ToStdString());
if ( itor != map_filament_items.end()) {
ams_filament_id = itor->second.filament_id;
ams_setting_id = itor->second.setting_id;
break;
}
if (it->alias.compare(m_comboBox_filament->GetValue().ToStdString()) == 0) {
ams_filament_id = it->filament_id;
ams_setting_id = it->setting_id;

View File

@ -180,7 +180,12 @@ protected:
#endif
ComboBox * m_comboBox_cali_result;
TextInput* m_readonly_filament;
std::map<std::string, std::string> map_filament_items;
struct FilamentInfos {
std::string filament_id;
std::string setting_id;
};
std::map<std::string, FilamentInfos> map_filament_items;
};
wxDECLARE_EVENT(EVT_SELECTED_COLOR, wxCommandEvent);