mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-26 10:21:00 +00:00
fix: make model_id/dev_type optional instead of blocking
This commit is contained in:
@@ -2010,12 +2010,14 @@ bool Sidebar::priv::sync_extruder_list(bool &only_external_material, bool is_man
|
||||
std::string machine_print_name = obj->get_show_printer_type();
|
||||
PresetBundle *preset_bundle = wxGetApp().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);
|
||||
if (!machine_preset) {
|
||||
const bool optional_printer_model = DevPrinterConfigUtil::is_optional_printer_model_id(obj->printer_type);
|
||||
const bool optional_target_model = DevPrinterConfigUtil::is_optional_printer_model_id(target_model_id);
|
||||
Preset* machine_preset = optional_printer_model ? nullptr : get_printer_preset(obj);
|
||||
if (!optional_printer_model && !optional_target_model && !machine_preset) {
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << __LINE__ << "check error: machine_preset empty";
|
||||
return false;
|
||||
}
|
||||
if (machine_print_name != target_model_id) {
|
||||
if (!optional_printer_model && !optional_target_model && machine_print_name != target_model_id) {
|
||||
MessageDialog dlg(this->plater, _L("The currently selected machine preset is inconsistent with the connected printer type.\n"
|
||||
"Are you sure to continue syncing?"), _L("Sync printer information"), wxICON_WARNING | wxYES | wxNO);
|
||||
if (dlg.ShowModal() == wxID_NO) {
|
||||
@@ -2207,6 +2209,11 @@ void Sidebar::priv::update_sync_status(const MachineObject *obj)
|
||||
return;
|
||||
}
|
||||
|
||||
if (DevPrinterConfigUtil::is_optional_printer_model_id(obj->printer_type)) {
|
||||
clear_all_sync_status();
|
||||
return;
|
||||
}
|
||||
|
||||
bool printer_synced = false;
|
||||
// 1. update printer status
|
||||
const Preset &cur_preset = wxGetApp().preset_bundle->printers.get_edited_preset();
|
||||
@@ -20490,9 +20497,14 @@ bool Plater::is_same_printer_for_connected_and_selected(bool popup_warning)
|
||||
}
|
||||
if (!check_printer_initialized(obj, true, popup_warning))
|
||||
return false;
|
||||
Preset * machine_preset = get_printer_preset(obj);
|
||||
if (!machine_preset)
|
||||
const std::string machine_model = obj->printer_type;
|
||||
PresetBundle *preset_bundle = wxGetApp().preset_bundle;
|
||||
const std::string selected_model = preset_bundle ? preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle) : std::string();
|
||||
if (!DevPrinterConfigUtil::is_optional_printer_model_id(machine_model) &&
|
||||
!DevPrinterConfigUtil::is_optional_printer_model_id(selected_model) &&
|
||||
!get_printer_preset(obj)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (wxGetApp().is_blocking_printing()) {
|
||||
if (popup_warning) {
|
||||
|
||||
Reference in New Issue
Block a user