mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-08 07:27:41 -06:00
ENH: refine camera status and settings
Change-Id: I2a8c23ca119ff5d38272dad46347704bf457dee0 Signed-off-by: Stone Li <stone.li@bambulab.com>
This commit is contained in:
parent
0d4b8382f5
commit
58dab90e53
17 changed files with 172 additions and 94 deletions
|
@ -187,11 +187,15 @@ void StatusBasePanel::init_bitmaps()
|
|||
m_bitmap_extruder_filled_load = *cache.load_png("monitor_extruder_filled_load", FromDIP(28), FromDIP(70), false, false);
|
||||
m_bitmap_extruder_empty_unload = *cache.load_png("monitor_extruder_empty_unload", FromDIP(28), FromDIP(70), false, false);
|
||||
m_bitmap_extruder_filled_unload = *cache.load_png("monitor_extruder_filled_unload", FromDIP(28), FromDIP(70), false, false);
|
||||
m_bitmap_sdcard_state_on = create_scaled_bitmap("sdcard_state_on", nullptr, 20);
|
||||
m_bitmap_sdcard_state_no = create_scaled_bitmap("sdcard_state_no", nullptr, 20);
|
||||
m_bitmap_sdcard_state_abnormal = create_scaled_bitmap("sdcard_state_abnormal", nullptr, 20);
|
||||
m_bitmap_recording = create_scaled_bitmap("recording", nullptr, 20);
|
||||
m_bitmap_timelapse = create_scaled_bitmap("timelapse", nullptr, 20);
|
||||
m_bitmap_vcamera = create_scaled_bitmap("vcamera", nullptr, 20);
|
||||
m_bitmap_sdcard_state_normal = create_scaled_bitmap("sdcard_state_normal", nullptr, 20);
|
||||
m_bitmap_recording_on = create_scaled_bitmap("monitor_recording_on", nullptr, 20);
|
||||
m_bitmap_recording_off = create_scaled_bitmap("monitor_recording_off", nullptr, 20);
|
||||
m_bitmap_timelapse_on = create_scaled_bitmap("monitor_timelapse_on", nullptr, 20);
|
||||
m_bitmap_timelapse_off = create_scaled_bitmap("monitor_timelapse_off", nullptr, 20);
|
||||
m_bitmap_vcamera_on = create_scaled_bitmap("monitor_vcamera_on", nullptr, 20);
|
||||
m_bitmap_vcamera_off = create_scaled_bitmap("monitor_vcamera_off", nullptr, 20);
|
||||
}
|
||||
|
||||
wxBoxSizer *StatusBasePanel::create_monitoring_page()
|
||||
|
@ -228,22 +232,18 @@ wxBoxSizer *StatusBasePanel::create_monitoring_page()
|
|||
//m_bitmap_camera_img->SetMinSize(wxSize(FromDIP(32), FromDIP(18)));
|
||||
//bSizer_monitoring_title->Add(m_bitmap_camera_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
|
||||
m_bitmap_sdcard_abnormal_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, m_bitmap_sdcard_state_abnormal, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
|
||||
m_bitmap_sdcard_abnormal_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
|
||||
m_bitmap_sdcard_on_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, m_bitmap_sdcard_state_on, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
|
||||
m_bitmap_sdcard_on_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
|
||||
m_bitmap_sdcard_on_img->Hide();
|
||||
m_bitmap_sdcard_abnormal_img->Hide();
|
||||
m_bitmap_sdcard_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
|
||||
m_bitmap_sdcard_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
|
||||
|
||||
m_bitmap_timelapse_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, m_bitmap_timelapse, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
|
||||
m_bitmap_timelapse_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
|
||||
m_bitmap_timelapse_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
|
||||
m_bitmap_timelapse_img->Hide();
|
||||
|
||||
m_bitmap_recording_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, m_bitmap_recording, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
|
||||
m_bitmap_recording_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
|
||||
m_bitmap_recording_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
|
||||
m_bitmap_timelapse_img->Hide();
|
||||
|
||||
m_bitmap_vcamera_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, m_bitmap_vcamera, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
|
||||
m_bitmap_vcamera_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
|
||||
m_bitmap_vcamera_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
|
||||
m_bitmap_vcamera_img->Hide();
|
||||
|
||||
|
@ -251,15 +251,13 @@ wxBoxSizer *StatusBasePanel::create_monitoring_page()
|
|||
m_setting_button->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
|
||||
m_setting_button->SetBackgroundColour(STATUS_TITLE_BG);
|
||||
|
||||
m_bitmap_sdcard_on_img->SetToolTip(_L("SD Card"));
|
||||
m_bitmap_sdcard_abnormal_img->SetToolTip(_L("SD Card Abnormal"));
|
||||
m_bitmap_sdcard_img->SetToolTip(_L("SD Card"));
|
||||
m_bitmap_timelapse_img->SetToolTip(_L("Timelapse"));
|
||||
m_bitmap_recording_img->SetToolTip(_L("Video"));
|
||||
m_bitmap_vcamera_img->SetToolTip(_L("Virtual Camera"));
|
||||
m_setting_button->SetToolTip(_L("Camera Setting"));
|
||||
|
||||
bSizer_monitoring_title->Add(m_bitmap_sdcard_abnormal_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
bSizer_monitoring_title->Add(m_bitmap_sdcard_on_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
bSizer_monitoring_title->Add(m_bitmap_sdcard_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
bSizer_monitoring_title->Add(m_bitmap_timelapse_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
bSizer_monitoring_title->Add(m_bitmap_recording_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
bSizer_monitoring_title->Add(m_bitmap_vcamera_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
|
@ -1041,45 +1039,86 @@ void StatusBasePanel::show_ams_group(bool show)
|
|||
m_show_ams_group = show;
|
||||
}
|
||||
|
||||
void StatusPanel::update_img_status(wxStaticBitmap* img, bool on_off)
|
||||
void StatusPanel::update_camera_state(MachineObject* obj)
|
||||
{
|
||||
if (on_off)
|
||||
img->Show();
|
||||
else
|
||||
img->Hide();
|
||||
}
|
||||
if (!obj) return;
|
||||
|
||||
void StatusPanel::update_camera_state(bool recording, bool timelapse, MachineObject::SdcardState sdcard_state)
|
||||
{
|
||||
//m_bitmap_sdcard_abnormal_img->SetToolTip(_L("SD Card Abnormal"));
|
||||
//sdcard
|
||||
switch (sdcard_state) {
|
||||
case MachineObject::SdcardState::NO_SDCARD:
|
||||
m_bitmap_sdcard_on_img->Hide();
|
||||
m_bitmap_sdcard_abnormal_img->Hide();
|
||||
break;
|
||||
case MachineObject::SdcardState::HAS_SDCARD_NORMAL:
|
||||
m_bitmap_sdcard_on_img->Show();
|
||||
m_bitmap_sdcard_abnormal_img->Hide();
|
||||
break;
|
||||
case MachineObject::SdcardState::HAS_SDCARD_ABNORMAL:
|
||||
m_bitmap_sdcard_on_img->Hide();
|
||||
m_bitmap_sdcard_abnormal_img->Show();
|
||||
break;
|
||||
default:
|
||||
;
|
||||
if (m_last_sdcard != (int)obj->get_sdcard_state()) {
|
||||
if (obj->get_sdcard_state() == MachineObject::SdcardState::NO_SDCARD) {
|
||||
m_bitmap_sdcard_img->SetBitmap(m_bitmap_sdcard_state_no);
|
||||
m_bitmap_sdcard_img->SetToolTip(_L("No SD Card"));
|
||||
} else if (obj->get_sdcard_state() == MachineObject::SdcardState::HAS_SDCARD_NORMAL) {
|
||||
m_bitmap_sdcard_img->SetBitmap(m_bitmap_sdcard_state_normal);
|
||||
m_bitmap_sdcard_img->SetToolTip(_L("SD Card"));
|
||||
} else if (obj->get_sdcard_state() == MachineObject::SdcardState::HAS_SDCARD_ABNORMAL) {
|
||||
m_bitmap_sdcard_img->SetBitmap(m_bitmap_sdcard_state_abnormal);
|
||||
m_bitmap_sdcard_img->SetToolTip(_L("SD Card Abnormal"));
|
||||
} else {
|
||||
m_bitmap_sdcard_img->SetBitmap(m_bitmap_sdcard_state_normal);
|
||||
m_bitmap_sdcard_img->SetToolTip(_L("SD Card"));
|
||||
}
|
||||
m_last_sdcard = (int)obj->get_sdcard_state();
|
||||
}
|
||||
|
||||
//recording
|
||||
update_img_status(m_bitmap_recording_img, recording);
|
||||
if (obj->is_function_supported(PrinterFunction::FUNC_RECORDING)) {
|
||||
if (m_last_recording != (obj->is_recording() ? 1: 0)) {
|
||||
if (obj->is_recording()) {
|
||||
m_bitmap_recording_img->SetBitmap(m_bitmap_recording_on);
|
||||
} else {
|
||||
m_bitmap_recording_img->SetBitmap(m_bitmap_recording_off);
|
||||
}
|
||||
m_last_recording = obj->is_recording() ? 1 : 0;
|
||||
}
|
||||
if (!m_bitmap_recording_img->IsShown())
|
||||
m_bitmap_recording_img->Show();
|
||||
} else {
|
||||
if (m_bitmap_recording_img->IsShown())
|
||||
m_bitmap_recording_img->Hide();
|
||||
}
|
||||
|
||||
//timelapse
|
||||
update_img_status(m_bitmap_timelapse_img, timelapse);
|
||||
if (obj->is_function_supported(PrinterFunction::FUNC_TIMELAPSE)) {
|
||||
if (m_last_timelapse != (obj->is_timelapse() ? 1: 0)) {
|
||||
if (obj->is_timelapse()) {
|
||||
m_bitmap_timelapse_img->SetBitmap(m_bitmap_timelapse_on);
|
||||
} else {
|
||||
m_bitmap_timelapse_img->SetBitmap(m_bitmap_timelapse_off);
|
||||
}
|
||||
m_last_timelapse = obj->is_timelapse() ? 1 : 0;
|
||||
}
|
||||
if (!m_bitmap_timelapse_img->IsShown())
|
||||
m_bitmap_timelapse_img->Show();
|
||||
} else {
|
||||
if (m_bitmap_timelapse_img->IsShown())
|
||||
m_bitmap_timelapse_img->Hide();
|
||||
}
|
||||
|
||||
//vcamera
|
||||
update_img_status(m_bitmap_vcamera_img, m_media_play_ctrl->IsStreaming());
|
||||
show_vcamera = m_media_play_ctrl->IsStreaming();
|
||||
if (obj->is_function_supported(PrinterFunction::FUNC_VIRTUAL_CAMERA)) {
|
||||
if (m_last_vcamera != (m_media_play_ctrl->IsStreaming() ? 1: 0)) {
|
||||
if (m_media_play_ctrl->IsStreaming()) {
|
||||
m_bitmap_vcamera_img->SetBitmap(m_bitmap_vcamera_on);
|
||||
} else {
|
||||
m_bitmap_vcamera_img->SetBitmap(m_bitmap_vcamera_off);
|
||||
}
|
||||
m_last_vcamera = m_media_play_ctrl->IsStreaming() ? 1 : 0;
|
||||
}
|
||||
if (!m_bitmap_vcamera_img->IsShown())
|
||||
m_bitmap_vcamera_img->Show();
|
||||
} else {
|
||||
if (m_bitmap_vcamera_img->IsShown())
|
||||
m_bitmap_vcamera_img->Hide();
|
||||
}
|
||||
|
||||
//camera setting
|
||||
if (m_camera_popup) {
|
||||
m_camera_popup->update();
|
||||
m_camera_popup->sync_vcamera_state(show_vcamera);
|
||||
bool show_vcamera = m_media_play_ctrl->IsStreaming();
|
||||
m_camera_popup->update(show_vcamera);
|
||||
}
|
||||
|
||||
m_panel_monitoring_title->Layout();
|
||||
}
|
||||
|
||||
|
@ -1455,7 +1494,7 @@ void StatusPanel::update(MachineObject *obj)
|
|||
update_error_message();
|
||||
}
|
||||
|
||||
update_camera_state(obj->is_recording_enable(), obj->has_timelapse(), obj->get_sdcard_state());
|
||||
update_camera_state(obj);
|
||||
|
||||
m_machine_ctrl_panel->Thaw();
|
||||
}
|
||||
|
@ -1684,16 +1723,19 @@ void StatusPanel::update_extruder_status(MachineObject* obj)
|
|||
{
|
||||
if (!obj) return;
|
||||
if (obj->is_filament_at_extruder()) {
|
||||
if (obj->extruder_axis_status == MachineObject::ExtruderAxisStatus::LOAD)
|
||||
if (obj->extruder_axis_status == MachineObject::ExtruderAxisStatus::LOAD) {
|
||||
m_bitmap_extruder_img->SetBitmap(m_bitmap_extruder_filled_load);
|
||||
else
|
||||
}
|
||||
else {
|
||||
m_bitmap_extruder_img->SetBitmap(m_bitmap_extruder_filled_unload);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (obj->extruder_axis_status == MachineObject::ExtruderAxisStatus::LOAD)
|
||||
if (obj->extruder_axis_status == MachineObject::ExtruderAxisStatus::LOAD) {
|
||||
m_bitmap_extruder_img->SetBitmap(m_bitmap_extruder_empty_load);
|
||||
else
|
||||
} else {
|
||||
m_bitmap_extruder_img->SetBitmap(m_bitmap_extruder_empty_unload);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2677,6 +2719,7 @@ void StatusPanel::on_camera_enter(wxMouseEvent& event)
|
|||
wxPoint pos = ctrl->ClientToScreen(wxPoint(0, 0));
|
||||
wxSize sz = ctrl->GetSize();
|
||||
m_camera_popup->Position(pos, wxSize(sz.x, sz.y));
|
||||
m_camera_popup->update(m_media_play_ctrl->IsStreaming());
|
||||
m_camera_popup->Popup();
|
||||
}
|
||||
}
|
||||
|
@ -2846,8 +2889,7 @@ void StatusPanel::msw_rescale()
|
|||
m_bitmap_recording_img->SetMinSize(wxSize(38, 24));
|
||||
m_bitmap_vcamera_img->SetMinSize(wxSize(38, 24));
|
||||
m_setting_button->SetMinSize(wxSize(38, 24));
|
||||
m_bitmap_sdcard_abnormal_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
|
||||
m_bitmap_sdcard_on_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
|
||||
m_bitmap_sdcard_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
|
||||
|
||||
m_bpButton_xy->Rescale();
|
||||
m_tempCtrl_nozzle->SetMinSize(TEMP_CTRL_MIN_SIZE);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue