FIX:fixed some multi job issue

Change-Id: I338078ad8fcf809888db9d8daeb470a9bf4eab46
This commit is contained in:
tao wang
2024-04-18 16:01:19 +08:00
committed by SoftFever
parent 4d8fa39c42
commit 22df29e5cf
5 changed files with 27 additions and 11 deletions

View File

@@ -12,13 +12,21 @@ wxDEFINE_EVENT(EVT_MULTI_CLOUD_TASK_SELECTED, wxCommandEvent);
wxDEFINE_EVENT(EVT_MULTI_LOCAL_TASK_SELECTED, wxCommandEvent); wxDEFINE_EVENT(EVT_MULTI_LOCAL_TASK_SELECTED, wxCommandEvent);
wxDEFINE_EVENT(EVT_MULTI_DEVICE_SELECTED, wxCommandEvent); wxDEFINE_EVENT(EVT_MULTI_DEVICE_SELECTED, wxCommandEvent);
wxDEFINE_EVENT(EVT_MULTI_DEVICE_VIEW, wxCommandEvent); wxDEFINE_EVENT(EVT_MULTI_DEVICE_VIEW, wxCommandEvent);
wxDEFINE_EVENT(EVT_MULTI_REFRESH, wxCommandEvent);
DeviceItem::DeviceItem(wxWindow* parent, MachineObject* obj) DeviceItem::DeviceItem(wxWindow* parent, MachineObject* obj)
: wxWindow(parent, wxID_ANY) : wxWindow(parent, wxID_ANY)
, obj_(obj) , obj_(obj)
{ {
sync_state(); sync_state();
Bind(EVT_MULTI_REFRESH, &DeviceItem::on_refresh, this);
} }
void DeviceItem::on_refresh(wxCommandEvent& evt)
{
Refresh();
}
void DeviceItem::sync_state() void DeviceItem::sync_state()
{ {
if (obj_) { if (obj_) {
@@ -38,9 +46,6 @@ void DeviceItem::sync_state()
else if (obj_->is_in_printing()) { else if (obj_->is_in_printing()) {
state_printable = 3; state_printable = 3;
} }
else if (obj_->is_in_upgrading()) {
state_printable = 4;
}
else { else {
state_printable = 6; state_printable = 6;
} }
@@ -49,6 +54,10 @@ void DeviceItem::sync_state()
state_printable = 5; state_printable = 5;
} }
if (obj_->is_in_upgrading()) {
state_printable = 4;
}
state_enable_ams = obj_->ams_exist_bits; state_enable_ams = obj_->ams_exist_bits;

View File

@@ -40,6 +40,7 @@ public:
DeviceItem(wxWindow* parent, MachineObject* obj); DeviceItem(wxWindow* parent, MachineObject* obj);
~DeviceItem() {}; ~DeviceItem() {};
void on_refresh(wxCommandEvent& evt);
void sync_state(); void sync_state();
wxString get_state_printable(); wxString get_state_printable();
wxString get_state_device(); wxString get_state_device();
@@ -111,6 +112,7 @@ wxDECLARE_EVENT(EVT_MULTI_DEVICE_SELECTED, wxCommandEvent);
wxDECLARE_EVENT(EVT_MULTI_DEVICE_VIEW, wxCommandEvent); wxDECLARE_EVENT(EVT_MULTI_DEVICE_VIEW, wxCommandEvent);
wxDECLARE_EVENT(EVT_MULTI_CLOUD_TASK_SELECTED, wxCommandEvent); wxDECLARE_EVENT(EVT_MULTI_CLOUD_TASK_SELECTED, wxCommandEvent);
wxDECLARE_EVENT(EVT_MULTI_LOCAL_TASK_SELECTED, wxCommandEvent); wxDECLARE_EVENT(EVT_MULTI_LOCAL_TASK_SELECTED, wxCommandEvent);
wxDECLARE_EVENT(EVT_MULTI_REFRESH, wxCommandEvent);
} // namespace GUI } // namespace GUI
} // namespace Slic3r } // namespace Slic3r

View File

