FIX: Upgraded P1P to P1S shows up again as a P1P

jira: STUDIO-12944
Change-Id: If234cbd96cffa547e9cae47a71875efd1b097a25
(cherry picked from commit 2fa053dadef5750d1888743866ebca2867c85f7a)
This commit is contained in:
zhimin.zeng
2025-07-08 19:31:59 +08:00
committed by Noisyfox
parent 4a3fa5141c
commit 7f71c59490
3 changed files with 17 additions and 9 deletions

View File

@@ -618,6 +618,14 @@ std::string MachineObject::convertToIp(long long ip)
return ss.str(); return ss.str();
} }
std::string MachineObject::get_show_printer_type() const
{
std::string printer_type = this->printer_type;
if (this->is_support_upgrade_kit && this->installed_upgrade_kit)
printer_type = "C12";
return printer_type;
}
PrinterSeries MachineObject::get_printer_series() const PrinterSeries MachineObject::get_printer_series() const
{ {
std::string series = DeviceManager::get_printer_series(printer_type); std::string series = DeviceManager::get_printer_series(printer_type);

View File

@@ -690,6 +690,7 @@ public:
//PRINTER_TYPE printer_type = PRINTER_3DPrinter_UKNOWN; //PRINTER_TYPE printer_type = PRINTER_3DPrinter_UKNOWN;
std::string printer_type; /* model_id */ std::string printer_type; /* model_id */
std::string get_show_printer_type() const;
PrinterSeries get_printer_series() const; PrinterSeries get_printer_series() const;
PrinterArch get_printer_arch() const; PrinterArch get_printer_arch() const;
std::string get_printer_ams_type() const; std::string get_printer_ams_type() const;

View File

@@ -1220,7 +1220,7 @@ bool Sidebar::priv::sync_extruder_list(bool &only_external_material)
return false; return false;
} }
std::string machine_print_name = obj->printer_type; std::string machine_print_name = obj->get_show_printer_type();
PresetBundle *preset_bundle = wxGetApp().preset_bundle; PresetBundle *preset_bundle = wxGetApp().preset_bundle;
std::string target_model_id = preset_bundle->printers.get_selected_preset().get_printer_type(preset_bundle); std::string target_model_id = preset_bundle->printers.get_selected_preset().get_printer_type(preset_bundle);
Preset* machine_preset = get_printer_preset(obj); Preset* machine_preset = get_printer_preset(obj);
@@ -1354,7 +1354,7 @@ void Sidebar::priv::update_sync_status(const MachineObject *obj)
bool printer_synced = false; bool printer_synced = false;
// 1. update printer status // 1. update printer status
const Preset &cur_preset = wxGetApp().preset_bundle->printers.get_edited_preset(); const Preset &cur_preset = wxGetApp().preset_bundle->printers.get_edited_preset();
if (preset_bundle && preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle) == obj->printer_type) { if (preset_bundle && preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle) == obj->get_show_printer_type()) {
panel_printer_preset->ShowBadge(true); panel_printer_preset->ShowBadge(true);
printer_synced = true; printer_synced = true;
@@ -2978,7 +2978,7 @@ bool Sidebar::need_auto_sync_extruder_list_after_connect_priner(const MachineObj
if(!obj) if(!obj)
return false; return false;
std::string machine_print_name = obj->printer_type; std::string machine_print_name = obj->get_show_printer_type();
PresetBundle *preset_bundle = wxGetApp().preset_bundle; PresetBundle *preset_bundle = wxGetApp().preset_bundle;
std::string target_model_id = preset_bundle->printers.get_selected_preset().get_printer_type(preset_bundle); std::string target_model_id = preset_bundle->printers.get_selected_preset().get_printer_type(preset_bundle);
if (machine_print_name != target_model_id) { if (machine_print_name != target_model_id) {
@@ -8473,7 +8473,7 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt)
if (obj && obj->is_multi_extruders()) { if (obj && obj->is_multi_extruders()) {
PresetBundle *preset_bundle = wxGetApp().preset_bundle; PresetBundle *preset_bundle = wxGetApp().preset_bundle;
Preset& cur_preset = preset_bundle->printers.get_edited_preset(); Preset& cur_preset = preset_bundle->printers.get_edited_preset();
if (cur_preset.get_printer_type(preset_bundle) == obj->printer_type) { if (cur_preset.get_printer_type(preset_bundle) == obj->get_show_printer_type()) {
double preset_nozzle_diameter = cur_preset.config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values[0]; double preset_nozzle_diameter = cur_preset.config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values[0];
bool same_nozzle_diameter = true; bool same_nozzle_diameter = true;
for (const Extder &extruder : obj->m_extder_data.extders) { for (const Extder &extruder : obj->m_extder_data.extders) {
@@ -9876,7 +9876,7 @@ bool Plater::priv::check_ams_status_impl(bool is_slice_all)
return true; return true;
} }
PresetBundle *preset_bundle = wxGetApp().preset_bundle; PresetBundle *preset_bundle = wxGetApp().preset_bundle;
if (preset_bundle && preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle) == obj->printer_type) { if (preset_bundle && preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle) == obj->get_show_printer_type()) {
bool is_same_as_printer = true; bool is_same_as_printer = true;
auto nozzle_volumes_values = preset_bundle->project_config.option<ConfigOptionEnumsGeneric>("nozzle_volume_type")->values; auto nozzle_volumes_values = preset_bundle->project_config.option<ConfigOptionEnumsGeneric>("nozzle_volume_type")->values;
assert(obj->m_extder_data.extders.size() == 2 && nozzle_volumes_values.size() == 2); assert(obj->m_extder_data.extders.size() == 2 && nozzle_volumes_values.size() == 2);
@@ -9966,7 +9966,7 @@ bool Plater::priv::get_machine_sync_status()
return false; return false;
PresetBundle *preset_bundle = wxGetApp().preset_bundle; PresetBundle *preset_bundle = wxGetApp().preset_bundle;
return preset_bundle && preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle) == obj->printer_type; return preset_bundle && preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle) == obj->get_show_printer_type();
} }
bool Plater::priv::init_collapse_toolbar() bool Plater::priv::init_collapse_toolbar()
@@ -13841,8 +13841,7 @@ Preset *get_printer_preset(MachineObject *obj)
if (printer_nozzle_opt) printer_nozzle_vals = dynamic_cast<ConfigOptionFloats *>(printer_nozzle_opt); if (printer_nozzle_opt) printer_nozzle_vals = dynamic_cast<ConfigOptionFloats *>(printer_nozzle_opt);
std::string model_id = printer_it->get_current_printer_type(preset_bundle); std::string model_id = printer_it->get_current_printer_type(preset_bundle);
std::string printer_type = obj->printer_type; std::string printer_type = obj->get_show_printer_type();
if (obj->is_support_upgrade_kit && obj->installed_upgrade_kit) printer_type = "C12";
if (model_id.compare(printer_type) == 0 && printer_nozzle_vals && abs(printer_nozzle_vals->get_at(0) - machine_nozzle_diameter) < 1e-3) { if (model_id.compare(printer_type) == 0 && printer_nozzle_vals && abs(printer_nozzle_vals->get_at(0) - machine_nozzle_diameter) < 1e-3) {
printer_preset = &(*printer_it); printer_preset = &(*printer_it);
} }
@@ -13872,7 +13871,7 @@ bool Plater::check_printer_initialized(MachineObject *obj, bool only_warning, bo
if (!has_been_initialized) { if (!has_been_initialized) {
if (popup_warning) { if (popup_warning) {
if (!only_warning) { if (!only_warning) {
if (DeviceManager::get_printer_can_set_nozzle(obj->printer_type)) { if (DeviceManager::get_printer_can_set_nozzle(obj->get_show_printer_type())) {
MessageDialog dlg(wxGetApp().plater(), _L("The nozzle type is not set. Please set the nozzle and try again."), _L("Warning"), wxOK | wxICON_WARNING); MessageDialog dlg(wxGetApp().plater(), _L("The nozzle type is not set. Please set the nozzle and try again."), _L("Warning"), wxOK | wxICON_WARNING);
dlg.ShowModal(); dlg.ShowModal();
} else { } else {