From 859bc9c7864b441ce0cb95e7318df3becb17cc7c Mon Sep 17 00:00:00 2001 From: David Kocik Date: Fri, 26 Apr 2024 15:05:30 +0200 Subject: [PATCH] Use printer_variant to compare nozzle diameter in connect printer state. Do not concider models without nozzle. --- src/slic3r/GUI/PresetComboBoxes.cpp | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 0c57f8ce9f..9158fd04b6 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -932,19 +932,11 @@ static std::string get_connect_state_suffix_for_printer(const Preset& printer_pr // process real data from Connect if (auto printer_state_map = wxGetApp().plater()->get_user_account()->get_printer_state_map(); !printer_state_map.empty()) { - // printer_state_map has only one nozzle value. Take a first value from "nozzle_diameter" opt. - std::string nozzle_diameter_serialized; - if (printer_preset.config.has("nozzle_diameter")) { - nozzle_diameter_serialized = dynamic_cast(printer_preset.config.option("nozzle_diameter"))->serialize(); - if (size_t comma = nozzle_diameter_serialized.find(','); comma != std::string::npos) - nozzle_diameter_serialized = nozzle_diameter_serialized.substr(0, comma); - } for (const auto& [printer_model_nozzle_pair, states] : printer_state_map) { if (printer_model_nozzle_pair.first == printer_preset.config.opt_string("printer_model") - && (printer_model_nozzle_pair.second.empty() - || printer_model_nozzle_pair.second == nozzle_diameter_serialized) - ) { + && printer_model_nozzle_pair.second == printer_preset.config.opt_string("printer_variant")) + { PrinterStatesCount states_cnt = get_printe_states_count(states); if (states_cnt.available_cnt > 0) @@ -963,19 +955,11 @@ static wxString get_connect_info_line(const Preset& printer_preset) { if (auto printer_state_map = wxGetApp().plater()->get_user_account()->get_printer_state_map(); !printer_state_map.empty()) { - // printer_state_map has only one nozzle value. Take a first value from "nozzle_diameter" opt. - std::string nozzle_diameter_serialized; - if (printer_preset.config.has("nozzle_diameter")) { - nozzle_diameter_serialized = dynamic_cast(printer_preset.config.option("nozzle_diameter"))->serialize(); - if (size_t comma = nozzle_diameter_serialized.find(','); comma != std::string::npos) - nozzle_diameter_serialized = nozzle_diameter_serialized.substr(0, comma); - } for (const auto& [printer_model_nozzle_pair, states] : printer_state_map) { if (printer_model_nozzle_pair.first == printer_preset.config.opt_string("printer_model") - && (printer_model_nozzle_pair.second.empty() - || printer_model_nozzle_pair.second == nozzle_diameter_serialized) - ) { + && printer_model_nozzle_pair.second == printer_preset.config.opt_string("printer_variant")) + { PrinterStatesCount states_cnt = get_printe_states_count(states); return format_wxstr(_L("Available: %1%, Offline: %2%, Busy: %3%. Total: %4% printers"),