FIX: highlight sync button when the info is inconsistent with printer
STUDIO-9603 Change-Id: I1fc8954e8becce1d382e7559abc03537442613f2
This commit is contained in:
parent
b028f971d6
commit
b16f9c20f4
|
@ -1221,10 +1221,12 @@ void Sidebar::priv::update_sync_status(const MachineObject *obj)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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->printer_type) {
|
||||||
panel_printer_preset->ShowBadge(true);
|
panel_printer_preset->ShowBadge(true);
|
||||||
|
printer_synced = true;
|
||||||
} else {
|
} else {
|
||||||
clear_all_sync_status();
|
clear_all_sync_status();
|
||||||
return;
|
return;
|
||||||
|
@ -1302,23 +1304,42 @@ void Sidebar::priv::update_sync_status(const MachineObject *obj)
|
||||||
|
|
||||||
std::reverse(machine_extruder_infos.begin(), machine_extruder_infos.end());
|
std::reverse(machine_extruder_infos.begin(), machine_extruder_infos.end());
|
||||||
|
|
||||||
|
std::vector<bool> extruder_synced(extruder_nums, false);
|
||||||
if (extruder_nums == 1) {
|
if (extruder_nums == 1) {
|
||||||
if (extruder_infos == machine_extruder_infos)
|
if (extruder_infos == machine_extruder_infos) {
|
||||||
single_extruder->ShowBadge(true);
|
single_extruder->ShowBadge(true);
|
||||||
|
extruder_synced[0] = true;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
single_extruder->ShowBadge(false);
|
single_extruder->ShowBadge(false);
|
||||||
}
|
}
|
||||||
else if (extruder_nums == 2) {
|
else if (extruder_nums == 2) {
|
||||||
if (extruder_infos[0] == machine_extruder_infos[0])
|
if (extruder_infos[0] == machine_extruder_infos[0]) {
|
||||||
left_extruder->ShowBadge(true);
|
left_extruder->ShowBadge(true);
|
||||||
|
extruder_synced[0] = true;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
left_extruder->ShowBadge(false);
|
left_extruder->ShowBadge(false);
|
||||||
|
|
||||||
if (extruder_infos[1] == machine_extruder_infos[1])
|
if (extruder_infos[1] == machine_extruder_infos[1]) {
|
||||||
right_extruder->ShowBadge(true);
|
right_extruder->ShowBadge(true);
|
||||||
|
extruder_synced[1] = true;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
right_extruder->ShowBadge(false);
|
right_extruder->ShowBadge(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
StateColor synced_colour(std::pair<wxColour, int>(wxColour("#CECECE"), StateColor::Normal));
|
||||||
|
StateColor not_synced_colour(std::pair<wxColour, int>(wxColour("#00AE42"), StateColor::Normal));
|
||||||
|
bool all_extruder_synced = std::all_of(extruder_synced.begin(), extruder_synced.end(), [](bool value) { return value; });
|
||||||
|
if (printer_synced && all_extruder_synced) {
|
||||||
|
btn_sync_printer->SetBorderColor(synced_colour);
|
||||||
|
btn_sync_printer->SetIcon("ams_nozzle_sync");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
btn_sync_printer->SetBorderColor(not_synced_colour);
|
||||||
|
btn_sync_printer->SetIcon("printer_sync");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define PRINTER_THUMBNAIL_SIZE (wxSize(FromDIP(48), FromDIP(48)))
|
#define PRINTER_THUMBNAIL_SIZE (wxSize(FromDIP(48), FromDIP(48)))
|
||||||
|
|
Loading…
Reference in New Issue