@@ -45,7 +45,7 @@ bool MultiMachinePage::Show(bool show)
if (show) { if (show) {
m_refresh_timer->Stop(); m_refresh_timer->Stop();
m_refresh_timer->SetOwner(this); m_refresh_timer->SetOwner(this);
m_refresh_timer->Start(4000); m_refresh_timer->Start(2000);
wxPostEvent(this, wxTimerEvent()); wxPostEvent(this, wxTimerEvent());
} }
else { else {

View File

@@ -25,7 +25,7 @@ MultiTaskItem::MultiTaskItem(wxWindow* parent, MachineObject* obj, int type)
Bind(wxEVT_MOTION, &MultiTaskItem::OnMove, this); Bind(wxEVT_MOTION, &MultiTaskItem::OnMove, this);
Bind(EVT_MULTI_DEVICE_SELECTED, &MultiTaskItem::OnSelectedDevice, this); Bind(EVT_MULTI_DEVICE_SELECTED, &MultiTaskItem::OnSelectedDevice, this);
m_bitmap_check_disable = ScalableBitmap(this, "check_off", 18); m_bitmap_check_disable = ScalableBitmap(this, "check_off_disabled", 18);
m_bitmap_check_off = ScalableBitmap(this, "check_off_focused", 18); m_bitmap_check_off = ScalableBitmap(this, "check_off_focused", 18);
m_bitmap_check_on = ScalableBitmap(this, "check_on", 18); m_bitmap_check_on = ScalableBitmap(this, "check_on", 18);
@@ -774,10 +774,11 @@ void LocalTaskManagerPage::refresh_user_device(bool clear)
task_state_info->set_state_changed_fn([this, mtitem](TaskState state, int percent) { task_state_info->set_state_changed_fn([this, mtitem](TaskState state, int percent) {
mtitem->state_local_task = state; mtitem->state_local_task = state;
if (state == TaskState::TS_SEND_COMPLETED) { if (state == TaskState::TS_SEND_COMPLETED) {
mtitem->m_send_time = mtitem->task_obj->get_sent_time(); mtitem->m_send_time = mtitem->task_obj->get_sent_time();
CallAfter([mtitem]() { wxCommandEvent event(EVT_MULTI_REFRESH);
mtitem->Refresh(); event.SetEventObject(mtitem);
}); wxPostEvent(mtitem, event);
} }
mtitem->m_sending_percent = percent; mtitem->m_sending_percent = percent;
}); });
@@ -876,7 +877,7 @@ CloudTaskManagerPage::CloudTaskManagerPage(wxWindow* parent)
m_select_checkbox = new CheckBox(m_table_head_panel, wxID_ANY); m_select_checkbox = new CheckBox(m_table_head_panel, wxID_ANY);
m_select_checkbox->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT))); m_select_checkbox->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
m_select_checkbox->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT))); m_select_checkbox->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
m_table_head_sizer->AddSpacer(FromDIP(TASK_LEFT_PADDING_LEFT)); //m_table_head_sizer->AddSpacer(FromDIP(TASK_LEFT_PADDING_LEFT));
m_table_head_sizer->Add(m_select_checkbox, 0, wxALIGN_CENTER_VERTICAL, 0); m_table_head_sizer->Add(m_select_checkbox, 0, wxALIGN_CENTER_VERTICAL, 0);
m_select_checkbox->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) { m_select_checkbox->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) {

View File

@@ -29,7 +29,7 @@ SendDeviceItem::SendDeviceItem(wxWindow* parent, MachineObject* obj)
: DeviceItem(parent, obj) : DeviceItem(parent, obj)
{ {
SetBackgroundColour(*wxWHITE); SetBackgroundColour(*wxWHITE);
m_bitmap_check_disable = ScalableBitmap(this, "check_off", 18); m_bitmap_check_disable = ScalableBitmap(this, "check_off_disabled", 18);
m_bitmap_check_off = ScalableBitmap(this, "check_off_focused", 18); m_bitmap_check_off = ScalableBitmap(this, "check_off_focused", 18);
m_bitmap_check_on = ScalableBitmap(this, "check_on", 18); m_bitmap_check_on = ScalableBitmap(this, "check_on", 18);
@@ -912,6 +912,7 @@ void SendMultiMachinePage::on_set_finish_mapping(wxCommandEvent& evt)
} }
iter++; iter++;
} }
} }
} }
@@ -1313,6 +1314,7 @@ void SendMultiMachinePage::sync_ams_list()
if (extruder >= materials.size() || extruder < 0 || extruder >= display_materials.size()) continue; if (extruder >= materials.size() || extruder < 0 || extruder >= display_materials.size()) continue;
MaterialItem* item = new MaterialItem(m_main_page, colour_rgb, _L(display_materials[extruder])); MaterialItem* item = new MaterialItem(m_main_page, colour_rgb, _L(display_materials[extruder]));
item->set_ams_info(wxColour("#CECECE"), "A1", 0, std::vector<wxColour>());
m_ams_list_sizer->Add(item, 0, wxALL, FromDIP(4)); m_ams_list_sizer->Add(item, 0, wxALL, FromDIP(4));
item->Bind(wxEVT_LEFT_UP, [this, item, materials, extruder](wxMouseEvent& e) {}); item->Bind(wxEVT_LEFT_UP, [this, item, materials, extruder](wxMouseEvent& e) {});
@@ -1355,10 +1357,12 @@ void SendMultiMachinePage::sync_ams_list()
if (extruder < materials.size() && extruder >= 0) { if (extruder < materials.size() && extruder >= 0) {
FilamentInfo info; FilamentInfo info;
info.id = extruder; info.id = extruder;
info.tray_id = 0;
info.type = materials[extruder]; info.type = materials[extruder];
info.brand = brands[extruder]; info.brand = brands[extruder];
info.filament_id = m_filaments_id[extruder]; info.filament_id = m_filaments_id[extruder];
info.color = wxString::Format("#%02X%02X%02X%02X", colour_rgb.Red(), colour_rgb.Green(), colour_rgb.Blue(), colour_rgb.Alpha()).ToStdString(); //info.color = wxString::Format("#%02X%02X%02X%02X", colour_rgb.Red(), colour_rgb.Green(), colour_rgb.Blue(), colour_rgb.Alpha()).ToStdString();
info.color = "#CECECEFF";
m_filaments.push_back(info); m_filaments.push_back(info);
m_ams_mapping_result.push_back(info); m_ams_mapping_result.push_back(info);
} }