OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::StatusPanel Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/StatusPanel.hpp>

Inheritance diagram for Slic3r::GUI::StatusPanel:
Collaboration diagram for Slic3r::GUI::StatusPanel:

Public Types

enum  ThumbnailState {
  PLACE_HOLDER = 0 , BROKEN_IMG = 1 , TASK_THUMBNAIL = 2 , SDCARD_THUMBNAIL = 3 ,
  STATE_COUNT = 4
}

Public Member Functions

void update_error_message ()
 StatusPanel (wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
 ~StatusPanel ()
bool is_stage_list_info_changed (MachineObject *obj)
void set_default ()
void show_status (int status)
void set_hold_count (int &count)
void rescale_camera_icons ()
void on_sys_color_changed ()
void msw_rescale ()
void init_bitmaps ()
wxBoxSizer * create_monitoring_page ()
wxBoxSizer * create_machine_control_page (wxWindow *parent)
wxBoxSizer * create_temp_axis_group (wxWindow *parent)
wxBoxSizer * create_temp_control (wxWindow *parent)
wxBoxSizer * create_misc_control (wxWindow *parent)
wxBoxSizer * create_axis_control (wxWindow *parent)
wxPanel * create_bed_control (wxWindow *parent)
wxBoxSizer * create_extruder_control (wxWindow *parent)
void reset_temp_misc_control ()
wxBoxSizer * create_ams_group (wxWindow *parent)
wxBoxSizer * create_settings_group (wxWindow *parent)
wxBoxSizer * create_filament_group (wxWindow *parent)
void expand_filament_loading (wxMouseEvent &e)
void show_ams_group (bool show=true)
void show_filament_load_group (bool show=true)
MediaPlayCtrl * get_media_play_ctrl ()
void jump_to_Rack ()
bool built () const
bool build_step ()

Public Attributes

BBLSubTask * last_subtask {nullptr}
std::string last_profile_id
std::string last_task_id
long last_tray_exist_bits { -1 }
long last_ams_exist_bits { -1 }
long last_tray_is_bbl_bits { -1 }
long last_read_done_bits { -1 }
long last_reading_bits { -1 }
long last_ams_version { -1 }
std::optional< int > last_cali_version
std::vector< int > last_stage_list_info
MachineObject * obj {nullptr}
int before_error_code = 0
int skip_print_error = 0

Protected Member Functions

void init_scaled_buttons ()
void create_tasklist_info ()
void show_task_list_info (bool show=true)
void update_tasklist_info ()
void on_market_scoring (wxCommandEvent &event)
void on_market_retry (wxCommandEvent &event)
void on_subtask_partskip (wxCommandEvent &event)
void on_subtask_pause_resume (wxCommandEvent &event)
void on_subtask_abort (wxCommandEvent &event)
void on_print_error_clean (wxCommandEvent &event)
void error_info_reset ()
void show_recenter_dialog ()
bool check_axis_z_at_home (MachineObject *obj)
void on_axis_ctrl_xy (wxCommandEvent &event)
void on_axis_ctrl_z_up_10 (wxCommandEvent &event)
void on_axis_ctrl_z_up_1 (wxCommandEvent &event)
void on_axis_ctrl_z_down_1 (wxCommandEvent &event)
void on_axis_ctrl_z_down_10 (wxCommandEvent &event)
void on_axis_ctrl_e_up_10 (wxCommandEvent &event)
void on_axis_ctrl_e_down_10 (wxCommandEvent &event)
void axis_ctrl_e_hint (bool up_down)
void on_nozzle_selected (wxCommandEvent &event)
void on_bed_temp_kill_focus (wxFocusEvent &event)
void on_bed_temp_set_focus (wxFocusEvent &event)
void on_set_bed_temp ()
void on_nozzle_temp_kill_focus (wxFocusEvent &event)
void on_nozzle_temp_set_focus (wxFocusEvent &event)
void on_set_nozzle_temp (int nozzle_id)
void on_set_chamber_temp ()
void on_ams_load (SimpleEvent &event)
void update_load_with_temp ()
void on_ams_load_curr ()
void on_ams_load_vams (wxCommandEvent &event)
void on_ams_switch (SimpleEvent &event)
void on_ams_unload (SimpleEvent &event)
void on_ams_filament_backup (SimpleEvent &event)
void on_ams_setting_click (SimpleEvent &event)
void on_filament_edit (wxCommandEvent &event)
void on_ext_spool_edit (wxCommandEvent &event)
void on_filament_extrusion_cali (wxCommandEvent &event)
void on_ams_refresh_rfid (wxCommandEvent &event)
void on_ams_selected (wxCommandEvent &event)
void on_ams_guide (wxCommandEvent &event)
void on_ams_retry (wxCommandEvent &event)
void on_fan_changed (wxCommandEvent &event)
void on_cham_temp_kill_focus (wxFocusEvent &event)
void on_cham_temp_set_focus (wxFocusEvent &event)
void on_switch_speed (wxCommandEvent &event)
void on_lamp_switch (wxCommandEvent &event)
void on_printing_fan_switch (wxCommandEvent &event)
void on_nozzle_fan_switch (wxCommandEvent &event)
void on_thumbnail_enter (wxMouseEvent &event)
void on_thumbnail_leave (wxMouseEvent &event)
void refresh_thumbnail_webrequest (wxMouseEvent &event)
void on_switch_vcamera (wxMouseEvent &event)
void on_camera_enter (wxMouseEvent &event)
void on_camera_leave (wxMouseEvent &event)
void on_auto_leveling (wxCommandEvent &event)
void on_xyz_abs (wxCommandEvent &event)
void on_show_parts_options (wxCommandEvent &event)
void on_show_print_options (wxCommandEvent &event)
void on_show_safety_options (wxCommandEvent &event)
void on_start_calibration (wxCommandEvent &event)
void update (MachineObject *obj)
void show_printing_status (bool ctrl_area=true, bool temp_area=true)
void update_left_time (int mc_left_time)
void update_basic_print_data (bool def=false)
void update_model_info ()
void update_subtask (MachineObject *obj)
void update_partskip_subtask (MachineObject *obj)
void update_cloud_subtask (MachineObject *obj)
void update_sdcard_subtask (MachineObject *obj)
void update_temp_ctrl (MachineObject *obj)
void update_misc_ctrl (MachineObject *obj)
void update_ams (MachineObject *obj)
void update_rack (MachineObject *obj)
void update_filament_loading_panel (MachineObject *obj)
void update_extruder_status (MachineObject *obj)
void update_ams_control_state (std::string ams_id, std::string slot_id)
void update_cali (MachineObject *obj)
void update_calib_bitmap ()
void reset_printing_values ()
void on_webrequest_state (wxWebRequestEvent &evt)
bool is_task_changed (MachineObject *obj)
void update_camera_state (MachineObject *obj)
void update_partskip_button (MachineObject *obj)
void update_printer_parts_options (MachineObject *obj)
void add_build_step (std::function< void()> step)
void add_build_steps_of (StagedBuild &child)

Protected Attributes

std::shared_ptr< SliceInfoPopup > m_slice_info_popup
std::shared_ptr< ImageTransientPopup > m_image_popup
std::shared_ptr< CameraPopup > m_camera_popup
std::set< int > rated_model_id
AMSSetting * m_ams_setting_dlg {nullptr}
PrinterPartsDialog * print_parts_dlg { nullptr }
PrintOptionsDialog * print_options_dlg { nullptr }
SafetyOptionsDialog * safety_options_dlg { nullptr }
CalibrationDialog * calibration_dlg {nullptr}
AMSMaterialsSetting * m_filament_setting_dlg {nullptr}
DeviceErrorDialog * m_print_error_dlg = nullptr
SecondaryCheckDialog * abort_dlg = nullptr
SecondaryCheckDialog * con_load_dlg = nullptr
MessageDialog * ctrl_e_hint_dlg = nullptr
SecondaryCheckDialog * sdcard_hint_dlg = nullptr
FanControlPopupNew * m_fan_control_popup {nullptr}
ExtrusionCalibration * m_extrusion_cali_dlg {nullptr}
PartSkipDialog * m_partskip_dlg {nullptr}
wxString m_request_url
bool m_start_loading_thumbnail = false
bool m_load_sdcard_thumbnail = false
int m_last_sdcard = -1
int m_last_recording = -1
int m_last_timelapse = -1
int m_last_extrusion = -1
int m_last_vcamera = -1
int m_model_mall_request_count = 0
bool m_is_load_with_temp = false
nlohmann::json m_rating_result
wxWebRequest web_request
bool bed_temp_input = false
bool nozzle_temp_input = false
bool cham_temp_input = false
bool request_model_info_flag = false
int speed_lvl = 1
int speed_lvl_timeout {0}
boost::posix_time::ptime speed_dismiss_time
bool m_show_mode_changed = false
std::map< wxString, wxImage > img_list
std::map< std::string, std::string > m_print_connect_types
std::vector< Button * > m_buttons
int last_status
ScoreData * m_score_data = nullptr
wxBitmap * calib_bitmap = nullptr
CalibMode m_calib_mode
CalibrationMethod m_calib_method
int cali_stage
PrintingTaskType m_current_print_mode = PrintingTaskType::NOT_CLEAR
bool show_vcamera = false
wxBitmap m_item_placeholder
ScalableBitmap m_thumbnail_placeholder
ScalableBitmap m_thumbnail_brokenimg
ScalableBitmap m_thumbnail_sdcard
wxBitmap m_bitmap_item_prediction
wxBitmap m_bitmap_item_cost
wxBitmap m_bitmap_item_print
ScalableBitmap m_bitmap_speed
ScalableBitmap m_bitmap_speed_active
ScalableBitmap m_bitmap_axis_home
ScalableBitmap m_bitmap_lamp_on
ScalableBitmap m_bitmap_lamp_off
ScalableBitmap m_bitmap_fan_on
ScalableBitmap m_bitmap_fan_off
ScalableBitmap m_bitmap_use_time
ScalableBitmap m_bitmap_use_weight
wxBitmap m_bitmap_extruder_empty_load
wxBitmap m_bitmap_extruder_filled_load
wxBitmap m_bitmap_extruder_empty_unload
wxBitmap m_bitmap_extruder_filled_unload
wxBitmap m_bitmap_extruder_now
CameraRecordingStatus m_state_recording {CameraRecordingStatus::RECORDING_NONE}
CameraTimelapseStatus m_state_timelapse {CameraTimelapseStatus::TIMELAPSE_NONE}
CameraItem * m_setting_button
wxBitmap m_bitmap_camera
ScalableBitmap m_bitmap_sdcard_state_normal
ScalableBitmap m_bitmap_sdcard_state_abnormal
ScalableBitmap m_bitmap_sdcard_state_no
ScalableBitmap m_bitmap_recording_on
ScalableBitmap m_bitmap_recording_off
ScalableBitmap m_bitmap_timelapse_on
ScalableBitmap m_bitmap_timelapse_off
ScalableBitmap m_bitmap_vcamera_on
ScalableBitmap m_bitmap_vcamera_off
ScalableBitmap m_bitmap_switch_camera
wxPanel * media_ctrl_panel
wxPanel * m_panel_monitoring_title
wxPanel * m_panel_printing_title
wxPanel * m_panel_control_title
wxStaticText * m_staticText_consumption_of_time
wxStaticText * m_staticText_consumption_of_weight
Label * m_staticText_monitoring
wxStaticText * m_staticText_timelapse
SwitchButton * m_bmToggleBtn_timelapse
wxStaticText * m_mqtt_source
wxStaticBitmap * m_bitmap_camera_img
wxStaticBitmap * m_bitmap_recording_img
wxStaticBitmap * m_bitmap_timelapse_img
wxStaticBitmap * m_bitmap_vcamera_img
wxStaticBitmap * m_bitmap_sdcard_img
wxStaticBitmap * m_bitmap_static_use_time
wxStaticBitmap * m_bitmap_static_use_weight
wxMediaCtrl3 * m_media_ctrl
MediaPlayCtrl * m_media_play_ctrl {nullptr}
Label * m_staticText_printing
wxStaticBitmap * m_bitmap_thumbnail
wxStaticText * m_staticText_subtask_value
wxStaticText * m_printing_stage_value
wxStaticText * m_staticText_profile_value
ProgressBar * m_gauge_progress
wxStaticText * m_staticText_progress_percent
wxStaticText * m_staticText_progress_percent_icon
wxStaticText * m_staticText_progress_left
wxStaticText * m_staticText_layers
Button * m_button_report
Button * m_button_partskip
ScalableButton * m_button_pause_resume
ScalableButton * m_button_abort
Button * m_button_clean
wxWebView * m_custom_camera_view {nullptr}
std::unique_ptr< WebMediaController > m_web_media_controller
wxSimplebook * m_extruder_book
std::vector< ExtruderImage * > m_extruderImage
SwitchBoard * m_nozzle_btn_panel
wxStaticText * m_text_tasklist_caption
Label * m_staticText_control
ImageSwitchButton * m_switch_lamp
int m_switch_lamp_timeout {0}
ImageSwitchButton * m_switch_speed
wxBoxSizer * m_misc_ctrl_sizer
StaticBox * m_fan_panel
StaticLine * m_line_nozzle
TempInput * m_tempCtrl_nozzle
int m_temp_nozzle_timeout { 0 }
TempInput * m_tempCtrl_nozzle_deputy
int m_temp_nozzle_deputy_timeout { 0 }
TempInput * m_tempCtrl_bed
int m_temp_bed_timeout {0}
TempInput * m_tempCtrl_chamber
int m_temp_chamber_timeout {0}
FanSwitchButton * m_switch_nozzle_fan
int m_switch_nozzle_fan_timeout {0}
FanSwitchButton * m_switch_printing_fan
int m_switch_printing_fan_timeout {0}
FanSwitchButton * m_switch_cham_fan
FanSwitchButton * m_switch_fan
int m_switch_cham_fan_timeout {0}
wxPanel * m_switch_block_fan
int m_nozzle_num { 0 }
int m_current_nozzle_id { 0 }
float m_fixed_aspect_ratio {1.8}
AxisCtrlButton * m_bpButton_xy
Button * m_bpButton_z_10
Button * m_bpButton_z_1
Button * m_bpButton_z_down_1
Button * m_bpButton_z_down_10
wxStaticText * m_staticText_z_tip
Label * m_extruder_label
Button * m_bpButton_e_10
Button * m_bpButton_e_down_10
ExtruderSwithingStatus * m_extruder_switching_status
wxPanel * m_temp_temp_line
wxPanel * m_temp_extruder_line
wxBoxSizer * m_ams_list
wxStaticText * m_ams_debug
bool m_show_ams_group {false}
bool m_show_filament_group { false }
SwitchBoard * m_ams_rack_switch { nullptr }
AMSControl * m_ams_control
StaticBox * m_ams_control_box
wxStaticBitmap * m_ams_extruder_img
wxStaticBitmap * m_bitmap_extruder_img
wgtDeviceNozzleRack * m_panel_nozzle_rack { nullptr }
wxPanel * m_panel_separator_right
wxPanel * m_panel_separotor_bottom
wxGridBagSizer * m_tasklist_info_sizer {nullptr}
wxBoxSizer * m_printing_sizer
wxBoxSizer * m_tasklist_sizer
wxBoxSizer * m_tasklist_caption_sizer
wxPanel * m_panel_error_txt
wxPanel * m_staticline
Label * m_error_text
wxStaticText * m_staticText_calibration_caption
wxStaticText * m_staticText_calibration_caption_top
wxStaticText * m_calibration_text
Button * m_parts_btn
Button * m_options_btn
Button * m_safety_btn
Button * m_calibration_btn
StepIndicator * m_calibration_flow
wxPanel * m_machine_ctrl_panel
wxPanel * m_scale_panel
wxStaticBitmap * m_img_filament_loading
PrintingTaskPanel * m_project_task_panel
FilamentLoad * m_filament_step
wxStaticBitmap * m_filament_load_img
Button * m_button_retry {nullptr}
Button * m_fila_change_abort {nullptr}
StaticBox * m_filament_load_box

Private Member Functions

void wire_controls ()
bool load_thumbnail_from_url (const wxString &url, MachineObject *obj)
void on_ams_rack_switch (wxCommandEvent &event)
StagedBuild * unfinished_child () const

Private Attributes

std::vector< std::function< void()> > m_steps
std::vector< StagedBuild * > m_children
size_t m_next_step { 0 }

Friends

class MonitorPanel

Detailed Description

Member Enumeration Documentation

◆ ThumbnailState

Enumerator
PLACE_HOLDER 
BROKEN_IMG 
TASK_THUMBNAIL 
SDCARD_THUMBNAIL 
STATE_COUNT 
840 {
841 PLACE_HOLDER = 0,
842 BROKEN_IMG = 1,
843 TASK_THUMBNAIL = 2,
845 STATE_COUNT = 4
846 };
@ PLACE_HOLDER
Definition StatusPanel.hpp:841
@ STATE_COUNT
Definition StatusPanel.hpp:845
@ BROKEN_IMG
Definition StatusPanel.hpp:842
@ SDCARD_THUMBNAIL
Definition StatusPanel.hpp:844
@ TASK_THUMBNAIL
Definition StatusPanel.hpp:843

Constructor & Destructor Documentation

◆ StatusPanel()

Slic3r::GUI::StatusPanel::StatusPanel ( wxWindow * parent,
wxWindowID id = wxID_ANY,
const wxPoint & pos = wxDefaultPosition,
const wxSize & size = wxDefaultSize,
long style = wxTAB_TRAVERSAL,
const wxString & name = wxEmptyString )
2511 : StatusBasePanel(parent, id, pos, size, style)
2512{
2513 // Wires the controls the base class builds in steps, so it is the last step.
2514 add_build_step([this] { wire_controls(); });
2515}
#define style
Definition WipeTowerDialog.cpp:101
void add_build_step(std::function< void()> step)
Definition StagedBuild.hpp:39
StatusBasePanel(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
Definition StatusPanel.cpp:1378
void wire_controls()
Definition StatusPanel.cpp:2517

References Slic3r::GUI::StatusBasePanel::StatusBasePanel(), Slic3r::GUI::StagedBuild::add_build_step(), style, and wire_controls().

Here is the call graph for this function:

◆ ~StatusPanel()

Slic3r::GUI::StatusPanel::~StatusPanel ( )
2628{
2629 // The controls only exist once the last build step has run.
2630 if (built()) {
2631 // Disconnect Events
2632 m_project_task_panel->get_bitmap_thumbnail()->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(StatusPanel::refresh_thumbnail_webrequest), NULL, this);
2633 m_project_task_panel->get_partskip_button()->Disconnect(wxEVT_LEFT_DOWN, wxCommandEventHandler(StatusPanel::on_subtask_partskip), NULL, this);
2634 m_project_task_panel->get_pause_resume_button()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_pause_resume), NULL, this);
2635 m_project_task_panel->get_abort_button()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_abort), NULL, this);
2636 m_project_task_panel->get_market_scoring_button()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_scoring), NULL, this);
2637 m_project_task_panel->get_market_retry_buttom()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_retry), NULL, this);
2638 m_project_task_panel->get_clean_button()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_print_error_clean), NULL, this);
2639
2640 m_setting_button->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(StatusPanel::on_camera_enter), NULL, this);
2641 m_setting_button->Disconnect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(StatusPanel::on_camera_enter), NULL, this);
2642 m_tempCtrl_bed->Disconnect(wxEVT_KILL_FOCUS, wxFocusEventHandler(StatusPanel::on_bed_temp_kill_focus), NULL, this);
2643 m_tempCtrl_bed->Disconnect(wxEVT_SET_FOCUS, wxFocusEventHandler(StatusPanel::on_bed_temp_set_focus), NULL, this);
2644 m_tempCtrl_nozzle->Disconnect(wxEVT_KILL_FOCUS, wxFocusEventHandler(StatusPanel::on_nozzle_temp_kill_focus), NULL, this);
2645 m_tempCtrl_nozzle->Disconnect(wxEVT_SET_FOCUS, wxFocusEventHandler(StatusPanel::on_nozzle_temp_set_focus), NULL, this);
2646
2647 m_tempCtrl_nozzle_deputy->Disconnect(wxEVT_KILL_FOCUS, wxFocusEventHandler(StatusPanel::on_nozzle_temp_kill_focus), NULL, this);
2648 m_tempCtrl_nozzle_deputy->Disconnect(wxEVT_SET_FOCUS, wxFocusEventHandler(StatusPanel::on_nozzle_temp_set_focus), NULL, this);
2649
2650 m_switch_lamp->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_lamp_switch), NULL, this);
2651 /*m_switch_nozzle_fan->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_nozzle_fan_switch), NULL, this);
2652 m_switch_printing_fan->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_nozzle_fan_switch), NULL, this);
2653 m_switch_cham_fan->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_nozzle_fan_switch), NULL, this);*/
2654
2655 //m_switch_fan->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_nozzle_fan_switch), NULL, this);
2656 //m_switch_fan->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_nozzle_fan_switch), NULL, this);
2657 m_switch_fan->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_nozzle_fan_switch), NULL, this);
2658
2659 m_bpButton_xy->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_xy), NULL, this);
2660 m_bpButton_z_10->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_z_up_10), NULL, this);
2661 m_bpButton_z_1->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_z_up_1), NULL, this);
2662 m_bpButton_z_down_1->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_z_down_1), NULL, this);
2663 m_bpButton_z_down_10->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_z_down_10), NULL, this);
2664 m_bpButton_e_10->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_e_up_10), NULL, this);
2665 m_bpButton_e_down_10->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_e_down_10), NULL, this);
2666 m_nozzle_btn_panel->Disconnect(wxCUSTOMEVT_SWITCH_POS, wxCommandEventHandler(StatusPanel::on_nozzle_selected), NULL, this);
2667 m_switch_speed->Disconnect(wxEVT_LEFT_DOWN, wxCommandEventHandler(StatusPanel::on_switch_speed), NULL, this);
2668 m_calibration_btn->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_start_calibration), NULL, this);
2669 m_options_btn->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_show_print_options), NULL, this);
2670 m_safety_btn->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_show_safety_options), NULL, this);
2671 m_parts_btn->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_show_parts_options), NULL, this);
2672 }
2673
2674 // remove warning dialogs
2675 if (abort_dlg != nullptr)
2676 delete abort_dlg;
2677
2678 if (ctrl_e_hint_dlg != nullptr)
2679 delete ctrl_e_hint_dlg;
2680
2681 if (sdcard_hint_dlg != nullptr)
2682 delete sdcard_hint_dlg;
2683
2684 if (m_score_data != nullptr) {
2685 delete m_score_data;
2686 }
2687}
bool built() const
Definition StagedBuild.hpp:18
Button * m_parts_btn
Definition StatusPanel.hpp:573
Button * m_safety_btn
Definition StatusPanel.hpp:575
CameraItem * m_setting_button
Definition StatusPanel.hpp:435
PrintingTaskPanel * m_project_task_panel
Definition StatusPanel.hpp:582
Button * m_bpButton_z_down_10
Definition StatusPanel.hpp:536
TempInput * m_tempCtrl_bed
Definition StatusPanel.hpp:514
TempInput * m_tempCtrl_nozzle
Definition StatusPanel.hpp:510
Button * m_bpButton_e_down_10
Definition StatusPanel.hpp:541
Button * m_options_btn
Definition StatusPanel.hpp:574
Button * m_bpButton_z_10
Definition StatusPanel.hpp:533
TempInput * m_tempCtrl_nozzle_deputy
Definition StatusPanel.hpp:512
AxisCtrlButton * m_bpButton_xy
Definition StatusPanel.hpp:531
ImageSwitchButton * m_switch_lamp
Definition StatusPanel.hpp:502
ImageSwitchButton * m_switch_speed
Definition StatusPanel.hpp:504
FanSwitchButton * m_switch_fan
Definition StatusPanel.hpp:523
Button * m_calibration_btn
Definition StatusPanel.hpp:576
SwitchBoard * m_nozzle_btn_panel
Definition StatusPanel.hpp:497
Button * m_bpButton_z_down_1
Definition StatusPanel.hpp:535
Button * m_bpButton_e_10
Definition StatusPanel.hpp:540
Button * m_bpButton_z_1
Definition StatusPanel.hpp:534
MessageDialog * ctrl_e_hint_dlg
Definition StatusPanel.hpp:673
void on_subtask_abort(wxCommandEvent &event)
Definition StatusPanel.cpp:2815
void on_axis_ctrl_e_down_10(wxCommandEvent &event)
Definition StatusPanel.cpp:4246
void on_nozzle_fan_switch(wxCommandEvent &event)
Definition StatusPanel.cpp:5014
void on_nozzle_temp_kill_focus(wxFocusEvent &event)
Definition StatusPanel.cpp:4922
void on_print_error_clean(wxCommandEvent &event)
Definition StatusPanel.cpp:2838
void on_show_parts_options(wxCommandEvent &event)
Definition StatusPanel.cpp:5190
void on_axis_ctrl_z_up_10(wxCommandEvent &event)
Definition StatusPanel.cpp:4178
void on_lamp_switch(wxCommandEvent &event)
Definition StatusPanel.cpp:5048
void on_axis_ctrl_e_up_10(wxCommandEvent &event)
Definition StatusPanel.cpp:4230
void on_market_retry(wxCommandEvent &event)
Definition StatusPanel.cpp:2763
void on_axis_ctrl_xy(wxCommandEvent &event)
Definition StatusPanel.cpp:4132
void on_show_print_options(wxCommandEvent &event)
Definition StatusPanel.cpp:5151
void on_start_calibration(wxCommandEvent &event)
Definition StatusPanel.cpp:5215
void on_nozzle_temp_set_focus(wxFocusEvent &event)
Definition StatusPanel.cpp:4928
void on_camera_enter(wxMouseEvent &event)
Definition StatusPanel.cpp:5086
void on_nozzle_selected(wxCommandEvent &event)
Definition StatusPanel.cpp:5130
ScoreData * m_score_data
Definition StatusPanel.hpp:707
void on_axis_ctrl_z_down_1(wxCommandEvent &event)
Definition StatusPanel.cpp:4196
SecondaryCheckDialog * sdcard_hint_dlg
Definition StatusPanel.hpp:675
void on_switch_speed(wxCommandEvent &event)
Definition StatusPanel.cpp:4934
void on_subtask_pause_resume(wxCommandEvent &event)
Definition StatusPanel.cpp:2801
void on_axis_ctrl_z_down_10(wxCommandEvent &event)
Definition StatusPanel.cpp:4205
void on_bed_temp_set_focus(wxFocusEvent &event)
Definition StatusPanel.cpp:4916
void on_market_scoring(wxCommandEvent &event)
Definition StatusPanel.cpp:2708
void on_bed_temp_kill_focus(wxFocusEvent &event)
Definition StatusPanel.cpp:4910
void on_show_safety_options(wxCommandEvent &event)
Definition StatusPanel.cpp:5169
SecondaryCheckDialog * abort_dlg
Definition StatusPanel.hpp:671
void refresh_thumbnail_webrequest(wxMouseEvent &event)
Definition StatusPanel.cpp:2882
void on_axis_ctrl_z_up_1(wxCommandEvent &event)
Definition StatusPanel.cpp:4187
void on_subtask_partskip(wxCommandEvent &event)
Definition StatusPanel.cpp:2784

References abort_dlg, Slic3r::GUI::StagedBuild::built(), ctrl_e_hint_dlg, Slic3r::GUI::StatusBasePanel::m_bpButton_e_10, Slic3r::GUI::StatusBasePanel::m_bpButton_e_down_10, Slic3r::GUI::StatusBasePanel::m_bpButton_xy, Slic3r::GUI::StatusBasePanel::m_bpButton_z_1, Slic3r::GUI::StatusBasePanel::m_bpButton_z_10, Slic3r::GUI::StatusBasePanel::m_bpButton_z_down_1, Slic3r::GUI::StatusBasePanel::m_bpButton_z_down_10, Slic3r::GUI::StatusBasePanel::m_calibration_btn, Slic3r::GUI::StatusBasePanel::m_nozzle_btn_panel, Slic3r::GUI::StatusBasePanel::m_options_btn, Slic3r::GUI::StatusBasePanel::m_parts_btn, Slic3r::GUI::StatusBasePanel::m_project_task_panel, Slic3r::GUI::StatusBasePanel::m_safety_btn, m_score_data, Slic3r::GUI::StatusBasePanel::m_setting_button, Slic3r::GUI::StatusBasePanel::m_switch_fan, Slic3r::GUI::StatusBasePanel::m_switch_lamp, Slic3r::GUI::StatusBasePanel::m_switch_speed, Slic3r::GUI::StatusBasePanel::m_tempCtrl_bed, Slic3r::GUI::StatusBasePanel::m_tempCtrl_nozzle, Slic3r::GUI::StatusBasePanel::m_tempCtrl_nozzle_deputy, on_axis_ctrl_e_down_10(), on_axis_ctrl_e_up_10(), on_axis_ctrl_xy(), on_axis_ctrl_z_down_1(), on_axis_ctrl_z_down_10(), on_axis_ctrl_z_up_1(), on_axis_ctrl_z_up_10(), on_bed_temp_kill_focus(), on_bed_temp_set_focus(), on_camera_enter(), on_lamp_switch(), on_market_retry(), on_market_scoring(), on_nozzle_fan_switch(), on_nozzle_selected(), on_nozzle_temp_kill_focus(), on_nozzle_temp_set_focus(), on_print_error_clean(), on_show_parts_options(), on_show_print_options(), on_show_safety_options(), on_start_calibration(), on_subtask_abort(), on_subtask_partskip(), on_subtask_pause_resume(), on_switch_speed(), refresh_thumbnail_webrequest(), and sdcard_hint_dlg.

Here is the call graph for this function:

Member Function Documentation

◆ add_build_step()

void Slic3r::GUI::StagedBuild::add_build_step ( std::function< void()> step)
inlineprotectedinherited
39{ m_steps.push_back(std::move(step)); }
std::vector< std::function< void()> > m_steps
Definition StagedBuild.hpp:57

References m_steps.

Referenced by Slic3r::GUI::StatusBasePanel::StatusBasePanel(), Slic3r::GUI::StatusPanel::StatusPanel(), add_build_steps_of(), Slic3r::GUI::CalibrationWizard::add_page_step(), Slic3r::GUI::StatusBasePanel::create_machine_control_page(), Slic3r::GUI::FlowRateWizard::create_pages(), Slic3r::GUI::PressureAdvanceWizard::create_pages(), Slic3r::GUI::AuxiliaryPanel::init_tabpanel(), and Slic3r::GUI::MonitorPanel::init_tabpanel().

Here is the caller graph for this function:

◆ add_build_steps_of()

void Slic3r::GUI::StagedBuild::add_build_steps_of ( StagedBuild & child)
inlineprotectedinherited
44 {
45 m_children.push_back(&child);
46 for (size_t i = child.m_next_step; i < child.m_steps.size(); ++i)
47 add_build_step([&child] { child.build_step(); });
48 }
std::vector< StagedBuild * > m_children
Definition StagedBuild.hpp:58

References add_build_step(), build_step(), m_children, m_next_step, and m_steps.

Referenced by Slic3r::GUI::ProjectPanel::ProjectPanel(), Slic3r::GUI::CalibrationPanel::init_tabpanel(), and Slic3r::GUI::MonitorPanel::init_tabpanel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ axis_ctrl_e_hint()

void Slic3r::GUI::StatusPanel::axis_ctrl_e_hint ( bool up_down)
protected
4215{
4216 if (ctrl_e_hint_dlg == nullptr) {
4217 /* ctrl_e_hint_dlg = new SecondaryCheckDialog(this->GetParent(), wxID_ANY, _L("Warning"), SecondaryCheckDialog::VisibleButtons::CONFIRM_AND_CANCEL, wxDefaultPosition,
4218 ctrl_e_hint_dlg->update_text(_L("Please heat the nozzle to above 170\u2103 before loading or unloading filament."));
4219 ctrl_e_hint_dlg->m_show_again_checkbox->Hide();
4220 ctrl_e_hint_dlg->m_button_cancel->Hide();
4221 ctrl_e_hint_dlg->m_staticText_release_note->SetMaxSize(wxSize(FromDIP(360), -1));
4222 ctrl_e_hint_dlg->m_staticText_release_note->SetMinSize(wxSize(FromDIP(360), -1));
4223 ctrl_e_hint_dlg->Fit();*/
4224 ctrl_e_hint_dlg = new MessageDialog(this, _L("Please heat the nozzle to above 170\u2103 before loading or unloading filament."), wxString(_L("Warning")), wxOK | wxCENTER);
4225 }
4226 ctrl_e_hint_dlg->ShowModal();
4227 // ctrl_e_hint_dlg->on_show();
4228}
#define _L(s)
Definition OBJ.cpp:34

References _L, and ctrl_e_hint_dlg.

Referenced by on_axis_ctrl_e_down_10(), and on_axis_ctrl_e_up_10().

Here is the caller graph for this function:

◆ build_step()

bool Slic3r::GUI::StagedBuild::build_step ( )
inlineinherited
27 {
28 if (m_next_step < m_steps.size()) {
29 // Copied out, since a step may queue more steps and reallocate m_steps.
30 auto step = std::move(m_steps[m_next_step++]);
31 step();
32 } else if (StagedBuild* child = unfinished_child()) {
33 child->build_step();
34 }
35 return !built();
36 }
size_t m_next_step
Definition StagedBuild.hpp:59
StagedBuild * unfinished_child() const
Definition StagedBuild.hpp:51
void step(Coord &crd, const Dir d, const long n=1)
Definition MarchingSquares.hpp:213

References built(), m_next_step, m_steps, and unfinished_child().

Referenced by add_build_steps_of().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ built()

bool Slic3r::GUI::StagedBuild::built ( ) const
inlineinherited
19 {
20 return m_next_step == m_steps.size() &&
21 std::all_of(m_children.begin(), m_children.end(), [](const StagedBuild* child) { return child->built(); });
22 }

References m_children, m_next_step, and m_steps.

Referenced by Slic3r::GUI::StatusPanel::~StatusPanel(), build_step(), Slic3r::GUI::CalibrationPanel::show_status(), Slic3r::GUI::MonitorPanel::show_status(), Slic3r::GUI::CalibrationPanel::update_all(), and Slic3r::GUI::MonitorPanel::update_all().

Here is the caller graph for this function:

◆ check_axis_z_at_home()

bool Slic3r::GUI::StatusPanel::check_axis_z_at_home ( MachineObject * obj)
protected
4166{
4167 if (obj) {
4168 if (!obj->is_axis_at_home("Z")) {
4169 BOOST_LOG_TRIVIAL(info) << "axis z is not at home";
4171 return false;
4172 }
4173 return true;
4174 }
4175 return false;
4176}
MachineObject * obj
Definition StatusPanel.hpp:620
void show_recenter_dialog()
Definition StatusPanel.cpp:3046

References Slic3r::GUI::StatusBasePanel::obj, and show_recenter_dialog().

Referenced by on_axis_ctrl_z_down_1(), on_axis_ctrl_z_down_10(), on_axis_ctrl_z_up_1(), and on_axis_ctrl_z_up_10().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_ams_group()

wxBoxSizer * Slic3r::GUI::StatusBasePanel::create_ams_group ( wxWindow * parent)
inherited
2112{
2113 auto sizer = new wxBoxSizer(wxVERTICAL);
2114 auto sizer_box = new wxBoxSizer(wxVERTICAL);
2115
2116 m_ams_control_box = new StaticBox(parent);
2117
2118 StateColor box_colour(std::pair<wxColour, int>(*wxWHITE, StateColor::Normal));
2119 StateColor box_border_colour(std::pair<wxColour, int>(STATUS_PANEL_BG, StateColor::Normal));
2120
2121 m_ams_control_box->SetBackgroundColor(box_colour);
2122 m_ams_control_box->SetBorderColor(box_border_colour);
2123 m_ams_control_box->SetCornerRadius(5);
2124
2125 m_ams_control_box->SetMinSize(wxSize(FromDIP(586), -1));
2126 m_ams_control_box->SetBackgroundColour(*wxWHITE);
2127#if !BBL_RELEASE_TO_PUBLIC
2128 m_ams_debug = new wxStaticText(m_ams_control_box, wxID_ANY, _L("Debug Info"), wxDefaultPosition, wxDefaultSize, 0);
2129 sizer_box->Add(m_ams_debug, 0, wxALIGN_CENTER_HORIZONTAL, 0);
2130 m_ams_debug->Hide();
2131#endif
2132
2133 m_ams_control = new AMSControl(m_ams_control_box, wxID_ANY);
2134 //m_ams_control->SetMinSize(wxSize(FromDIP(510), FromDIP(286)));
2135 m_ams_control->SetDoubleBuffered(true);
2136 sizer_box->Add(m_ams_control, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, FromDIP(10));
2137
2138 m_ams_control_box->SetBackgroundColour(*wxWHITE);
2139 m_ams_control_box->SetSizer(sizer_box);
2140 m_ams_control_box->Layout();
2141 m_ams_control_box->Fit();
2142 sizer->Add(m_ams_control_box, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, FromDIP(0));
2143 return sizer;
2144}
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
StaticBox * m_ams_control_box
Definition StatusPanel.hpp:555
AMSControl * m_ams_control
Definition StatusPanel.hpp:554
wxStaticText * m_ams_debug
Definition StatusPanel.hpp:547
@ Normal
Definition StateColor.hpp:16
static const wxColour STATUS_PANEL_BG
Definition StatusPanel.cpp:139

References _L, m_ams_control, m_ams_control_box, m_ams_debug, StateColor::Normal, Slic3r::GUI::STATUS_PANEL_BG, and wxStaticText.

Referenced by create_machine_control_page().

Here is the caller graph for this function:

◆ create_axis_control()

wxBoxSizer * Slic3r::GUI::StatusBasePanel::create_axis_control ( wxWindow * parent)
inherited
1966{
1967 auto sizer = new wxBoxSizer(wxVERTICAL);
1968 sizer->AddStretchSpacer();
1969 m_bpButton_xy = new AxisCtrlButton(parent, m_bitmap_axis_home);
1970 m_bpButton_xy->SetTextColor(StateColor(std::make_pair(DISCONNECT_TEXT_COL, (int) StateColor::Disabled), std::make_pair(NORMAL_TEXT_COL, (int) StateColor::Normal)));
1971 m_bpButton_xy->SetMinSize(AXIS_MIN_SIZE);
1972 m_bpButton_xy->SetSize(AXIS_MIN_SIZE);
1973 sizer->AddStretchSpacer();
1974 sizer->Add(m_bpButton_xy, 0, wxALIGN_CENTER | wxALL, 0);
1975 sizer->AddStretchSpacer();
1976 return sizer;
1977}
#define AXIS_MIN_SIZE
Definition StatusPanel.cpp:191
ScalableBitmap m_bitmap_axis_home
Definition StatusPanel.hpp:418
@ Disabled
Definition StateColor.hpp:22
static const wxColour DISCONNECT_TEXT_COL
Definition StatusPanel.cpp:148
static const wxColour NORMAL_TEXT_COL
Definition StatusPanel.cpp:149

References AXIS_MIN_SIZE, StateColor::Disabled, Slic3r::GUI::DISCONNECT_TEXT_COL, m_bitmap_axis_home, m_bpButton_xy, StateColor::Normal, and Slic3r::GUI::NORMAL_TEXT_COL.

Referenced by create_temp_axis_group().

Here is the caller graph for this function:

◆ create_bed_control()

wxPanel * Slic3r::GUI::StatusBasePanel::create_bed_control ( wxWindow * parent)
inherited
1980{
1981 wxBoxSizer *bSizer_z_ctrl = new wxBoxSizer(wxHORIZONTAL);
1982 auto panel = new wxPanel(parent, wxID_ANY);
1983 panel->SetBackgroundColour(*wxWHITE);
1984
1985 StateColor z_10_ctrl_bg(std::pair<wxColour, int>(BUTTON_PRESS_COL, StateColor::Pressed), std::pair<wxColour, int>(BUTTON_NORMAL1_COL, StateColor::Normal));
1986 StateColor z_10_ctrl_bd(std::pair<wxColour, int>(BUTTON_HOVER_COL, StateColor::Hovered), std::pair<wxColour, int>(BUTTON_NORMAL1_COL, StateColor::Normal));
1987
1988 StateColor z_1_ctrl_bg(std::pair<wxColour, int>(BUTTON_PRESS_COL, StateColor::Pressed), std::pair<wxColour, int>(BUTTON_NORMAL2_COL, StateColor::Normal));
1989 StateColor z_1_ctrl_bd(std::pair<wxColour, int>(BUTTON_HOVER_COL, StateColor::Hovered), std::pair<wxColour, int>(BUTTON_NORMAL2_COL, StateColor::Normal));
1990
1991 m_bpButton_z_10 = new Button(panel, wxString("10"), "monitor_bed_up", 0, 15); // Orca Dont scale icon size
1993 m_bpButton_z_10->SetBorderWidth(0);
1994 m_bpButton_z_10->SetBackgroundColor(z_10_ctrl_bg);
1995 m_bpButton_z_10->SetBorderColor(z_10_ctrl_bd);
1996 m_bpButton_z_10->SetTextColor(StateColor(std::make_pair(DISCONNECT_TEXT_COL, (int) StateColor::Disabled), std::make_pair(NORMAL_TEXT_COL, (int) StateColor::Normal)));
1997 m_bpButton_z_10->SetMinSize(Z_BUTTON_SIZE);
1999 m_bpButton_z_10->SetCornerRadius(0);
2000 m_bpButton_z_1 = new Button(panel, wxString(" 1"), "monitor_bed_up", 0, 15); // Orca Dont scale icon size
2002 m_bpButton_z_1->SetBorderWidth(0);
2003 m_bpButton_z_1->SetBackgroundColor(z_1_ctrl_bg);
2004 m_bpButton_z_1->SetBorderColor(z_1_ctrl_bd);
2005 m_bpButton_z_1->SetMinSize(Z_BUTTON_SIZE);
2006 m_bpButton_z_1->SetSize(Z_BUTTON_SIZE);
2007 m_bpButton_z_1->SetTextColor(StateColor(std::make_pair(DISCONNECT_TEXT_COL, (int) StateColor::Disabled), std::make_pair(NORMAL_TEXT_COL, (int) StateColor::Normal)));
2008
2009 //bSizer_z_ctrl->Add(0, FromDIP(6), 0, wxEXPAND, 0);
2010
2011 m_staticText_z_tip = new wxStaticText(panel, wxID_ANY, _L("Bed"), wxDefaultPosition, wxDefaultSize, 0);
2013 if (wxGetApp().app_config->get("language") == "de_DE") m_staticText_z_tip->SetFont(::Label::Body_11);
2014 m_staticText_z_tip->Wrap(-1);
2015 m_staticText_z_tip->SetForegroundColour(TEXT_LIGHT_FONT_COL);
2016 m_bpButton_z_down_1 = new Button(panel, wxString(" 1"), "monitor_bed_down", 0, 15); // Orca Dont scale icon size
2018 m_bpButton_z_down_1->SetBorderWidth(0);
2019 m_bpButton_z_down_1->SetBackgroundColor(z_1_ctrl_bg);
2020 m_bpButton_z_down_1->SetBorderColor(z_1_ctrl_bd);
2023 m_bpButton_z_down_1->SetTextColor(StateColor(std::make_pair(DISCONNECT_TEXT_COL, (int) StateColor::Disabled), std::make_pair(NORMAL_TEXT_COL, (int) StateColor::Normal)));
2024
2025 m_bpButton_z_down_10 = new Button(panel, wxString("10"), "monitor_bed_down", 0, 15); // Orca Dont scale icon size
2027 m_bpButton_z_down_10->SetBorderWidth(0);
2028 m_bpButton_z_down_10->SetBackgroundColor(z_10_ctrl_bg);
2029 m_bpButton_z_down_10->SetBorderColor(z_10_ctrl_bd);
2032 m_bpButton_z_down_10->SetTextColor(StateColor(std::make_pair(DISCONNECT_TEXT_COL, (int) StateColor::Disabled), std::make_pair(NORMAL_TEXT_COL, (int) StateColor::Normal)));
2033
2034 bSizer_z_ctrl->Add(m_bpButton_z_10, 0, wxEXPAND | wxLEFT | wxRIGHT, 0);
2035 bSizer_z_ctrl->Add(m_bpButton_z_1, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(2));
2036 bSizer_z_ctrl->Add(m_staticText_z_tip, 0, wxALIGN_CENTRE, FromDIP(5));
2037 bSizer_z_ctrl->Add(m_bpButton_z_down_1, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(2));
2038 bSizer_z_ctrl->Add(m_bpButton_z_down_10, 0, wxEXPAND | wxLEFT | wxRIGHT, 0);
2039
2040 panel->SetSizer(bSizer_z_ctrl);
2041 panel->Layout();
2042 panel->Fit();
2043
2044 return panel;
2045}
#define Z_BUTTON_SIZE
Definition StatusPanel.cpp:184
static wxFont Body_11
Definition Label.hpp:57
static wxFont Body_12
Definition Label.hpp:55
wxStaticText * m_staticText_z_tip
Definition StatusPanel.hpp:538
@ Hovered
Definition StateColor.hpp:20
@ Pressed
Definition StateColor.hpp:21
static const wxColour BUTTON_NORMAL2_COL
Definition StatusPanel.cpp:144
static const wxColour BUTTON_PRESS_COL
Definition StatusPanel.cpp:145
static const wxColour BUTTON_HOVER_COL
Definition StatusPanel.cpp:146
static wxColour TEXT_LIGHT_FONT_COL
Definition StatusPanel.cpp:162
static const wxColour BUTTON_NORMAL1_COL
Definition StatusPanel.cpp:143

References _L, Label::Body_11, Label::Body_12, Slic3r::GUI::BUTTON_HOVER_COL, Slic3r::GUI::BUTTON_NORMAL1_COL, Slic3r::GUI::BUTTON_NORMAL2_COL, Slic3r::GUI::BUTTON_PRESS_COL, StateColor::Disabled, Slic3r::GUI::DISCONNECT_TEXT_COL, StateColor::Hovered, m_bpButton_z_1, m_bpButton_z_10, m_bpButton_z_down_1, m_bpButton_z_down_10, m_staticText_z_tip, StateColor::Normal, Slic3r::GUI::NORMAL_TEXT_COL, StateColor::Pressed, Slic3r::GUI::TEXT_LIGHT_FONT_COL, wxStaticText, and Z_BUTTON_SIZE.

Referenced by create_temp_axis_group().

Here is the caller graph for this function:

◆ create_extruder_control()

wxBoxSizer * Slic3r::GUI::StatusBasePanel::create_extruder_control ( wxWindow * parent)
inherited
2048{
2049 wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
2050 wxBoxSizer *bSizer_e_ctrl = new wxBoxSizer(wxVERTICAL);
2051 auto panel = new wxPanel(parent,wxID_ANY);
2052
2053 panel->SetBackgroundColour(*wxWHITE);
2054 panel->SetSize(wxSize(FromDIP(143), -1));
2055 panel->SetMinSize(wxSize(FromDIP(143), -1));
2056 panel->SetMaxSize(wxSize(FromDIP(143), -1));
2057
2058 StateColor e_ctrl_bg(std::pair<wxColour, int>(BUTTON_PRESS_COL, StateColor::Pressed), std::pair<wxColour, int>(BUTTON_NORMAL1_COL, StateColor::Normal));
2059 StateColor e_ctrl_bd(std::pair<wxColour, int>(BUTTON_HOVER_COL, StateColor::Hovered), std::pair<wxColour, int>(BUTTON_NORMAL1_COL, StateColor::Normal));
2060
2061 m_nozzle_btn_panel = new SwitchBoard(panel, _L_CONTEXT("Left", "Nozzle position"), _L_CONTEXT("Right", "Nozzle position"), wxSize(FromDIP(126), FromDIP(26)));
2062 m_nozzle_btn_panel->SetAutoDisableWhenSwitch();
2063
2064 m_bpButton_e_10 = new Button(panel, "", "monitor_extruder_up", 0, 22); // Orca Dont scale icon size
2065 m_bpButton_e_10->SetBorderWidth(2);
2066 m_bpButton_e_10->SetBackgroundColor(e_ctrl_bg);
2067 m_bpButton_e_10->SetBorderColor(e_ctrl_bd);
2068 m_bpButton_e_10->SetMinSize(wxSize(FromDIP(40), FromDIP(40)));
2069
2070 m_extruder_book = new wxSimplebook(panel, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(45), FromDIP(112)), 0);
2071
2072 m_extruder_book->InsertPage(0, new wxPanel(panel), "");
2073 for (int nozzle_num = 1; nozzle_num <= 2; nozzle_num++) {
2074 auto extruder_img = new ExtruderImage(m_extruder_book, wxID_ANY, nozzle_num);
2075 m_extruder_book->InsertPage(nozzle_num, extruder_img, "");
2076 m_extruderImage.push_back(extruder_img);
2077 }
2078 m_extruder_book->SetSelection(0);
2079
2080 m_bpButton_e_down_10 = new Button(panel, "", "monitor_extruder_down", 0, 22); // Orca Dont scale icon size
2081 m_bpButton_e_down_10->SetBorderWidth(2);
2082 m_bpButton_e_down_10->SetBackgroundColor(e_ctrl_bg);
2083 m_bpButton_e_down_10->SetBorderColor(e_ctrl_bd);
2084 m_bpButton_e_down_10->SetMinSize(wxSize(FromDIP(40), FromDIP(40)));
2085
2086 m_extruder_switching_status = new ExtruderSwithingStatus(panel);
2088
2089 m_extruder_label = new ::Label(panel, _L("Extruder"));
2091 m_extruder_label->SetForegroundColour(TEXT_LIGHT_FONT_COL);
2092
2093 bSizer_e_ctrl->Add(0, 0, 0, wxTOP, FromDIP(15));
2094 bSizer_e_ctrl->Add(m_nozzle_btn_panel, 0, wxALIGN_CENTER_HORIZONTAL, 0);
2095 bSizer_e_ctrl->Add(0, 0, 0, wxTOP, FromDIP(15));
2096 bSizer_e_ctrl->Add(m_bpButton_e_10, 0, wxALIGN_CENTER_HORIZONTAL, 0);
2097 bSizer_e_ctrl->Add(0, 0, 0, wxTOP, FromDIP(7));
2098 bSizer_e_ctrl->Add(m_extruder_book, 0, wxALIGN_CENTER_HORIZONTAL, 0);
2099 bSizer_e_ctrl->Add(0, 0, 0, wxTOP, FromDIP(7));
2100 bSizer_e_ctrl->Add(m_bpButton_e_down_10, 0, wxALIGN_CENTER_HORIZONTAL, 0);
2101 bSizer_e_ctrl->Add(0, 0, 1, wxEXPAND, 0);
2102 bSizer_e_ctrl->Add(m_extruder_switching_status, 0, wxALIGN_CENTER_HORIZONTAL, 0);
2103 bSizer_e_ctrl->Add(m_extruder_label, 0, wxTOP | wxALIGN_CENTER_HORIZONTAL, FromDIP(10));
2104
2105 panel->SetSizer(bSizer_e_ctrl);
2106 panel->Layout();
2107 sizer->Add(panel, 1, wxEXPAND, 0);
2108 return sizer;
2109}
static wxFont Body_13
Definition Label.hpp:54
ExtruderSwithingStatus * m_extruder_switching_status
Definition StatusPanel.hpp:542
wxSimplebook * m_extruder_book
Definition StatusPanel.hpp:494
std::vector< ExtruderImage * > m_extruderImage
Definition StatusPanel.hpp:495
Label * m_extruder_label
Definition StatusPanel.hpp:539
#define _L_CONTEXT(s, ctx)
Definition I18N.hpp:15

References _L, _L_CONTEXT, Label::Body_13, Slic3r::GUI::BUTTON_HOVER_COL, Slic3r::GUI::BUTTON_NORMAL1_COL, Slic3r::GUI::BUTTON_PRESS_COL, StateColor::Hovered, m_bpButton_e_10, m_bpButton_e_down_10, m_extruder_book, m_extruder_label, m_extruder_switching_status, m_extruderImage, m_nozzle_btn_panel, StateColor::Normal, StateColor::Pressed, and Slic3r::GUI::TEXT_LIGHT_FONT_COL.

Referenced by create_temp_axis_group().

Here is the caller graph for this function:

◆ create_filament_group()

wxBoxSizer * Slic3r::GUI::StatusBasePanel::create_filament_group ( wxWindow * parent)
inherited
2147{
2148 auto sizer = new wxBoxSizer(wxVERTICAL);
2149
2150 auto sizer_scale_panel = new wxBoxSizer(wxHORIZONTAL);
2151 m_scale_panel = new wxPanel(parent);
2152 m_scale_panel->SetMinSize(wxSize(FromDIP(586), FromDIP(40)));
2153 m_scale_panel->SetMaxSize(wxSize(FromDIP(586), FromDIP(40)));
2154 m_scale_panel->SetBackgroundColour(*wxWHITE);
2155
2156 auto m_title_filament_loading = new Label(m_scale_panel, _L("Filament loading..."));
2157 m_title_filament_loading->SetBackgroundColour(*wxWHITE);
2158 m_title_filament_loading->SetForegroundColour(wxColour(0, 137, 123));
2159 m_title_filament_loading->SetFont(::Label::Body_14);
2160
2161 m_img_filament_loading = new wxStaticBitmap(m_scale_panel, wxID_ANY, create_scaled_bitmap("filament_load_fold", this, 24), wxDefaultPosition, wxSize(FromDIP(24), FromDIP(24)), 0);
2162
2163 sizer_scale_panel->Add(0, 0, 0, wxLEFT, FromDIP(20));
2164 sizer_scale_panel->Add(m_title_filament_loading, 0, wxALIGN_CENTER, 0);
2165 sizer_scale_panel->Add(m_img_filament_loading, 0, wxALIGN_CENTER, 0);
2166 m_scale_panel->SetSizer(sizer_scale_panel);
2167 m_scale_panel->Layout();
2168 m_scale_panel->Fit();
2169 m_scale_panel->Hide();
2170
2171
2172 m_title_filament_loading->Bind(wxEVT_LEFT_DOWN, &StatusBasePanel::expand_filament_loading, this);
2173 m_scale_panel->Bind(wxEVT_LEFT_DOWN, &StatusBasePanel::expand_filament_loading, this);
2174
2175
2176 auto sizer_box = new wxBoxSizer(wxVERTICAL);
2177
2178 StateColor box_colour(std::pair<wxColour, int>(*wxWHITE, StateColor::Normal));
2179 StateColor box_border_colour(std::pair<wxColour, int>(STATUS_PANEL_BG, StateColor::Normal));
2180
2181 m_filament_load_box = new StaticBox(parent);
2182 m_filament_load_box->SetBackgroundColor(box_colour);
2183 m_filament_load_box->SetBorderColor(box_border_colour);
2184 m_filament_load_box->SetCornerRadius(5);
2185 m_filament_load_box->SetMinSize(wxSize(FromDIP(586), -1));
2186 m_filament_load_box->SetMaxSize(wxSize(FromDIP(586), -1));
2187 m_filament_load_box->SetBackgroundColour(*wxWHITE);
2188 m_filament_load_box->SetSizer(sizer_box);
2189
2190 m_filament_step = new FilamentLoad(m_filament_load_box, wxID_ANY);
2191 m_filament_step->SetDoubleBuffered(true);
2192 m_filament_step->set_min_size(wxSize(wxSize(FromDIP(300), FromDIP(215))));
2193 m_filament_step->set_max_size(wxSize(wxSize(FromDIP(300), FromDIP(215))));
2194 m_filament_step->SetBackgroundColour(*wxWHITE);
2195
2196 m_filament_load_img = new wxStaticBitmap(m_filament_load_box, wxID_ANY, wxNullBitmap);
2197 m_filament_load_img->SetBackgroundColour(*wxWHITE);
2198
2199 wxBoxSizer *steps_sizer = new wxBoxSizer(wxHORIZONTAL);
2200 steps_sizer->Add(m_filament_step, 0, wxALIGN_LEFT, FromDIP(20));
2201 steps_sizer->Add(m_filament_load_img, 0, wxALIGN_TOP, FromDIP(30));
2202 steps_sizer->AddStretchSpacer();
2203
2204 m_button_retry = new Button(m_filament_load_box, _L("Retry"));
2206 //m_button_retry->Hide();
2207
2208 m_button_retry->Bind(wxEVT_BUTTON, [this](wxCommandEvent &e) {
2209 BOOST_LOG_TRIVIAL(info) << "on_ams_retry";
2210 if (obj) { obj->command_ams_control("resume"); }
2211 });
2212
2213 // Orca: filament-change Stop button (aborts an in-progress filament change)
2214 m_fila_change_abort = new Button(m_filament_load_box, _L("Stop"));
2216 m_fila_change_abort->Hide();
2217 m_fila_change_abort->Bind(wxEVT_BUTTON, [this](wxCommandEvent &e) {
2218 BOOST_LOG_TRIVIAL(info) << "on_ams_abort";
2219 if (obj) { obj->command_ams_control("abort"); }
2220 });
2221
2222 wxBoxSizer *fila_change_sizer = new wxBoxSizer(wxHORIZONTAL);
2223 fila_change_sizer->Add(m_button_retry, 0, wxRIGHT, FromDIP(7));
2224 fila_change_sizer->Add(m_fila_change_abort, 0, wxLEFT, FromDIP(7));
2225
2226 sizer_box->Add(steps_sizer, 0, wxEXPAND | wxTOP, FromDIP(5));
2227 sizer_box->Add(fila_change_sizer, 0, wxLEFT, FromDIP(28));
2228 sizer_box->Add(0, 0, 0, wxTOP, FromDIP(5));
2229 m_filament_load_box->SetBackgroundColour(*wxWHITE);
2230 m_filament_load_box->Layout();
2231 m_filament_load_box->Fit();
2232 m_filament_load_box->Hide();
2233 sizer->Add(m_scale_panel, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, FromDIP(5));
2234 sizer->Add(m_filament_load_box, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 0);
2235 return sizer;
2236}
@ Confirm
Definition Button.hpp:25
@ Regular
Definition Button.hpp:24
@ Choice
Definition Button.hpp:33
static wxFont Body_14
Definition Label.hpp:53
wxPanel * m_scale_panel
Definition StatusPanel.hpp:580
FilamentLoad * m_filament_step
Definition StatusPanel.hpp:584
Button * m_button_retry
Definition StatusPanel.hpp:587
void expand_filament_loading(wxMouseEvent &e)
Definition StatusPanel.cpp:2238
StaticBox * m_filament_load_box
Definition StatusPanel.hpp:589
Button * m_fila_change_abort
Definition StatusPanel.hpp:588
wxStaticBitmap * m_img_filament_loading
Definition StatusPanel.hpp:581
wxStaticBitmap * m_filament_load_img
Definition StatusPanel.hpp:585
wxBitmap create_scaled_bitmap(const std::string &bmp_name_in, wxWindow *win, const int px_cnt, const bool grayscale, const std::string &new_color, const bool menu_bitmap, const bool resize, const bool bitmap2, const std::vector< std::string > &array_new_color)
Definition wxExtensions.cpp:448

References _L, Label::Body_14, Choice, Confirm, create_scaled_bitmap(), expand_filament_loading(), m_button_retry, m_fila_change_abort, m_filament_load_box, m_filament_load_img, m_filament_step, m_img_filament_loading, m_scale_panel, StateColor::Normal, obj, Regular, and Slic3r::GUI::STATUS_PANEL_BG.

Referenced by create_machine_control_page().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_machine_control_page()

wxBoxSizer * Slic3r::GUI::StatusBasePanel::create_machine_control_page ( wxWindow * parent)
inherited
1639{
1640 wxBoxSizer *bSizer_right = new wxBoxSizer(wxVERTICAL);
1641
1642 m_panel_control_title = new wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(-1, PAGE_TITLE_HEIGHT), wxTAB_TRAVERSAL);
1643 m_panel_control_title->SetBackgroundColour(STATUS_TITLE_BG);
1644
1645 wxBoxSizer *bSizer_control_title = new wxBoxSizer(wxHORIZONTAL);
1646 m_staticText_control = new Label(m_panel_control_title,_L("Control"));
1647 m_staticText_control->Wrap(-1);
1648 //m_staticText_control->SetFont(PAGE_TITLE_FONT);
1649 m_staticText_control->SetForegroundColour(PAGE_TITLE_FONT_COL);
1650
1651 m_parts_btn = new Button(m_panel_control_title, _L("Printer Parts"));
1653
1654 m_options_btn = new Button(m_panel_control_title, _L("Print Options"));
1656
1657 m_safety_btn = new Button(m_panel_control_title, _L("Safety Options"));
1659
1660 m_calibration_btn = new Button(m_panel_control_title, _L("Calibration"));
1662 m_calibration_btn->EnableTooltipEvenDisabled();
1663
1664 m_options_btn->Hide();
1665 m_safety_btn->Hide();
1666
1667 bSizer_control_title->Add(m_staticText_control, 1, wxALIGN_CENTER_VERTICAL | wxLEFT, PAGE_TITLE_LEFT_MARGIN);
1668 bSizer_control_title->Add(0, 0, 1, wxEXPAND, 0);
1669 bSizer_control_title->Add(m_parts_btn, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, FromDIP(10));
1670 bSizer_control_title->Add(m_options_btn, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, FromDIP(10));
1671 bSizer_control_title->Add(m_safety_btn, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, FromDIP(10));
1672 bSizer_control_title->Add(m_calibration_btn, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, FromDIP(10));
1673
1674 m_panel_control_title->SetSizer(bSizer_control_title);
1675 m_panel_control_title->Layout();
1676 bSizer_control_title->Fit(m_panel_control_title);
1677 bSizer_right->Add(m_panel_control_title, 0, wxALL | wxEXPAND, 0);
1678
1679 wxBoxSizer *bSizer_control = new wxBoxSizer(wxVERTICAL);
1680
1681 // The slot sizers keep each group's place in bSizer_control.
1682 wxBoxSizer *temp_axis_slot = new wxBoxSizer(wxVERTICAL);
1683 wxBoxSizer *filament_slot = new wxBoxSizer(wxVERTICAL);
1684 /* ams control box or live nozzle-rack panel (rack printers switch between the two) */
1685 wxSizer *ams_rack_sizer = new wxBoxSizer(wxHORIZONTAL);
1686
1687 add_build_step([this, parent, temp_axis_slot, filament_slot] {
1688 temp_axis_slot->Add(create_temp_axis_group(parent), 0, wxEXPAND);
1689 filament_slot->Add(create_filament_group(parent), 0, wxEXPAND);
1690 });
1691 add_build_step([this, parent, ams_rack_sizer] {
1692 ams_rack_sizer->Add(create_ams_group(parent), 0, wxEXPAND | wxLEFT);
1693 });
1694 add_build_step([this, parent, ams_rack_sizer] {
1695 m_panel_nozzle_rack = new wgtDeviceNozzleRack(parent);
1696 m_panel_nozzle_rack->Show(false);
1697 ams_rack_sizer->Add(m_panel_nozzle_rack, 0, wxEXPAND | wxLEFT);
1698 });
1699
1700 m_ams_rack_switch = new SwitchBoard(parent, _L("Filament"), _L("Hotends"), wxSize(FromDIP(126), FromDIP(26)));
1701 m_ams_rack_switch->updateState("left");
1702 m_ams_rack_switch->Hide();
1703 m_ams_rack_switch->Bind(wxCUSTOMEVT_SWITCH_POS, &StatusBasePanel::on_ams_rack_switch, this);
1704
1705 bSizer_control->Add(0, 0, 0, wxTOP, FromDIP(8));
1706 bSizer_control->Add(temp_axis_slot, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT, FromDIP(8));
1707 bSizer_control->Add(m_ams_rack_switch, 0, wxALIGN_CENTRE|wxTOP, FromDIP(6));
1708 bSizer_control->Add(0, 0, 0, wxTOP, FromDIP(6));
1709 bSizer_control->Add(ams_rack_sizer, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT, FromDIP(8));
1710 bSizer_control->Add(0, 0, 0, wxTOP, FromDIP(6));
1711 bSizer_control->Add(filament_slot, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT, FromDIP(8));
1712 bSizer_control->Add(0, 0, 0, wxTOP, FromDIP(4));
1713
1714 bSizer_right->Add(bSizer_control, 1, wxEXPAND | wxALL, 0);
1715
1716 return bSizer_right;
1717}
@ Window
Definition Button.hpp:32
#define PAGE_TITLE_HEIGHT
Definition StatusPanel.cpp:168
#define PAGE_TITLE_LEFT_MARGIN
Definition StatusPanel.cpp:170
wxBoxSizer * create_temp_axis_group(wxWindow *parent)
Definition StatusPanel.cpp:1719
SwitchBoard * m_ams_rack_switch
Definition StatusPanel.hpp:552
wxBoxSizer * create_ams_group(wxWindow *parent)
Definition StatusPanel.cpp:2111
Label * m_staticText_control
Definition StatusPanel.hpp:501
wxPanel * m_panel_control_title
Definition StatusPanel.hpp:453
wgtDeviceNozzleRack * m_panel_nozzle_rack
Definition StatusPanel.hpp:559
void on_ams_rack_switch(wxCommandEvent &event)
Definition StatusPanel.cpp:2373
wxBoxSizer * create_filament_group(wxWindow *parent)
Definition StatusPanel.cpp:2146
static const wxColour STATUS_TITLE_BG
Definition StatusPanel.cpp:140
static wxColour PAGE_TITLE_FONT_COL
Definition StatusPanel.cpp:160

References _L, Slic3r::GUI::StagedBuild::add_build_step(), Confirm, create_ams_group(), create_filament_group(), create_temp_axis_group(), m_ams_rack_switch, m_calibration_btn, m_options_btn, m_panel_control_title, m_panel_nozzle_rack, m_parts_btn, m_safety_btn, m_staticText_control, on_ams_rack_switch(), Slic3r::GUI::PAGE_TITLE_FONT_COL, PAGE_TITLE_HEIGHT, PAGE_TITLE_LEFT_MARGIN, Slic3r::GUI::STATUS_TITLE_BG, and Window.

Referenced by StatusBasePanel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_misc_control()

wxBoxSizer * Slic3r::GUI::StatusBasePanel::create_misc_control ( wxWindow * parent)
inherited
1851{
1852 wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
1853
1854 wxBoxSizer *line_sizer = new wxBoxSizer(wxHORIZONTAL);
1855
1856 /* create speed control */
1857 m_switch_speed = new ImageSwitchButton(parent, m_bitmap_speed_active, m_bitmap_speed);
1858 m_switch_speed->SetLabels("100%", "100%");
1861 m_switch_speed->SetPadding(FromDIP(3));
1862 m_switch_speed->SetBorderWidth(FromDIP(2));
1864 m_switch_speed->SetTextColor(StateColor(std::make_pair(DISCONNECT_TEXT_COL, (int) StateColor::Disabled), std::make_pair(NORMAL_TEXT_COL, (int) StateColor::Normal)));
1865 m_switch_speed->SetValue(false);
1866
1867 line_sizer->Add(m_switch_speed, 1, wxALIGN_CENTER | wxALL, 0);
1868
1869 auto line = new StaticLine(parent, true);
1870 line->SetLineColour(STATIC_BOX_LINE_COL);
1871 line_sizer->Add(line, 0, wxEXPAND | wxTOP | wxBOTTOM, 4);
1872
1873 /* create lamp control */
1874 m_switch_lamp = new ImageSwitchButton(parent, m_bitmap_lamp_on, m_bitmap_lamp_off);
1875 m_switch_lamp->SetLabels(_L("Lamp"), _L("Lamp"));
1878 m_switch_lamp->SetPadding(FromDIP(3));
1879 m_switch_lamp->SetBorderWidth(FromDIP(2));
1880 m_switch_lamp->SetFont(Label::Head_13);
1881 m_switch_lamp->SetTextColor(StateColor(std::make_pair(DISCONNECT_TEXT_COL, (int) StateColor::Disabled), std::make_pair(NORMAL_TEXT_COL, (int) StateColor::Normal)));
1882 line_sizer->Add(m_switch_lamp, 1, wxALIGN_CENTER | wxALL, 0);
1883
1884 //sizer->Add(line_sizer, 0, wxEXPAND, FromDIP(5));
1885 line = new StaticLine(parent);
1886 line->SetLineColour(STATIC_BOX_LINE_COL);
1887 sizer->Add(line, 0, wxEXPAND | wxLEFT | wxRIGHT, 12);
1888
1889 m_fan_panel = new StaticBox(parent);
1892 m_fan_panel->SetBackgroundColor(*wxWHITE);
1893 m_fan_panel->SetBorderWidth(0);
1894 m_fan_panel->SetCornerRadius(0);
1895
1896 auto fan_line_sizer = new wxBoxSizer(wxHORIZONTAL);
1898 m_switch_fan->SetValue(false);
1901 m_switch_fan->SetPadding(FromDIP(1));
1902 m_switch_fan->SetBorderWidth(0);
1903 m_switch_fan->SetCornerRadius(0);
1905 m_switch_fan->UseTextFan();
1906 m_switch_fan->SetTextColor(
1907 StateColor(std::make_pair(DISCONNECT_TEXT_COL, (int)StateColor::Disabled), std::make_pair(NORMAL_FAN_TEXT_COL, (int)StateColor::Normal)));
1908
1909 m_switch_fan->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {
1910 m_fan_panel->SetBackgroundColor(wxColour(0, 150, 136));
1911 });
1912
1913 m_switch_fan->Bind(wxEVT_LEAVE_WINDOW, [this, parent](auto& e) {
1914 m_fan_panel->SetBackgroundColor(parent->GetBackgroundColour());
1915 });
1916
1917 fan_line_sizer->Add(m_switch_fan, 1, wxEXPAND|wxALL, FromDIP(2));
1918
1919 m_fan_panel->SetSizer(fan_line_sizer);
1920 m_fan_panel->Layout();
1921 m_fan_panel->Fit();
1922 sizer->Add(m_fan_panel, 0, wxEXPAND, FromDIP(5));
1923 line = new StaticLine(parent);
1924 line->SetLineColour(STATIC_BOX_LINE_COL);
1925 sizer->Add(line, 0, wxEXPAND | wxLEFT | wxRIGHT, 12);
1926
1927 sizer->Add(line_sizer, 0, wxEXPAND, FromDIP(5));
1928 return sizer;
1929}
#define MISC_BUTTON_PANEL_SIZE
Definition StatusPanel.cpp:185
#define MISC_BUTTON_2FAN_SIZE
Definition StatusPanel.cpp:187
#define MISC_BUTTON_1FAN_SIZE
Definition StatusPanel.cpp:186
static wxFont Head_13
Definition Label.hpp:46
static wxFont Body_10
Definition Label.hpp:56
ScalableBitmap m_bitmap_fan_on
Definition StatusPanel.hpp:421
StaticBox * m_fan_panel
Definition StatusPanel.hpp:508
ScalableBitmap m_bitmap_lamp_off
Definition StatusPanel.hpp:420
ScalableBitmap m_bitmap_speed_active
Definition StatusPanel.hpp:417
ScalableBitmap m_bitmap_lamp_on
Definition StatusPanel.hpp:419
ScalableBitmap m_bitmap_fan_off
Definition StatusPanel.hpp:422
ScalableBitmap m_bitmap_speed
Definition StatusPanel.hpp:416
static const wxColour NORMAL_FAN_TEXT_COL
Definition StatusPanel.cpp:150
static const wxColour STATIC_BOX_LINE_COL
Definition StatusPanel.cpp:141

References _L, Label::Body_10, StateColor::Disabled, Slic3r::GUI::DISCONNECT_TEXT_COL, Label::Head_13, m_bitmap_fan_off, m_bitmap_fan_on, m_bitmap_lamp_off, m_bitmap_lamp_on, m_bitmap_speed, m_bitmap_speed_active, m_fan_panel, m_switch_fan, m_switch_lamp, m_switch_speed, MISC_BUTTON_1FAN_SIZE, MISC_BUTTON_2FAN_SIZE, MISC_BUTTON_PANEL_SIZE, StateColor::Normal, Slic3r::GUI::NORMAL_FAN_TEXT_COL, Slic3r::GUI::NORMAL_TEXT_COL, and Slic3r::GUI::STATIC_BOX_LINE_COL.

Referenced by create_temp_control().

Here is the caller graph for this function:

◆ create_monitoring_page()

wxBoxSizer * Slic3r::GUI::StatusBasePanel::create_monitoring_page ( )
inherited
1512{
1513 wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
1514
1515 m_panel_monitoring_title = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, PAGE_TITLE_HEIGHT), wxTAB_TRAVERSAL);
1516 m_panel_monitoring_title->SetBackgroundColour(STATUS_TITLE_BG);
1517
1518 wxBoxSizer *bSizer_monitoring_title;
1519 bSizer_monitoring_title = new wxBoxSizer(wxHORIZONTAL);
1520
1521 m_staticText_monitoring = new Label(m_panel_monitoring_title, _L_CONTEXT("Camera", "Printer camera"));
1522 m_staticText_monitoring->Wrap(-1);
1523 //m_staticText_monitoring->SetFont(PAGE_TITLE_FONT);
1524 m_staticText_monitoring->SetForegroundColour(PAGE_TITLE_FONT_COL);
1525 bSizer_monitoring_title->Add(m_staticText_monitoring, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, PAGE_TITLE_LEFT_MARGIN);
1526
1527
1528 bSizer_monitoring_title->Add(FromDIP(13), 0, 0, 0);
1529 bSizer_monitoring_title->AddStretchSpacer();
1530
1531 m_staticText_timelapse = new wxStaticText(m_panel_monitoring_title, wxID_ANY, _L("Timelapse"), wxDefaultPosition, wxDefaultSize, 0);
1532 m_staticText_timelapse->Wrap(-1);
1533 m_staticText_timelapse->Hide();
1534 bSizer_monitoring_title->Add(m_staticText_timelapse, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
1535
1536 m_mqtt_source = new wxStaticText(m_panel_monitoring_title, wxID_ANY, "MqttSource", wxDefaultPosition, wxDefaultSize, 0);
1537 m_mqtt_source->Wrap(-1);
1538 m_mqtt_source->Hide();
1539 bSizer_monitoring_title->Add(m_mqtt_source, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
1540
1544 bSizer_monitoring_title->Add(m_bmToggleBtn_timelapse, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
1545
1546#if !BBL_RELEASE_TO_PUBLIC
1547 m_staticText_timelapse->Show();
1549 m_bmToggleBtn_timelapse->Bind(wxEVT_TOGGLEBUTTON, [](wxCommandEvent &e) {
1550 if (e.IsChecked())
1551 wxGetApp().getAgent()->start_subscribe("tunnel");
1552 else
1553 wxGetApp().getAgent()->stop_subscribe("tunnel");
1554 });
1555#endif
1556
1557 //m_bitmap_camera_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, m_bitmap_camera , wxDefaultPosition, wxSize(FromDIP(32), FromDIP(18)), 0);
1558 //m_bitmap_camera_img->SetMinSize(wxSize(FromDIP(32), FromDIP(18)));
1559 //bSizer_monitoring_title->Add(m_bitmap_camera_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
1560
1561 m_bitmap_sdcard_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
1562 m_bitmap_sdcard_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
1563
1564 m_bitmap_timelapse_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
1565 m_bitmap_timelapse_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
1566 m_bitmap_timelapse_img->Hide();
1567
1568 m_bitmap_recording_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
1569 m_bitmap_recording_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
1570 m_bitmap_timelapse_img->Hide();
1571
1572 m_bitmap_vcamera_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
1573 m_bitmap_vcamera_img->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
1574 m_bitmap_vcamera_img->Hide();
1575
1576 m_setting_button = new CameraItem(m_panel_monitoring_title, "camera_setting", "camera_setting_hover");
1577 m_setting_button->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
1578 m_setting_button->SetBackgroundColour(STATUS_TITLE_BG);
1579
1580 // m_camera_switch_button = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(38), FromDIP(24)), 0);
1581 // m_camera_switch_button->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
1582 // m_camera_switch_button->SetBackgroundColour(STATUS_TITLE_BG);
1583 // m_camera_switch_button->SetBitmap(m_bitmap_switch_camera.bmp());
1584 // m_camera_switch_button->Bind(wxEVT_RIGHT_DOWN, [this](auto& e) {
1585 // const std::string js_request_pip = R"(
1586 // document.querySelector('video').requestPictureInPicture();
1587 // )";
1588 // m_custom_camera_view->RunScript(js_request_pip);
1589 // });
1590 // m_camera_switch_button->Hide();
1591
1592 m_bitmap_sdcard_img->SetToolTip(_L("Storage"));
1593 m_bitmap_timelapse_img->SetToolTip(_L("Timelapse"));
1594 m_bitmap_recording_img->SetToolTip(_L("Video"));
1595 m_bitmap_vcamera_img->SetToolTip(_L("Go Live"));
1596 m_setting_button->SetToolTip(_L("Camera Setting"));
1597 // m_camera_switch_button->SetToolTip(_L("Switch Camera View"));
1598
1599 // bSizer_monitoring_title->Add(m_camera_switch_button, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
1600 bSizer_monitoring_title->Add(m_bitmap_sdcard_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
1601 bSizer_monitoring_title->Add(m_bitmap_timelapse_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
1602 bSizer_monitoring_title->Add(m_bitmap_recording_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
1603 bSizer_monitoring_title->Add(m_bitmap_vcamera_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
1604 bSizer_monitoring_title->Add(m_setting_button, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
1605
1606 bSizer_monitoring_title->Add(FromDIP(13), 0, 0);
1607
1608 m_panel_monitoring_title->SetSizer(bSizer_monitoring_title);
1609 m_panel_monitoring_title->Layout();
1610 bSizer_monitoring_title->Fit(m_panel_monitoring_title);
1611 sizer->Add(m_panel_monitoring_title, 0, wxEXPAND | wxALL, 0);
1612
1613// media_ctrl_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize);
1614// media_ctrl_panel->SetBackgroundColour(*wxBLACK);
1615// wxBoxSizer *bSizer_monitoring = new wxBoxSizer(wxVERTICAL);
1616 m_media_ctrl = new wxMediaCtrl3(this);
1617 m_media_ctrl->SetMinSize(wxSize(PAGE_MIN_WIDTH, FromDIP(288)));
1618
1619 m_custom_camera_view = WebView::CreateWebView(this, wxEmptyString);
1620 m_custom_camera_view->EnableContextMenu(false);
1621 m_web_media_controller = std::make_unique<WebMediaController>(m_custom_camera_view);
1622
1623 m_media_play_ctrl = new MediaPlayCtrl(this, m_media_ctrl, wxDefaultPosition, wxSize(-1, FromDIP(40)));
1624 m_media_play_ctrl->SetWebMediaController(m_web_media_controller.get());
1625 m_custom_camera_view->Hide();
1626
1627 sizer->Add(m_media_ctrl, 1, wxEXPAND | wxALL, 0);
1628 sizer->Add(m_custom_camera_view, 1, wxEXPAND | wxALL, 0);
1629 sizer->Add(m_media_play_ctrl, 0, wxEXPAND | wxALL, 0);
1630// media_ctrl_panel->SetSizer(bSizer_monitoring);
1631// media_ctrl_panel->Layout();
1632//
1633// sizer->Add(media_ctrl_panel, 1, wxEXPAND | wxALL, 1);
1634
1635 return sizer;
1636}
#define SWITCH_BUTTON_SIZE
Definition StatusPanel.cpp:180
#define PAGE_MIN_WIDTH
Definition StatusPanel.cpp:177
MediaPlayCtrl * m_media_play_ctrl
Definition StatusPanel.hpp:474
wxStaticText * m_staticText_timelapse
Definition StatusPanel.hpp:458
wxStaticBitmap * m_bitmap_sdcard_img
Definition StatusPanel.hpp:467
SwitchButton * m_bmToggleBtn_timelapse
Definition StatusPanel.hpp:459
wxPanel * m_panel_monitoring_title
Definition StatusPanel.hpp:451
wxStaticBitmap * m_bitmap_recording_img
Definition StatusPanel.hpp:464
wxWebView * m_custom_camera_view
Definition StatusPanel.hpp:491
wxStaticText * m_mqtt_source
Definition StatusPanel.hpp:461
wxMediaCtrl3 * m_media_ctrl
Definition StatusPanel.hpp:473
wxStaticBitmap * m_bitmap_timelapse_img
Definition StatusPanel.hpp:465
std::unique_ptr< WebMediaController > m_web_media_controller
Definition StatusPanel.hpp:492
wxStaticBitmap * m_bitmap_vcamera_img
Definition StatusPanel.hpp:466
Label * m_staticText_monitoring
Definition StatusPanel.hpp:457
static wxWebView * CreateWebView(wxWindow *parent, wxString const &url)
Definition WebView.cpp:313

References _L, _L_CONTEXT, WebView::CreateWebView(), m_bitmap_recording_img, m_bitmap_sdcard_img, m_bitmap_timelapse_img, m_bitmap_vcamera_img, m_bmToggleBtn_timelapse, m_custom_camera_view, m_media_ctrl, m_media_play_ctrl, m_mqtt_source, m_panel_monitoring_title, m_setting_button, m_staticText_monitoring, m_staticText_timelapse, m_web_media_controller, PAGE_MIN_WIDTH, Slic3r::GUI::PAGE_TITLE_FONT_COL, PAGE_TITLE_HEIGHT, PAGE_TITLE_LEFT_MARGIN, Slic3r::GUI::STATUS_TITLE_BG, SWITCH_BUTTON_SIZE, and wxStaticText.

Referenced by StatusBasePanel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_settings_group()

wxBoxSizer * Slic3r::GUI::StatusBasePanel::create_settings_group ( wxWindow * parent)
inherited

◆ create_tasklist_info()

void Slic3r::GUI::StatusPanel::create_tasklist_info ( )
protected

◆ create_temp_axis_group()

wxBoxSizer * Slic3r::GUI::StatusBasePanel::create_temp_axis_group ( wxWindow * parent)
inherited
1720{
1721 auto sizer = new wxBoxSizer(wxVERTICAL);
1722 auto box = new StaticBox(parent);
1723
1724 StateColor box_colour(std::pair<wxColour, int>(*wxWHITE, StateColor::Normal));
1725 StateColor box_border_colour(std::pair<wxColour, int>(STATUS_PANEL_BG, StateColor::Normal));
1726
1727 box->SetBackgroundColor(box_colour);
1728 box->SetBorderColor(box_border_colour);
1729 box->SetCornerRadius(5);
1730
1731 box->SetMinSize(wxSize(FromDIP(586), -1));
1732 box->SetMaxSize(wxSize(FromDIP(586), -1));
1733
1734 wxBoxSizer *content_sizer = new wxBoxSizer(wxHORIZONTAL);
1735 wxBoxSizer *m_temp_ctrl = create_temp_control(box);
1736
1737
1738 m_temp_temp_line = new wxPanel(box);
1739 m_temp_temp_line->SetMaxSize(wxSize(FromDIP(1), -1));
1740 m_temp_temp_line->SetMinSize(wxSize(FromDIP(1), -1));
1741 m_temp_temp_line->SetBackgroundColour(STATIC_BOX_LINE_COL);
1742
1743
1744 auto m_axis_sizer = create_axis_control(box);
1745 auto bedPanel = create_bed_control(box);
1746
1747 wxBoxSizer *extruder_sizer = create_extruder_control(box);
1748 wxBoxSizer* axis_and_bed_control_sizer = new wxBoxSizer(wxVERTICAL);
1749 axis_and_bed_control_sizer->Add(m_axis_sizer, 0, wxEXPAND | wxALL, 0);
1750 axis_and_bed_control_sizer->Add(bedPanel, 0, wxALIGN_CENTER, 0);
1751
1752 content_sizer->Add(m_temp_ctrl, 0, wxEXPAND | wxALL, FromDIP(5));
1753 content_sizer->Add(m_temp_temp_line, 0, wxEXPAND, 1);
1754 //content_sizer->Add(FromDIP(9), 0, 0, wxEXPAND, 1);
1755 /*content_sizer->Add(0, 0, 0, wxLEFT, FromDIP(18));
1756 content_sizer->Add(m_axis_sizer, 0, wxALIGN_CENTER_VERTICAL | wxALL, 0);
1757 content_sizer->Add(0, 0, 0, wxLEFT, FromDIP(18));
1758 content_sizer->Add(bed_sizer, 0, wxEXPAND | wxLEFT | wxTOP | wxBOTTOM, FromDIP(12));*/
1759 content_sizer->Add(axis_and_bed_control_sizer, 1, wxALIGN_CENTER, 0);
1760 //content_sizer->Add(0, 0, 0, wxLEFT, FromDIP(18));
1761
1762 m_temp_extruder_line = new wxPanel(box);
1763 m_temp_extruder_line->SetMaxSize(wxSize(FromDIP(1), -1));
1764 m_temp_extruder_line->SetMinSize(wxSize(FromDIP(1), -1));
1765 m_temp_extruder_line->SetBackgroundColour(STATIC_BOX_LINE_COL);
1766
1767 content_sizer->Add(m_temp_extruder_line, 0, wxEXPAND, 1);
1768 content_sizer->Add(extruder_sizer, 0, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(12));
1769 content_sizer->Add(0, 0, 0, wxRIGHT, FromDIP(3));
1770
1771 box->SetSizer(content_sizer);
1772 sizer->Add(box, 0, wxEXPAND | wxALL, FromDIP(9));
1773 return sizer;
1774}
wxPanel * m_temp_temp_line
Definition StatusPanel.hpp:544
wxBoxSizer * create_temp_control(wxWindow *parent)
Definition StatusPanel.cpp:1776
wxBoxSizer * create_axis_control(wxWindow *parent)
Definition StatusPanel.cpp:1965
wxBoxSizer * create_extruder_control(wxWindow *parent)
Definition StatusPanel.cpp:2047
wxPanel * m_temp_extruder_line
Definition StatusPanel.hpp:545
wxPanel * create_bed_control(wxWindow *parent)
Definition StatusPanel.cpp:1979

References create_axis_control(), create_bed_control(), create_extruder_control(), create_temp_control(), m_temp_extruder_line, m_temp_temp_line, StateColor::Normal, Slic3r::GUI::STATIC_BOX_LINE_COL, and Slic3r::GUI::STATUS_PANEL_BG.

Referenced by create_machine_control_page().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_temp_control()

wxBoxSizer * Slic3r::GUI::StatusBasePanel::create_temp_control ( wxWindow * parent)
inherited
1777{
1778 auto sizer = new wxBoxSizer(wxVERTICAL);
1779
1780 wxWindowID nozzle_id = wxWindow::NewControlId();
1781 m_tempCtrl_nozzle = new TempInput(parent, nozzle_id, TEMP_BLANK_STR, TempInputType::TEMP_OF_NORMAL_TYPE, TEMP_BLANK_STR, wxString("monitor_nozzle_temp"),
1782 wxString("monitor_nozzle_temp_active"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER);
1784 m_tempCtrl_nozzle->AddTemp(0); // zero is default temp
1785 m_tempCtrl_nozzle->SetMinTemp(20);
1786 m_tempCtrl_nozzle->SetMaxTemp(300);
1787 m_tempCtrl_nozzle->SetBorderWidth(FromDIP(2));
1788
1789 StateColor tempinput_text_colour(std::make_pair(DISCONNECT_TEXT_COL, (int) StateColor::Disabled), std::make_pair(NORMAL_TEXT_COL, (int) StateColor::Normal));
1790 StateColor tempinput_border_colour(std::make_pair(*wxWHITE, (int)StateColor::Disabled), std::make_pair(BUTTON_HOVER_COL, (int)StateColor::Focused),
1791 std::make_pair(BUTTON_HOVER_COL, (int)StateColor::Hovered), std::make_pair(*wxWHITE, (int)StateColor::Normal));
1792
1793 m_tempCtrl_nozzle->SetTextColor(tempinput_text_colour);
1794 m_tempCtrl_nozzle->SetBorderColor(tempinput_border_colour);
1795
1796 m_tempCtrl_nozzle_deputy = new TempInput(parent, nozzle_id, TEMP_BLANK_STR, TempInputType::TEMP_OF_NORMAL_TYPE, TEMP_BLANK_STR, wxString("monitor_nozzle_temp"), wxString("monitor_nozzle_temp_active"),
1797 wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER);
1799 m_tempCtrl_nozzle_deputy->AddTemp(0); // zero is default temp
1800 m_tempCtrl_nozzle_deputy->SetMinTemp(20);
1801 m_tempCtrl_nozzle_deputy->SetMaxTemp(300);
1802 m_tempCtrl_nozzle_deputy->SetBorderWidth(FromDIP(2));
1803
1804 m_tempCtrl_nozzle_deputy->SetTextColor(tempinput_text_colour);
1805 m_tempCtrl_nozzle_deputy->SetBorderColor(tempinput_border_colour);
1806
1807 sizer->Add(m_tempCtrl_nozzle_deputy, 0, wxEXPAND | wxALL, 1);
1808 sizer->Add(m_tempCtrl_nozzle, 0, wxEXPAND | wxALL, 1);
1810
1811 m_line_nozzle = new StaticLine(parent);
1812 m_line_nozzle->SetLineColour(STATIC_BOX_LINE_COL);
1813 m_line_nozzle->SetSize(wxSize(FromDIP(1), -1));
1814 sizer->Add(m_line_nozzle, 0, wxEXPAND | wxLEFT | wxRIGHT, 12);
1815
1816 wxWindowID bed_id = wxWindow::NewControlId();
1817 m_tempCtrl_bed = new TempInput(parent, bed_id, TEMP_BLANK_STR, TempInputType::TEMP_OF_NORMAL_TYPE, TEMP_BLANK_STR, wxString("monitor_bed_temp"),
1818 wxString("monitor_bed_temp_active"), wxDefaultPosition,wxDefaultSize, wxALIGN_CENTER);
1819 m_tempCtrl_bed->AddTemp(0); // zero is default temp
1820 m_tempCtrl_bed->SetMinTemp(bed_temp_range[0]);
1821 m_tempCtrl_bed->SetMaxTemp(bed_temp_range[1]);
1823 m_tempCtrl_bed->SetBorderWidth(FromDIP(2));
1824 m_tempCtrl_bed->SetTextColor(tempinput_text_colour);
1825 m_tempCtrl_bed->SetBorderColor(tempinput_border_colour);
1826 sizer->Add(m_tempCtrl_bed, 0, wxEXPAND | wxALL, 1);
1827
1828 auto line = new StaticLine(parent);
1829 line->SetLineColour(STATIC_BOX_LINE_COL);
1830 sizer->Add(line, 0, wxEXPAND | wxLEFT | wxRIGHT, 12);
1831
1832 wxWindowID frame_id = wxWindow::NewControlId();
1833 m_tempCtrl_chamber = new TempInput(parent, frame_id, TEMP_BLANK_STR, TempInputType::TEMP_OF_NORMAL_TYPE, TEMP_BLANK_STR, wxString("monitor_frame_temp"),
1834 wxString("monitor_frame_temp_active"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER);
1835 m_tempCtrl_chamber->AddTemp(0); // zero is default temp
1836 m_tempCtrl_chamber->SetReadOnly(true);
1840 m_tempCtrl_chamber->SetBorderWidth(FromDIP(2));
1841 m_tempCtrl_chamber->SetTextColor(tempinput_text_colour);
1842 m_tempCtrl_chamber->SetBorderColor(tempinput_border_colour);
1843 sizer->Add(m_tempCtrl_chamber, 0, wxEXPAND | wxALL, 1);
1844
1846 sizer->Add(m_misc_ctrl_sizer, 0, wxEXPAND, 0);
1847 return sizer;
1848}
#define TEMP_CTRL_MIN_SIZE_ALIGN_TWO_ICON
Definition StatusPanel.cpp:190
#define TEMP_CTRL_MIN_SIZE_ALIGN_ONE_ICON
Definition StatusPanel.cpp:189
@ TEMP_OF_NORMAL_TYPE
Definition TempInput.hpp:31
wxBoxSizer * create_misc_control(wxWindow *parent)
Definition StatusPanel.cpp:1850
TempInput * m_tempCtrl_chamber
Definition StatusPanel.hpp:516
wxBoxSizer * m_misc_ctrl_sizer
Definition StatusPanel.hpp:507
StaticLine * m_line_nozzle
Definition StatusPanel.hpp:509
@ Focused
Definition StateColor.hpp:19
static const int bed_temp_range[2]
Definition StatusPanel.cpp:134
static const int default_champer_temp_max
Definition StatusPanel.cpp:136
static const wxString TEMP_BLANK_STR
Definition StatusPanel.cpp:130
static const int default_champer_temp_min
Definition StatusPanel.cpp:135

References Slic3r::GUI::bed_temp_range, Slic3r::GUI::BUTTON_HOVER_COL, create_misc_control(), Slic3r::GUI::default_champer_temp_max, Slic3r::GUI::default_champer_temp_min, StateColor::Disabled, Slic3r::GUI::DISCONNECT_TEXT_COL, StateColor::Focused, StateColor::Hovered, m_line_nozzle, m_misc_ctrl_sizer, m_tempCtrl_bed, m_tempCtrl_chamber, m_tempCtrl_nozzle, m_tempCtrl_nozzle_deputy, StateColor::Normal, Slic3r::GUI::NORMAL_TEXT_COL, Slic3r::GUI::STATIC_BOX_LINE_COL, Slic3r::GUI::TEMP_BLANK_STR, TEMP_CTRL_MIN_SIZE_ALIGN_ONE_ICON, TEMP_CTRL_MIN_SIZE_ALIGN_TWO_ICON, and TEMP_OF_NORMAL_TYPE.

Referenced by create_temp_axis_group().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ error_info_reset()

void Slic3r::GUI::StatusPanel::error_info_reset ( )
protected
2834{
2835 m_project_task_panel->error_info_reset();
2836}

References Slic3r::GUI::StatusBasePanel::m_project_task_panel.

Referenced by on_print_error_clean(), set_default(), and update_error_message().

Here is the caller graph for this function:

◆ expand_filament_loading()

void Slic3r::GUI::StatusBasePanel::expand_filament_loading ( wxMouseEvent & e)
inherited

m_button_retry->Show(tag_show);

2239{
2240 auto tag_show = false;
2241 if (m_filament_load_box->IsShown()) {
2242 tag_show = false;
2243 m_img_filament_loading->SetBitmap(create_scaled_bitmap("filament_load_fold", this, 24));
2244 } else {
2245 tag_show = true;
2246 m_img_filament_loading->SetBitmap(create_scaled_bitmap("filament_load_expand", this, 24));
2247 }
2248
2249 if (obj)
2250 {
2251 static int load_img_size = 215;
2252 if (obj->is_series_n())
2253 {
2254 m_filament_load_img->SetBitmap(create_scaled_bitmap("filament_load_n_series", this, load_img_size));
2255 }
2256 else if (obj->is_series_x())
2257 {
2258 m_filament_load_img->SetBitmap(create_scaled_bitmap("filament_load_x_series", this, load_img_size));
2259 }
2260 else if (obj->is_series_p())
2261 {
2262 m_filament_load_img->SetBitmap(create_scaled_bitmap("filament_load_p_series", this, load_img_size));
2263 }
2264 else if (obj->is_series_o())
2265 {
2266 const auto& ext_system = obj->GetExtderSystem();
2267 // Prefer the config-driven filament-load image: H2C ships per-extruder bitmaps, and a printer
2268 // fitted with an induction hotend rack picks the rack-specific set (filament_load_image_nozzle_rack).
2269 // Printers whose profile carries no such key (e.g. H2D) get an empty name here and fall through to
2270 // the generic O-series bitmaps below, so their monitor page stays byte-identical. Rack-driven, so
2271 // there is no behavior change for any non-rack printer.
2272 int cur_ext_id = (ext_system && ext_system->GetTotalExtderCount() > 1) ? ext_system->GetCurrentExtderId() : 0;
2273 bool has_nozzle_rack = obj->GetNozzleSystem()->GetNozzleRack()->IsSupported();
2274 std::string img_name = DevPrinterConfigUtil::get_filament_load_img(obj->printer_type, cur_ext_id, has_nozzle_rack);
2275 if (!img_name.empty())
2276 {
2277 m_filament_load_img->SetBitmap(create_scaled_bitmap(img_name, this, load_img_size));
2278 }
2279 else if (ext_system->GetTotalExtderCount() == 2)
2280 {
2281 int cur_extder_id = ext_system->GetCurrentExtderId();
2282 if (cur_extder_id == MAIN_EXTRUDER_ID)
2283 {
2284 m_filament_load_img->SetBitmap(create_scaled_bitmap("filament_load_o_series_right", this, load_img_size));
2285 }
2286 else if (cur_extder_id == DEPUTY_EXTRUDER_ID)
2287 {
2288 m_filament_load_img->SetBitmap(create_scaled_bitmap("filament_load_o_series_left", this, load_img_size));
2289 }
2290 }
2291 else
2292 {
2293 m_filament_load_img->SetBitmap(create_scaled_bitmap("filament_load_o_series", this, load_img_size));
2294 }
2295 }
2296 }
2297
2298 m_filament_load_box->Show(tag_show);
2300 m_filament_step->Show(tag_show);
2301 Layout();
2302 Fit();
2303 if (MonitorPanel* monitor = MonitorPanel::if_built()) {
2304 monitor->get_status_panel()->Layout();
2305 monitor->Layout();
2306 }
2307}
#define DEPUTY_EXTRUDER_ID
Definition DevDefs.h:102
#define MAIN_EXTRUDER_ID
Definition DevDefs.h:101
static std::string get_filament_load_img(const std::string &type_str, int ext_id, bool has_nozzle_rack=false)
Definition DevConfigUtil.cpp:147
static MonitorPanel * if_built()
Definition Lazy.hpp:183

References create_scaled_bitmap(), DEPUTY_EXTRUDER_ID, Slic3r::DevPrinterConfigUtil::get_filament_load_img(), Slic3r::GUI::LazyInstance< MonitorPanel >::if_built(), m_filament_load_box, m_filament_load_img, m_filament_step, m_img_filament_loading, MAIN_EXTRUDER_ID, obj, and Slic3r::GUI::wxMouseEvent.

Referenced by create_filament_group().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_media_play_ctrl()

MediaPlayCtrl * Slic3r::GUI::StatusBasePanel::get_media_play_ctrl ( )
inlineinherited
642{return m_media_play_ctrl;};

References m_media_play_ctrl.

Referenced by Slic3r::GUI::MultiMachineItem::MultiMachineItem().

Here is the caller graph for this function:

◆ init_bitmaps()

void Slic3r::GUI::StatusBasePanel::init_bitmaps ( )
inherited
1477{
1478 static Slic3r::GUI::BitmapCache cache;
1479 m_bitmap_item_prediction = create_scaled_bitmap("monitor_item_prediction", nullptr, 16);
1480 m_bitmap_item_cost = create_scaled_bitmap("monitor_item_cost", nullptr, 16);
1481 m_bitmap_item_print = create_scaled_bitmap("monitor_item_print", nullptr, 18);
1482 m_bitmap_axis_home = ScalableBitmap(this, "monitor_axis_home", 32);
1483 m_bitmap_lamp_on = ScalableBitmap(this, "monitor_lamp_on", 24);
1484 m_bitmap_lamp_off = ScalableBitmap(this, "monitor_lamp_off", 24);
1485 m_bitmap_fan_on = ScalableBitmap(this, "monitor_fan_on", 22);
1486 m_bitmap_fan_off = ScalableBitmap(this, "monitor_fan_off", 22);
1487 m_bitmap_speed = ScalableBitmap(this, "monitor_speed", 24);
1488 m_bitmap_speed_active = ScalableBitmap(this, "monitor_speed_active", 24);
1489
1490 m_thumbnail_brokenimg = ScalableBitmap(this, "monitor_brokenimg", 120);
1491 m_thumbnail_sdcard = ScalableBitmap(this, "monitor_sdcard_thumbnail", 120);
1492 //m_bitmap_camera = create_scaled_bitmap("monitor_camera", nullptr, 18);
1493 m_bitmap_extruder_empty_load = *cache.load_png("monitor_extruder_empty_load", FromDIP(28), FromDIP(70), false, false);
1494 m_bitmap_extruder_filled_load = *cache.load_png("monitor_extruder_filled_load", FromDIP(28), FromDIP(70), false, false);
1495 m_bitmap_extruder_empty_unload = *cache.load_png("monitor_extruder_empty_unload", FromDIP(28), FromDIP(70), false, false);
1496 m_bitmap_extruder_filled_unload = *cache.load_png("monitor_extruder_filled_unload", FromDIP(28), FromDIP(70), false, false);
1497
1498 m_bitmap_sdcard_state_abnormal = ScalableBitmap(this, wxGetApp().dark_mode() ? "sdcard_state_abnormal_dark" : "sdcard_state_abnormal", 20);
1499 m_bitmap_sdcard_state_normal = ScalableBitmap(this, wxGetApp().dark_mode() ? "sdcard_state_normal_dark" : "sdcard_state_normal", 20);
1500 m_bitmap_sdcard_state_no = ScalableBitmap(this, wxGetApp().dark_mode() ? "sdcard_state_no_dark" : "sdcard_state_no", 20);
1501 m_bitmap_recording_on = ScalableBitmap(this, wxGetApp().dark_mode() ? "monitor_recording_on_dark" : "monitor_recording_on", 20);
1502 m_bitmap_recording_off = ScalableBitmap(this, wxGetApp().dark_mode() ? "monitor_recording_off_dark" : "monitor_recording_off", 20);
1503 m_bitmap_timelapse_on = ScalableBitmap(this, wxGetApp().dark_mode() ? "monitor_timelapse_on_dark" : "monitor_timelapse_on", 20);
1504 m_bitmap_timelapse_off = ScalableBitmap(this, wxGetApp().dark_mode() ? "monitor_timelapse_off_dark" : "monitor_timelapse_off", 20);
1505 m_bitmap_vcamera_on = ScalableBitmap(this, wxGetApp().dark_mode() ? "monitor_vcamera_on_dark" : "monitor_vcamera_on", 20);
1506 m_bitmap_vcamera_off = ScalableBitmap(this, wxGetApp().dark_mode() ? "monitor_vcamera_off_dark" : "monitor_vcamera_off", 20);
1507 m_bitmap_switch_camera = ScalableBitmap(this, wxGetApp().dark_mode() ? "camera_switch_dark" : "camera_switch", 20);
1508
1509}
wxBitmap * load_png(const std::string &bitmap_key, unsigned width=0, unsigned height=0, const bool grayscale=false, const float scale_in_center=0.f)
Definition BitmapCache.cpp:250
ScalableBitmap m_thumbnail_brokenimg
Definition StatusPanel.hpp:411
wxBitmap m_bitmap_item_cost
Definition StatusPanel.hpp:414
ScalableBitmap m_bitmap_recording_off
Definition StatusPanel.hpp:442
wxBitmap m_bitmap_extruder_filled_load
Definition StatusPanel.hpp:426
ScalableBitmap m_bitmap_switch_camera
Definition StatusPanel.hpp:447
ScalableBitmap m_bitmap_sdcard_state_no
Definition StatusPanel.hpp:440
wxBitmap m_bitmap_item_prediction
Definition StatusPanel.hpp:413
ScalableBitmap m_bitmap_sdcard_state_abnormal
Definition StatusPanel.hpp:439
ScalableBitmap m_bitmap_vcamera_off
Definition StatusPanel.hpp:446
wxBitmap m_bitmap_extruder_empty_unload
Definition StatusPanel.hpp:427
ScalableBitmap m_thumbnail_sdcard
Definition StatusPanel.hpp:412
wxBitmap m_bitmap_extruder_empty_load
Definition StatusPanel.hpp:425
ScalableBitmap m_bitmap_timelapse_off
Definition StatusPanel.hpp:444
ScalableBitmap m_bitmap_sdcard_state_normal
Definition StatusPanel.hpp:438
ScalableBitmap m_bitmap_timelapse_on
Definition StatusPanel.hpp:443
wxBitmap m_bitmap_item_print
Definition StatusPanel.hpp:415
ScalableBitmap m_bitmap_recording_on
Definition StatusPanel.hpp:441
wxBitmap m_bitmap_extruder_filled_unload
Definition StatusPanel.hpp:428
ScalableBitmap m_bitmap_vcamera_on
Definition StatusPanel.hpp:445

References create_scaled_bitmap(), Slic3r::GUI::BitmapCache::load_png(), m_bitmap_axis_home, m_bitmap_extruder_empty_load, m_bitmap_extruder_empty_unload, m_bitmap_extruder_filled_load, m_bitmap_extruder_filled_unload, m_bitmap_fan_off, m_bitmap_fan_on, m_bitmap_item_cost, m_bitmap_item_prediction, m_bitmap_item_print, m_bitmap_lamp_off, m_bitmap_lamp_on, m_bitmap_recording_off, m_bitmap_recording_on, m_bitmap_sdcard_state_abnormal, m_bitmap_sdcard_state_no, m_bitmap_sdcard_state_normal, m_bitmap_speed, m_bitmap_speed_active, m_bitmap_switch_camera, m_bitmap_timelapse_off, m_bitmap_timelapse_on, m_bitmap_vcamera_off, m_bitmap_vcamera_on, m_thumbnail_brokenimg, and m_thumbnail_sdcard.

Referenced by StatusBasePanel(), and Slic3r::GUI::StatusPanel::msw_rescale().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_scaled_buttons()

void Slic3r::GUI::StatusPanel::init_scaled_buttons ( )
protected
2690{
2691 if (!m_project_task_panel) return;
2692
2693 m_project_task_panel->init_scaled_buttons();
2694 m_bpButton_z_10->SetMinSize(Z_BUTTON_SIZE);
2695 m_bpButton_z_10->SetCornerRadius(0);
2696 m_bpButton_z_1->SetMinSize(Z_BUTTON_SIZE);
2697 m_bpButton_z_1->SetCornerRadius(0);
2699 m_bpButton_z_down_1->SetCornerRadius(0);
2701 m_bpButton_z_down_10->SetCornerRadius(0);
2702 m_bpButton_e_10->SetMinSize(wxSize(FromDIP(40), FromDIP(40)));
2703 m_bpButton_e_10->SetCornerRadius(FromDIP(12));
2704 m_bpButton_e_down_10->SetMinSize(wxSize(FromDIP(40), FromDIP(40)));
2705 m_bpButton_e_down_10->SetCornerRadius(FromDIP(12));
2706}

References Slic3r::GUI::StatusBasePanel::m_bpButton_e_10, Slic3r::GUI::StatusBasePanel::m_bpButton_e_down_10, Slic3r::GUI::StatusBasePanel::m_bpButton_z_1, Slic3r::GUI::StatusBasePanel::m_bpButton_z_10, Slic3r::GUI::StatusBasePanel::m_bpButton_z_down_1, Slic3r::GUI::StatusBasePanel::m_bpButton_z_down_10, Slic3r::GUI::StatusBasePanel::m_project_task_panel, and Z_BUTTON_SIZE.

Referenced by msw_rescale(), and wire_controls().

Here is the caller graph for this function:

◆ is_stage_list_info_changed()

bool Slic3r::GUI::StatusPanel::is_stage_list_info_changed ( MachineObject * obj)
5232{
5233 if (!obj) return true;
5234
5235 if (last_stage_list_info.size() != obj->stage_list_info.size()) return true;
5236
5237 for (int i = 0; i < last_stage_list_info.size(); i++) {
5238 if (last_stage_list_info[i] != obj->stage_list_info[i]) return true;
5239 }
5240 last_stage_list_info = obj->stage_list_info;
5241 return false;
5242}
std::vector< int > last_stage_list_info
Definition StatusPanel.hpp:860

References last_stage_list_info, and Slic3r::GUI::StatusBasePanel::obj.

◆ is_task_changed()

bool Slic3r::GUI::StatusPanel::is_task_changed ( MachineObject * obj)
protected
2901{
2902 if (!obj)
2903 return false;
2904
2905 if (last_subtask != obj->subtask_
2906 || last_profile_id != obj->profile_id_
2907 || last_task_id != obj->task_id_
2908 ) {
2909 last_subtask = obj->subtask_;
2910 last_profile_id = obj->profile_id_;
2911 last_task_id = obj->task_id_;
2913 m_project_task_panel->set_star_count_dirty(false);
2914 return true;
2915 }
2916 return false;
2917}
bool request_model_info_flag
Definition StatusPanel.hpp:698
std::string last_task_id
Definition StatusPanel.hpp:850
BBLSubTask * last_subtask
Definition StatusPanel.hpp:848
std::string last_profile_id
Definition StatusPanel.hpp:849

References last_profile_id, last_subtask, last_task_id, Slic3r::GUI::StatusBasePanel::m_project_task_panel, Slic3r::GUI::StatusBasePanel::obj, and request_model_info_flag.

Referenced by update_cloud_subtask().

Here is the caller graph for this function:

◆ jump_to_Rack()

void Slic3r::GUI::StatusBasePanel::jump_to_Rack ( )
inherited
2364{
2365 if (obj && obj->GetNozzleSystem()->GetNozzleRack()->IsSupported()) {
2366 m_ams_rack_switch->updateState("right");
2367 m_ams_control_box->Show(false);
2368 m_panel_nozzle_rack->Show(true);
2369 Layout();
2370 }
2371}

References m_ams_control_box, m_ams_rack_switch, m_panel_nozzle_rack, and obj.

◆ load_thumbnail_from_url()

bool Slic3r::GUI::StatusPanel::load_thumbnail_from_url ( const wxString & url,
MachineObject * obj )
private
4046{
4047 if (url.IsEmpty())
4048 return false;
4049
4050 wxImage img;
4051 std::map<wxString, wxImage>::iterator it = img_list.find(url);
4052 if (it != img_list.end()) {
4054 img = it->second;
4055 wxImage resize_img = img.Scale(m_project_task_panel->get_bitmap_thumbnail()->GetSize().x, m_project_task_panel->get_bitmap_thumbnail()->GetSize().y);
4056 m_project_task_panel->set_thumbnail_img(resize_img, "");
4057 m_project_task_panel->set_brightness_value(get_brightness_value(resize_img));
4058 }
4059 if (this->obj) {
4060 m_project_task_panel->set_plate_index(obj->m_plate_index);
4061 } else {
4062 m_project_task_panel->set_plate_index(-1);
4063 }
4064 task_thumbnail_state = ThumbnailState::TASK_THUMBNAIL;
4065 BOOST_LOG_TRIVIAL(trace) << "web_request: use cache image";
4066 } else {
4067 m_request_url = url;
4068 web_request = wxWebSession::GetDefault().CreateRequest(this, m_request_url);
4069 BOOST_LOG_TRIVIAL(trace) << "monitor: start request thumbnail, url = " << m_request_url;
4070 web_request.Start();
4072 }
4073 return true;
4074}
CalibrationMethod m_calib_method
Definition StatusPanel.hpp:710
CalibMode m_calib_mode
Definition StatusPanel.hpp:709
PrintingTaskType m_current_print_mode
Definition StatusPanel.hpp:712
std::map< wxString, wxImage > img_list
Definition StatusPanel.hpp:703
bool m_start_loading_thumbnail
Definition StatusPanel.hpp:683
wxString m_request_url
Definition StatusPanel.hpp:682
wxWebRequest web_request
Definition StatusPanel.hpp:694
static int get_brightness_value(wxImage image)
Definition SelectMachine.hpp:133
@ CALI_METHOD_MANUAL
Definition CalibrationWizardPage.hpp:64
@ CALIBRATION
Definition StatusPanel.hpp:100
void trace(unsigned int level, const char *message)
Definition utils.cpp:247
@ Calib_Flow_Rate
Definition calib.hpp:29

References Slic3r::GUI::CALI_METHOD_MANUAL, Slic3r::Calib_Flow_Rate, Slic3r::GUI::CALIBRATION, Slic3r::GUI::get_brightness_value(), img_list, m_calib_method, m_calib_mode, m_current_print_mode, Slic3r::GUI::StatusBasePanel::m_project_task_panel, m_request_url, m_start_loading_thumbnail, Slic3r::GUI::StatusBasePanel::obj, TASK_THUMBNAIL, Slic3r::trace(), and web_request.

Referenced by update_cloud_subtask(), and update_sdcard_subtask().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ msw_rescale()

void Slic3r::GUI::StatusPanel::msw_rescale ( )
5395{
5396 init_bitmaps();
5397 m_project_task_panel->init_bitmaps();
5398 m_project_task_panel->msw_rescale();
5399 m_panel_monitoring_title->SetSize(wxSize(-1, FromDIP(PAGE_TITLE_HEIGHT)));
5400 //m_staticText_monitoring->SetMinSize(wxSize(PAGE_TITLE_TEXT_WIDTH, PAGE_TITLE_HEIGHT));
5401 m_bmToggleBtn_timelapse->Rescale();
5402 m_panel_control_title->SetSize(wxSize(-1, FromDIP(PAGE_TITLE_HEIGHT)));
5403 //m_staticText_control->SetMinSize(wxSize(-1, PAGE_TITLE_HEIGHT));
5404 m_media_play_ctrl->msw_rescale();
5406 m_bpButton_xy->SetMinSize(AXIS_MIN_SIZE);
5407 m_bpButton_xy->SetSize(AXIS_MIN_SIZE);
5408 m_temp_extruder_line->SetSize(wxSize(FromDIP(1), -1));
5410 //m_bitmap_extruder_img->SetMinSize(EXTRUDER_IMAGE_SIZE);
5411
5412 for (Button *btn : m_buttons) { btn->Rescale(); }
5414
5415
5416 m_bpButton_xy->Rescale();
5418 if (obj && obj->GetExtderSystem()->GetTotalExtderCount() >= 2) size = TEMP_CTRL_MIN_SIZE_ALIGN_TWO_ICON;
5419 m_tempCtrl_nozzle->SetMinSize(size);
5420 m_tempCtrl_nozzle->Rescale();
5421 m_tempCtrl_nozzle_deputy->SetMinSize(size);
5422 m_tempCtrl_nozzle_deputy->Rescale();
5423 m_line_nozzle->SetSize(wxSize(-1, FromDIP(1)));
5424 m_tempCtrl_bed->SetMinSize(size);
5425 m_tempCtrl_bed->Rescale();
5426 m_tempCtrl_chamber->SetMinSize(size);
5427 m_tempCtrl_chamber->Rescale();
5428
5429 for(int i = 0; i < m_extruder_book->GetPageCount(); i++)
5430 {
5431 ExtruderImage* ext_img = dynamic_cast<ExtruderImage*> (m_extruder_book->GetPage(i));
5432 if (ext_img)
5433 {
5434 ext_img->msw_rescale();
5435 }
5436 }
5437
5438 m_bitmap_speed.msw_rescale();
5439 m_bitmap_speed_active.msw_rescale();
5440
5443 m_switch_speed->Rescale();
5446 m_switch_lamp->Rescale();
5447 /*m_switch_nozzle_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off);
5448 m_switch_nozzle_fan->Rescale();
5449 m_switch_printing_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off);
5450 m_switch_printing_fan->Rescale();
5451 m_switch_cham_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off);
5452 m_switch_cham_fan->Rescale();*/
5453
5455 m_switch_fan->Rescale();
5457 {
5458 m_fan_control_popup->msw_rescale();
5459 }
5460
5461 //m_switch_fan->SetImages(m_bitmap_fan_on, m_bitmap_fan_off);
5462 //m_switch_fan->Rescale();
5463
5464 m_bpButton_z_10->Rescale();
5465 m_bpButton_z_1->Rescale();
5466 m_bpButton_z_down_1->Rescale();
5467 m_bpButton_z_down_10->Rescale();
5468 m_extruder_switching_status->msw_rescale();
5469
5470 m_ams_control->msw_rescale();
5471 m_panel_nozzle_rack->Rescale();
5472 // m_filament_step->Rescale();
5473
5474
5475 m_calibration_btn->SetMinSize(wxSize(-1, FromDIP(26)));
5476 m_calibration_btn->Rescale();
5477
5478 m_options_btn->SetMinSize(wxSize(-1, FromDIP(26)));
5479 m_options_btn->Rescale();
5480
5481 m_safety_btn->SetMinSize(wxSize(-1, FromDIP(26)));
5482 m_safety_btn->Rescale();
5483
5484 m_parts_btn->SetMinSize(wxSize(-1, FromDIP(26)));
5485 m_parts_btn->Rescale();
5486
5488
5489 Layout();
5490 Refresh();
5491}
void init_bitmaps()
Definition StatusPanel.cpp:1476
void rescale_camera_icons()
Definition StatusPanel.cpp:5334
void update_extruder_status(MachineObject *obj)
Definition StatusPanel.cpp:3437
std::vector< Button * > m_buttons
Definition StatusPanel.hpp:705
FanControlPopupNew * m_fan_control_popup
Definition StatusPanel.hpp:677
void init_scaled_buttons()
Definition StatusPanel.cpp:2689

References AXIS_MIN_SIZE, Slic3r::GUI::StatusBasePanel::init_bitmaps(), init_scaled_buttons(), Slic3r::GUI::StatusBasePanel::m_ams_control, Slic3r::GUI::StatusBasePanel::m_bitmap_axis_home, Slic3r::GUI::StatusBasePanel::m_bitmap_fan_off, Slic3r::GUI::StatusBasePanel::m_bitmap_fan_on, Slic3r::GUI::StatusBasePanel::m_bitmap_lamp_off, Slic3r::GUI::StatusBasePanel::m_bitmap_lamp_on, Slic3r::GUI::StatusBasePanel::m_bitmap_speed, Slic3r::GUI::StatusBasePanel::m_bitmap_speed_active, Slic3r::GUI::StatusBasePanel::m_bmToggleBtn_timelapse, Slic3r::GUI::StatusBasePanel::m_bpButton_xy, Slic3r::GUI::StatusBasePanel::m_bpButton_z_1, Slic3r::GUI::StatusBasePanel::m_bpButton_z_10, Slic3r::GUI::StatusBasePanel::m_bpButton_z_down_1, Slic3r::GUI::StatusBasePanel::m_bpButton_z_down_10, m_buttons, Slic3r::GUI::StatusBasePanel::m_calibration_btn, Slic3r::GUI::StatusBasePanel::m_extruder_book, Slic3r::GUI::StatusBasePanel::m_extruder_switching_status, m_fan_control_popup, Slic3r::GUI::StatusBasePanel::m_line_nozzle, Slic3r::GUI::StatusBasePanel::m_media_play_ctrl, Slic3r::GUI::StatusBasePanel::m_options_btn, Slic3r::GUI::StatusBasePanel::m_panel_control_title, Slic3r::GUI::StatusBasePanel::m_panel_monitoring_title, Slic3r::GUI::StatusBasePanel::m_panel_nozzle_rack, Slic3r::GUI::StatusBasePanel::m_parts_btn, Slic3r::GUI::StatusBasePanel::m_project_task_panel, Slic3r::GUI::StatusBasePanel::m_safety_btn, Slic3r::GUI::StatusBasePanel::m_switch_fan, Slic3r::GUI::StatusBasePanel::m_switch_lamp, Slic3r::GUI::StatusBasePanel::m_switch_speed, Slic3r::GUI::StatusBasePanel::m_temp_extruder_line, Slic3r::GUI::StatusBasePanel::m_tempCtrl_bed, Slic3r::GUI::StatusBasePanel::m_tempCtrl_chamber, Slic3r::GUI::StatusBasePanel::m_tempCtrl_nozzle, Slic3r::GUI::StatusBasePanel::m_tempCtrl_nozzle_deputy, MISC_BUTTON_2FAN_SIZE, Slic3r::GUI::ExtruderImage::msw_rescale(), Slic3r::GUI::StatusBasePanel::obj, PAGE_TITLE_HEIGHT, rescale_camera_icons(), TEMP_CTRL_MIN_SIZE_ALIGN_ONE_ICON, TEMP_CTRL_MIN_SIZE_ALIGN_TWO_ICON, and update_extruder_status().

Here is the call graph for this function:

◆ on_ams_filament_backup()

void Slic3r::GUI::StatusPanel::on_ams_filament_backup ( SimpleEvent & event)
protected
4578{
4579 if (obj) {
4580 AmsReplaceMaterialDialog* m_replace_material_popup = new AmsReplaceMaterialDialog(this);
4581 m_replace_material_popup->update_machine_obj(obj);
4582 m_replace_material_popup->ShowModal();
4583 }
4584}

References Slic3r::GUI::StatusBasePanel::obj, Slic3r::GUI::DPIAware< P >::ShowModal(), and Slic3r::GUI::AmsReplaceMaterialDialog::update_machine_obj().

Referenced by wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_ams_guide()

void Slic3r::GUI::StatusPanel::on_ams_guide ( wxCommandEvent & event)
protected
4875{
4876 // Orca: neutral wiki link (vendor URLs removed)
4877 wxString ams_wiki_url = "https://www.orcaslicer.com/wiki/";
4878
4879 wxLaunchDefaultBrowser(ams_wiki_url);
4880}

Referenced by wire_controls().

Here is the caller graph for this function:

◆ on_ams_load()

void Slic3r::GUI::StatusPanel::on_ams_load ( SimpleEvent & event)
protected
4377{
4378 BOOST_LOG_TRIVIAL(info) << "on_ams_load";
4380}
void on_ams_load_curr()
Definition StatusPanel.cpp:4392

References on_ams_load_curr().

Referenced by wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_ams_load_curr()

void Slic3r::GUI::StatusPanel::on_ams_load_curr ( )
protected
4393{
4394 if (obj) {
4395 std::string curr_ams_id = m_ams_control->GetCurentAms();
4396 std::string curr_can_id = m_ams_control->GetCurrentCan(curr_ams_id);
4397
4398 std::optional<int> extruder_id = std::nullopt;
4399 if (obj->GetFilaSwitch() && obj->GetFilaSwitch()->IsInstalled()) {
4400 if (!obj->GetFilaSwitch()->IsReady()) {
4401 MessageDialog msg_dlg(nullptr, _L("The Filament Track Switch has not been setup. Please setup on printer."), wxEmptyString, wxICON_WARNING | wxOK);
4402 msg_dlg.ShowModal();
4403 return;
4404 }
4405
4406 // Filament Track Switch is calibrated: the load can go to either extruder, so ask the
4407 // user which. Record each extruder's currently-loaded slot so the dialog can grey out a
4408 // side that already holds this filament.
4409 std::vector<std::pair<std::string, std::string>> extruderSlots(2, {"", ""});
4410 if (auto ext = obj->GetExtderSystem()->GetExtderById(MAIN_EXTRUDER_ID); ext.has_value())
4411 {
4412 if (ext->HasFilamentInExt())
4413 {
4414 extruderSlots[MAIN_EXTRUDER_ID] = {ext->GetSlotNow().ams_id, ext->GetSlotNow().slot_id};
4415 }
4416 }
4417 if (auto ext = obj->GetExtderSystem()->GetExtderById(DEPUTY_EXTRUDER_ID); ext.has_value())
4418 {
4419 if (ext->HasFilamentInExt())
4420 {
4421 extruderSlots[DEPUTY_EXTRUDER_ID] = {ext->GetSlotNow().ams_id, ext->GetSlotNow().slot_id};
4422 }
4423 }
4424
4425 FeedDirectionDialog dialog(nullptr, 2, obj->printer_type);
4426 dialog.SetExtruderMapping(obj, curr_ams_id, curr_can_id, extruderSlots);
4427 auto rtn = dialog.ShowModal();
4428
4429 if (rtn != wxID_OK)
4430 {
4431 return;
4432 }
4433 extruder_id = dialog.GetExtruderID();
4434 }
4435
4437 //virtual tray
4438 if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) == 0 ||
4439 curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) == 0)
4440 {
4441 int vt_slot_idx = 0;
4442 if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) == 0)
4443 {
4444 vt_slot_idx = 1;
4445 }
4446
4447 int old_temp = -1;
4448 int new_temp = -1;
4449 DevAmsTray* curr_tray = &obj->vt_slot[vt_slot_idx];
4450
4451 if (!curr_tray) return;
4452
4453 try {
4454 if (!curr_tray->nozzle_temp_max.empty() && !curr_tray->nozzle_temp_min.empty())
4455 old_temp = (atoi(curr_tray->nozzle_temp_min.c_str()) + atoi(curr_tray->nozzle_temp_max.c_str())) / 2;
4456 if (!curr_tray->nozzle_temp_max.empty() && !curr_tray->nozzle_temp_min.empty())
4457 new_temp = (atoi(curr_tray->nozzle_temp_min.c_str()) + atoi(curr_tray->nozzle_temp_max.c_str())) / 2;
4458 }
4459 catch (...) {
4460 ;
4461 }
4462
4463 if (obj->is_enable_np || obj->is_enable_ams_np) {
4464 try {
4465 if (!curr_ams_id.empty() && !curr_can_id.empty()) {
4466 obj->command_ams_change_filament(true, curr_ams_id, "0", old_temp, new_temp, extruder_id);
4467 }
4468 } catch (...) {}
4469 } else {
4470 obj->command_ams_change_filament(true, "254", "0", old_temp, new_temp, extruder_id);
4471 }
4472 }
4473
4474 std::map<std::string, DevAms*>::iterator it = obj->GetFilaSystem()->GetAmsList().find(curr_ams_id);
4475 if (it == obj->GetFilaSystem()->GetAmsList().end()) {
4476 BOOST_LOG_TRIVIAL(trace) << "ams: find " << curr_ams_id << " failed";
4477 return;
4478 }
4479 auto tray_it = it->second->GetTrays().find(curr_can_id);
4480 if (tray_it == it->second->GetTrays().end()) {
4481 BOOST_LOG_TRIVIAL(trace) << "ams: find " << curr_can_id << " failed";
4482 return;
4483 }
4484 DevAmsTray* curr_tray = obj->get_curr_tray();
4485 DevAmsTray* targ_tray = obj->get_ams_tray(curr_ams_id, curr_can_id);
4486
4487 int old_temp = -1;
4488 int new_temp = -1;
4489
4490 if (curr_tray && targ_tray) {
4491 try {
4492 if (!curr_tray->nozzle_temp_max.empty() && !curr_tray->nozzle_temp_min.empty())
4493 old_temp = (atoi(curr_tray->nozzle_temp_min.c_str()) + atoi(curr_tray->nozzle_temp_max.c_str())) / 2;
4494 if (!targ_tray->nozzle_temp_max.empty() && !targ_tray->nozzle_temp_min.empty())
4495 new_temp = (atoi(targ_tray->nozzle_temp_min.c_str()) + atoi(targ_tray->nozzle_temp_max.c_str())) / 2;
4496 } catch (...) {
4497 ;
4498 }
4499 }
4500
4501 int tray_index = atoi(curr_ams_id.c_str()) * 4 + atoi(tray_it->second->id.c_str());
4502
4503 if (obj->is_enable_np) {
4504 try {
4505 if (!curr_ams_id.empty() && !curr_can_id.empty()) {
4506 obj->command_ams_change_filament(true, curr_ams_id, curr_can_id, old_temp, new_temp, extruder_id);
4507 }
4508 }
4509 catch (...){}
4510 } else {
4511 obj->command_ams_change_filament(true, curr_ams_id, curr_can_id, old_temp, new_temp, extruder_id);
4512 }
4513 }
4514}
#define VIRTUAL_TRAY_DEPUTY_ID
Definition DevDefs.h:90
#define VIRTUAL_TRAY_MAIN_ID
Definition DevDefs.h:89
void update_load_with_temp()
Definition StatusPanel.cpp:4382

References _L, DEPUTY_EXTRUDER_ID, Slic3r::GUI::FeedDirectionDialog::GetExtruderID(), Slic3r::GUI::StatusBasePanel::m_ams_control, MAIN_EXTRUDER_ID, Slic3r::DevAmsTray::nozzle_temp_max, Slic3r::DevAmsTray::nozzle_temp_min, Slic3r::GUI::StatusBasePanel::obj, Slic3r::GUI::FeedDirectionDialog::SetExtruderMapping(), Slic3r::GUI::DPIAware< P >::ShowModal(), Slic3r::trace(), update_load_with_temp(), VIRTUAL_TRAY_DEPUTY_ID, and VIRTUAL_TRAY_MAIN_ID.

Referenced by on_ams_load(), and on_ams_load_vams().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_ams_load_vams()

void Slic3r::GUI::StatusPanel::on_ams_load_vams ( wxCommandEvent & event)
protected
4516 {
4517 BOOST_LOG_TRIVIAL(info) << "on_ams_load_vams_tray";
4518
4519 m_ams_control->SwitchAms(std::to_string(VIRTUAL_TRAY_MAIN_ID));
4521}

References Slic3r::GUI::StatusBasePanel::m_ams_control, on_ams_load_curr(), and VIRTUAL_TRAY_MAIN_ID.

Here is the call graph for this function:

◆ on_ams_rack_switch()

void Slic3r::GUI::StatusBasePanel::on_ams_rack_switch ( wxCommandEvent & event)
privateinherited
2374{
2375 if (!m_ams_control_box->IsShown() && e.GetInt() == 1) {
2376 m_ams_control_box->Show(e.GetInt() == 1);
2377 m_panel_nozzle_rack->Show(e.GetInt() == 0);
2378 Layout();
2379 } else if (!m_panel_nozzle_rack->IsShown() && e.GetInt() == 0) {
2380 m_ams_control_box->Show(e.GetInt() == 1);
2381 m_panel_nozzle_rack->Show(e.GetInt() == 0);
2382 Layout();
2383 }
2384
2385 e.Skip();
2386}

References m_ams_control_box, and m_panel_nozzle_rack.

Referenced by create_machine_control_page().

Here is the caller graph for this function:

◆ on_ams_refresh_rfid()

void Slic3r::GUI::StatusPanel::on_ams_refresh_rfid ( wxCommandEvent & event)
protected
4783{
4784 if (obj) {
4785
4786 //std::string curr_ams_id = m_ams_control->GetCurentAms();
4787 if (event.GetInt() < 0 || event.GetInt() > VIRTUAL_TRAY_MAIN_ID){
4788 return;
4789 }
4790 std::string curr_ams_id = std::to_string(event.GetInt());
4791 // do not support refresh rfid for VIRTUAL_TRAY_MAIN_ID
4792 if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) == 0) {
4793 return;
4794 }
4795 std::string curr_can_id = event.GetString().ToStdString();
4796
4797 std::map<std::string, DevAms *>::iterator it = obj->GetFilaSystem()->GetAmsList().find(curr_ams_id);
4798 if (it == obj->GetFilaSystem()->GetAmsList().end()) {
4799 BOOST_LOG_TRIVIAL(trace) << "ams: find " << curr_ams_id << " failed";
4800 return;
4801 }
4802 auto slot_it = it->second->GetTrays().find(curr_can_id);
4803 if (slot_it == it->second->GetTrays().end()) {
4804 BOOST_LOG_TRIVIAL(trace) << "ams: find " << curr_can_id << " failed";
4805 return;
4806 }
4807
4808 auto has_filament_at_extruder = false;
4809 auto use_new_command = false;
4810
4811 if (obj->is_enable_np || obj->is_enable_ams_np) {
4812 use_new_command = true;
4813 if (it->second->GetExtruderId() < obj->GetExtderSystem()->GetTotalExtderSize()) {
4814 has_filament_at_extruder = obj->GetExtderSystem()->HasFilamentInExt(it->second->GetExtruderId());
4815 }
4816 } else {
4817 has_filament_at_extruder = obj->is_filament_at_extruder();
4818 }
4819
4820 if (has_filament_at_extruder) {
4821 MessageDialog msg_dlg(nullptr, _L("Cannot read filament info: the filament is loaded to the tool head. Please unload the filament and try again."), wxEmptyString,
4822 wxICON_WARNING | wxOK);
4823 msg_dlg.ShowModal();
4824 return;
4825 }
4826
4827
4828 try {
4829 if (!use_new_command) {
4830 int tray_index = atoi(curr_ams_id.c_str()) * 4 + atoi(slot_it->second->id.c_str());
4831 obj->command_ams_refresh_rfid(-1, tray_index);
4832 }
4833
4834 if (use_new_command) {
4835 obj->command_ams_refresh_rfid(stoi(curr_ams_id), stoi(curr_can_id));
4836 }
4837
4838 } catch (...) {
4839 ;
4840 }
4841 }
4842}

References _L, Slic3r::GUI::StatusBasePanel::obj, Slic3r::GUI::DPIAware< P >::ShowModal(), Slic3r::trace(), and VIRTUAL_TRAY_MAIN_ID.

Referenced by wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_ams_retry()

void Slic3r::GUI::StatusPanel::on_ams_retry ( wxCommandEvent & event)
protected
4883{
4884 BOOST_LOG_TRIVIAL(info) << "on_ams_retry";
4885 if (obj) {
4886 obj->command_ams_control("resume");
4887 }
4888}

References Slic3r::GUI::StatusBasePanel::obj.

Referenced by wire_controls().

Here is the caller graph for this function:

◆ on_ams_selected()

void Slic3r::GUI::StatusPanel::on_ams_selected ( wxCommandEvent & event)
protected
4845{
4846 if (obj) {
4847 std::string curr_ams_id = m_ams_control->GetCurentAms();
4848 std::string curr_selected_ams_id = std::to_string(event.GetInt());
4849
4850 if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) == 0) {
4851 return;
4852 } else {
4853 std::string curr_can_id = event.GetString().ToStdString();
4854 std::map<std::string, DevAms *>::iterator it = obj->GetFilaSystem()->GetAmsList().find(curr_ams_id);
4855 if (it == obj->GetFilaSystem()->GetAmsList().end()) {
4856 BOOST_LOG_TRIVIAL(trace) << "ams: find " << curr_ams_id << " failed";
4857 return;
4858 }
4859 auto tray_it = it->second->GetTrays().find(curr_can_id);
4860 if (tray_it == it->second->GetTrays().end()) {
4861 BOOST_LOG_TRIVIAL(trace) << "ams: find " << curr_can_id << " failed";
4862 return;
4863 }
4864 try {
4865 int tray_index = atoi(curr_ams_id.c_str()) * 4 + atoi(tray_it->second->id.c_str());
4866 obj->command_ams_select_tray(std::to_string(tray_index));
4867 } catch (...) {
4868 ;
4869 }
4870 }
4871 }
4872}

References Slic3r::GUI::StatusBasePanel::m_ams_control, Slic3r::GUI::StatusBasePanel::obj, Slic3r::trace(), and VIRTUAL_TRAY_MAIN_ID.

Referenced by wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_ams_setting_click()

void Slic3r::GUI::StatusPanel::on_ams_setting_click ( SimpleEvent & event)
protected
4587{
4588 if (obj) {
4589 if (!m_ams_setting_dlg) {
4590 m_ams_setting_dlg = new AMSSetting((wxWindow*)this, wxID_ANY);
4591 }
4592
4593 m_ams_setting_dlg->UpdateByObj(obj);
4594 m_ams_setting_dlg->Show();
4595 }
4596}
AMSSetting * m_ams_setting_dlg
Definition StatusPanel.hpp:663

References m_ams_setting_dlg, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by wire_controls().

Here is the caller graph for this function:

◆ on_ams_switch()

void Slic3r::GUI::StatusPanel::on_ams_switch ( SimpleEvent & event)
protected
4524{
4525 if(obj){
4526
4527 /*right*/
4528 if (obj->GetExtderSystem()->GetTotalExtderCount() > 0) {
4529 auto ext = obj->GetExtderSystem()->GetExtderById(MAIN_EXTRUDER_ID);
4530 if (ext->HasFilamentInExt()) {
4531 if (ext->GetSlotNow().ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext->GetSlotNow().ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
4533 } else {
4534 m_ams_control->SetAmsStep(ext->GetSlotNow().ams_id, ext->GetSlotNow().slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
4535 }
4536 } else {
4537 m_ams_control->SetAmsStep(ext->GetSlotNow().ams_id, ext->GetSlotNow().slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
4538 }
4539 m_ams_control->SetExtruder(ext->HasFilamentInExt(), MAIN_EXTRUDER_ID, ext->GetSlotNow().ams_id, ext->GetSlotNow().slot_id);
4540 }
4541
4542 /*left*/
4543 if (obj->GetExtderSystem()->GetTotalExtderCount() > 1) {
4544 auto ext = obj->GetExtderSystem()->GetExtruders()[DEPUTY_EXTRUDER_ID];
4545 if (ext.HasFilamentInExt()) {
4546 if (ext.GetSlotNow().ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext.GetSlotNow().ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
4548 } else {
4549 m_ams_control->SetAmsStep(ext.GetSlotNow().ams_id, ext.GetSlotNow().slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
4550 }
4551 } else {
4552 m_ams_control->SetAmsStep(ext.GetSlotNow().ams_id, ext.GetSlotNow().slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
4553 }
4554 m_ams_control->SetExtruder(ext.HasFilamentInExt(), DEPUTY_EXTRUDER_ID, ext.GetSlotNow().ams_id, ext.GetSlotNow().slot_id);
4555 }
4556 }
4557}
@ AMS_ROAD_STEP_NONE
Definition AMSItem.hpp:122
@ AMS_ROAD_STEP_COMBO_LOAD_STEP2
Definition AMSItem.hpp:128
@ AMS_ROAD_STEP_COMBO_LOAD_STEP3
Definition AMSItem.hpp:129
@ AMS_ROAD_TYPE_LOAD
Definition AMSItem.hpp:134
@ AMS_ROAD_TYPE_UNLOAD
Definition AMSItem.hpp:135

References Slic3r::GUI::AMS_ROAD_STEP_COMBO_LOAD_STEP2, Slic3r::GUI::AMS_ROAD_STEP_COMBO_LOAD_STEP3, Slic3r::GUI::AMS_ROAD_STEP_NONE, Slic3r::GUI::AMS_ROAD_TYPE_LOAD, Slic3r::GUI::AMS_ROAD_TYPE_UNLOAD, DEPUTY_EXTRUDER_ID, Slic3r::GUI::StatusBasePanel::m_ams_control, MAIN_EXTRUDER_ID, Slic3r::GUI::StatusBasePanel::obj, VIRTUAL_TRAY_DEPUTY_ID, and VIRTUAL_TRAY_MAIN_ID.

Referenced by wire_controls().

Here is the caller graph for this function:

◆ on_ams_unload()

void Slic3r::GUI::StatusPanel::on_ams_unload ( SimpleEvent & event)
protected
4560{
4561 if (obj) {
4562 std::string curr_ams_id = m_ams_control->GetCurentAms();
4563 std::string curr_can_id = m_ams_control->GetCurrentCan(curr_ams_id);
4564
4565 if (obj->is_enable_np) {
4566 try {
4567 for (auto ext : obj->GetExtderSystem()->GetExtruders()) {
4568 if (ext.GetSlotNow().ams_id == curr_ams_id && ext.GetSlotNow().slot_id == curr_can_id) { obj->command_ams_change_filament(false, curr_ams_id, "255"); }
4569 }
4570 } catch (...) {}
4571 } else {
4572 obj->command_ams_change_filament(false, curr_ams_id, "255");
4573 }
4574 }
4575}

References Slic3r::GUI::StatusBasePanel::m_ams_control, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by wire_controls().

Here is the caller graph for this function:

◆ on_auto_leveling()

void Slic3r::GUI::StatusPanel::on_auto_leveling ( wxCommandEvent & event)
protected
5120{
5121 if (obj) obj->command_auto_leveling();
5122}

References Slic3r::GUI::StatusBasePanel::obj.

◆ on_axis_ctrl_e_down_10()

void Slic3r::GUI::StatusPanel::on_axis_ctrl_e_down_10 ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

4247{
4248 if (obj) {
4249 auto ext = obj->GetExtderSystem()->GetCurrentExtder();
4250 if (ext && ext->GetCurrentTemp() >= TEMP_THRESHOLD_ALLOW_E_CTRL)
4251 if (obj->is_enable_np) {
4252 obj->command_extruder_control(ext->GetExtId(), 10.0f);
4253 } else {
4254 obj->command_axis_control("E", 1.0, 10.0f, 900);
4255 }
4256 else
4257 axis_ctrl_e_hint(false);
4258 }
4259}
#define TEMP_THRESHOLD_ALLOW_E_CTRL
Definition StatusPanel.cpp:126
void axis_ctrl_e_hint(bool up_down)
Definition StatusPanel.cpp:4214

References axis_ctrl_e_hint(), Slic3r::GUI::StatusBasePanel::obj, and TEMP_THRESHOLD_ALLOW_E_CTRL.

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_axis_ctrl_e_up_10()

void Slic3r::GUI::StatusPanel::on_axis_ctrl_e_up_10 ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

4231{
4232 if (obj) {
4233 auto ext = obj->GetExtderSystem()->GetCurrentExtder();
4234 if (ext && ext->GetCurrentTemp() >= TEMP_THRESHOLD_ALLOW_E_CTRL)
4235 if (obj->is_enable_np) {
4236 obj->command_extruder_control(ext->GetExtId(), -10.0f);
4237 } else {
4238 obj->command_axis_control("E", 1.0, -10.0f, 900);
4239 }
4240
4241 else
4242 axis_ctrl_e_hint(true);
4243 }
4244}

References axis_ctrl_e_hint(), Slic3r::GUI::StatusBasePanel::obj, and TEMP_THRESHOLD_ALLOW_E_CTRL.

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_axis_ctrl_xy()

void Slic3r::GUI::StatusPanel::on_axis_ctrl_xy ( wxCommandEvent & event)
protected
4133{
4134 if (!obj) return;
4135
4136 //check is at home
4137 static std::unordered_set<int> s_x_ctrl_idxes { 1, 3, 5, 7};
4138 static std::unordered_set<int> s_y_ctrl_idxes{ 0, 2, 4, 6 };
4139 if (s_x_ctrl_idxes.count(event.GetInt()) != 0 && !obj->is_axis_at_home("X"))
4140 {
4141 BOOST_LOG_TRIVIAL(info) << "axis x is not at home";
4143 return;
4144 }
4145 else if (s_y_ctrl_idxes.count(event.GetInt()) != 0 && !obj->is_axis_at_home("Y"))
4146 {
4147 BOOST_LOG_TRIVIAL(info) << "axis y is not at home";
4149 return;
4150 }
4151
4152 if (event.GetInt() == 0) { obj->command_axis_control("Y", 1.0, 10.0f, 3000); }
4153 else if (event.GetInt() == 1) { obj->command_axis_control("X", 1.0, -10.0f, 3000); }
4154 else if (event.GetInt() == 2) { obj->command_axis_control("Y", 1.0, -10.0f, 3000); }
4155 else if (event.GetInt() == 3) { obj->command_axis_control("X", 1.0, 10.0f, 3000); }
4156 else if (event.GetInt() == 4) { obj->command_axis_control("Y", 1.0, 1.0f, 3000); }
4157 else if (event.GetInt() == 5) { obj->command_axis_control("X", 1.0, -1.0f, 3000); }
4158 else if (event.GetInt() == 6) { obj->command_axis_control("Y", 1.0, -1.0f, 3000); }
4159 else if (event.GetInt() == 7) { obj->command_axis_control("X", 1.0, 1.0f, 3000); }
4160 else if (event.GetInt() == 8) {
4161 if (obj) { obj->command_go_home(); }
4162 }
4163}

References Slic3r::GUI::StatusBasePanel::obj, and show_recenter_dialog().

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_axis_ctrl_z_down_1()

void Slic3r::GUI::StatusPanel::on_axis_ctrl_z_down_1 ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

4197{
4198 if (obj) {
4199 obj->command_axis_control("Z", 1.0, 1.0f, 900);
4201 return;
4202 }
4203}
bool check_axis_z_at_home(MachineObject *obj)
Definition StatusPanel.cpp:4165

References check_axis_z_at_home(), and Slic3r::GUI::StatusBasePanel::obj.

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_axis_ctrl_z_down_10()

void Slic3r::GUI::StatusPanel::on_axis_ctrl_z_down_10 ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

4206{
4207 if (obj) {
4208 obj->command_axis_control("Z", 1.0, 10.0f, 900);
4210 return;
4211 }
4212}

References check_axis_z_at_home(), and Slic3r::GUI::StatusBasePanel::obj.

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_axis_ctrl_z_up_1()

void Slic3r::GUI::StatusPanel::on_axis_ctrl_z_up_1 ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

4188{
4189 if (obj) {
4190 obj->command_axis_control("Z", 1.0, -1.0f, 900);
4192 return;
4193 }
4194}

References check_axis_z_at_home(), and Slic3r::GUI::StatusBasePanel::obj.

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_axis_ctrl_z_up_10()

void Slic3r::GUI::StatusPanel::on_axis_ctrl_z_up_10 ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

4179{
4180 if (obj) {
4181 obj->command_axis_control("Z", 1.0, -10.0f, 900);
4183 return;
4184 }
4185}

References check_axis_z_at_home(), and Slic3r::GUI::StatusBasePanel::obj.

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_bed_temp_kill_focus()

void Slic3r::GUI::StatusPanel::on_bed_temp_kill_focus ( wxFocusEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

4911{
4912 event.Skip();
4913 bed_temp_input = false;
4914}
bool bed_temp_input
Definition StatusPanel.hpp:695

References bed_temp_input.

Referenced by ~StatusPanel(), and wire_controls().

Here is the caller graph for this function:

◆ on_bed_temp_set_focus()

void Slic3r::GUI::StatusPanel::on_bed_temp_set_focus ( wxFocusEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

4917{
4918 event.Skip();
4919 bed_temp_input = true;
4920}

References bed_temp_input.

Referenced by ~StatusPanel(), and wire_controls().

Here is the caller graph for this function:

◆ on_camera_enter()

void Slic3r::GUI::StatusPanel::on_camera_enter ( wxMouseEvent & event)
protected
5087{
5088 if (obj) {
5089 if (m_camera_popup == nullptr)
5090 m_camera_popup = std::make_shared<CameraPopup>(this);
5091 m_camera_popup->check_func_supported(obj);
5092 m_camera_popup->sync_vcamera_state(show_vcamera);
5093 m_camera_popup->Bind(EVT_VCAMERA_SWITCH, &StatusPanel::on_switch_vcamera, this);
5094 m_camera_popup->Bind(EVT_SDCARD_ABSENT_HINT, [this](wxCommandEvent &e) {
5095 if (sdcard_hint_dlg == nullptr) {
5096 sdcard_hint_dlg = new SecondaryCheckDialog(this->GetParent(), wxID_ANY, _L("Warning"), SecondaryCheckDialog::VisibleButtons::ONLY_CONFIRM); // ORCA VisibleButtons instead ButtonStyle
5097 sdcard_hint_dlg->update_text(_L("Can't start this without storage."));
5098 }
5099 sdcard_hint_dlg->on_show();
5100 });
5101 wxWindow* ctrl = (wxWindow*)event.GetEventObject();
5102 wxPoint pos = ctrl->ClientToScreen(wxPoint(0, 0));
5103 wxSize sz = ctrl->GetSize();
5104 pos.x += sz.x;
5105 pos.y += sz.y;
5106 m_camera_popup->SetPosition(pos);
5107 m_camera_popup->update(m_media_play_ctrl->IsStreaming());
5108 m_camera_popup->Popup();
5109 }
5110}
@ ONLY_CONFIRM
Definition ReleaseNote.hpp:129
std::shared_ptr< CameraPopup > m_camera_popup
Definition StatusPanel.hpp:661
bool show_vcamera
Definition StatusPanel.hpp:820
void on_switch_vcamera(wxMouseEvent &event)
Definition StatusPanel.cpp:5075
Vec3d pos(const Pt &p)
Definition ReprojectPointsOnMesh.hpp:16

References _L, m_camera_popup, Slic3r::GUI::StatusBasePanel::m_media_play_ctrl, Slic3r::GUI::StatusBasePanel::obj, on_switch_vcamera(), Slic3r::GUI::SecondaryCheckDialog::ONLY_CONFIRM, sdcard_hint_dlg, show_vcamera, and Slic3r::GUI::wxMouseEvent.

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_camera_leave()

void Slic3r::GUI::StatusPanel::on_camera_leave ( wxMouseEvent & event)
protected
5113{
5114 if (obj && m_camera_popup) {
5115 m_camera_popup->Dismiss();
5116 }
5117}

References m_camera_popup, Slic3r::GUI::StatusBasePanel::obj, and Slic3r::GUI::wxMouseEvent.

◆ on_cham_temp_kill_focus()

void Slic3r::GUI::StatusPanel::on_cham_temp_kill_focus ( wxFocusEvent & event)
protected
4899{
4900 event.Skip();
4901 cham_temp_input = false;
4902}
bool cham_temp_input
Definition StatusPanel.hpp:697

References cham_temp_input.

Referenced by wire_controls().

Here is the caller graph for this function:

◆ on_cham_temp_set_focus()

void Slic3r::GUI::StatusPanel::on_cham_temp_set_focus ( wxFocusEvent & event)
protected
4905{
4906 event.Skip();
4907 cham_temp_input = true;
4908}

References cham_temp_input.

Referenced by wire_controls().

Here is the caller graph for this function:

◆ on_ext_spool_edit()

void Slic3r::GUI::StatusPanel::on_ext_spool_edit ( wxCommandEvent & event)
protected
4718{
4719 // update params
4720 if (!m_filament_setting_dlg) m_filament_setting_dlg = new AMSMaterialsSetting((wxWindow*)this, wxID_ANY);
4721
4722 int current_position_x = m_ams_control->GetScreenPosition().x;
4723 int current_position_y = m_ams_control->GetScreenPosition().y - FromDIP(40);
4724 auto drect = wxDisplay(GetParent()).GetGeometry().GetHeight() - FromDIP(50);
4725 current_position_y = current_position_y + m_filament_setting_dlg->GetSize().GetHeight() > drect ? drect - m_filament_setting_dlg->GetSize().GetHeight() : current_position_y;
4726
4727 if (obj) {
4729 // Orca: 2D mode (laser/cut) only allows viewing filament info, not editing
4730 m_filament_setting_dlg->m_view_only = !obj->is_fdm_type();
4731
4732 int ams_id = event.GetInt();
4733 int slot_id = event.GetString().IsEmpty() ? 0 : std::stoi(event.GetString().ToStdString());
4734
4735 m_filament_setting_dlg->ams_id = ams_id;
4736 m_filament_setting_dlg->slot_id = slot_id;
4737 int nozzle_index = ams_id == VIRTUAL_TRAY_MAIN_ID ? 0 : 1;
4738
4739 try {
4740 std::string sn_number;
4741 std::string filament;
4742 std::string temp_max;
4743 std::string temp_min;
4744 wxString k_val;
4745 wxString n_val;
4746 k_val = wxString::Format("%.3f", obj->vt_slot[nozzle_index].k);
4747 n_val = wxString::Format("%.3f", obj->vt_slot[nozzle_index].n);
4748 wxColor color = DevAmsTray::decode_color(obj->vt_slot[nozzle_index].color);
4749 m_filament_setting_dlg->ams_filament_id = obj->vt_slot[nozzle_index].setting_id;
4750
4751 std::vector<wxColour> cols;
4752 for (auto col : obj->vt_slot[nozzle_index].cols) {
4753 cols.push_back(DevAmsTray::decode_color(col));
4754 }
4755 m_filament_setting_dlg->set_ctype(obj->vt_slot[nozzle_index].ctype);
4756
4757 if (m_filament_setting_dlg->ams_filament_id.empty()) {
4758 m_filament_setting_dlg->set_empty_color(color);
4759 }
4760 else {
4761 m_filament_setting_dlg->set_color(color);
4762 m_filament_setting_dlg->set_colors(cols);
4763 }
4764
4765 m_filament_setting_dlg->m_is_third = !DevFilaSystem::IsBBL_Filament(obj->vt_slot[nozzle_index].tag_uid);
4766 if (!m_filament_setting_dlg->m_is_third) {
4767 sn_number = obj->vt_slot[nozzle_index].uuid;
4768 filament = obj->vt_slot[nozzle_index].sub_brands;
4769 temp_max = obj->vt_slot[nozzle_index].nozzle_temp_max;
4770 temp_min = obj->vt_slot[nozzle_index].nozzle_temp_min;
4771 }
4772
4773 m_filament_setting_dlg->Move(wxPoint(current_position_x,current_position_y));
4774 m_filament_setting_dlg->Popup(filament, sn_number, temp_min, temp_max, k_val, n_val);
4775 }
4776 catch (...) {
4777 ;
4778 }
4779 }
4780}
static wxColour decode_color(const std::string &color)
Definition DevFilaSystem.cpp:38
static bool IsBBL_Filament(std::string tag_uid)
Definition DevFilaSystem.cpp:367
AMSMaterialsSetting * m_filament_setting_dlg
Definition StatusPanel.hpp:668
size_t cols(const T &raster)
Definition MarchingSquares.hpp:173

References Slic3r::DevAmsTray::decode_color(), Slic3r::DevFilaSystem::IsBBL_Filament(), Slic3r::GUI::StatusBasePanel::m_ams_control, m_filament_setting_dlg, Slic3r::GUI::StatusBasePanel::obj, and VIRTUAL_TRAY_MAIN_ID.

Referenced by wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_fan_changed()

void Slic3r::GUI::StatusPanel::on_fan_changed ( wxCommandEvent & event)
protected
4892{
4893 auto type = event.GetInt();
4894 auto speed = atoi(event.GetString().c_str());
4896}
int m_switch_cham_fan_timeout
Definition StatusPanel.hpp:524
void set_hold_count(int &count)
Definition StatusPanel.cpp:5329

References Slic3r::GUI::StatusBasePanel::m_switch_cham_fan_timeout, and set_hold_count().

Referenced by wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_filament_edit()

void Slic3r::GUI::StatusPanel::on_filament_edit ( wxCommandEvent & event)
protected
4648{
4649 // update params
4650 if (!m_filament_setting_dlg) m_filament_setting_dlg = new AMSMaterialsSetting((wxWindow *) this, wxID_ANY);
4651
4652 int current_position_x = m_ams_control->GetScreenPosition().x;
4653 int current_position_y = m_ams_control->GetScreenPosition().y - FromDIP(40);
4654 auto drect = wxDisplay(GetParent()).GetGeometry().GetHeight() - FromDIP(50);
4655 current_position_y = current_position_y + m_filament_setting_dlg->GetSize().GetHeight() > drect ? drect - m_filament_setting_dlg->GetSize().GetHeight() : current_position_y;
4656
4657 if (obj) {
4659 // Orca: 2D mode (laser/cut) only allows viewing filament info, not editing
4660 m_filament_setting_dlg->m_view_only = !obj->is_fdm_type();
4661
4662 int ams_id = event.GetInt();
4663 int slot_id = event.GetString().IsEmpty() ? 0 : std::stoi(event.GetString().ToStdString());
4664
4665 try {
4666 m_filament_setting_dlg->ams_id = ams_id;
4667 m_filament_setting_dlg->slot_id = slot_id;
4668
4669 std::string sn_number;
4670 std::string filament;
4671 std::string temp_max;
4672 std::string temp_min;
4673 wxString k_val;
4674 wxString n_val;
4675
4676 auto tray = obj->GetFilaSystem()->GetAmsTray(std::to_string(ams_id), std::to_string(slot_id));
4677 if (tray)
4678 {
4679 k_val = wxString::Format("%.3f", tray->k);
4680 n_val = wxString::Format("%.3f", tray->n);
4681 wxColor color = DevAmsTray::decode_color(tray->color);
4682 // m_filament_setting_dlg->set_color(color);
4683
4684 std::vector<wxColour> cols;
4685 for (auto col : tray->cols) { cols.push_back(DevAmsTray::decode_color(col)); }
4686 m_filament_setting_dlg->set_ctype(tray->ctype);
4687 m_filament_setting_dlg->ams_filament_id = tray->setting_id;
4688
4689 if (m_filament_setting_dlg->ams_filament_id.empty())
4690 {
4691 m_filament_setting_dlg->set_empty_color(color);
4692 }
4693 else
4694 {
4695 m_filament_setting_dlg->set_color(color);
4696 m_filament_setting_dlg->set_colors(cols);
4697 }
4698
4699 m_filament_setting_dlg->m_is_third = !DevFilaSystem::IsBBL_Filament(tray->tag_uid);
4700 if (!m_filament_setting_dlg->m_is_third)
4701 {
4702 sn_number = tray->uuid;
4703 filament = tray->sub_brands;
4704 temp_max = tray->nozzle_temp_max;
4705 temp_min = tray->nozzle_temp_min;
4706 }
4707 }
4708
4709 m_filament_setting_dlg->Move(wxPoint(current_position_x, current_position_y));
4710 m_filament_setting_dlg->Popup(filament, sn_number, temp_min, temp_max, k_val, n_val);
4711 } catch (...) {
4712 ;
4713 }
4714 }
4715}

References Slic3r::DevAmsTray::decode_color(), Slic3r::DevFilaSystem::IsBBL_Filament(), Slic3r::GUI::StatusBasePanel::m_ams_control, m_filament_setting_dlg, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_filament_extrusion_cali()

void Slic3r::GUI::StatusPanel::on_filament_extrusion_cali ( wxCommandEvent & event)
protected
4599{
4601 m_extrusion_cali_dlg = new ExtrusionCalibration((wxWindow*)this, wxID_ANY);
4602
4603 if (obj) {
4605 std::string ams_id = m_ams_control->GetCurentAms();
4606 std::string tray_id = m_ams_control->GetCurrentCan(ams_id);
4607 if (tray_id.empty() && ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) != 0) {
4608 wxString txt = _L("Please select an AMS slot before calibration");
4609 MessageDialog msg_dlg(nullptr, txt, wxEmptyString, wxICON_WARNING | wxOK);
4610 msg_dlg.ShowModal();
4611 return;
4612 }
4613
4614 int ams_id_int = 0;
4615 int tray_id_int = 0;
4616
4617
4618 // set ams_filament id is is bbl filament
4619 if (ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) == 0) {
4620 tray_id_int = VIRTUAL_TRAY_MAIN_ID;
4621 m_extrusion_cali_dlg->ams_filament_id = "";
4622 }
4623 else {
4624 ams_id_int = atoi(ams_id.c_str());
4625 tray_id_int = atoi(tray_id.c_str());
4626
4627 auto tray = obj->GetFilaSystem()->GetAmsTray(ams_id, tray_id);
4628 if (tray) {
4629 if (DevFilaSystem::IsBBL_Filament(tray->tag_uid))
4630 m_extrusion_cali_dlg->ams_filament_id = tray->setting_id;
4631 else
4632 m_extrusion_cali_dlg->ams_filament_id = "";
4633 }
4634 }
4635
4636 try {
4637 m_extrusion_cali_dlg->ams_id = ams_id_int;
4638 m_extrusion_cali_dlg->tray_id = tray_id_int;
4639 m_extrusion_cali_dlg->SetPosition(m_staticText_control->GetScreenPosition());
4640 m_extrusion_cali_dlg->Popup();
4641 } catch(...) {
4642 ;
4643 }
4644 }
4645}
ExtrusionCalibration * m_extrusion_cali_dlg
Definition StatusPanel.hpp:679

References _L, Slic3r::DevFilaSystem::IsBBL_Filament(), Slic3r::GUI::StatusBasePanel::m_ams_control, m_extrusion_cali_dlg, Slic3r::GUI::StatusBasePanel::m_staticText_control, Slic3r::GUI::StatusBasePanel::obj, Slic3r::GUI::DPIAware< P >::ShowModal(), and VIRTUAL_TRAY_MAIN_ID.

Referenced by wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_lamp_switch()

void Slic3r::GUI::StatusPanel::on_lamp_switch ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

5049{
5050 if (!obj) return;
5051
5052 bool value = m_switch_lamp->GetValue();
5053
5054 if (value) {
5055 m_switch_lamp->SetValue(true);
5056 // do not update when timeout > 0
5058 obj->GetLamp()->CtrlSetChamberLight(DevLamp::LIGHT_EFFECT_ON);
5059 } else {
5060 if (obj->GetLamp()->HasLampCloseRecheck()){
5061 MessageDialog msg_dlg(nullptr, _L("Turning off the lights during the task will cause the failure of AI monitoring, like spaghetti detection. Please choose carefully."), wxEmptyString, wxICON_WARNING | wxOK | wxCANCEL);
5062 msg_dlg.SetButtonLabel(wxID_OK, _L("Keep it On"));
5063 msg_dlg.SetButtonLabel(wxID_CANCEL, _L("Turn it Off"));
5064 if (msg_dlg.ShowModal() != wxID_CANCEL) {
5065 return;
5066 }
5067 }
5068
5069 m_switch_lamp->SetValue(false);
5071 obj->GetLamp()->CtrlSetChamberLight(DevLamp::LIGHT_EFFECT_OFF);
5072 }
5073}
@ LIGHT_EFFECT_OFF
Definition DevLamp.h:18
@ LIGHT_EFFECT_ON
Definition DevLamp.h:17
int m_switch_lamp_timeout
Definition StatusPanel.hpp:503

References _L, Slic3r::DevLamp::LIGHT_EFFECT_OFF, Slic3r::DevLamp::LIGHT_EFFECT_ON, Slic3r::GUI::StatusBasePanel::m_switch_lamp, Slic3r::GUI::StatusBasePanel::m_switch_lamp_timeout, Slic3r::GUI::StatusBasePanel::obj, set_hold_count(), Slic3r::GUI::MsgDialog::SetButtonLabel(), and Slic3r::GUI::DPIAware< P >::ShowModal().

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_market_retry()

void Slic3r::GUI::StatusPanel::on_market_retry ( wxCommandEvent & event)
protected
2764{
2765 if (obj) {
2766 obj->get_model_mall_result_need_retry = true;
2767 } else {
2768 BOOST_LOG_TRIVIAL(info)<< __FUNCTION__ << "retury failed";
2769 }
2770}

References Slic3r::GUI::StatusBasePanel::obj.

Referenced by ~StatusPanel(), and wire_controls().

Here is the caller graph for this function:

◆ on_market_scoring()

void Slic3r::GUI::StatusPanel::on_market_scoring ( wxCommandEvent & event)
protected
2708 {
2709 if (obj && obj->is_makeworld_subtask() && obj->rating_info && obj->rating_info->request_successful) { // model is mall model and has rating_id
2710 BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": on_market_scoring" ;
2711 if (m_score_data && m_score_data->rating_id == obj->rating_info->rating_id) { // current score data for model is same as mall model
2712 if (m_score_data->star_count != m_project_task_panel->get_star_count()) m_score_data->star_count = m_project_task_panel->get_star_count();
2713 ScoreDialog m_score_dlg(this, m_score_data);
2714 int ret = m_score_dlg.ShowModal();
2715 BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": old data";
2716
2717 if (ret == wxID_OK) {
2718 BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": old data is upload";
2719 m_score_data->rating_id = -1;
2720 m_project_task_panel->set_star_count_dirty(false);
2721 if (obj) obj->get_model_mall_result_need_retry = true;
2722 return;
2723 }
2724 if (m_score_data != nullptr) {
2725 delete m_score_data;
2726 m_score_data = nullptr;
2727 }
2728 m_score_data = new ScoreData(m_score_dlg.get_score_data()); // when user do not submit score, store the data for next opening the score dialog
2729 m_project_task_panel->set_star_count(m_score_data->star_count);
2730 } else {
2731 int star_count = m_project_task_panel->get_star_count_dirty() ? m_project_task_panel->get_star_count() : obj->rating_info->start_count;
2732 bool success_print = obj->rating_info->success_printed;
2733 ScoreDialog m_score_dlg(this, obj->get_modeltask()->design_id, obj->get_modeltask()->model_id, obj->get_modeltask()->profile_id, obj->rating_info->rating_id,
2734 success_print, star_count);
2735 BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": new data";
2736
2737 std::string comment = obj->rating_info->content;
2738 if (!comment.empty()) { m_score_dlg.set_comment(comment); }
2739
2740 std::vector<std::string> images_json_array;
2741 images_json_array = obj->rating_info->image_url_paths;
2742 if (!images_json_array.empty()) m_score_dlg.set_cloud_bitmap(images_json_array);
2743
2744 int ret = m_score_dlg.ShowModal();
2745
2746 if (ret == wxID_OK) {
2747 BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": new data is upload";
2748 m_score_data->rating_id = -1;
2749 m_project_task_panel->set_star_count_dirty(false);
2750 if (obj) obj->get_model_mall_result_need_retry = true;
2751 return;
2752 }
2753 if (m_score_data != nullptr) {
2754 delete m_score_data;
2755 m_score_data = nullptr;
2756 }
2757 m_score_data = new ScoreData(m_score_dlg.get_score_data());
2758 m_project_task_panel->set_star_count(m_score_data->star_count);
2759 }
2760 }
2761}

References Slic3r::GUI::ScoreDialog::get_score_data(), Slic3r::GUI::StatusBasePanel::m_project_task_panel, m_score_data, Slic3r::GUI::StatusBasePanel::obj, Slic3r::GUI::ScoreDialog::set_cloud_bitmap(), Slic3r::GUI::ScoreDialog::set_comment(), and Slic3r::GUI::DPIAware< P >::ShowModal().

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_nozzle_fan_switch()

void Slic3r::GUI::StatusPanel::on_nozzle_fan_switch ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

5015{
5016 if (m_fan_control_popup) {
5017 m_fan_control_popup->Destroy();
5018 m_fan_control_popup = nullptr;
5019 }
5020
5021 if (!obj) { return; }
5022 if (obj->GetFan()->GetAirDuctData().modes.empty())
5023 {
5024 obj->GetFan()->converse_to_duct(true, obj->GetFan()->GetSupportAuxFanData(), obj->GetFan()->GetSupportChamberFan());
5025 }
5026
5027 m_fan_control_popup = new FanControlPopupNew(this, obj, obj->GetFan()->GetAirDuctData());
5028
5029 auto pos = m_switch_fan->GetScreenPosition();
5030 pos.y = pos.y + m_switch_fan->GetSize().y;
5031
5032 int display_idx = wxDisplay::GetFromWindow(this);
5033 auto display = wxDisplay(display_idx).GetClientArea();
5034
5035
5036 wxSize screenSize = wxSize(display.GetWidth(), display.GetHeight());
5037 wxSize fan_popup_size = m_fan_control_popup->GetSize();
5038
5039 pos.x -= FromDIP(150);
5040 pos.y -= FromDIP(20);
5041 if (screenSize.y - fan_popup_size.y < FromDIP(300)) {
5042 pos.y = (screenSize.y - fan_popup_size.y) / 2;
5043 }
5044
5045 m_fan_control_popup->SetPosition(pos);
5046 m_fan_control_popup->ShowModal();
5047}

References m_fan_control_popup, Slic3r::GUI::StatusBasePanel::m_switch_fan, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by ~StatusPanel(), and wire_controls().

Here is the caller graph for this function:

◆ on_nozzle_selected()

void Slic3r::GUI::StatusPanel::on_nozzle_selected ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

5131{
5132 if (obj) {
5133
5134 /*Enable switch head while printing is paused STUDIO-9789*/
5135 if ((obj->is_in_printing() && !obj->is_in_printing_pause()) || obj->ams_status_main == AMS_STATUS_MAIN_FILAMENT_CHANGE) {
5136 MessageDialog dlg(nullptr, _L("The printer is busy with another print job."), _L("Error"), wxICON_WARNING | wxOK);
5137 dlg.ShowModal();
5138 return;
5139 }
5140
5141 auto nozzle_id = event.GetInt();
5142 if (obj->GetCtrl()->command_select_extruder(nozzle_id) == 0)
5143 {
5144 return;
5145 }
5146 }
5147
5148 m_nozzle_btn_panel->Enable();
5149}
@ AMS_STATUS_MAIN_FILAMENT_CHANGE
Definition DevDefs.h:47

References _L, Slic3r::AMS_STATUS_MAIN_FILAMENT_CHANGE, Slic3r::GUI::StatusBasePanel::m_nozzle_btn_panel, Slic3r::GUI::StatusBasePanel::obj, and Slic3r::GUI::DPIAware< P >::ShowModal().

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_nozzle_temp_kill_focus()

void Slic3r::GUI::StatusPanel::on_nozzle_temp_kill_focus ( wxFocusEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

4923{
4924 event.Skip();
4925 nozzle_temp_input = false;
4926}
bool nozzle_temp_input
Definition StatusPanel.hpp:696

References nozzle_temp_input.

Referenced by ~StatusPanel(), and wire_controls().

Here is the caller graph for this function:

◆ on_nozzle_temp_set_focus()

void Slic3r::GUI::StatusPanel::on_nozzle_temp_set_focus ( wxFocusEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

4929{
4930 event.Skip();
4931 nozzle_temp_input = true;
4932}

References nozzle_temp_input.

Referenced by ~StatusPanel(), and wire_controls().

Here is the caller graph for this function:

◆ on_print_error_clean()

void Slic3r::GUI::StatusPanel::on_print_error_clean ( wxCommandEvent & event)
protected
2839{
2841 skip_print_error = obj->print_error;
2842 char buf[32];
2843 ::sprintf(buf, "%08X", skip_print_error);
2844 BOOST_LOG_TRIVIAL(info) << "skip_print_error: " << buf;
2845 before_error_code = obj->print_error;
2846}
int before_error_code
Definition StatusPanel.hpp:633
int skip_print_error
Definition StatusPanel.hpp:634
void error_info_reset()
Definition StatusPanel.cpp:2833

References Slic3r::GUI::StatusBasePanel::before_error_code, error_info_reset(), Slic3r::GUI::StatusBasePanel::obj, and Slic3r::GUI::StatusBasePanel::skip_print_error.

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_printing_fan_switch()

void Slic3r::GUI::StatusPanel::on_printing_fan_switch ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

4998{
4999 /* if (!obj) return;
5000
5001 bool value = m_switch_printing_fan->GetValue();
5002
5003 if (value) {
5004 obj->command_control_fan(MachineObject::FanType::BIG_COOLING_FAN, true);
5005 m_switch_printing_fan->SetValue(true);
5006 set_hold_count(this->m_switch_printing_fan_timeout);
5007 } else {
5008 obj->command_control_fan(MachineObject::FanType::BIG_COOLING_FAN, false);
5009 m_switch_printing_fan->SetValue(false);
5010 set_hold_count(this->m_switch_printing_fan_timeout);
5011 }*/
5012}

◆ on_set_bed_temp()

void Slic3r::GUI::StatusPanel::on_set_bed_temp ( )
protected
4262{
4263 if (!obj) {return;}
4264
4265 wxString str = m_tempCtrl_bed->GetTextCtrl()->GetValue();
4266 try {
4267 long bed_temp;
4268 if (str.ToLong(&bed_temp) && obj) {
4270
4271 int limit = obj->get_bed_temperature_limit();
4272 if (obj->bed_temp_range.size() > 1) {
4273 limit = obj->bed_temp_range[1];
4274 }
4275
4276 if (bed_temp >= limit) {
4277 BOOST_LOG_TRIVIAL(info) << "can not set over limit = " << limit << ", set temp = " << bed_temp;
4278 bed_temp = limit;
4279 m_tempCtrl_bed->SetTagTemp(wxString::Format("%d", bed_temp));
4280 m_tempCtrl_bed->Warning(false);
4281 }
4282 obj->command_set_bed(bed_temp);
4283 }
4284 } catch (...) {
4285 ;
4286 }
4287}
int m_temp_bed_timeout
Definition StatusPanel.hpp:515

References Slic3r::GUI::StatusBasePanel::m_temp_bed_timeout, Slic3r::GUI::StatusBasePanel::m_tempCtrl_bed, Slic3r::GUI::StatusBasePanel::obj, and set_hold_count().

Referenced by wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_set_chamber_temp()

void Slic3r::GUI::StatusPanel::on_set_chamber_temp ( )
protected
4331{
4332 if (!obj) {return;}
4333
4334 wxString str = m_tempCtrl_chamber->GetTextCtrl()->GetValue();
4335 try {
4336 long chamber_temp;
4337 if (str.ToLong(&chamber_temp) && obj) {
4339 if (chamber_temp > m_tempCtrl_chamber->get_max_temp()) {
4340 chamber_temp = m_tempCtrl_chamber->get_max_temp();
4341 m_tempCtrl_chamber->SetTagTemp(wxString::Format("%d", chamber_temp));
4342 m_tempCtrl_chamber->Warning(false);
4343 }
4344
4345 if(obj->is_in_printing() && obj->GetFan()->GetSupportAirduct() && obj->GetFan()->is_at_cooling_mode())
4346 {
4347#ifndef __APPLE__
4348 MessageDialog champer_switch_head_dlg(this, _L("Chamber temperature cannot be changed in cooling mode while printing."), wxEmptyString, wxICON_WARNING | wxOK);
4349#else
4350 wxMessageDialog champer_switch_head_dlg(this, _L("Chamber temperature cannot be changed in cooling mode while printing."), wxEmptyString, wxICON_WARNING | wxOK);
4351#endif
4352 champer_switch_head_dlg.ShowModal();
4353 return;
4354 }
4355 else if (!obj->GetFan()->is_at_heating_mode() && chamber_temp >= obj->GetConfig()->GetChamberTempSwitchHeat())
4356 {
4357#ifndef __APPLE__
4358 MessageDialog champer_switch_head_dlg(this, _L("If the chamber temperature exceeds 40\u2103, the system will automatically switch to heating mode. "
4359 "Please confirm whether to switch."), wxEmptyString, wxICON_WARNING | wxOK | wxCANCEL);
4360#else
4361 /*STUDIO-10386 MessageDialog here may cause block in macOS, use wxMessageDialog*/
4362 wxMessageDialog champer_switch_head_dlg(this, _L("If the chamber temperature exceeds 40\u2103, the system will automatically switch to heating mode. "
4363 "Please confirm whether to switch."), wxEmptyString, wxICON_WARNING | wxOK | wxCANCEL);
4364#endif
4365 if (champer_switch_head_dlg.ShowModal() != wxID_OK) { return; }
4366 }
4367
4368 obj->command_set_chamber(chamber_temp);
4369 }
4370 }
4371 catch (...) {
4372 ;
4373 }
4374}
int m_temp_chamber_timeout
Definition StatusPanel.hpp:517

References _L, Slic3r::GUI::StatusBasePanel::m_temp_chamber_timeout, Slic3r::GUI::StatusBasePanel::m_tempCtrl_chamber, Slic3r::GUI::StatusBasePanel::obj, set_hold_count(), and Slic3r::GUI::DPIAware< P >::ShowModal().

Referenced by wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_set_nozzle_temp()

void Slic3r::GUI::StatusPanel::on_set_nozzle_temp ( int nozzle_id)
protected
4290{
4291 if (!obj) {return;}
4292
4293 try {
4294 long nozzle_temp;
4295
4296 if (nozzle_id == MAIN_EXTRUDER_ID) {
4297 wxString str = m_tempCtrl_nozzle->GetTextCtrl()->GetValue();
4298 if (str.ToLong(&nozzle_temp) && obj) {
4300 if (nozzle_temp > m_tempCtrl_nozzle->get_max_temp()) {
4301 nozzle_temp = m_tempCtrl_nozzle->get_max_temp();
4302 m_tempCtrl_nozzle->SetTagTemp(wxString::Format("%d", nozzle_temp));
4303 m_tempCtrl_nozzle->Warning(false);
4304 }
4306 obj->command_set_nozzle(nozzle_temp);
4307 } else {
4308 obj->command_set_nozzle_new(MAIN_EXTRUDER_ID, nozzle_temp);
4309 }
4310 }
4311 }
4312
4313 if (nozzle_id == DEPUTY_EXTRUDER_ID) {
4314 wxString str = m_tempCtrl_nozzle_deputy->GetTextCtrl()->GetValue();
4315 if (str.ToLong(&nozzle_temp) && obj) {
4317 if (nozzle_temp > m_tempCtrl_nozzle_deputy->get_max_temp()) {
4318 nozzle_temp = m_tempCtrl_nozzle_deputy->get_max_temp();
4319 m_tempCtrl_nozzle_deputy->SetTagTemp(wxString::Format("%d", nozzle_temp));
4320 m_tempCtrl_nozzle_deputy->Warning(false);
4321 }
4322 obj->command_set_nozzle_new(DEPUTY_EXTRUDER_ID, nozzle_temp);
4323 }
4324 }
4325 } catch (...) {
4326 ;
4327 }
4328}
int m_temp_nozzle_deputy_timeout
Definition StatusPanel.hpp:513
int m_temp_nozzle_timeout
Definition StatusPanel.hpp:511

References DEPUTY_EXTRUDER_ID, Slic3r::GUI::StatusBasePanel::m_temp_nozzle_deputy_timeout, Slic3r::GUI::StatusBasePanel::m_temp_nozzle_timeout, Slic3r::GUI::StatusBasePanel::m_tempCtrl_nozzle, Slic3r::GUI::StatusBasePanel::m_tempCtrl_nozzle_deputy, MAIN_EXTRUDER_ID, Slic3r::GUI::StatusBasePanel::obj, set_hold_count(), and TEMP_OF_NORMAL_TYPE.

Referenced by wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_show_parts_options()

void Slic3r::GUI::StatusPanel::on_show_parts_options ( wxCommandEvent & event)
protected
5191{
5192 if (obj) {
5193 if (print_parts_dlg == nullptr) {
5194 print_parts_dlg = new PrinterPartsDialog(this);
5195 print_parts_dlg->update_machine_obj(obj);
5196 print_parts_dlg->ShowModal();
5197 }
5198 else {
5199 print_parts_dlg->update_machine_obj(obj);
5200 print_parts_dlg->ShowModal();
5201 }
5202 }
5203}
PrinterPartsDialog * print_parts_dlg
Definition StatusPanel.hpp:664

References Slic3r::GUI::StatusBasePanel::obj, and print_parts_dlg.

Referenced by ~StatusPanel(), and wire_controls().

Here is the caller graph for this function:

◆ on_show_print_options()

void Slic3r::GUI::StatusPanel::on_show_print_options ( wxCommandEvent & event)
protected
5152{
5153 if (obj) {
5154 // Always show print options dialog for all machines
5155 if (print_options_dlg == nullptr) {
5156 print_options_dlg = new PrintOptionsDialog(this);
5157 print_options_dlg->update_machine_obj(obj);
5158 print_options_dlg->update_options(obj);
5159 print_options_dlg->ShowModal();
5160 }
5161 else {
5162 print_options_dlg->update_machine_obj(obj);
5163 print_options_dlg->update_options(obj);
5164 print_options_dlg->ShowModal();
5165 }
5166 }
5167}
PrintOptionsDialog * print_options_dlg
Definition StatusPanel.hpp:665

References Slic3r::GUI::StatusBasePanel::obj, and print_options_dlg.

Referenced by ~StatusPanel(), and wire_controls().

Here is the caller graph for this function:

◆ on_show_safety_options()

void Slic3r::GUI::StatusPanel::on_show_safety_options ( wxCommandEvent & event)
protected
5170{
5171 if (obj) {
5172 std::string current_printer_type = obj->printer_type;
5173 bool supports_safety = DevPrinterConfigUtil::support_safety_options(current_printer_type);
5174 if (supports_safety) {
5175 if (safety_options_dlg == nullptr) {
5176 safety_options_dlg = new SafetyOptionsDialog(this);
5177 safety_options_dlg->update_machine_obj(obj);
5178 safety_options_dlg->update_options(obj);
5179 safety_options_dlg->ShowModal();
5180 }
5181 else {
5182 safety_options_dlg->update_machine_obj(obj);
5183 safety_options_dlg->update_options(obj);
5184 safety_options_dlg->ShowModal();
5185 }
5186 }
5187 }
5188}
static bool support_safety_options(const std::string &type_str)
Definition DevConfigUtil.h:125
SafetyOptionsDialog * safety_options_dlg
Definition StatusPanel.hpp:666

References Slic3r::GUI::StatusBasePanel::obj, safety_options_dlg, and Slic3r::DevPrinterConfigUtil::support_safety_options().

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_start_calibration()

void Slic3r::GUI::StatusPanel::on_start_calibration ( wxCommandEvent & event)
protected
5216{
5217 if (obj) {
5218 if (calibration_dlg == nullptr) {
5219 calibration_dlg = new CalibrationDialog();
5220 calibration_dlg->update_machine_obj(obj);
5221 calibration_dlg->update_cali(obj);
5222 calibration_dlg->ShowModal();
5223 } else {
5224 calibration_dlg->update_machine_obj(obj);
5225 calibration_dlg->update_cali(obj);
5226 calibration_dlg->ShowModal();
5227 }
5228 }
5229}
CalibrationDialog * calibration_dlg
Definition StatusPanel.hpp:667

References calibration_dlg, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by ~StatusPanel(), and wire_controls().

Here is the caller graph for this function:

◆ on_subtask_abort()

void Slic3r::GUI::StatusPanel::on_subtask_abort ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

2816{
2817 if (abort_dlg == nullptr) {
2818 abort_dlg = new SecondaryCheckDialog(this->GetParent(), wxID_ANY, _L("Cancel print"));
2819 abort_dlg->Bind(EVT_SECONDARY_CHECK_CONFIRM, [this](wxCommandEvent &e) {
2820 if (obj) {
2821 BOOST_LOG_TRIVIAL(info) << "monitor: stop current print task dev_id =" << obj->get_dev_id();
2822 obj->command_task_abort();
2823 }
2824 });
2825 }
2826 abort_dlg->update_text(_L("Are you sure you want to stop this print?"));
2827 abort_dlg->m_button_cancel->SetLabel(_L("No"));
2828 abort_dlg->m_button_ok->SetLabel(_L("Yes"));
2829 abort_dlg->on_show();
2830 abort_dlg->Raise();
2831}

References _L, abort_dlg, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by ~StatusPanel(), and wire_controls().

Here is the caller graph for this function:

◆ on_subtask_partskip()

void Slic3r::GUI::StatusPanel::on_subtask_partskip ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

2785{
2786 if (m_partskip_dlg == nullptr) {
2787 m_partskip_dlg = new PartSkipDialog(this->GetParent());
2788 }
2789
2790 auto dm = GUI::wxGetApp().getDeviceManager();
2791 m_partskip_dlg->InitSchedule(dm->get_selected_machine());
2792 BOOST_LOG_TRIVIAL(info) << "part skip: initial part skip dialog.";
2793 if(m_partskip_dlg->ShowModal() == wxID_OK){
2794 int cnt = m_partskip_dlg->GetAllSkippedPartsNum();
2795 m_project_task_panel->set_part_skipped_count(cnt);
2796 m_project_task_panel->set_part_skipped_dirty(5);
2797 BOOST_LOG_TRIVIAL(info) << "part skip: prepare to filter printer dirty data.";
2798 }
2799}
PartSkipDialog * m_partskip_dlg
Definition StatusPanel.hpp:680

References m_partskip_dlg, and Slic3r::GUI::StatusBasePanel::m_project_task_panel.

Referenced by ~StatusPanel(), and wire_controls().

Here is the caller graph for this function:

◆ on_subtask_pause_resume()

void Slic3r::GUI::StatusPanel::on_subtask_pause_resume ( wxCommandEvent & event)
protectedvirtual

Reimplemented from Slic3r::GUI::StatusBasePanel.

2802{
2803 if (obj) {
2804 if (obj->can_resume()) {
2805 BOOST_LOG_TRIVIAL(info) << "monitor: resume current print task dev_id =" << obj->get_dev_id();
2806 obj->command_task_resume();
2807 }
2808 else {
2809 BOOST_LOG_TRIVIAL(info) << "monitor: pause current print task dev_id =" << obj->get_dev_id();
2810 obj->command_task_pause();
2811 }
2812 }
2813}

References Slic3r::GUI::StatusBasePanel::obj.

Referenced by ~StatusPanel(), and wire_controls().

Here is the caller graph for this function:

◆ on_switch_speed()

void Slic3r::GUI::StatusPanel::on_switch_speed ( wxCommandEvent & event)
protected
4935{
4936 auto now = boost::posix_time::microsec_clock::universal_time();
4937 if ((now - speed_dismiss_time).total_milliseconds() < 200) {
4938 speed_dismiss_time = now - boost::posix_time::seconds(1);
4939 return;
4940 }
4941#if __WXOSX__
4942 // MacOS has focus problem
4943 PopupWindow *popUp = new PopupWindow(nullptr);
4944#else
4945 PopupWindow *popUp = new PopupWindow(m_switch_speed);
4946#endif
4947#ifdef __WXMSW__
4948 popUp->BindUnfocusEvent();
4949#endif
4950 popUp->SetBackgroundColour(StateColor::darkModeColorFor(0xeeeeee));
4951 StepCtrl *step = new StepCtrl(popUp, wxID_ANY);
4952 wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
4953 sizer->Add(step, 1, wxEXPAND, 0);
4954 popUp->SetSizer(sizer);
4955 auto em = em_unit(this);
4956 popUp->SetSize(em * 36, em * 8);
4957 step->SetHint(_L("This only takes effect during printing"));
4958 step->AppendItem(_L("Silent"), "");
4959 step->AppendItem(_L_CONTEXT("Standard", "Mode"), "");
4960 step->AppendItem(_L("Sport"), "");
4961 step->AppendItem(_L("Ludicrous"), "");
4962
4963 // default speed lvl
4964 int selected_item = 1;
4965 if (obj) {
4966 int speed_lvl_idx = obj->GetPrintingSpeedLevel() - 1;
4967 if (speed_lvl_idx >= 0 && speed_lvl_idx < 4) {
4968 selected_item = speed_lvl_idx;
4969 }
4970 }
4971 step->SelectItem(selected_item);
4972
4973 if (!obj->is_in_printing()) {
4974 step->Bind(wxEVT_LEFT_DOWN, [](auto& e) {
4975 return; });
4976 }
4977
4978 step->Bind(EVT_STEP_CHANGED, [this](auto &e) {
4979 this->speed_lvl = e.GetInt() + 1;
4980 if (obj) {
4982 obj->command_set_printing_speed((DevPrintingSpeedLevel)this->speed_lvl);
4983 }
4984 });
4985 popUp->Bind(wxEVT_SHOW, [this, popUp](auto &e) {
4986 if (!e.IsShown()) {
4987 popUp->Destroy();
4988 speed_dismiss_time = boost::posix_time::microsec_clock::universal_time();
4989 }
4990 });
4991
4992 wxPoint pos = m_switch_speed->ClientToScreen(wxPoint(0, -6));
4993 popUp->Position(pos, {0, m_switch_speed->GetSize().y + 12});
4994 popUp->Popup();
4995}
int speed_lvl_timeout
Definition StatusPanel.hpp:700
int speed_lvl
Definition StatusPanel.hpp:699
boost::posix_time::ptime speed_dismiss_time
Definition StatusPanel.hpp:701
static wxColour darkModeColorFor(wxColour const &color)
Definition StateColor.cpp:219
DevPrintingSpeedLevel
Definition DevDefs.h:135
int em_unit(wxWindow *win)
Definition wxExtensions.cpp:424

References _L, _L_CONTEXT, StateColor::darkModeColorFor(), em_unit(), Slic3r::GUI::StatusBasePanel::m_switch_speed, Slic3r::GUI::StatusBasePanel::obj, set_hold_count(), speed_dismiss_time, speed_lvl, and speed_lvl_timeout.

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_switch_vcamera()

void Slic3r::GUI::StatusPanel::on_switch_vcamera ( wxMouseEvent & event)
protected
5076{
5077 //if (!obj) return;
5078 //bool value = m_recording_button->get_switch_status();
5079 //obj->command_ipcam_record(!value);
5080 m_media_play_ctrl->ToggleStream();
5081 show_vcamera = m_media_play_ctrl->IsStreaming();
5082 if (m_camera_popup)
5083 m_camera_popup->sync_vcamera_state(show_vcamera);
5084}

References m_camera_popup, Slic3r::GUI::StatusBasePanel::m_media_play_ctrl, show_vcamera, and Slic3r::GUI::wxMouseEvent.

Referenced by on_camera_enter().

Here is the caller graph for this function:

◆ on_sys_color_changed()

void Slic3r::GUI::StatusPanel::on_sys_color_changed ( )
5385{
5386 m_project_task_panel->msw_rescale();
5387 m_bitmap_speed.msw_rescale();
5388 m_bitmap_speed_active.msw_rescale();
5390 m_ams_control->msw_rescale();
5392}

References Slic3r::GUI::StatusBasePanel::m_ams_control, Slic3r::GUI::StatusBasePanel::m_bitmap_speed, Slic3r::GUI::StatusBasePanel::m_bitmap_speed_active, Slic3r::GUI::StatusBasePanel::m_project_task_panel, Slic3r::GUI::StatusBasePanel::m_switch_speed, and rescale_camera_icons().

Here is the call graph for this function:

◆ on_thumbnail_enter()

void Slic3r::GUI::StatusPanel::on_thumbnail_enter ( wxMouseEvent & event)
protected

◆ on_thumbnail_leave()

void Slic3r::GUI::StatusPanel::on_thumbnail_leave ( wxMouseEvent & event)
protected

◆ on_webrequest_state()

void Slic3r::GUI::StatusPanel::on_webrequest_state ( wxWebRequestEvent & evt)
protected
2849{
2850 BOOST_LOG_TRIVIAL(trace) << "monitor: monitor_panel web request state = " << evt.GetState();
2851 switch (evt.GetState()) {
2852 case wxWebRequest::State_Completed: {
2854 wxImage img(*evt.GetResponse().GetStream());
2855 img_list.insert(std::make_pair(m_request_url, img));
2856 wxImage resize_img = img.Scale(m_project_task_panel->get_bitmap_thumbnail()->GetSize().x, m_project_task_panel->get_bitmap_thumbnail()->GetSize().y, wxIMAGE_QUALITY_HIGH);
2857 m_project_task_panel->set_thumbnail_img(resize_img, "");
2858 m_project_task_panel->set_brightness_value(get_brightness_value(resize_img));
2859 }
2860 if (obj) {
2861 m_project_task_panel->set_plate_index(obj->m_plate_index);
2862 } else {
2863 m_project_task_panel->set_plate_index(-1);
2864 }
2865 task_thumbnail_state = ThumbnailState::TASK_THUMBNAIL;
2866 break;
2867 }
2868 case wxWebRequest::State_Failed:
2869 case wxWebRequest::State_Cancelled:
2870 case wxWebRequest::State_Unauthorized: {
2871 m_project_task_panel->set_thumbnail_img(m_thumbnail_brokenimg.bmp(), m_thumbnail_brokenimg.name());
2872 m_project_task_panel->set_plate_index(-1);
2873 task_thumbnail_state = ThumbnailState::BROKEN_IMG;
2874 break;
2875 }
2876 case wxWebRequest::State_Active:
2877 case wxWebRequest::State_Idle: break;
2878 default: break;
2879 }
2880}

References BROKEN_IMG, Slic3r::GUI::CALI_METHOD_MANUAL, Slic3r::Calib_Flow_Rate, Slic3r::GUI::CALIBRATION, Slic3r::GUI::get_brightness_value(), img_list, m_calib_method, m_calib_mode, m_current_print_mode, Slic3r::GUI::StatusBasePanel::m_project_task_panel, m_request_url, Slic3r::GUI::StatusBasePanel::m_thumbnail_brokenimg, Slic3r::GUI::StatusBasePanel::obj, TASK_THUMBNAIL, and Slic3r::trace().

Referenced by wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_xyz_abs()

void Slic3r::GUI::StatusPanel::on_xyz_abs ( wxCommandEvent & event)
protected
5125{
5126 if (obj) obj->command_xyz_abs();
5127}

References Slic3r::GUI::StatusBasePanel::obj.

◆ refresh_thumbnail_webrequest()

void Slic3r::GUI::StatusPanel::refresh_thumbnail_webrequest ( wxMouseEvent & event)
protected
2883{
2884 if (!obj) return;
2885 if (task_thumbnail_state != ThumbnailState::BROKEN_IMG) return;
2886
2887 if (obj->slice_info) {
2888 m_request_url = wxString(obj->slice_info->thumbnail_url);
2889 if (!m_request_url.IsEmpty()) {
2890 web_request = wxWebSession::GetDefault().CreateRequest(this, m_request_url);
2891 BOOST_LOG_TRIVIAL(trace) << "monitor: create new webrequest, state = " << web_request.GetState() << ", url = " << m_request_url;
2892 if (web_request.GetState() == wxWebRequest::State_Idle)
2893 web_request.Start();
2894 BOOST_LOG_TRIVIAL(trace) << "monitor: start new webrequest, state = " << web_request.GetState() << ", url = " << m_request_url;
2895 }
2896 }
2897}

References BROKEN_IMG, m_request_url, Slic3r::GUI::StatusBasePanel::obj, Slic3r::trace(), web_request, and Slic3r::GUI::wxMouseEvent.

Referenced by ~StatusPanel(), and wire_controls().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rescale_camera_icons()

void Slic3r::GUI::StatusPanel::rescale_camera_icons ( )
5335{
5336 if (!GetParent() || IsBeingDeleted()) return;
5338
5339 m_setting_button->msw_rescale();
5340
5341
5342 m_bitmap_sdcard_state_abnormal = ScalableBitmap(this, wxGetApp().dark_mode()?"sdcard_state_abnormal_dark":"sdcard_state_abnormal", 20);
5343 m_bitmap_sdcard_state_normal = ScalableBitmap(this, wxGetApp().dark_mode()?"sdcard_state_normal_dark":"sdcard_state_normal", 20);
5344 m_bitmap_sdcard_state_no = ScalableBitmap(this, wxGetApp().dark_mode()?"sdcard_state_no_dark":"sdcard_state_no", 20);
5345 m_bitmap_recording_on = ScalableBitmap(this, wxGetApp().dark_mode()?"monitor_recording_on_dark":"monitor_recording_on", 20);
5346 m_bitmap_recording_off = ScalableBitmap(this, wxGetApp().dark_mode()?"monitor_recording_off_dark":"monitor_recording_off", 20);
5347 m_bitmap_timelapse_on = ScalableBitmap(this, wxGetApp().dark_mode()?"monitor_timelapse_on_dark":"monitor_timelapse_on", 20);
5348 m_bitmap_timelapse_off = ScalableBitmap(this, wxGetApp().dark_mode()?"monitor_timelapse_off_dark":"monitor_timelapse_off", 20);
5349 m_bitmap_vcamera_on = ScalableBitmap(this, wxGetApp().dark_mode()?"monitor_vcamera_on_dark":"monitor_vcamera_on", 20);
5350 m_bitmap_vcamera_off = ScalableBitmap(this, wxGetApp().dark_mode()?"monitor_vcamera_off_dark":"monitor_vcamera_off", 20);
5351
5352 if (m_media_play_ctrl->IsStreaming()) {
5353 m_bitmap_vcamera_img->SetBitmap(m_bitmap_vcamera_on.bmp());
5354 }
5355 else {
5357 }
5358
5359 if (!obj) return;
5360
5361 if (obj->GetStorage()->get_sdcard_state() == DevStorage::SdcardState::NO_SDCARD) {
5363 } else if (obj->GetStorage()->get_sdcard_state() == DevStorage::SdcardState::HAS_SDCARD_NORMAL) {
5365 } else if (obj->GetStorage()->get_sdcard_state() == DevStorage::SdcardState::HAS_SDCARD_ABNORMAL) {
5367 } else {
5369 }
5370
5371 if (obj->is_recording()) {
5373 } else {
5375 }
5376
5377 if (obj->is_timelapse()) {
5379 } else {
5381 }
5382}
@ HAS_SDCARD_NORMAL
Definition DevStorage.h:19
@ HAS_SDCARD_ABNORMAL
Definition DevStorage.h:20
@ NO_SDCARD
Definition DevStorage.h:18

References Slic3r::DevStorage::HAS_SDCARD_ABNORMAL, Slic3r::DevStorage::HAS_SDCARD_NORMAL, Slic3r::GUI::StatusBasePanel::m_bitmap_recording_img, Slic3r::GUI::StatusBasePanel::m_bitmap_recording_off, Slic3r::GUI::StatusBasePanel::m_bitmap_recording_on, Slic3r::GUI::StatusBasePanel::m_bitmap_sdcard_img, Slic3r::GUI::StatusBasePanel::m_bitmap_sdcard_state_abnormal, Slic3r::GUI::StatusBasePanel::m_bitmap_sdcard_state_no, Slic3r::GUI::StatusBasePanel::m_bitmap_sdcard_state_normal, Slic3r::GUI::StatusBasePanel::m_bitmap_timelapse_img, Slic3r::GUI::StatusBasePanel::m_bitmap_timelapse_off, Slic3r::GUI::StatusBasePanel::m_bitmap_timelapse_on, Slic3r::GUI::StatusBasePanel::m_bitmap_vcamera_img, Slic3r::GUI::StatusBasePanel::m_bitmap_vcamera_off, Slic3r::GUI::StatusBasePanel::m_bitmap_vcamera_on, Slic3r::GUI::StatusBasePanel::m_media_play_ctrl, Slic3r::GUI::StatusBasePanel::m_setting_button, Slic3r::DevStorage::NO_SDCARD, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by msw_rescale(), and on_sys_color_changed().

Here is the caller graph for this function:

◆ reset_printing_values()

void Slic3r::GUI::StatusPanel::reset_printing_values ( )
protected
4106{
4107 m_project_task_panel->enable_partskip_button(nullptr, false);
4108 m_project_task_panel->enable_pause_resume_button(false, "pause_disable");
4109 m_project_task_panel->enable_abort_button(false);
4110 m_project_task_panel->reset_printing_value();
4111 m_project_task_panel->update_subtask_name(NA_STR);
4112 m_project_task_panel->show_profile_info(false);
4113 // m_project_task_panel->update_stage_value_with_machine(wxEmptyString, 0, obj);
4114 m_project_task_panel->update_stage_value_with_machine(wxEmptyString, 0, obj);
4115 //obj->get_curr_stage()
4116 m_project_task_panel->update_progress_percent(NA_STR, wxEmptyString);
4117
4118 m_project_task_panel->market_scoring_hide();
4119 m_project_task_panel->get_request_failed_panel()->Hide();
4121 m_project_task_panel->update_left_time(NA_STR);
4122 m_project_task_panel->update_layers_num(true, wxString::Format(_L("Layer: %s"), NA_STR));
4124
4125 task_thumbnail_state = ThumbnailState::PLACE_HOLDER;
4128 skip_print_error = 0;
4129 this->Layout();
4130}
void update_calib_bitmap()
Definition StatusPanel.cpp:3743
bool m_load_sdcard_thumbnail
Definition StatusPanel.hpp:684
void update_basic_print_data(bool def=false)
Definition StatusPanel.cpp:3751
static const wxString NA_STR
Definition CalibrationWizard.cpp:47

References _L, m_load_sdcard_thumbnail, Slic3r::GUI::StatusBasePanel::m_project_task_panel, m_start_loading_thumbnail, Slic3r::GUI::NA_STR, Slic3r::GUI::StatusBasePanel::obj, PLACE_HOLDER, Slic3r::GUI::StatusBasePanel::skip_print_error, update_basic_print_data(), and update_calib_bitmap().

Referenced by set_default(), update_cloud_subtask(), and update_subtask().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reset_temp_misc_control()

void Slic3r::GUI::StatusBasePanel::reset_temp_misc_control ( )
inherited
1932{
1933 // reset temp string
1934 m_tempCtrl_nozzle->SetIconNormal();
1936 m_tempCtrl_nozzle->GetTextCtrl()->SetValue(TEMP_BLANK_STR);
1937
1938 m_tempCtrl_nozzle_deputy->SetIconNormal();
1940 m_tempCtrl_nozzle_deputy->GetTextCtrl()->SetValue(TEMP_BLANK_STR);
1941
1942 m_tempCtrl_bed->SetIconNormal();
1943 m_tempCtrl_bed->SetLabel(TEMP_BLANK_STR);
1944 m_tempCtrl_bed->GetTextCtrl()->SetValue(TEMP_BLANK_STR);
1945
1946 m_tempCtrl_chamber->SetIconNormal();
1948 m_tempCtrl_chamber->GetTextCtrl()->SetValue(TEMP_BLANK_STR);
1949
1950 m_tempCtrl_nozzle->Enable(true);
1951 m_tempCtrl_nozzle_deputy->Enable(true);
1952 m_tempCtrl_chamber->Enable(true);
1953 m_tempCtrl_bed->Enable(true);
1954
1955 // reset misc control
1956 m_switch_speed->SetLabels("100%", "100%");
1957 m_switch_speed->SetValue(false);
1958 m_switch_lamp->SetLabels(_L("Lamp"), _L("Lamp"));
1959 m_switch_lamp->SetValue(false);
1960 /*m_switch_nozzle_fan->SetValue(false);
1961 m_switch_printing_fan->SetValue(false);
1962 m_switch_cham_fan->SetValue(false);*/
1963}

References _L, m_switch_lamp, m_switch_speed, m_tempCtrl_bed, m_tempCtrl_chamber, m_tempCtrl_nozzle, m_tempCtrl_nozzle_deputy, and Slic3r::GUI::TEMP_BLANK_STR.

Referenced by Slic3r::GUI::StatusPanel::set_default().

Here is the caller graph for this function:

◆ set_default()

void Slic3r::GUI::StatusPanel::set_default ( )
5245{
5246 BOOST_LOG_TRIVIAL(trace) << "status_panel: set_default";
5247 if (m_custom_camera_view->IsShown()) {
5248 m_custom_camera_view->Hide();
5249 m_media_ctrl->Show();
5250 m_media_play_ctrl->StopWebStream();
5251 }
5252 obj = nullptr;
5253 last_subtask = nullptr;
5255 speed_lvl = 1;
5265 m_show_ams_group = false;
5266 m_show_filament_group = false;
5268
5269 m_bitmap_timelapse_img->Hide();
5270 m_bitmap_recording_img->Hide();
5271 m_bitmap_vcamera_img->Hide();
5272 m_setting_button->Show();
5273 m_tempCtrl_chamber->Show();
5274 m_options_btn->Show();
5275 m_safety_btn->Show();
5276 m_parts_btn->Show();
5277
5278
5280 m_panel_control_title->Layout();
5281 m_panel_control_title->Refresh();
5282 }
5283
5286 m_ams_control->Hide();
5287 m_ams_control_box->Hide();
5288 m_ams_control->Reset();
5289 m_ams_rack_switch->updateState("left");
5290 m_ams_rack_switch->Hide();
5291 m_panel_nozzle_rack->Hide();
5292 m_scale_panel->Hide();
5293 m_filament_load_box->Hide();
5294 m_filament_step->Hide();
5296#ifndef __WXGTK__
5297 // Also reached while the panel is built off screen.
5298 if (IsShownOnScreen())
5299 SetFocus();
5300#endif
5301}
int m_switch_printing_fan_timeout
Definition StatusPanel.hpp:521
int m_switch_nozzle_fan_timeout
Definition StatusPanel.hpp:519
void reset_temp_misc_control()
Definition StatusPanel.cpp:1931
bool m_show_ams_group
Definition StatusPanel.hpp:548
bool m_show_filament_group
Definition StatusPanel.hpp:549
long last_tray_exist_bits
Definition StatusPanel.hpp:851
void reset_printing_values()
Definition StatusPanel.cpp:4105

References error_info_reset(), last_subtask, last_tray_exist_bits, Slic3r::GUI::StatusBasePanel::m_ams_control, Slic3r::GUI::StatusBasePanel::m_ams_control_box, Slic3r::GUI::StatusBasePanel::m_ams_rack_switch, Slic3r::GUI::StatusBasePanel::m_bitmap_recording_img, Slic3r::GUI::StatusBasePanel::m_bitmap_timelapse_img, Slic3r::GUI::StatusBasePanel::m_bitmap_vcamera_img, Slic3r::GUI::StatusBasePanel::m_custom_camera_view, Slic3r::GUI::StatusBasePanel::m_extruder_switching_status, Slic3r::GUI::StatusBasePanel::m_filament_load_box, Slic3r::GUI::StatusBasePanel::m_filament_step, Slic3r::GUI::StatusBasePanel::m_media_ctrl, Slic3r::GUI::StatusBasePanel::m_media_play_ctrl, Slic3r::GUI::StatusBasePanel::m_options_btn, Slic3r::GUI::StatusBasePanel::m_panel_control_title, Slic3r::GUI::StatusBasePanel::m_panel_nozzle_rack, Slic3r::GUI::StatusBasePanel::m_parts_btn, Slic3r::GUI::StatusBasePanel::m_safety_btn, Slic3r::GUI::StatusBasePanel::m_scale_panel, Slic3r::GUI::StatusBasePanel::m_setting_button, Slic3r::GUI::StatusBasePanel::m_show_ams_group, Slic3r::GUI::StatusBasePanel::m_show_filament_group, Slic3r::GUI::StatusBasePanel::m_switch_cham_fan_timeout, Slic3r::GUI::StatusBasePanel::m_switch_lamp_timeout, Slic3r::GUI::StatusBasePanel::m_switch_nozzle_fan_timeout, Slic3r::GUI::StatusBasePanel::m_switch_printing_fan_timeout, Slic3r::GUI::StatusBasePanel::m_temp_bed_timeout, Slic3r::GUI::StatusBasePanel::m_temp_chamber_timeout, Slic3r::GUI::StatusBasePanel::m_temp_nozzle_deputy_timeout, Slic3r::GUI::StatusBasePanel::m_temp_nozzle_timeout, Slic3r::GUI::StatusBasePanel::m_tempCtrl_chamber, Slic3r::GUI::StatusBasePanel::obj, reset_printing_values(), Slic3r::GUI::StatusBasePanel::reset_temp_misc_control(), speed_lvl, speed_lvl_timeout, and Slic3r::trace().

Here is the call graph for this function:

◆ set_hold_count()

void Slic3r::GUI::StatusPanel::set_hold_count ( int & count)
5330{
5332}
static unsigned int count
Definition AuxiliaryDataViewModel.cpp:246
#define COMMAND_TIMEOUT
Definition StatusPanel.hpp:70

References COMMAND_TIMEOUT, and count.

Referenced by on_fan_changed(), on_lamp_switch(), on_set_bed_temp(), on_set_chamber_temp(), on_set_nozzle_temp(), and on_switch_speed().

Here is the caller graph for this function:

◆ show_ams_group()

void Slic3r::GUI::StatusBasePanel::show_ams_group ( bool show = true)
inherited
2310{
2311 if (m_ams_control->IsShown() != show) {
2312 m_ams_control->Show(show);
2313 m_ams_control->Layout();
2314 m_ams_control->Fit();
2315 Layout();
2316 Fit();
2317 if (MonitorPanel* monitor = MonitorPanel::if_built())
2318 monitor->Layout();
2319 }
2320
2321 // On rack printers, don't clobber the rack view when the user has the switch on "Hotends".
2322 // Inert for every non-rack printer: the switch stays hidden, so this guard never triggers.
2323 if (show && m_ams_rack_switch->IsShown() && (m_ams_rack_switch->switch_left != true)) { return; }
2324
2325 if (m_ams_control_box->IsShown() != show) {
2326 m_ams_control_box->Show(show);
2327 m_ams_control->Layout();
2328 m_ams_control->Fit();
2329 Layout();
2330 Fit();
2331 if (MonitorPanel* monitor = MonitorPanel::if_built())
2332 monitor->Layout();
2333 }
2334}

References Slic3r::GUI::LazyInstance< MonitorPanel >::if_built(), m_ams_control, m_ams_control_box, and m_ams_rack_switch.

Referenced by Slic3r::GUI::StatusPanel::update_ams().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ show_filament_load_group()

void Slic3r::GUI::StatusBasePanel::show_filament_load_group ( bool show = true)
inherited
2337{
2338 if (m_scale_panel->IsShown() != show) {
2339 m_scale_panel->Show(show);
2340 if (!show) {
2341 m_img_filament_loading->SetBitmap(create_scaled_bitmap("filament_load_fold", this, 24));
2342 m_img_filament_loading->Refresh();
2343 }
2344
2345 // m_scale_panel control the display of m_filament_load_box
2346 if (!show && m_filament_load_box->IsShown()) {
2347 m_filament_load_box->Show(false);
2348 }
2349
2350 auto cur_ext = obj->GetExtderSystem()->GetCurrentExtder();
2351 m_filament_step->SetupSteps(obj, cur_ext ? cur_ext->HasFilamentInExt() : false);
2352
2353 Layout();
2354 Fit();
2355
2356 if (MonitorPanel* monitor = MonitorPanel::if_built()) {
2357 monitor->get_status_panel()->Layout();
2358 monitor->Layout();
2359 }
2360 }
2361}

References create_scaled_bitmap(), Slic3r::GUI::LazyInstance< MonitorPanel >::if_built(), m_filament_load_box, m_filament_step, m_img_filament_loading, m_scale_panel, and obj.

Referenced by Slic3r::GUI::StatusPanel::update_ams(), and Slic3r::GUI::StatusPanel::update_filament_loading_panel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ show_printing_status()

void Slic3r::GUI::StatusPanel::show_printing_status ( bool ctrl_area = true,
bool temp_area = true )
protected
3078{
3079 if (!ctrl_area) {
3080 m_bpButton_xy->Enable(false);
3081 m_bpButton_z_10->Enable(false);
3082 m_bpButton_z_1->Enable(false);
3083 m_bpButton_z_down_1->Enable(false);
3084 m_bpButton_z_down_10->Enable(false);
3085 m_bpButton_e_10->Enable(false);
3086 m_bpButton_e_down_10->Enable(false);
3087
3088 m_bpButton_z_10->SetIcon("monitor_bed_up_disable");
3089 m_bpButton_z_1->SetIcon("monitor_bed_up_disable");
3090 m_bpButton_z_down_1->SetIcon("monitor_bed_down_disable");
3091 m_bpButton_z_down_10->SetIcon("monitor_bed_down_disable");
3092 m_bpButton_e_10->SetIcon("monitor_extruder_up_disable");
3093 m_bpButton_e_down_10->SetIcon("monitor_extrduer_down_disable");
3094
3095 m_staticText_z_tip->SetForegroundColour(DISCONNECT_TEXT_COL);
3096 m_extruder_label->SetForegroundColour(DISCONNECT_TEXT_COL);
3097 } else {
3098 m_bpButton_xy->Enable();
3099 m_bpButton_z_10->Enable();
3100 m_bpButton_z_1->Enable();
3101 m_bpButton_z_down_1->Enable();
3102 m_bpButton_z_down_10->Enable();
3103 m_bpButton_e_10->Enable();
3104 m_bpButton_e_down_10->Enable();
3105
3106 m_bpButton_z_10->SetIcon("monitor_bed_up");
3107 m_bpButton_z_1->SetIcon("monitor_bed_up");
3108 m_bpButton_z_down_1->SetIcon("monitor_bed_down");
3109 m_bpButton_z_down_10->SetIcon("monitor_bed_down");
3110 m_bpButton_e_10->SetIcon("monitor_extruder_up");
3111 m_bpButton_e_down_10->SetIcon("monitor_extrduer_down");
3112
3113 m_staticText_z_tip->SetForegroundColour(TEXT_LIGHT_FONT_COL);
3114 m_extruder_label->SetForegroundColour(TEXT_LIGHT_FONT_COL);
3115 }
3116
3117 if (!temp_area) {
3118 m_tempCtrl_nozzle->Enable(false);
3119 m_tempCtrl_nozzle_deputy->Enable(false);
3120 m_tempCtrl_bed->Enable(false);
3121 m_tempCtrl_chamber->Enable(false);
3122 m_switch_speed->Enable(false);
3123 m_switch_speed->SetValue(false);
3124 m_switch_lamp->Enable(false);
3125 /*m_switch_nozzle_fan->Enable(false);
3126 m_switch_printing_fan->Enable(false);
3127 m_switch_cham_fan->Enable(false);*/
3128 m_switch_fan->Enable(false);
3129 } else {
3130 m_tempCtrl_nozzle->Enable();
3131 m_tempCtrl_nozzle_deputy->Enable();
3132 m_tempCtrl_bed->Enable();
3133 m_tempCtrl_chamber->Enable();
3134 m_switch_speed->Enable();
3135 m_switch_speed->SetValue(true);
3136 m_switch_lamp->Enable();
3137 /*m_switch_nozzle_fan->Enable();
3138 m_switch_printing_fan->Enable();
3139 m_switch_cham_fan->Enable();*/
3140 m_switch_fan->Enable();
3141 }
3142}

References Slic3r::GUI::DISCONNECT_TEXT_COL, Slic3r::GUI::StatusBasePanel::m_bpButton_e_10, Slic3r::GUI::StatusBasePanel::m_bpButton_e_down_10, Slic3r::GUI::StatusBasePanel::m_bpButton_xy, Slic3r::GUI::StatusBasePanel::m_bpButton_z_1, Slic3r::GUI::StatusBasePanel::m_bpButton_z_10, Slic3r::GUI::StatusBasePanel::m_bpButton_z_down_1, Slic3r::GUI::StatusBasePanel::m_bpButton_z_down_10, Slic3r::GUI::StatusBasePanel::m_extruder_label, Slic3r::GUI::StatusBasePanel::m_staticText_z_tip, Slic3r::GUI::StatusBasePanel::m_switch_fan, Slic3r::GUI::StatusBasePanel::m_switch_lamp, Slic3r::GUI::StatusBasePanel::m_switch_speed, Slic3r::GUI::StatusBasePanel::m_tempCtrl_bed, Slic3r::GUI::StatusBasePanel::m_tempCtrl_chamber, Slic3r::GUI::StatusBasePanel::m_tempCtrl_nozzle, Slic3r::GUI::StatusBasePanel::m_tempCtrl_nozzle_deputy, and Slic3r::GUI::TEXT_LIGHT_FONT_COL.

Referenced by show_status(), and update().

Here is the caller graph for this function:

◆ show_recenter_dialog()

void Slic3r::GUI::StatusPanel::show_recenter_dialog ( )
protected
3046 {
3047 RecenterDialog dlg(this);
3048 if (dlg.ShowModal() == wxID_OK)
3049 obj->command_go_home();
3050}

References Slic3r::GUI::StatusBasePanel::obj, and Slic3r::GUI::DPIAware< P >::ShowModal().

Referenced by check_axis_z_at_home(), and on_axis_ctrl_xy().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ show_status()

void Slic3r::GUI::StatusPanel::show_status ( int status)
5304{
5305 if (last_status == status) return;
5306 last_status = status;
5307
5308 if (((status & (int) MonitorStatus::MONITOR_DISCONNECTED) != 0)
5309 || ((status & (int) MonitorStatus::MONITOR_DISCONNECTED_SERVER) != 0)
5310 || ((status & (int)MonitorStatus::MONITOR_CONNECTING) != 0)
5311 || ((status & (int)MonitorStatus::MONITOR_NO_PRINTER) != 0)
5312 ) {
5313 show_printing_status(false, false);
5314 m_calibration_btn->Disable();
5315 m_options_btn->Disable();
5316 m_safety_btn->Disable();
5317 m_parts_btn->Disable();
5318 m_panel_monitoring_title->Disable();
5319 } else if ((status & (int) MonitorStatus::MONITOR_NORMAL) != 0) {
5320 show_printing_status(true, true);
5321 m_calibration_btn->Disable();
5322 m_options_btn->Enable();
5323 m_safety_btn->Enable();
5324 m_parts_btn->Enable();
5325 m_panel_monitoring_title->Enable();
5326 }
5327}
@ MONITOR_DISCONNECTED
Definition SideTools.hpp:38
@ MONITOR_NO_PRINTER
Definition SideTools.hpp:37
@ MONITOR_NORMAL
Definition SideTools.hpp:36
@ MONITOR_CONNECTING
Definition SideTools.hpp:40
@ MONITOR_DISCONNECTED_SERVER
Definition SideTools.hpp:39
int last_status
Definition StatusPanel.hpp:706
void show_printing_status(bool ctrl_area=true, bool temp_area=true)
Definition StatusPanel.cpp:3077

References last_status, Slic3r::GUI::StatusBasePanel::m_calibration_btn, Slic3r::GUI::StatusBasePanel::m_options_btn, Slic3r::GUI::StatusBasePanel::m_panel_monitoring_title, Slic3r::GUI::StatusBasePanel::m_parts_btn, Slic3r::GUI::StatusBasePanel::m_safety_btn, MONITOR_CONNECTING, MONITOR_DISCONNECTED, MONITOR_DISCONNECTED_SERVER, MONITOR_NO_PRINTER, MONITOR_NORMAL, and show_printing_status().

Here is the call graph for this function:

◆ show_task_list_info()

void Slic3r::GUI::StatusPanel::show_task_list_info ( bool show = true)
protected

◆ unfinished_child()

StagedBuild * Slic3r::GUI::StagedBuild::unfinished_child ( ) const
inlineprivateinherited
52 {
53 auto it = std::find_if(m_children.begin(), m_children.end(), [](const StagedBuild* child) { return !child->built(); });
54 return it == m_children.end() ? nullptr : *it;
55 }

References m_children.

Referenced by build_step().

Here is the caller graph for this function:

◆ update()

void Slic3r::GUI::StatusPanel::update ( MachineObject * obj)
protected
2920{
2921 if (!obj || !obj->is_info_ready())
2922 {
2923 m_nozzle_btn_panel->Disable();
2924 return;
2925 }
2926
2927 //m_project_task_panel->Freeze();
2929 //m_project_task_panel->Thaw();
2930
2931#if !BBL_RELEASE_TO_PUBLIC
2932 auto delay1 = std::chrono::duration_cast<std::chrono::milliseconds>(obj->last_utc_time - std::chrono::system_clock::now()).count();
2933 auto delay2 = std::chrono::duration_cast<std::chrono::milliseconds>(obj->last_push_time - std::chrono::system_clock::now()).count();
2934 auto delay = wxString::Format(" %ld/%ld", delay1, delay2);
2935 m_staticText_timelapse->SetLabel((obj->is_lan_mode_printer() ? "Local Mqtt" : obj->is_tunnel_mqtt ? "Tunnel Mqtt" : "Cloud Mqtt") + delay);
2936 m_bmToggleBtn_timelapse->Enable(!obj->is_lan_mode_printer());
2937 m_bmToggleBtn_timelapse->SetValue(obj->is_tunnel_mqtt);
2938#endif
2939
2940#if !BBL_RELEASE_TO_PUBLIC
2941 if (obj->HasRecentCloudMessage() && obj->HasRecentLanMessage()) m_mqtt_source->SetLabel("Cloud+Lan");
2942 else if (obj->HasRecentCloudMessage()) m_mqtt_source->SetLabel("Cloud");
2943 else if (obj->HasRecentLanMessage()) m_mqtt_source->SetLabel("Lan");
2944 else m_mqtt_source->SetLabel("None");
2945 m_mqtt_source->Show();
2946#endif
2947
2948 //m_machine_ctrl_panel->Freeze();
2949 if (obj->is_in_printing() && !obj->can_resume()) {
2950 show_printing_status(false, true);
2951 } else {
2953 }
2954
2955 /*STUDIO-12573*/
2956 if (!obj->is_fdm_type()) {
2957 m_switch_lamp->Enable(false);
2958 }
2959
2962
2963 update_ams(obj);
2965
2967
2968 if (obj) {
2969 //nozzle ui
2970 //m_button_left_of_extruder->SetSelected();
2971
2972 // update extrusion calibration
2974 m_extrusion_cali_dlg->update_machine_obj(obj);
2975 m_extrusion_cali_dlg->update();
2976 }
2977
2978 // update calibration status
2979 if (calibration_dlg != nullptr) {
2980 calibration_dlg->update_machine_obj(obj);
2981 calibration_dlg->update_cali(obj);
2982 }
2983
2984 std::string current_printer_type = obj->printer_type;
2985 bool supports_safety = DevPrinterConfigUtil::support_safety_options(current_printer_type);
2986
2987 DevConfig* config = obj->GetConfig();
2988
2989 if (config->SupportFirstLayerInspect() || config->SupportAIMonitor() || obj->is_support_build_plate_marker_detect || obj->is_support_auto_recovery_step_loss) {
2990 m_options_btn->Show();
2991 if (print_options_dlg) {
2992 print_options_dlg->update_machine_obj(obj);
2993 print_options_dlg->update_options(obj);
2994 }
2995 } else {
2996 m_options_btn->Hide();
2997 }
2998
2999
3000 if (obj->support_door_open_check()) {
3001 if (supports_safety) {
3002 m_safety_btn->Show();
3003 if (safety_options_dlg) {
3004 safety_options_dlg->update_machine_obj(obj);
3005 safety_options_dlg->update_options(obj);
3006 }
3007 } else {
3008 m_safety_btn->Hide();
3009 }
3010 } else {
3011 m_safety_btn->Hide();
3012 }
3013
3014 m_parts_btn->Show();
3015
3016
3018 m_panel_control_title->Layout();
3019 }
3020
3021 if (!obj->dev_connection_type.empty()) {
3022 auto iter_connect_type = m_print_connect_types.find(obj->get_dev_id());
3023 if (iter_connect_type != m_print_connect_types.end()) {
3024 if (iter_connect_type->second != obj->dev_connection_type) {
3025
3026 if (iter_connect_type->second == "lan" && obj->dev_connection_type == "cloud") {
3027 m_print_connect_types[obj->get_dev_id()] = obj->dev_connection_type;
3028 }
3029
3030 if (iter_connect_type->second == "cloud" && obj->dev_connection_type == "lan") {
3031 m_print_connect_types[obj->get_dev_id()] = obj->dev_connection_type;
3032 }
3033 }
3034 }
3035 m_print_connect_types[obj->get_dev_id()] = obj->dev_connection_type;
3036 }
3037
3039 }
3040
3042
3043 //m_machine_ctrl_panel->Thaw();
3044}
void update_temp_ctrl(MachineObject *obj)
Definition StatusPanel.cpp:3144
void update_subtask(MachineObject *obj)
Definition StatusPanel.cpp:3793
void update_cali(MachineObject *obj)
Definition StatusPanel.cpp:3709
void update_misc_ctrl(MachineObject *obj)
Definition StatusPanel.cpp:3311
void update_rack(MachineObject *obj)
Definition StatusPanel.cpp:5493
void update_ams(MachineObject *obj)
Definition StatusPanel.cpp:3442
void update_error_message()
Definition StatusPanel.cpp:3053
void update_camera_state(MachineObject *obj)
Definition StatusPanel.cpp:2388
std::map< std::string, std::string > m_print_connect_types
Definition StatusPanel.hpp:704

References calibration_dlg, Slic3r::GUI::StatusBasePanel::m_bmToggleBtn_timelapse, m_extrusion_cali_dlg, Slic3r::GUI::StatusBasePanel::m_mqtt_source, Slic3r::GUI::StatusBasePanel::m_nozzle_btn_panel, Slic3r::GUI::StatusBasePanel::m_options_btn, Slic3r::GUI::StatusBasePanel::m_panel_control_title, Slic3r::GUI::StatusBasePanel::m_parts_btn, m_print_connect_types, Slic3r::GUI::StatusBasePanel::m_safety_btn, Slic3r::GUI::StatusBasePanel::m_staticText_timelapse, Slic3r::GUI::StatusBasePanel::m_switch_lamp, Slic3r::GUI::StatusBasePanel::obj, print_options_dlg, safety_options_dlg, show_printing_status(), Slic3r::DevPrinterConfigUtil::support_safety_options(), Slic3r::DevConfig::SupportAIMonitor(), Slic3r::DevConfig::SupportFirstLayerInspect(), update_ams(), update_cali(), update_camera_state(), update_error_message(), update_misc_ctrl(), update_rack(), update_subtask(), and update_temp_ctrl().

Here is the call graph for this function:

◆ update_ams()

void Slic3r::GUI::StatusPanel::update_ams ( MachineObject * obj)
protected
3443{
3444 // update obj in sub dlg
3445 if (m_ams_setting_dlg && m_ams_setting_dlg->IsShown()) {
3446 m_ams_setting_dlg->UpdateByObj(obj);
3447 }
3449
3450 if (obj && (obj->last_cali_version != obj->cali_version) && (obj->is_lan_mode_printer() || obj->is_security_control_ready())) {
3451 obj->last_cali_version = obj->cali_version;
3452 PACalibExtruderInfo cali_info;
3453 cali_info.nozzle_diameter = obj->GetExtderSystem()->GetNozzleDiameter(0);
3454 cali_info.use_extruder_id = false;
3455 cali_info.use_nozzle_volume_type = false;
3457 }
3458
3459 bool is_support_virtual_tray = obj->ams_support_virtual_tray;
3460 bool is_support_filament_backup = obj->is_support_filament_backup;
3461
3462 if (obj && (obj->is_lan_mode_printer() || obj->is_security_control_ready())) {
3463 obj->check_ams_filament_valid();
3464 }
3465
3467 if ((obj->is_enable_np || obj->is_enable_ams_np) && obj->GetFilaSystem()->GetAmsList().size() > 0) {
3468 ams_mode = AMSModel(obj->GetFilaSystem()->GetAmsList().begin()->second->GetAmsType());
3469 } else if (obj->get_printer_ams_type() == "f1") {
3470 ams_mode = AMSModel::AMS_LITE; // STUDIO-14066
3471 }
3472
3473 if (!obj || !obj->is_connected()) {
3478 last_reading_bits = -1;
3479 last_ams_version = -1;
3480 BOOST_LOG_TRIVIAL(trace) << "machine object" << obj->get_dev_name() << " was disconnected, set show_ams_group is false";
3481
3482 m_ams_control->SetAmsModel(AMSModel::EXT_AMS, ams_mode);
3483 show_ams_group(false);
3485 m_ams_control->show_auto_refill(false);
3486 } else {
3487 m_ams_control->SetAmsModel(ams_mode, ams_mode);
3488 m_filament_step->SetAmsModel(ams_mode, ams_mode);
3489 show_ams_group(true);
3490 //show_filament_load_group(true);
3491
3492 if (obj->GetFilaSystem()->GetAmsList().empty() || obj->ams_exist_bits == 0) {
3493 m_ams_control->show_auto_refill(false);
3494 } else {
3495 m_ams_control->show_auto_refill(true);
3496 }
3497 }
3498
3499 //if (is_support_virtual_tray) m_ams_control->update_vams_kn_value(obj->vt_slot[0], obj);
3501
3502
3503 std::vector<AMSinfo> ams_info;
3504 const auto& ams_list = obj->GetFilaSystem()->GetAmsList();
3505 for (auto ams = ams_list.begin(); ams != ams_list.end(); ams++) {
3506 AMSinfo info;
3507 info.ams_id = ams->first;
3508 if (ams->second->IsExist() && info.parse_ams_info(obj, ams->second, obj->GetFilaSystem()->IsDetectRemainEnabled(), obj->is_support_ams_humidity)) {
3509 ams_info.push_back(info);
3510 }
3511 }
3512
3513 std::vector<AMSinfo> ext_info;
3514 ext_info.clear();
3515 for (auto slot : obj->vt_slot) {
3516 AMSinfo info;
3517 info.parse_ext_info(obj, slot);
3518 if (ams_mode == AMSModel::AMS_LITE) info.ext_type = AMSModelOriginType::LITE_EXT;
3519 ext_info.push_back(info);
3520 }
3521
3522 // must select a current can
3523 m_ams_control->UpdateAms(obj->get_printer_series_str(), obj->printer_type, ams_info, ext_info, *obj->GetExtderSystem(), obj->get_dev_id(), obj, false);
3524 m_ams_control->UpdateAmsDryControl(obj);
3525
3526 last_tray_exist_bits = obj->tray_exist_bits;
3527 last_ams_exist_bits = obj->ams_exist_bits;
3528 last_tray_is_bbl_bits = obj->tray_is_bbl_bits;
3529 last_read_done_bits = obj->tray_read_done_bits;
3530 last_reading_bits = obj->tray_reading_bits;
3531 last_ams_version = obj->ams_version;
3532
3533 std::string curr_ams_id = m_ams_control->GetCurentAms();
3534 std::string curr_can_id = m_ams_control->GetCurrentCan(curr_ams_id);
3535 bool is_vt_tray = false;
3536 if (obj->GetExtderSystem()->GetCurrentAmsId() == std::to_string(VIRTUAL_TRAY_MAIN_ID)) is_vt_tray = true;
3537
3538 // set segment 1, 2
3539 //if (!obj->is_enable_np) {
3540 // if (obj->m_tray_now == std::to_string(255) || obj->m_tray_now == std::to_string(254)) {
3541 // m_ams_control->SetAmsStep(obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
3542 // } else {
3543 // /*if (obj->m_tray_now != "255" && obj->is_filament_at_extruder() && !obj->m_tray_id.empty()) {
3544 // m_ams_control->SetAmsStep(obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id,
3545 // AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
3546 // } else if (obj->m_tray_now != "255") {
3547 // m_ams_control->SetAmsStep(obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id,
3548 // AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP1);
3549 // } else {
3550 // m_ams_control->SetAmsStep(obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id,
3551 // AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
3552 // }*/
3553 // if () {
3554
3555 // }
3556 // }
3557
3558 // m_ams_control->SetExtruder(obj->is_filament_at_extruder(), obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id);
3559 //} else {
3560 /*right*/
3561 if (obj->GetExtderSystem()->GetTotalExtderCount() > 0) {
3562 auto ext = obj->GetExtderSystem()->GetExtderById(MAIN_EXTRUDER_ID);
3563 if (ext->HasFilamentInExt()) {
3564 if (ext->GetSlotNow().ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext->GetSlotNow().ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
3566 } else {
3567 m_ams_control->SetAmsStep(ext->GetSlotNow().ams_id, ext->GetSlotNow().slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
3568 }
3569 } else {
3570 m_ams_control->SetAmsStep(ext->GetSlotNow().ams_id, ext->GetSlotNow().slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
3571 }
3572 m_ams_control->SetExtruder(ext->HasFilamentInExt(), MAIN_EXTRUDER_ID, ext->GetSlotNow().ams_id, ext->GetSlotNow().slot_id);
3573 }
3574
3575 /*left*/
3576 if (obj->GetExtderSystem()->GetTotalExtderCount() > 1) {
3577 auto ext = obj->GetExtderSystem()->GetExtderById(DEPUTY_EXTRUDER_ID);
3578 if (ext->HasFilamentInExt()) {
3579 if (ext->GetSlotNow().ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext->GetSlotNow().ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
3581 } else {
3582 m_ams_control->SetAmsStep(ext->GetSlotNow().ams_id, ext->GetSlotNow().slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
3583 }
3584 } else {
3585 m_ams_control->SetAmsStep(ext->GetSlotNow().ams_id, ext->GetSlotNow().slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
3586 }
3587 m_ams_control->SetExtruder(ext->HasFilamentInExt(), DEPUTY_EXTRUDER_ID, ext->GetSlotNow().ams_id, ext->GetSlotNow().slot_id);
3588 }
3589
3591
3592
3593 const auto& amslist = obj->GetFilaSystem()->GetAmsList();
3594 for (auto ams_it = amslist.begin(); ams_it != amslist.end(); ams_it++) {
3595 std::string ams_id = ams_it->first;
3596 try {
3597 int ams_id_int = atoi(ams_id.c_str());
3598 for (auto tray_it = ams_it->second->GetTrays().begin(); tray_it != ams_it->second->GetTrays().end(); tray_it++) {
3599 std::string tray_id = tray_it->first;
3600 int tray_id_int = atoi(tray_id.c_str());
3601 // new protocol
3602 if (ams_id_int < 128) {
3603 if (ams_it->second->IsAmsLiteMixed()) {
3604 // Mixed AMS-Lite (A2L / N9) RFID-reading bits occupy positions 24..27.
3605 if ((obj->tray_reading_bits & (1 << (AMS_LITE_MIXED_TRAY_INDEX_OFFSET + tray_id_int))) != 0) {
3606 m_ams_control->PlayRridLoading(ams_id, tray_id);
3607 } else {
3608 m_ams_control->StopRridLoading(ams_id, tray_id);
3609 }
3610 } else if ((obj->tray_reading_bits & (1 << (ams_id_int * 4 + tray_id_int))) != 0) {
3611 m_ams_control->PlayRridLoading(ams_id, tray_id);
3612 } else {
3613 m_ams_control->StopRridLoading(ams_id, tray_id);
3614 }
3615 } else {
3616 int check_flag = (1 << (16 + ams_id_int - 128));
3617 if ((obj->tray_reading_bits & check_flag) != 0) {
3618 m_ams_control->PlayRridLoading(ams_id, tray_id);
3619 } else {
3620 m_ams_control->StopRridLoading(ams_id, tray_id);
3621 }
3622 }
3623 }
3624 } catch (...) {}
3625 }
3626
3627 update_ams_control_state(curr_ams_id, curr_can_id);
3628}
#define AMS_LITE_MIXED_TRAY_INDEX_OFFSET
Definition DevDefs.h:96
static void emit_get_PA_calib_infos(const PACalibExtruderInfo &cali_info)
Definition CalibUtils.cpp:605
void show_ams_group(bool show=true)
Definition StatusPanel.cpp:2309
void show_filament_load_group(bool show=true)
Definition StatusPanel.cpp:2336
void update_filament_loading_panel(MachineObject *obj)
Definition StatusPanel.cpp:5507
long last_tray_is_bbl_bits
Definition StatusPanel.hpp:853
void update_ams_control_state(std::string ams_id, std::string slot_id)
Definition StatusPanel.cpp:3631
long last_reading_bits
Definition StatusPanel.hpp:855
long last_read_done_bits
Definition StatusPanel.hpp:854
long last_ams_exist_bits
Definition StatusPanel.hpp:852
long last_ams_version
Definition StatusPanel.hpp:856
@ LITE_EXT
Definition AMSItem.hpp:67
AMSModel
Definition AMSItem.hpp:57
@ EXT_AMS
Definition AMSItem.hpp:58
@ GENERIC_AMS
Definition AMSItem.hpp:59
@ AMS_LITE
Definition AMSItem.hpp:60

References Slic3r::GUI::AMSinfo::ams_id, Slic3r::GUI::AMS_LITE, AMS_LITE_MIXED_TRAY_INDEX_OFFSET, Slic3r::GUI::AMS_ROAD_STEP_COMBO_LOAD_STEP2, Slic3r::GUI::AMS_ROAD_STEP_COMBO_LOAD_STEP3, Slic3r::GUI::AMS_ROAD_STEP_NONE, Slic3r::GUI::AMS_ROAD_TYPE_LOAD, Slic3r::GUI::AMS_ROAD_TYPE_UNLOAD, DEPUTY_EXTRUDER_ID, Slic3r::GUI::CalibUtils::emit_get_PA_calib_infos(), Slic3r::GUI::EXT_AMS, Slic3r::GUI::AMSinfo::ext_type, Slic3r::GUI::GENERIC_AMS, last_ams_exist_bits, last_ams_version, last_read_done_bits, last_reading_bits, last_tray_exist_bits, last_tray_is_bbl_bits, Slic3r::GUI::LITE_EXT, Slic3r::GUI::StatusBasePanel::m_ams_control, m_ams_setting_dlg, m_filament_setting_dlg, Slic3r::GUI::StatusBasePanel::m_filament_step, MAIN_EXTRUDER_ID, Slic3r::PACalibExtruderInfo::nozzle_diameter, Slic3r::GUI::StatusBasePanel::obj, Slic3r::GUI::AMSinfo::parse_ams_info(), Slic3r::GUI::AMSinfo::parse_ext_info(), Slic3r::GUI::StatusBasePanel::show_ams_group(), Slic3r::GUI::StatusBasePanel::show_filament_load_group(), Slic3r::trace(), update_ams_control_state(), update_filament_loading_panel(), Slic3r::PACalibExtruderInfo::use_extruder_id, Slic3r::PACalibExtruderInfo::use_nozzle_volume_type, VIRTUAL_TRAY_DEPUTY_ID, and VIRTUAL_TRAY_MAIN_ID.

Referenced by update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_ams_control_state()

void Slic3r::GUI::StatusPanel::update_ams_control_state ( std::string ams_id,
std::string slot_id )
protected
3632{
3633 wxString load_error_info, unload_error_info;
3634
3635 if (obj->is_in_printing() && !obj->can_resume()) {
3636 load_error_info = _L("The printer is busy with another print job.");
3637 unload_error_info = _L("The printer is busy with another print job.");
3638 } else if (obj->can_resume() && !devPrinterUtil::IsVirtualSlot(ams_id)) {
3639 load_error_info = _L("When printing is paused, filament loading and unloading are only supported for external slots.");
3640 unload_error_info = _L("When printing is paused, filament loading and unloading are only supported for external slots.");
3641 } else {
3642 /*switch now*/
3643 bool in_switch_filament = false;
3644
3645 if (obj->is_enable_np) {
3646 if (obj->GetExtderSystem()->IsBusyLoading()) { in_switch_filament = true; }
3647 } else if (obj->ams_status_main == AMS_STATUS_MAIN_FILAMENT_CHANGE) {
3648 in_switch_filament = true;
3649 }
3650
3651 if (in_switch_filament) {
3652 load_error_info = _L("Current extruder is busy changing filament.");
3653 unload_error_info = _L("Current extruder is busy changing filament.");
3654 }
3655
3656 if (ams_id.empty() || slot_id.empty()) {
3657 load_error_info = _L("Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically load or unload filament.");
3658 unload_error_info = _L("Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically load or unload filament.");
3659 } else if (obj->GetFilaSwitch()->IsInstalled() && devPrinterUtil::IsVirtualSlot(ams_id)) {
3660 // Orca: with a Filament Track Switch installed the external spool cannot be routed, so both actions are blocked.
3661 load_error_info = _L("\"Load\" or \"Unload\" is not supported for external spool while using Filament Track Switch.");
3662 unload_error_info = load_error_info;
3663 } else if (obj->GetFilaSwitch()->IsInstalled() && !obj->GetFilaSwitch()->IsReady()) {
3664 // Orca: an un-calibrated Filament Track Switch cannot route filament to either extruder, so block both actions.
3665 load_error_info = _L("The Filament Track Switch has not been setup. Please setup on printer.");
3666 unload_error_info = load_error_info;
3667 } else if (ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
3668 for (auto ext : obj->GetExtderSystem()->GetExtruders()) {
3669 if (ext.GetSlotNow().ams_id == ams_id && ext.GetSlotNow().slot_id == slot_id)
3670 {
3671 load_error_info = _L("Current slot has already been loaded.");
3672 }
3673 }
3674 } else {
3675 for (auto ext : obj->GetExtderSystem()->GetExtruders()) {
3676 // Orca: with a Filament Track Switch installed a slot is not bound to a single extruder, so skip the "already loaded" identity check.
3677 if (obj->GetFilaSwitch()->IsInstalled()) { continue; }
3678 if (ext.GetSlotNow().ams_id == ams_id && ext.GetSlotNow().slot_id == slot_id)
3679 {
3680 load_error_info = _L("Current slot has already been loaded.");
3681 }
3682 }
3683
3684 /*empty*/
3685 auto ams_item = obj->GetFilaSystem()->GetAmsById(ams_id);
3686 if (!ams_item)
3687 {
3688 load_error_info = _L("Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically load or unload filament.");
3689 }
3690 else
3691 {
3692 auto tray_item = ams_item->GetTray(slot_id);
3693 if (!tray_item)
3694 {
3695 load_error_info = _L("Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically load or unload filament.");
3696 }
3697 else if (!tray_item->is_exists)
3698 {
3699 load_error_info = _L("The selected slot is empty.");
3700 }
3701 }
3702 }
3703 }
3704
3705 m_ams_control->EnableLoadFilamentBtn(load_error_info.empty(), ams_id, slot_id, load_error_info);
3706 m_ams_control->EnableUnLoadFilamentBtn(unload_error_info.empty(), ams_id, slot_id,unload_error_info);
3707}
static bool IsVirtualSlot(int ams_id)
Definition DevDefs.h:165

References _L, Slic3r::AMS_STATUS_MAIN_FILAMENT_CHANGE, Slic3r::devPrinterUtil::IsVirtualSlot(), Slic3r::GUI::StatusBasePanel::m_ams_control, Slic3r::GUI::StatusBasePanel::obj, VIRTUAL_TRAY_DEPUTY_ID, and VIRTUAL_TRAY_MAIN_ID.

Referenced by update_ams().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_basic_print_data()

void Slic3r::GUI::StatusPanel::update_basic_print_data ( bool def = false)
protected
3752{
3753 if (def) {
3754 if (!obj) return;
3755 if (!obj->slice_info) return;
3756 wxString prediction = wxString::Format("%s", get_bbl_time_dhms(obj->slice_info->prediction));
3757 wxString weight = wxString::Format("%.2fg", obj->slice_info->weight);
3758
3759 m_project_task_panel->show_priting_use_info(true, prediction, weight);
3760 }
3761 else {
3762 m_project_task_panel->show_priting_use_info(false, "0m", "0g");
3763 }
3764}
std::string get_bbl_time_dhms(float time_in_secs)
Definition Utils.hpp:633

References Slic3r::get_bbl_time_dhms(), Slic3r::GUI::StatusBasePanel::m_project_task_panel, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by reset_printing_values(), and update_subtask().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_cali()

void Slic3r::GUI::StatusPanel::update_cali ( MachineObject * obj)
protected
3710{
3711 if (!obj) return;
3712
3713 // disable calibration button in 2D
3714 if (!obj->is_fdm_type()) {
3715 m_calibration_btn->SetToolTip(_L("Printer 2D mode does not support 3D calibration"));
3716 m_calibration_btn->SetLabel(_L("Calibration"));
3717 m_calibration_btn->Disable();
3718 return;
3719 } else if (!m_calibration_btn->IsEnabled()) {
3720 m_calibration_btn->SetToolTip(wxEmptyString);
3721 m_calibration_btn->Enable();
3722 }
3723
3724 if (obj->is_calibration_running()) {
3725 m_calibration_btn->SetLabel(_L("Calibrating"));
3726 if (calibration_dlg && calibration_dlg->IsShown()) {
3727 m_calibration_btn->Disable();
3728 } else {
3729 m_calibration_btn->Enable();
3730 }
3731 } else {
3732 // IDLE
3733 m_calibration_btn->SetLabel(_L("Calibration"));
3734 // disable in printing
3735 if (obj->is_in_printing()) {
3736 m_calibration_btn->Disable();
3737 } else {
3738 m_calibration_btn->Enable();
3739 }
3740 }
3741}

References _L, calibration_dlg, Slic3r::GUI::StatusBasePanel::m_calibration_btn, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by update().

Here is the caller graph for this function:

◆ update_calib_bitmap()

void Slic3r::GUI::StatusPanel::update_calib_bitmap ( )
protected
3743 {
3744 m_current_print_mode = PrintingTaskType::NOT_CLEAR; //printing task might be changed when updating.
3745 if (calib_bitmap != nullptr) {
3746 delete calib_bitmap;
3747 calib_bitmap = nullptr;
3748 }
3749}
wxBitmap * calib_bitmap
Definition StatusPanel.hpp:708
@ NOT_CLEAR
Definition StatusPanel.hpp:101

References calib_bitmap, m_current_print_mode, and Slic3r::GUI::NOT_CLEAR.

Referenced by reset_printing_values(), update_cloud_subtask(), and update_sdcard_subtask().

Here is the caller graph for this function:

◆ update_camera_state()

void Slic3r::GUI::StatusPanel::update_camera_state ( MachineObject * obj)
protected
2389{
2390 if (!obj) return;
2391
2392 auto agent = wxGetApp().getAgent();
2393 const auto camera_mode = agent ? agent->get_camera_stream_mode() : CameraStreamMode::none;
2394 const bool use_webview = camera_mode == CameraStreamMode::http_snapshot;
2395 if (use_webview) {
2396 //m_camera_switch_button->Hide();
2397 if (!m_custom_camera_view->IsShown()) {
2398 // why: do not reload the WebView URL per tick, or redirects can cause a reload loop.
2399 // MediaPlayCtrl (via its WebMediaController) owns loading/playing the stream itself.
2400 m_custom_camera_view->Show();
2401 m_media_ctrl->Hide();
2402 }
2403 } else {
2404 if (m_custom_camera_view->IsShown()) {
2405 m_custom_camera_view->Hide();
2406 // Stop the snapshot WebView before switching to native playback
2407 // or leaving the camera mode.
2408 m_media_play_ctrl->StopWebStream();
2409 }
2410 m_media_ctrl->Show();
2411 }
2412
2413 //sdcard
2414 auto sdcard_state = obj->GetStorage()->get_sdcard_state();
2415 if (m_last_sdcard != sdcard_state) {
2416 if (sdcard_state == DevStorage::NO_SDCARD) {
2418 m_bitmap_sdcard_img->SetToolTip(_L("No Storage"));
2419 } else if (sdcard_state == DevStorage::HAS_SDCARD_NORMAL) {
2421 m_bitmap_sdcard_img->SetToolTip(_L("Storage"));
2422 } else if (sdcard_state == DevStorage::HAS_SDCARD_ABNORMAL) {
2424 m_bitmap_sdcard_img->SetToolTip(_L("Storage Abnormal"));
2425 } else {
2427 m_bitmap_sdcard_img->SetToolTip(_L("Storage"));
2428 }
2429 m_last_sdcard = sdcard_state;
2430 m_panel_monitoring_title->Layout();
2431 }
2432
2433 //recording
2434 if (m_last_recording != (obj->is_recording() ? 1 : 0)) {
2435 if (obj->is_recording()) {
2437 }
2438 else {
2440 }
2441 m_last_recording = obj->is_recording() ? 1 : 0;
2442 }
2443
2444 if (use_webview) {
2445 if (m_bitmap_recording_img->IsShown()) {
2446 m_bitmap_recording_img->Hide();
2447 m_panel_monitoring_title->Layout();
2448 }
2449 } else if (!m_bitmap_recording_img->IsShown()) {
2450 m_bitmap_recording_img->Show();
2451 m_panel_monitoring_title->Layout();
2452 }
2453
2454 /*if (m_bitmap_recording_img->IsShown())
2455 m_bitmap_recording_img->Hide();*/
2456
2457 //timelapse
2458 if (obj->is_support_timelapse) {
2459 if (m_last_timelapse != (obj->is_timelapse() ? 1: 0)) {
2460 if (obj->is_timelapse()) {
2462 } else {
2464 }
2465 m_last_timelapse = obj->is_timelapse() ? 1 : 0;
2466 }
2467
2468 if (!m_bitmap_timelapse_img->IsShown()) {
2469 m_bitmap_timelapse_img->Show();
2470 m_panel_monitoring_title->Layout();
2471 }
2472 } else {
2473 if (m_bitmap_timelapse_img->IsShown()) {
2474 m_bitmap_timelapse_img->Hide();
2475 m_panel_monitoring_title->Layout();
2476 }
2477 }
2478
2479 //vcamera
2480 if (obj->virtual_camera) {
2481 if (m_last_vcamera != (m_media_play_ctrl->IsStreaming() ? 1: 0)) {
2482 if (m_media_play_ctrl->IsStreaming()) {
2483 m_bitmap_vcamera_img->SetBitmap(m_bitmap_vcamera_on.bmp());
2484 } else {
2486 }
2487 m_last_vcamera = m_media_play_ctrl->IsStreaming() ? 1 : 0;
2488 }
2489
2490 if (!m_bitmap_vcamera_img->IsShown()) {
2491 m_bitmap_vcamera_img->Show();
2492 m_panel_monitoring_title->Layout();
2493 }
2494 } else {
2495 if (m_bitmap_vcamera_img->IsShown()) {
2496 m_bitmap_vcamera_img->Hide();
2497 m_panel_monitoring_title->Layout();
2498 }
2499 }
2500
2501 //camera setting
2502 if (m_camera_popup && m_camera_popup->IsShown()) {
2503 bool show_vcamera = m_media_play_ctrl->IsStreaming();
2505 }
2506
2507 m_setting_button->Show(!use_webview);
2508}
int m_last_recording
Definition StatusPanel.hpp:686
int m_last_vcamera
Definition StatusPanel.hpp:689
int m_last_timelapse
Definition StatusPanel.hpp:687
int m_last_sdcard
Definition StatusPanel.hpp:685
@ none
Definition IPrinterAgent.hpp:63
@ http_snapshot
Definition IPrinterAgent.hpp:68

References _L, Slic3r::DevStorage::HAS_SDCARD_ABNORMAL, Slic3r::DevStorage::HAS_SDCARD_NORMAL, Slic3r::http_snapshot, Slic3r::GUI::StatusBasePanel::m_bitmap_recording_img, Slic3r::GUI::StatusBasePanel::m_bitmap_recording_off, Slic3r::GUI::StatusBasePanel::m_bitmap_recording_on, Slic3r::GUI::StatusBasePanel::m_bitmap_sdcard_img, Slic3r::GUI::StatusBasePanel::m_bitmap_sdcard_state_abnormal, Slic3r::GUI::StatusBasePanel::m_bitmap_sdcard_state_no, Slic3r::GUI::StatusBasePanel::m_bitmap_sdcard_state_normal, Slic3r::GUI::StatusBasePanel::m_bitmap_timelapse_img, Slic3r::GUI::StatusBasePanel::m_bitmap_timelapse_off, Slic3r::GUI::StatusBasePanel::m_bitmap_timelapse_on, Slic3r::GUI::StatusBasePanel::m_bitmap_vcamera_img, Slic3r::GUI::StatusBasePanel::m_bitmap_vcamera_off, Slic3r::GUI::StatusBasePanel::m_bitmap_vcamera_on, m_camera_popup, Slic3r::GUI::StatusBasePanel::m_custom_camera_view, m_last_recording, m_last_sdcard, m_last_timelapse, m_last_vcamera, Slic3r::GUI::StatusBasePanel::m_media_ctrl, Slic3r::GUI::StatusBasePanel::m_media_play_ctrl, Slic3r::GUI::StatusBasePanel::m_panel_monitoring_title, Slic3r::GUI::StatusBasePanel::m_setting_button, Slic3r::DevStorage::NO_SDCARD, Slic3r::none, Slic3r::GUI::StatusBasePanel::obj, and show_vcamera.

Referenced by update().

Here is the caller graph for this function:

◆ update_cloud_subtask()

void Slic3r::GUI::StatusPanel::update_cloud_subtask ( MachineObject * obj)
protected
4020{
4021 if (!obj) return;
4022 if (!obj->subtask_) return;
4023
4024 if (is_task_changed(obj)) {
4025 obj->set_modeltask(nullptr);
4026 obj->free_slice_info();
4028 BOOST_LOG_TRIVIAL(info) << "monitor: change to sub task id = " << obj->subtask_->task_id;
4029 if (web_request.IsOk() && web_request.GetState() == wxWebRequest::State_Active) {
4030 BOOST_LOG_TRIVIAL(info) << "web_request: cancelled";
4031 web_request.Cancel();
4032 }
4034 }
4035
4038 if (obj->slice_info) {
4039 m_request_url = wxString(obj->slice_info->thumbnail_url);
4041 }
4042 }
4043}
bool is_task_changed(MachineObject *obj)
Definition StatusPanel.cpp:2900
bool load_thumbnail_from_url(const wxString &url, MachineObject *obj)
Definition StatusPanel.cpp:4045

References is_task_changed(), load_thumbnail_from_url(), m_request_url, m_start_loading_thumbnail, Slic3r::GUI::StatusBasePanel::obj, reset_printing_values(), update_calib_bitmap(), and web_request.

Referenced by update_subtask().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_error_message()

void Slic3r::GUI::StatusPanel::update_error_message ( )
3054{
3055 if (!obj) return;
3056
3057 static int last_error = -1;
3058
3059 if (obj->print_error <= 0) {
3061 } else if (obj->print_error != last_error) {
3062 /* clear old dialog */
3063 if (m_print_error_dlg) { delete m_print_error_dlg; }
3064
3065 /* show device error message*/
3066 m_print_error_dlg = new DeviceErrorDialog(obj, this);
3067 wxString error_msg = m_print_error_dlg->show_error_code(obj->print_error);
3068 BOOST_LOG_TRIVIAL(info) << "print error: device error code = "<< obj->print_error;
3069
3070 /* show error message on task panel */
3071 if(!error_msg.IsEmpty()) { m_project_task_panel->show_error_msg(error_msg); }
3072 }
3073
3074 last_error = obj->print_error;
3075}
DeviceErrorDialog * m_print_error_dlg
Definition StatusPanel.hpp:670

References error_info_reset(), m_print_error_dlg, Slic3r::GUI::StatusBasePanel::m_project_task_panel, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by Slic3r::GUI::CalibrationCaliPage::update(), and update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_extruder_status()

void Slic3r::GUI::StatusPanel::update_extruder_status ( MachineObject * obj)
protected
3438{
3439 if (!obj) return;
3440}

References Slic3r::GUI::StatusBasePanel::obj.

Referenced by msw_rescale(), and update_misc_ctrl().

Here is the caller graph for this function:

◆ update_filament_loading_panel()

void Slic3r::GUI::StatusPanel::update_filament_loading_panel ( MachineObject * obj)
protected
5508{
5509 if (!obj) {
5511 return;
5512 }
5513
5514 bool ams_loading_state = false;
5515 auto ams_status_sub = obj->ams_status_sub;
5516
5517 // Skip busy-loading detection during a cold pull.
5518 if (obj->is_enable_np && obj->ams_status_main != AMS_STATUS_MAIN_COLD_PULL) {
5519 ams_loading_state = obj->GetExtderSystem()->IsBusyLoading();
5520 } else if (obj->ams_status_main == AMS_STATUS_MAIN_FILAMENT_CHANGE) {
5521 ams_loading_state = true;
5522 }
5523
5524 if (ams_loading_state) {
5526
5527 const std::string& cur_ams_id = obj->GetExtderSystem()->GetCurrentAmsId();
5528 const std::string& cur_tray_id = obj->GetExtderSystem()->GetCurrentSlotId();
5529 if (!cur_ams_id.empty() && !cur_tray_id.empty()) {
5530 m_filament_step->updateID(std::atoi(cur_ams_id.c_str()), std::atoi(cur_tray_id.c_str()));
5531 }
5532
5533 auto loading_ext = obj->GetExtderSystem()->GetLoadingExtder();
5534 auto tar = loading_ext ? loading_ext->GetSlotTarget() : DevAmsSlotInfo();
5535 bool busy_for_vt_loading = (tar.ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || tar.ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) && !obj->is_target_slot_unload();
5536 if (busy_for_vt_loading) {
5537 // wait to heat hotend
5538 if (ams_status_sub == 0x02) {
5540 } else if (ams_status_sub == 0x05) {
5542 } else if (ams_status_sub == 0x06) {
5544 } else if (ams_status_sub == 0x07) {
5546 } else {
5548 ams_loading_state = false;
5549 }
5550 } else {
5551 // wait to heat hotend
5552 if (ams_status_sub == 0x02) {
5553 if (!obj->is_target_slot_unload()) {
5555 } else {
5557 }
5558 } else if (ams_status_sub == 0x03) {
5559 if (!obj->is_target_slot_unload()) {
5561 } else {
5563 }
5564 } else if (ams_status_sub == 0x04) {
5565 if (!obj->is_target_slot_unload()) {
5567 } else {
5569 }
5570 } else if (ams_status_sub == 0x05) {
5571 if (!obj->is_target_slot_unload()) {
5572 if (m_is_load_with_temp) {
5574 } else {
5576 }
5577
5578 } else {
5580 }
5581 } else if (ams_status_sub == 0x06) {
5582 if (!obj->is_target_slot_unload()) {
5584 } else {
5586 }
5587 } else if (ams_status_sub == 0x07) {
5588 if (!obj->is_target_slot_unload()) {
5589 if (m_is_load_with_temp) {
5591 } else {
5593 }
5594 } else {
5596 }
5597 } else if (ams_status_sub == 0x08) {
5598 if (!obj->is_target_slot_unload()) {
5600 } else {
5602 }
5603 } else if (ams_status_sub == 0x09) {
5604 //just wait
5605 } else if (ams_status_sub == 0x0B) {
5606 if (!obj->is_target_slot_unload()) {
5608 } else {
5610 }
5611 } else {
5613 ams_loading_state = false;
5614 }
5615 }
5616 } else if (obj->ams_status_main == AMS_STATUS_MAIN_ASSIST) {
5618 ams_loading_state = false;
5619 } else {
5621 ams_loading_state = false;
5622 }
5623
5624 // Orca: show the Stop button when the printer supports aborting a filament change (flag3 bit-13 or printer config)
5625 m_fila_change_abort->Show(ams_loading_state &&
5626 (obj->is_support_fila_change_abort || DevPrinterConfigUtil::support_ams_fila_change_abort(obj->printer_type)));
5627 show_filament_load_group(ams_loading_state);
5628}
static bool support_ams_fila_change_abort(std::string type_str)
Definition DevConfigUtil.h:90
bool m_is_load_with_temp
Definition StatusPanel.hpp:691
@ STEP_PURGE_OLD_FILAMENT
Definition AMSItem.hpp:153
@ STEP_CUT_FILAMENT
Definition AMSItem.hpp:149
@ STEP_CHECK_POSITION
Definition AMSItem.hpp:155
@ STEP_CONFIRM_EXTRUDED
Definition AMSItem.hpp:154
@ STEP_PUSH_NEW_FILAMENT
Definition AMSItem.hpp:151
@ STEP_IDLE
Definition AMSItem.hpp:147
@ STEP_HEAT_NOZZLE
Definition AMSItem.hpp:148
@ STEP_PULL_CURR_FILAMENT
Definition AMSItem.hpp:150
@ STEP_TYPE_VT_LOAD
Definition AMSItem.hpp:163
@ STEP_TYPE_LOAD
Definition AMSItem.hpp:161
@ STEP_TYPE_UNLOAD
Definition AMSItem.hpp:162
@ AMS_STATUS_MAIN_COLD_PULL
Definition DevDefs.h:51
@ AMS_STATUS_MAIN_ASSIST
Definition DevDefs.h:49

References Slic3r::AMS_STATUS_MAIN_ASSIST, Slic3r::AMS_STATUS_MAIN_COLD_PULL, Slic3r::AMS_STATUS_MAIN_FILAMENT_CHANGE, Slic3r::GUI::StatusBasePanel::m_fila_change_abort, Slic3r::GUI::StatusBasePanel::m_filament_step, m_is_load_with_temp, Slic3r::GUI::StatusBasePanel::obj, Slic3r::GUI::StatusBasePanel::show_filament_load_group(), Slic3r::GUI::STEP_CHECK_POSITION, Slic3r::GUI::STEP_CONFIRM_EXTRUDED, Slic3r::GUI::STEP_CUT_FILAMENT, Slic3r::GUI::STEP_HEAT_NOZZLE, Slic3r::GUI::STEP_IDLE, Slic3r::GUI::STEP_PULL_CURR_FILAMENT, Slic3r::GUI::STEP_PURGE_OLD_FILAMENT, Slic3r::GUI::STEP_PUSH_NEW_FILAMENT, Slic3r::GUI::STEP_TYPE_LOAD, Slic3r::GUI::STEP_TYPE_UNLOAD, Slic3r::GUI::STEP_TYPE_VT_LOAD, Slic3r::DevPrinterConfigUtil::support_ams_fila_change_abort(), update_load_with_temp(), VIRTUAL_TRAY_DEPUTY_ID, and VIRTUAL_TRAY_MAIN_ID.

Referenced by update_ams().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_left_time()

void Slic3r::GUI::StatusPanel::update_left_time ( int mc_left_time)
protected

◆ update_load_with_temp()

void Slic3r::GUI::StatusPanel::update_load_with_temp ( )
protected
4383{
4384 if (!obj->is_filament_at_extruder()) {
4385 m_is_load_with_temp = true;
4386 }
4387 else {
4388 m_is_load_with_temp = false;
4389 }
4390}

References m_is_load_with_temp, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by on_ams_load_curr(), and update_filament_loading_panel().

Here is the caller graph for this function:

◆ update_misc_ctrl()

void Slic3r::GUI::StatusPanel::update_misc_ctrl ( MachineObject * obj)
protected
3312{
3313 auto get_extder_shown_state = [](bool ext_has_filament) -> ExtruderState
3314 {
3315 // no data to distinguish ExtruderState::UNLOAD or LOAD, use LOAD png as default
3316 return ext_has_filament ? ExtruderState::FILLED_LOAD : ExtruderState::EMPTY_LOAD;
3317 };
3318
3319 if (!obj) return;
3320
3321 /*extder*/
3322 auto extder_system = obj->GetExtderSystem();
3323 m_nozzle_num = extder_system->GetTotalExtderCount();
3324 int select_index = m_nozzle_num - 1;
3325
3326 if (m_nozzle_num >= 2) {
3327 m_extruder_book->SetSelection(m_nozzle_num);
3328
3329 /*style*/
3330 m_nozzle_btn_panel->Show();
3331 m_extruderImage[select_index]->setExtruderCount(m_nozzle_num);
3332
3333 if (obj->GetExtderSystem()->GetTotalExtderSize() > 1)
3334 {
3335 m_extruderImage[select_index]->update(get_extder_shown_state(obj->GetExtderSystem()->HasFilamentInExt(0)),
3336 get_extder_shown_state(obj->GetExtderSystem()->HasFilamentInExt(1)));
3337 }
3338
3339 /*current*/
3340 /*update when extder position changed or the machine changed*/
3341 if (obj->GetExtderSystem()->GetCurrentExtderId() == 0xf)
3342 {
3343 m_extruderImage[select_index]->setExtruderUsed("");
3344 m_nozzle_btn_panel->updateState("");
3345 }
3346 else if (obj->GetExtderSystem()->GetCurrentExtderId() == MAIN_EXTRUDER_ID)
3347 {
3348 m_extruderImage[select_index]->setExtruderUsed("right");
3349 m_nozzle_btn_panel->updateState("right");
3350 }
3351 else if (obj->GetExtderSystem()->GetCurrentExtderId() == DEPUTY_EXTRUDER_ID)
3352 {
3353 m_extruderImage[select_index]->setExtruderUsed("left");
3354 m_nozzle_btn_panel->updateState("left");
3355 }
3356
3357 m_nozzle_btn_panel->SetClientData(obj);
3358
3359 /*enable status*/
3360 /* Can do switch while printing pause STUDIO-9789*/
3361 if ((obj->is_in_printing() && !obj->is_in_printing_pause()) ||
3362 obj->ams_status_main == AMS_STATUS_MAIN_FILAMENT_CHANGE ||
3363 obj->targ_nozzle_id_from_pc != INVALID_EXTRUDER_ID)
3364 {
3365 m_nozzle_btn_panel->Disable();
3366 }
3367 else
3368 {
3369 m_nozzle_btn_panel->Enable();
3370 }
3371 } else {
3372 m_nozzle_btn_panel->Hide();
3373 m_extruder_book->SetSelection(m_nozzle_num);
3374 m_extruderImage[select_index]->setExtruderCount(m_nozzle_num);
3375
3376 if (extder_system->GetTotalExtderSize() > 0)
3377 {
3378 ExtruderState shown_state = get_extder_shown_state(extder_system->HasFilamentInExt(0));
3379 m_extruderImage[select_index]->update(shown_state);
3380 }
3381 }
3382
3383 /*switch extder*/
3385 m_extruder_label->Show(!m_extruder_switching_status->has_content_shown());/*hide the label if there are shown infos from m_extruder_switching_status*/
3386
3387 /*other*/
3388 if (obj->is_core_xy()) {
3389 m_staticText_z_tip->SetLabel(_L("Bed"));
3390 } else {
3391 m_staticText_z_tip->SetLabel(_L_CONTEXT("Z", "Axis"));
3392 }
3393
3394 // update extruder icon
3396
3397 if (obj->is_fdm_type()) {
3398 if (!m_fan_panel->IsShown())
3399 m_fan_panel->Show();
3400 bool is_suppt_part_fun = true;
3401 bool is_suppt_aux_fun = obj->GetFan()->GetSupportAuxFanData();
3402 bool is_suppt_cham_fun = obj->GetFan()->GetSupportChamberFan();
3403 if (m_fan_control_popup) { m_fan_control_popup->update_fan_data(obj); }
3404 } else {
3405 if (m_fan_panel->IsShown()) {
3406 m_fan_panel->Hide();
3407 }
3408 if (m_fan_control_popup && m_fan_control_popup->IsShown())
3409 m_fan_control_popup->Hide();
3410 }
3411
3412 obj->is_series_o() ? m_switch_fan->UseTextAirCondition() : m_switch_fan->UseTextFan();
3413
3414 //update cham fan
3415
3416 /*other*/
3417 bool light_on = obj->GetLamp()->IsChamberLightOn();
3418 BOOST_LOG_TRIVIAL(trace) << "light: " << (light_on ? "on" : "off");
3419 if (m_switch_lamp_timeout > 0)
3421 else {
3422 m_switch_lamp->SetValue(light_on);
3423 /*wxString label = light_on ? "On" : "Off";
3424 m_switch_lamp->SetLabels(label, label);*/
3425 }
3426
3427 if (speed_lvl_timeout > 0)
3429 else {
3430 // update speed
3431 this->speed_lvl = obj->GetPrintingSpeedLevel();
3432 wxString text_speed = wxString::Format("%d%%", obj->printing_speed_mag);
3433 m_switch_speed->SetLabels(text_speed, text_speed);
3434 }
3435}
#define INVALID_EXTRUDER_ID
Definition DevDefs.h:104
int m_nozzle_num
Definition StatusPanel.hpp:526
ExtruderState
Definition StatusPanel.hpp:104
@ EMPTY_LOAD
Definition StatusPanel.hpp:107
@ FILLED_LOAD
Definition StatusPanel.hpp:105

References _L, _L_CONTEXT, Slic3r::AMS_STATUS_MAIN_FILAMENT_CHANGE, DEPUTY_EXTRUDER_ID, Slic3r::GUI::EMPTY_LOAD, Slic3r::GUI::FILLED_LOAD, INVALID_EXTRUDER_ID, Slic3r::GUI::StatusBasePanel::m_extruder_book, Slic3r::GUI::StatusBasePanel::m_extruder_label, Slic3r::GUI::StatusBasePanel::m_extruder_switching_status, Slic3r::GUI::StatusBasePanel::m_extruderImage, m_fan_control_popup, Slic3r::GUI::StatusBasePanel::m_fan_panel, Slic3r::GUI::StatusBasePanel::m_nozzle_btn_panel, Slic3r::GUI::StatusBasePanel::m_nozzle_num, Slic3r::GUI::StatusBasePanel::m_staticText_z_tip, Slic3r::GUI::StatusBasePanel::m_switch_fan, Slic3r::GUI::StatusBasePanel::m_switch_lamp, Slic3r::GUI::StatusBasePanel::m_switch_lamp_timeout, Slic3r::GUI::StatusBasePanel::m_switch_speed, MAIN_EXTRUDER_ID, Slic3r::GUI::StatusBasePanel::obj, speed_lvl, speed_lvl_timeout, Slic3r::trace(), and update_extruder_status().

Referenced by update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_model_info()

void Slic3r::GUI::StatusPanel::update_model_info ( )
protected
3767{
3768 auto get_subtask_fn = [this](BBLModelTask* subtask) {
3769 CallAfter([this, subtask]() {
3770 if (obj && obj->subtask_id_ == subtask->task_id) {
3771 obj->set_modeltask(subtask);
3772 }
3773 });
3774 };
3775
3776
3777 if (wxGetApp().getAgent() && obj) {
3778 BBLSubTask* curr_task = obj->get_subtask();
3779 if (curr_task) {
3780 BBLModelTask* curr_model_task = obj->get_modeltask();
3781 if (!curr_model_task && !request_model_info_flag) {
3782 curr_model_task = new BBLModelTask();
3783 curr_model_task->task_id = curr_task->task_id;
3785 if (!curr_model_task->task_id.empty() && curr_model_task->task_id.compare("0") != 0) {
3786 wxGetApp().getAgent()->get_subtask(curr_model_task, get_subtask_fn, wxGetApp().get_printer_cloud_provider());
3787 }
3788 }
3789 }
3790 }
3791}

References Slic3r::GUI::StatusBasePanel::obj, request_model_info_flag, Slic3r::BBLModelTask::task_id, and Slic3r::BBLSubTask::task_id.

Referenced by update_subtask().

Here is the caller graph for this function:

◆ update_partskip_button()

void Slic3r::GUI::StatusPanel::update_partskip_button ( MachineObject * obj)
protected
2772 {
2773 if (!obj) return;
2774
2775 auto partskip_button = m_project_task_panel->get_partskip_button();
2776 if( obj->is_support_partskip ){
2777 partskip_button->Show();
2778 }else{
2779 partskip_button->Hide();
2780 }
2781 BOOST_LOG_TRIVIAL(info) << "part skip: is_support_partskip: "<< obj->is_support_partskip;
2782}

References Slic3r::GUI::StatusBasePanel::m_project_task_panel, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by update_subtask().

Here is the caller graph for this function:

◆ update_partskip_subtask()

void Slic3r::GUI::StatusPanel::update_partskip_subtask ( MachineObject * obj)
protected
3993 {
3994 if (!obj) return;
3995 if (!obj->subtask_) return;
3996
3997 auto partskip_button = m_project_task_panel->get_partskip_button();
3998 if (partskip_button) {
3999 int part_cnt = 0;
4000 if(m_project_task_panel->get_part_skipped_dirty() > 0){
4001 m_project_task_panel->set_part_skipped_dirty(m_project_task_panel->get_part_skipped_dirty() - 1);
4002 part_cnt = m_project_task_panel->get_part_skipped_count();
4003 BOOST_LOG_TRIVIAL(info) << "part skip: stop recv printer dirty data.";
4004 }else{
4005 part_cnt = obj->m_partskip_ids.size();
4006 BOOST_LOG_TRIVIAL(info) << "part skip: recv printer normal data.";
4007 }
4008 if (part_cnt > 0)
4009 partskip_button->SetLabel(wxString::Format("(%d)", part_cnt));
4010 else
4011 partskip_button->SetLabel("");
4012 }
4013
4014 if(m_partskip_dlg && m_partskip_dlg->IsShown()) {
4015 m_partskip_dlg->UpdatePartsStateFromPrinter(obj);
4016 }
4017}

References m_partskip_dlg, Slic3r::GUI::StatusBasePanel::m_project_task_panel, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by update_subtask().

Here is the caller graph for this function:

◆ update_printer_parts_options()

void Slic3r::GUI::StatusPanel::update_printer_parts_options ( MachineObject * obj)
protected
5206{
5207 if(obj_){
5208 if(print_parts_dlg && print_parts_dlg->IsShown()){
5209 print_parts_dlg->update_machine_obj(obj_);
5210 print_parts_dlg->UpdateNozzleInfo();
5211 }
5212 }
5213}

References print_parts_dlg.

Referenced by update_subtask().

Here is the caller graph for this function:

◆ update_rack()

void Slic3r::GUI::StatusPanel::update_rack ( MachineObject * obj)
protected
5494{
5495 // Rack switch + live rack panel are shown only for printers whose nozzle system reports a rack
5496 // (H2C). Every other Bambu printer keeps the switch hidden and the panel collapsed -> the AMS
5497 // monitor page is unchanged for X1/P1/A1/H2D/H2S.
5498 if (obj && obj->GetNozzleSystem()->GetNozzleRack()->IsSupported()) {
5499 m_ams_rack_switch->Show();
5500 m_panel_nozzle_rack->UpdateRackInfo(obj->GetNozzleSystem()->GetNozzleRack());
5501 } else {
5502 m_ams_rack_switch->Show(false);
5503 m_panel_nozzle_rack->Show(false);
5504 }
5505}

References Slic3r::GUI::StatusBasePanel::m_ams_rack_switch, Slic3r::GUI::StatusBasePanel::m_panel_nozzle_rack, and Slic3r::GUI::StatusBasePanel::obj.

Referenced by update().

Here is the caller graph for this function:

◆ update_sdcard_subtask()

void Slic3r::GUI::StatusPanel::update_sdcard_subtask ( MachineObject * obj)
protected
4077{
4078 if (!obj) return;
4079
4080 const wxString thumbnail_url = wxString(obj->m_agent_thumbnail_url);
4081 if (!thumbnail_url.IsEmpty()) {
4082 if (m_request_url != thumbnail_url || !m_load_sdcard_thumbnail) {
4083 if (web_request.IsOk() && web_request.GetState() == wxWebRequest::State_Active)
4084 web_request.Cancel();
4086 m_request_url = thumbnail_url;
4087 load_thumbnail_from_url(thumbnail_url, obj);
4089 }
4090 return;
4091 }
4092
4093 if (!m_load_sdcard_thumbnail || !m_request_url.IsEmpty()) {
4096 m_project_task_panel->get_bitmap_thumbnail()->SetBitmap(m_thumbnail_sdcard.bmp());
4097 m_project_task_panel->set_thumbnail_img(m_thumbnail_sdcard.bmp(), m_thumbnail_sdcard.name());
4098 }
4099 task_thumbnail_state = ThumbnailState::SDCARD_THUMBNAIL;
4101 m_request_url.clear();
4102 }
4103}

References Slic3r::GUI::CALIBRATION, load_thumbnail_from_url(), m_current_print_mode, m_load_sdcard_thumbnail, Slic3r::GUI::StatusBasePanel::m_project_task_panel, m_request_url, Slic3r::GUI::StatusBasePanel::m_thumbnail_sdcard, Slic3r::GUI::StatusBasePanel::obj, SDCARD_THUMBNAIL, update_calib_bitmap(), and web_request.

Referenced by update_subtask().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_subtask()

void Slic3r::GUI::StatusPanel::update_subtask ( MachineObject * obj)
protected
3794{
3795 if (!obj) return;
3797 if (calib_bitmap == nullptr) {
3801 // the printing task is calibrattion, not normal printing.
3802 else if (m_calib_mode != CalibMode::Calib_None) {
3804 auto get_bitmap = [](wxString& png_path, int width, int height) {
3805 wxImage image(width, height);
3806 image.LoadFile(png_path, wxBITMAP_TYPE_PNG);
3807 image = image.Scale(width, height, wxIMAGE_QUALITY_NORMAL);
3808 return wxBitmap(image);
3809 };
3810 wxString png_path = "";
3811 int width = m_project_task_panel->get_bitmap_thumbnail()->GetSize().x;
3812 int height = m_project_task_panel->get_bitmap_thumbnail()->GetSize().y;
3814 std::string image_name = obj->get_auto_pa_cali_thumbnail_img_str();
3816 if (obj->is_multi_extruders()) {
3817 int cur_ext_id = obj->GetExtderSystem()->GetCurrentExtderId();
3818 if (cur_ext_id == 0) {
3819 image_name += "_right";
3820 }
3821 else {
3822 image_name += "_left";
3823 }
3824 }
3825 png_path = (boost::format("%1%/images/%2%.png") % resources_dir() % image_name).str();
3826 }
3828 png_path = (boost::format("%1%/images/flow_rate_calibration_auto.png") % resources_dir()).str();
3829 }
3830
3831 }
3832 else if (m_calib_method == CALI_METHOD_MANUAL) {
3834 if (cali_stage == 0) { // Line mode
3835 png_path = (boost::format("%1%/images/fd_calibration_manual.png") % resources_dir()).str();
3836 }
3837 else if (cali_stage == 1) { // Pattern mode
3838 png_path = (boost::format("%1%/images/fd_pattern_manual_device.png") % resources_dir()).str();
3839 }
3840 }
3841 }
3842 if (png_path != "") {
3843 calib_bitmap = new wxBitmap;
3844 *calib_bitmap = get_bitmap(png_path, width, height);
3845 }
3846 }
3847 }
3848 if (calib_bitmap != nullptr)
3849 m_project_task_panel->set_thumbnail_img(*calib_bitmap, "");
3850 }
3851
3852 m_project_task_panel->show_layers_num(obj->is_support_layer_num);
3853
3857
3858 if (obj->is_system_printing() || obj->is_in_calibration()) {
3860 } else if (obj->is_in_printing() || obj->print_status == "FINISH") {
3862
3863 if (obj->is_in_prepare() || obj->print_status == "SLICING") {
3864 m_project_task_panel->market_scoring_hide();
3865 m_project_task_panel->get_request_failed_panel()->Hide();
3866 m_project_task_panel->enable_partskip_button(nullptr, false);
3867 m_project_task_panel->enable_abort_button(false);
3868 m_project_task_panel->enable_pause_resume_button(false, "pause_disable");
3869 wxString prepare_text;
3870 bool show_percent = true;
3871
3872 if (obj->is_in_prepare()) {
3873 prepare_text = wxString::Format(_L("Downloading..."));
3874 }
3875 else if (obj->print_status == "SLICING") {
3876 if (obj->queue_number <= 0) {
3877 prepare_text = wxString::Format(_L("Cloud Slicing..."));
3878 } else {
3879 prepare_text = wxString::Format(_L_PLURAL("In Cloud Slicing Queue, there is %d task ahead of you.",
3880 "In Cloud Slicing Queue, there are %d tasks ahead of you.", obj->queue_number),
3881 obj->queue_number);
3882 show_percent = false;
3883 }
3884 } else
3885 prepare_text = wxString::Format(_L("Downloading..."));
3886
3887 if (obj->gcode_file_prepare_percent >= 0 && obj->gcode_file_prepare_percent <= 100 && show_percent)
3888 prepare_text += wxString::Format("(%d%%)", obj->gcode_file_prepare_percent);
3889
3890 m_project_task_panel->update_stage_value_with_machine(prepare_text, 0, obj);
3891 m_project_task_panel->update_progress_percent(NA_STR, wxEmptyString);
3892 m_project_task_panel->update_left_time(NA_STR);
3893 m_project_task_panel->update_layers_num(true, wxString::Format(_L("Layer: %s"), NA_STR));
3894 m_project_task_panel->update_subtask_name(wxString::Format("%s", GUI::from_u8(obj->subtask_name)));
3895
3896
3897 if (obj->get_modeltask() && obj->get_modeltask()->design_id > 0) {
3898 m_project_task_panel->show_profile_info(true, wxString::FromUTF8(obj->get_modeltask()->profile_name));
3899 }
3900 else {
3901 m_project_task_panel->show_profile_info(false);
3902 }
3904 } else {
3905 if (obj->can_resume()) {
3906 m_project_task_panel->enable_pause_resume_button(true, "resume");
3907 } else {
3908 m_project_task_panel->enable_pause_resume_button(true, "pause");
3909 }
3910 m_project_task_panel->enable_partskip_button(obj, true);
3911 // update printing stage
3912 m_project_task_panel->update_left_time(obj->mc_left_time);
3913 if (obj->subtask_) {
3914 m_project_task_panel->update_stage_value_with_machine(obj->get_curr_stage(), obj->subtask_->task_progress, obj);
3915 m_project_task_panel->update_progress_percent(wxString::Format("%d", obj->subtask_->task_progress), "%");
3916 m_project_task_panel->update_layers_num(true, wxString::Format(_L("Layer: %d/%d"), obj->curr_layer, obj->total_layers));
3917
3918 } else {
3919 m_project_task_panel->update_stage_value_with_machine(obj->get_curr_stage(), 0, obj);
3920 m_project_task_panel->update_progress_percent(NA_STR, wxEmptyString);
3921 m_project_task_panel->update_layers_num(true, wxString::Format(_L("Layer: %s"), NA_STR));
3922 }
3923
3924 if (obj->is_printing_finished()) {
3925 obj->update_model_task();
3926 m_project_task_panel->enable_abort_button(false);
3927 m_project_task_panel->enable_partskip_button(nullptr, false);
3928 m_project_task_panel->enable_pause_resume_button(false, "resume_disable");
3929 // is makeworld subtask
3930 if (wxGetApp().has_model_mall() && obj->is_makeworld_subtask()) {
3931 // has model mall rating result
3932 if (obj && obj->rating_info && obj->rating_info->request_successful) {
3933 m_project_task_panel->get_request_failed_panel()->Hide();
3934 BOOST_LOG_TRIVIAL(info) << "model mall result request successful";
3935 // has start count
3936 if (!m_project_task_panel->get_star_count_dirty()) {
3937 if (obj->rating_info->start_count > 0) {
3938 m_project_task_panel->set_star_count(obj->rating_info->start_count);
3939 m_project_task_panel->set_star_count_dirty(true);
3940 BOOST_LOG_TRIVIAL(info) << "Initialize scores";
3941 m_project_task_panel->get_market_scoring_button()->Enable(true);
3942 m_project_task_panel->set_has_reted_text(true);
3943 } else {
3944 m_project_task_panel->set_star_count(0);
3945 m_project_task_panel->set_star_count_dirty(false);
3946 m_project_task_panel->get_market_scoring_button()->Enable(false);
3947 m_project_task_panel->set_has_reted_text(false);
3948 }
3949 }
3950 m_project_task_panel->market_scoring_show();
3951 } else if (obj && obj->rating_info && !obj->rating_info->request_successful) {
3952 BOOST_LOG_TRIVIAL(info) << "model mall result request failed";
3953 if (403 != obj->rating_info->http_code) {
3954 BOOST_LOG_TRIVIAL(info) << "Request need retry";
3955 m_project_task_panel->get_market_retry_buttom()->Enable(!obj->get_model_mall_result_need_retry);
3956 m_project_task_panel->get_request_failed_panel()->Show();
3957 } else {
3958 BOOST_LOG_TRIVIAL(info) << "Request rejected";
3959 }
3960 }
3961 } else {
3962 m_project_task_panel->market_scoring_hide();
3963 }
3964 } else { // model printing is not finished, hide scoring page
3965 m_project_task_panel->enable_abort_button(true);
3966 m_project_task_panel->market_scoring_hide();
3967 m_project_task_panel->get_request_failed_panel()->Hide();
3968 }
3969 }
3970
3971 m_project_task_panel->update_subtask_name(wxString::Format("%s", GUI::from_u8(obj->subtask_name)));
3972
3973 if (obj->get_modeltask() && obj->get_modeltask()->design_id > 0) {
3974 m_project_task_panel->show_profile_info(true, wxString::FromUTF8(obj->get_modeltask()->profile_name));
3975 }
3976 else {
3977 m_project_task_panel->show_profile_info(false);
3978 }
3979
3980 //update thumbnail
3981 if (obj->is_sdcard_printing()) {
3984 } else {
3987 }
3988 } else {
3990 }
3991}
int cali_stage
Definition StatusPanel.hpp:711
void update_cloud_subtask(MachineObject *obj)
Definition StatusPanel.cpp:4019
void update_model_info()
Definition StatusPanel.cpp:3766
void update_printer_parts_options(MachineObject *obj)
Definition StatusPanel.cpp:5205
void update_partskip_button(MachineObject *obj)
Definition StatusPanel.cpp:2772
void update_sdcard_subtask(MachineObject *obj)
Definition StatusPanel.cpp:4076
void update_partskip_subtask(MachineObject *obj)
Definition StatusPanel.cpp:3993
@ CALI_METHOD_AUTO
Definition CalibrationWizardPage.hpp:65
@ CALI_METHOD_NEW_AUTO
Definition CalibrationWizardPage.hpp:66
wxString from_u8(const std::string &str)
Definition GUI.cpp:544
@ PRINGINT
Definition StatusPanel.hpp:99
CalibMode get_obj_calibration_mode(const MachineObject *obj)
Definition CalibrationWizardPage.cpp:108
coord_t width(const BoundingBox &box)
Definition Arrange.cpp:1184
coord_t height(const BoundingBox &box)
Definition Arrange.cpp:1185
@ Calib_PA_Line
Definition calib.hpp:25
@ Calib_None
Definition calib.hpp:24
const std::string & resources_dir()
Definition utils.cpp:296
#define _L_PLURAL(s, plural, n)
Definition I18N.hpp:96

References _L, _L_PLURAL, Slic3r::GUI::CALI_METHOD_AUTO, Slic3r::GUI::CALI_METHOD_MANUAL, Slic3r::GUI::CALI_METHOD_NEW_AUTO, cali_stage, calib_bitmap, Slic3r::Calib_Flow_Rate, Slic3r::Calib_None, Slic3r::Calib_PA_Line, Slic3r::GUI::CALIBRATION, Slic3r::GUI::from_u8(), Slic3r::GUI::get_obj_calibration_mode(), m_calib_method, m_calib_mode, m_current_print_mode, Slic3r::GUI::StatusBasePanel::m_project_task_panel, Slic3r::GUI::NA_STR, Slic3r::GUI::StatusBasePanel::obj, Slic3r::GUI::PRINGINT, reset_printing_values(), Slic3r::resources_dir(), update_basic_print_data(), update_cloud_subtask(), update_model_info(), update_partskip_button(), update_partskip_subtask(), update_printer_parts_options(), and update_sdcard_subtask().

Referenced by update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_tasklist_info()

void Slic3r::GUI::StatusPanel::update_tasklist_info ( )
protected

◆ update_temp_ctrl()

void Slic3r::GUI::StatusPanel::update_temp_ctrl ( MachineObject * obj)
protected
3145{
3146 if (!obj) return;
3147
3148 DevBed* bed = obj->GetBed();
3149 int bed_cur_temp = bed->GetBedTemp();
3150 int bed_target_temp = bed->GetBedTempTarget();
3151 m_tempCtrl_bed->SetCurrTemp((int) bed_cur_temp);
3152
3153 auto limit = obj->get_bed_temperature_limit();
3154 if (obj->bed_temp_range.size() > 1) {
3155 limit = obj->bed_temp_range[1];
3156 }
3157 m_tempCtrl_bed->SetMaxTemp(limit);
3158
3159 if (obj->nozzle_temp_range.size() >= 2) {
3160 m_tempCtrl_nozzle->SetMinTemp(obj->nozzle_temp_range[0]);
3161 m_tempCtrl_nozzle->SetMaxTemp(obj->nozzle_temp_range[1]);
3162
3163 m_tempCtrl_nozzle_deputy->SetMinTemp(obj->nozzle_temp_range[0]);
3164 m_tempCtrl_nozzle_deputy->SetMaxTemp(obj->nozzle_temp_range[1]);
3165 }
3166
3167 // update temprature if not input temp target
3168 if (m_temp_bed_timeout > 0) {
3170 } else {
3171 if (!bed_temp_input) { m_tempCtrl_bed->SetTagTemp((int) bed_target_temp); }
3172 }
3173
3174 if ((bed_target_temp - bed_cur_temp) >= TEMP_THRESHOLD_VAL) {
3175 m_tempCtrl_bed->SetIconActive();
3176 } else {
3177 m_tempCtrl_bed->SetIconNormal();
3178 }
3179
3180 bool to_update_layout = false;
3181 int nozzle_num = obj->GetExtderSystem()->GetTotalExtderCount();
3182 if (nozzle_num == 1)
3183 {
3184 m_tempCtrl_nozzle->SetCurrTemp(obj->GetExtderSystem()->GetNozzleTempCurrent(MAIN_EXTRUDER_ID));
3186
3190
3192 {
3193 to_update_layout = true;
3195 }
3196 }
3197 else if (nozzle_num == 2)
3198 {
3200 m_tempCtrl_nozzle->SetCurrTemp(obj->GetExtderSystem()->GetNozzleTempCurrent(MAIN_EXTRUDER_ID));
3201 m_tempCtrl_nozzle->Show();
3202
3204 m_tempCtrl_nozzle_deputy->SetCurrTemp(obj->GetExtderSystem()->GetNozzleTempCurrent(DEPUTY_EXTRUDER_ID));
3206
3208 {
3209 to_update_layout = true;
3211 }
3212 }
3213
3214 if (m_temp_nozzle_timeout > 0) {
3216 } else {
3217 if (!nozzle_temp_input) {
3218 auto main_extder = obj->GetExtderSystem()->GetExtderById(MAIN_EXTRUDER_ID);
3219 if (main_extder)
3220 {
3221 m_tempCtrl_nozzle->SetTagTemp(main_extder->GetTargetTemp());
3222 m_tempCtrl_nozzle->SetCurrTemp((int)main_extder->GetCurrentTemp());
3223 if (main_extder->GetTargetTemp() - main_extder->GetCurrentTemp() > TEMP_THRESHOLD_VAL)
3224 {
3225 m_tempCtrl_nozzle->SetIconActive();
3226 }
3227 else
3228 {
3229 m_tempCtrl_nozzle->SetIconNormal();
3230 }
3231 }
3232 }
3233 }
3234
3237 }
3238 else {
3239 if (!nozzle_temp_input && nozzle_num >= 2) {
3240 auto deputy_extder = obj->GetExtderSystem()->GetExtderById(DEPUTY_EXTRUDER_ID);
3241 if (deputy_extder)
3242 {
3243 m_tempCtrl_nozzle_deputy->SetTagTemp(deputy_extder->GetTargetTemp());
3244 m_tempCtrl_nozzle_deputy->SetCurrTemp((int)deputy_extder->GetCurrentTemp());
3245 if (deputy_extder->GetTargetTemp() - deputy_extder->GetCurrentTemp() > TEMP_THRESHOLD_VAL)
3246 {
3247 m_tempCtrl_nozzle_deputy->SetIconActive();
3248 }
3249 else
3250 {
3251 m_tempCtrl_nozzle_deputy->SetIconNormal();
3252 }
3253 }
3254 }
3255 }
3256
3257 // support current temp for chamber
3258 if (obj->get_printer_series() == PrinterSeries::SERIES_X1)
3259 {
3260 m_tempCtrl_chamber->SetCurrTemp(obj->chamber_temp);
3261 }
3262 else
3263 {
3264 m_tempCtrl_chamber->SetCurrTemp(TEMP_BLANK_STR);
3265 }
3266
3267 // support edit chamber temp
3268 DevConfig* config = obj->GetConfig();
3269 if (config->SupportChamberEdit())
3270 {
3271 m_tempCtrl_chamber->SetReadOnly(false);
3272 m_tempCtrl_chamber->Enable();
3273 m_tempCtrl_chamber->SetMinTemp(config->GetChamberTempEditMin());
3274 m_tempCtrl_chamber->SetMaxTemp(config->GetChamberTempEditMax());
3275 m_tempCtrl_chamber->AddTemp(0); // zero is default temp
3276 wxCursor cursor(wxCURSOR_IBEAM);
3277 m_tempCtrl_chamber->GetTextCtrl()->SetCursor(cursor);
3278
3279 if (m_temp_chamber_timeout > 0)
3280 {
3282 }
3283 else
3284 {
3285 /*update temprature if not input temp target*/
3286 if (!cham_temp_input) { m_tempCtrl_chamber->SetTagTemp(obj->chamber_temp_target); }
3287 }
3288 }
3289 else
3290 {
3291 m_tempCtrl_chamber->SetReadOnly(true);
3293
3294 wxCursor cursor(wxCURSOR_ARROW);
3295 m_tempCtrl_chamber->GetTextCtrl()->SetCursor(cursor);
3296 }
3297
3298 if ((obj->chamber_temp_target - obj->chamber_temp) >= TEMP_THRESHOLD_VAL) {
3299 m_tempCtrl_chamber->SetIconActive();
3300 }
3301 else {
3302 m_tempCtrl_chamber->SetIconNormal();
3303 }
3304
3305 if (to_update_layout)
3306 {
3307 this->Layout();
3308 }
3309}
@ SERIES_X1
Definition DevDefs.h:35
#define TEMP_THRESHOLD_VAL
Definition StatusPanel.cpp:125
@ TEMP_OF_MAIN_NOZZLE_TYPE
Definition TempInput.hpp:29
@ TEMP_OF_DEPUTY_NOZZLE_TYPE
Definition TempInput.hpp:30

References bed_temp_input, cham_temp_input, DEPUTY_EXTRUDER_ID, Slic3r::DevBed::GetBedTemp(), Slic3r::DevBed::GetBedTempTarget(), Slic3r::DevConfig::GetChamberTempEditMax(), Slic3r::DevConfig::GetChamberTempEditMin(), Slic3r::GUI::StatusBasePanel::m_temp_bed_timeout, Slic3r::GUI::StatusBasePanel::m_temp_chamber_timeout, Slic3r::GUI::StatusBasePanel::m_temp_nozzle_deputy_timeout, Slic3r::GUI::StatusBasePanel::m_temp_nozzle_timeout, Slic3r::GUI::StatusBasePanel::m_tempCtrl_bed, Slic3r::GUI::StatusBasePanel::m_tempCtrl_chamber, Slic3r::GUI::StatusBasePanel::m_tempCtrl_nozzle, Slic3r::GUI::StatusBasePanel::m_tempCtrl_nozzle_deputy, MAIN_EXTRUDER_ID, nozzle_temp_input, Slic3r::GUI::StatusBasePanel::obj, SERIES_X1, Slic3r::DevConfig::SupportChamberEdit(), Slic3r::GUI::TEMP_BLANK_STR, TEMP_CTRL_MIN_SIZE_ALIGN_ONE_ICON, TEMP_CTRL_MIN_SIZE_ALIGN_TWO_ICON, TEMP_OF_DEPUTY_NOZZLE_TYPE, TEMP_OF_MAIN_NOZZLE_TYPE, TEMP_OF_NORMAL_TYPE, and TEMP_THRESHOLD_VAL.

Referenced by update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ wire_controls()

void Slic3r::GUI::StatusPanel::wire_controls ( )
private
2518{
2520 m_buttons.push_back(m_bpButton_z_10);
2521 m_buttons.push_back(m_bpButton_z_1);
2522 m_buttons.push_back(m_bpButton_z_down_1);
2524 m_buttons.push_back(m_bpButton_e_10);
2526
2527 obj = nullptr;
2528 m_score_data = new ScoreData;
2529 m_score_data->rating_id = -1;
2530 /* set default values */
2531 m_switch_lamp->SetValue(false);
2532 /*m_switch_printing_fan->SetValue(false);
2533 m_switch_nozzle_fan->SetValue(false);
2534 m_switch_cham_fan->SetValue(false);*/
2535 //m_switch_fan->SetValue(false);
2536
2537 /* set default enable state */
2538 m_project_task_panel->enable_partskip_button(nullptr, false);
2539 m_project_task_panel->enable_pause_resume_button(false, "resume_disable");
2540 m_project_task_panel->enable_abort_button(false);
2541
2542
2543 Bind(wxEVT_WEBREQUEST_STATE, &StatusPanel::on_webrequest_state, this);
2544
2545 Bind(wxCUSTOMEVT_SET_TEMP_FINISH, [this](wxCommandEvent e) {
2546 int id = e.GetInt();
2547 if (id == m_tempCtrl_bed->GetType()) {
2549 } else if (id == m_tempCtrl_nozzle->GetType()) {
2550 if (e.GetString() == wxString::Format("%d", MAIN_EXTRUDER_ID)) {
2552 } else if (e.GetString() == wxString::Format("%d", DEPUTY_EXTRUDER_ID)) {
2554 } else {
2555 on_set_nozzle_temp(UNIQUE_EXTRUDER_ID);//there is only one nozzle
2556 }
2557 } else if (id == m_tempCtrl_chamber->GetType()) {
2558 if (!m_tempCtrl_chamber->IsOnChanging()) {
2559 m_tempCtrl_chamber->SetOnChanging();
2561 m_tempCtrl_chamber->ReSetOnChanging();
2562 }
2563 }
2564 });
2565
2566
2567 // Connect Events
2568 m_project_task_panel->get_bitmap_thumbnail()->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(StatusPanel::refresh_thumbnail_webrequest), NULL, this);
2569 m_project_task_panel->get_partskip_button()->Connect(wxEVT_LEFT_DOWN, wxCommandEventHandler(StatusPanel::on_subtask_partskip), NULL, this);
2570 m_project_task_panel->get_pause_resume_button()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_pause_resume), NULL, this);
2571 m_project_task_panel->get_abort_button()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_abort), NULL, this);
2572 m_project_task_panel->get_market_scoring_button()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_scoring), NULL, this);
2573 m_project_task_panel->get_market_retry_buttom()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_retry), NULL, this);
2574 m_project_task_panel->get_clean_button()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_print_error_clean), NULL, this);
2575
2576 m_setting_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(StatusPanel::on_camera_enter), NULL, this);
2577 m_setting_button->Connect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(StatusPanel::on_camera_enter), NULL, this);
2578 m_tempCtrl_bed->Connect(wxEVT_KILL_FOCUS, wxFocusEventHandler(StatusPanel::on_bed_temp_kill_focus), NULL, this);
2579 m_tempCtrl_bed->Connect(wxEVT_SET_FOCUS, wxFocusEventHandler(StatusPanel::on_bed_temp_set_focus), NULL, this);
2580 m_tempCtrl_nozzle->Connect(wxEVT_KILL_FOCUS, wxFocusEventHandler(StatusPanel::on_nozzle_temp_kill_focus), NULL, this);
2581 m_tempCtrl_nozzle->Connect(wxEVT_SET_FOCUS, wxFocusEventHandler(StatusPanel::on_nozzle_temp_set_focus), NULL, this);
2582 m_tempCtrl_nozzle_deputy->Connect(wxEVT_KILL_FOCUS, wxFocusEventHandler(StatusPanel::on_nozzle_temp_kill_focus), NULL, this);
2583 m_tempCtrl_nozzle_deputy->Connect(wxEVT_SET_FOCUS, wxFocusEventHandler(StatusPanel::on_nozzle_temp_set_focus), NULL, this);
2584 m_tempCtrl_chamber->Connect(wxEVT_KILL_FOCUS, wxFocusEventHandler(StatusPanel::on_cham_temp_kill_focus), NULL, this);
2585 m_tempCtrl_chamber->Connect(wxEVT_SET_FOCUS, wxFocusEventHandler(StatusPanel::on_cham_temp_set_focus), NULL, this);
2586 m_switch_lamp->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_lamp_switch), NULL, this);
2587 //m_switch_nozzle_fan->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_nozzle_fan_switch), NULL, this); // TODO
2588 //m_switch_printing_fan->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_nozzle_fan_switch), NULL, this);
2589 //m_switch_cham_fan->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_nozzle_fan_switch), NULL, this);
2590
2591 m_switch_fan->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_nozzle_fan_switch), NULL, this); // TODO
2592 //m_switch_fan->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_nozzle_fan_switch), NULL, this);
2593 //m_switch_fan->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_nozzle_fan_switch), NULL, this);
2594
2595 m_bpButton_xy->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_xy), NULL, this); // TODO
2596 m_bpButton_z_10->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_z_up_10), NULL, this);
2597 m_bpButton_z_1->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_z_up_1), NULL, this);
2598 m_bpButton_z_down_1->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_z_down_1), NULL, this);
2599 m_bpButton_z_down_10->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_z_down_10), NULL, this);
2600 m_bpButton_e_10->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_e_up_10), NULL, this);
2601 m_bpButton_e_down_10->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_axis_ctrl_e_down_10), NULL, this);
2602 m_nozzle_btn_panel->Connect(wxCUSTOMEVT_SWITCH_POS, wxCommandEventHandler(StatusPanel::on_nozzle_selected), NULL, this);
2603
2604 Bind(EVT_AMS_EXTRUSION_CALI, &StatusPanel::on_filament_extrusion_cali, this);
2605 Bind(EVT_AMS_LOAD, &StatusPanel::on_ams_load, this);
2606 Bind(EVT_AMS_UNLOAD, &StatusPanel::on_ams_unload, this);
2607 Bind(EVT_AMS_SWITCH, &StatusPanel::on_ams_switch, this);
2608 Bind(EVT_AMS_FILAMENT_BACKUP, &StatusPanel::on_ams_filament_backup, this);
2609 Bind(EVT_AMS_SETTINGS, &StatusPanel::on_ams_setting_click, this);
2610 Bind(EVT_AMS_REFRESH_RFID, &StatusPanel::on_ams_refresh_rfid, this);
2611 Bind(EVT_AMS_ON_SELECTED, &StatusPanel::on_ams_selected, this);
2612 Bind(EVT_AMS_ON_FILAMENT_EDIT, &StatusPanel::on_filament_edit, this);
2613 Bind(EVT_VAMS_ON_FILAMENT_EDIT, &StatusPanel::on_ext_spool_edit, this);
2614 Bind(EVT_AMS_GUIDE_WIKI, &StatusPanel::on_ams_guide, this);
2615 Bind(EVT_AMS_RETRY, &StatusPanel::on_ams_retry, this);
2616 Bind(EVT_FAN_CHANGED, &StatusPanel::on_fan_changed, this);
2617 Bind(EVT_SECONDARY_CHECK_RESUME, &StatusPanel::on_subtask_pause_resume, this);
2618 Bind(EVT_SECONDARY_CHECK_RETRY, [this](auto &e) { if (m_ams_control) { m_ams_control->on_retry(); }});
2619
2620 m_switch_speed->Connect(wxEVT_LEFT_DOWN, wxCommandEventHandler(StatusPanel::on_switch_speed), NULL, this);
2621 m_calibration_btn->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_start_calibration), NULL, this);
2622 m_options_btn->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_show_print_options), NULL, this);
2623 m_safety_btn->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_show_safety_options), NULL, this);
2624 m_parts_btn->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_show_parts_options), NULL, this);
2625}
#define UNIQUE_EXTRUDER_ID
Definition DevDefs.h:103
void on_ams_load(SimpleEvent &event)
Definition StatusPanel.cpp:4376
void on_ams_unload(SimpleEvent &event)
Definition StatusPanel.cpp:4559
void on_ams_guide(wxCommandEvent &event)
Definition StatusPanel.cpp:4874
void on_ext_spool_edit(wxCommandEvent &event)
Definition StatusPanel.cpp:4717
void on_webrequest_state(wxWebRequestEvent &evt)
Definition StatusPanel.cpp:2848
void on_ams_refresh_rfid(wxCommandEvent &event)
Definition StatusPanel.cpp:4782
void on_ams_selected(wxCommandEvent &event)
Definition StatusPanel.cpp:4844
void on_ams_setting_click(SimpleEvent &event)
Definition StatusPanel.cpp:4586
void on_filament_extrusion_cali(wxCommandEvent &event)
Definition StatusPanel.cpp:4598
void on_ams_retry(wxCommandEvent &event)
Definition StatusPanel.cpp:4882
void on_set_bed_temp()
Definition StatusPanel.cpp:4261
void on_filament_edit(wxCommandEvent &event)
Definition StatusPanel.cpp:4647
void on_fan_changed(wxCommandEvent &event)
Definition StatusPanel.cpp:4891
void on_set_chamber_temp()
Definition StatusPanel.cpp:4330
void on_cham_temp_set_focus(wxFocusEvent &event)
Definition StatusPanel.cpp:4904
void on_set_nozzle_temp(int nozzle_id)
Definition StatusPanel.cpp:4289
void on_cham_temp_kill_focus(wxFocusEvent &event)
Definition StatusPanel.cpp:4898
void on_ams_switch(SimpleEvent &event)
Definition StatusPanel.cpp:4523
void on_ams_filament_backup(SimpleEvent &event)
Definition StatusPanel.cpp:4577

References DEPUTY_EXTRUDER_ID, init_scaled_buttons(), Slic3r::GUI::StatusBasePanel::m_ams_control, Slic3r::GUI::StatusBasePanel::m_bpButton_e_10, Slic3r::GUI::StatusBasePanel::m_bpButton_e_down_10, Slic3r::GUI::StatusBasePanel::m_bpButton_xy, Slic3r::GUI::StatusBasePanel::m_bpButton_z_1, Slic3r::GUI::StatusBasePanel::m_bpButton_z_10, Slic3r::GUI::StatusBasePanel::m_bpButton_z_down_1, Slic3r::GUI::StatusBasePanel::m_bpButton_z_down_10, m_buttons, Slic3r::GUI::StatusBasePanel::m_calibration_btn, Slic3r::GUI::StatusBasePanel::m_nozzle_btn_panel, Slic3r::GUI::StatusBasePanel::m_options_btn, Slic3r::GUI::StatusBasePanel::m_parts_btn, Slic3r::GUI::StatusBasePanel::m_project_task_panel, Slic3r::GUI::StatusBasePanel::m_safety_btn, m_score_data, Slic3r::GUI::StatusBasePanel::m_setting_button, Slic3r::GUI::StatusBasePanel::m_switch_fan, Slic3r::GUI::StatusBasePanel::m_switch_lamp, Slic3r::GUI::StatusBasePanel::m_switch_speed, Slic3r::GUI::StatusBasePanel::m_tempCtrl_bed, Slic3r::GUI::StatusBasePanel::m_tempCtrl_chamber, Slic3r::GUI::StatusBasePanel::m_tempCtrl_nozzle, Slic3r::GUI::StatusBasePanel::m_tempCtrl_nozzle_deputy, MAIN_EXTRUDER_ID, Slic3r::GUI::StatusBasePanel::obj, on_ams_filament_backup(), on_ams_guide(), on_ams_load(), on_ams_refresh_rfid(), on_ams_retry(), on_ams_selected(), on_ams_setting_click(), on_ams_switch(), on_ams_unload(), on_axis_ctrl_e_down_10(), on_axis_ctrl_e_up_10(), on_axis_ctrl_xy(), on_axis_ctrl_z_down_1(), on_axis_ctrl_z_down_10(), on_axis_ctrl_z_up_1(), on_axis_ctrl_z_up_10(), on_bed_temp_kill_focus(), on_bed_temp_set_focus(), on_camera_enter(), on_cham_temp_kill_focus(), on_cham_temp_set_focus(), on_ext_spool_edit(), on_fan_changed(), on_filament_edit(), on_filament_extrusion_cali(), on_lamp_switch(), on_market_retry(), on_market_scoring(), on_nozzle_fan_switch(), on_nozzle_selected(), on_nozzle_temp_kill_focus(), on_nozzle_temp_set_focus(), on_print_error_clean(), on_set_bed_temp(), on_set_chamber_temp(), on_set_nozzle_temp(), on_show_parts_options(), on_show_print_options(), on_show_safety_options(), on_start_calibration(), on_subtask_abort(), on_subtask_partskip(), on_subtask_pause_resume(), on_switch_speed(), on_webrequest_state(), refresh_thumbnail_webrequest(), and UNIQUE_EXTRUDER_ID.

Referenced by StatusPanel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MonitorPanel

friend class MonitorPanel
friend

Member Data Documentation

◆ abort_dlg

SecondaryCheckDialog* Slic3r::GUI::StatusPanel::abort_dlg = nullptr
protected

Referenced by ~StatusPanel(), and on_subtask_abort().

◆ bed_temp_input

bool Slic3r::GUI::StatusPanel::bed_temp_input = false
protected

◆ before_error_code

int Slic3r::GUI::StatusBasePanel::before_error_code = 0
inherited

◆ cali_stage

int Slic3r::GUI::StatusPanel::cali_stage
protected

Referenced by update_subtask().

◆ calib_bitmap

wxBitmap* Slic3r::GUI::StatusPanel::calib_bitmap = nullptr
protected

◆ calibration_dlg

CalibrationDialog* Slic3r::GUI::StatusPanel::calibration_dlg {nullptr}
protected
667{nullptr};

Referenced by on_start_calibration(), update(), and update_cali().

◆ cham_temp_input

bool Slic3r::GUI::StatusPanel::cham_temp_input = false
protected

◆ con_load_dlg

SecondaryCheckDialog* Slic3r::GUI::StatusPanel::con_load_dlg = nullptr
protected

◆ ctrl_e_hint_dlg

MessageDialog* Slic3r::GUI::StatusPanel::ctrl_e_hint_dlg = nullptr
protected

Referenced by ~StatusPanel(), and axis_ctrl_e_hint().

◆ img_list

std::map<wxString, wxImage> Slic3r::GUI::StatusPanel::img_list
protected

◆ last_ams_exist_bits

long Slic3r::GUI::StatusPanel::last_ams_exist_bits { -1 }
852{ -1 };

Referenced by update_ams().

◆ last_ams_version

long Slic3r::GUI::StatusPanel::last_ams_version { -1 }
856{ -1 };

Referenced by update_ams().

◆ last_cali_version

std::optional<int> Slic3r::GUI::StatusPanel::last_cali_version

◆ last_profile_id

std::string Slic3r::GUI::StatusPanel::last_profile_id

Referenced by is_task_changed().

◆ last_read_done_bits

long Slic3r::GUI::StatusPanel::last_read_done_bits { -1 }
854{ -1 };

Referenced by update_ams().

◆ last_reading_bits

long Slic3r::GUI::StatusPanel::last_reading_bits { -1 }
855{ -1 };

Referenced by update_ams().

◆ last_stage_list_info

std::vector<int> Slic3r::GUI::StatusPanel::last_stage_list_info

◆ last_status

int Slic3r::GUI::StatusPanel::last_status
protected

Referenced by show_status().

◆ last_subtask

BBLSubTask* Slic3r::GUI::StatusPanel::last_subtask {nullptr}
848{nullptr};

Referenced by is_task_changed(), and set_default().

◆ last_task_id

std::string Slic3r::GUI::StatusPanel::last_task_id

Referenced by is_task_changed().

◆ last_tray_exist_bits

long Slic3r::GUI::StatusPanel::last_tray_exist_bits { -1 }
851{ -1 };

Referenced by set_default(), and update_ams().

◆ last_tray_is_bbl_bits

long Slic3r::GUI::StatusPanel::last_tray_is_bbl_bits { -1 }
853{ -1 };

Referenced by update_ams().

◆ m_ams_control

◆ m_ams_control_box

StaticBox* Slic3r::GUI::StatusBasePanel::m_ams_control_box
protectedinherited

◆ m_ams_debug

wxStaticText* Slic3r::GUI::StatusBasePanel::m_ams_debug
protectedinherited

Referenced by create_ams_group().

◆ m_ams_extruder_img

wxStaticBitmap* Slic3r::GUI::StatusBasePanel::m_ams_extruder_img
protectedinherited

◆ m_ams_list

wxBoxSizer* Slic3r::GUI::StatusBasePanel::m_ams_list
protectedinherited

◆ m_ams_rack_switch

SwitchBoard* Slic3r::GUI::StatusBasePanel::m_ams_rack_switch { nullptr }
protectedinherited

◆ m_ams_setting_dlg

AMSSetting* Slic3r::GUI::StatusPanel::m_ams_setting_dlg {nullptr}
protected
663{nullptr};

Referenced by on_ams_setting_click(), and update_ams().

◆ m_bitmap_axis_home

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_axis_home
protectedinherited

◆ m_bitmap_camera

wxBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_camera
protectedinherited

◆ m_bitmap_camera_img

wxStaticBitmap* Slic3r::GUI::StatusBasePanel::m_bitmap_camera_img
protectedinherited

◆ m_bitmap_extruder_empty_load

wxBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_extruder_empty_load
protectedinherited

Referenced by init_bitmaps().

◆ m_bitmap_extruder_empty_unload

wxBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_extruder_empty_unload
protectedinherited

Referenced by init_bitmaps().

◆ m_bitmap_extruder_filled_load

wxBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_extruder_filled_load
protectedinherited

Referenced by init_bitmaps().

◆ m_bitmap_extruder_filled_unload

wxBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_extruder_filled_unload
protectedinherited

Referenced by init_bitmaps().

◆ m_bitmap_extruder_img

wxStaticBitmap* Slic3r::GUI::StatusBasePanel::m_bitmap_extruder_img
protectedinherited

◆ m_bitmap_extruder_now

wxBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_extruder_now
protectedinherited

◆ m_bitmap_fan_off

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_fan_off
protectedinherited

◆ m_bitmap_fan_on

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_fan_on
protectedinherited

◆ m_bitmap_item_cost

wxBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_item_cost
protectedinherited

Referenced by init_bitmaps().

◆ m_bitmap_item_prediction

wxBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_item_prediction
protectedinherited

Referenced by init_bitmaps().

◆ m_bitmap_item_print

wxBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_item_print
protectedinherited

Referenced by init_bitmaps().

◆ m_bitmap_lamp_off

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_lamp_off
protectedinherited

◆ m_bitmap_lamp_on

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_lamp_on
protectedinherited

◆ m_bitmap_recording_img

wxStaticBitmap* Slic3r::GUI::StatusBasePanel::m_bitmap_recording_img
protectedinherited

◆ m_bitmap_recording_off

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_recording_off
protectedinherited

◆ m_bitmap_recording_on

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_recording_on
protectedinherited

◆ m_bitmap_sdcard_img

wxStaticBitmap* Slic3r::GUI::StatusBasePanel::m_bitmap_sdcard_img
protectedinherited

◆ m_bitmap_sdcard_state_abnormal

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_sdcard_state_abnormal
protectedinherited

◆ m_bitmap_sdcard_state_no

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_sdcard_state_no
protectedinherited

◆ m_bitmap_sdcard_state_normal

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_sdcard_state_normal
protectedinherited

◆ m_bitmap_speed

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_speed
protectedinherited

◆ m_bitmap_speed_active

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_speed_active
protectedinherited

◆ m_bitmap_static_use_time

wxStaticBitmap* Slic3r::GUI::StatusBasePanel::m_bitmap_static_use_time
protectedinherited

◆ m_bitmap_static_use_weight

wxStaticBitmap* Slic3r::GUI::StatusBasePanel::m_bitmap_static_use_weight
protectedinherited

◆ m_bitmap_switch_camera

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_switch_camera
protectedinherited

Referenced by init_bitmaps().

◆ m_bitmap_thumbnail

wxStaticBitmap* Slic3r::GUI::StatusBasePanel::m_bitmap_thumbnail
protectedinherited

◆ m_bitmap_timelapse_img

wxStaticBitmap* Slic3r::GUI::StatusBasePanel::m_bitmap_timelapse_img
protectedinherited

◆ m_bitmap_timelapse_off

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_timelapse_off
protectedinherited

◆ m_bitmap_timelapse_on

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_timelapse_on
protectedinherited

◆ m_bitmap_use_time

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_use_time
protectedinherited

◆ m_bitmap_use_weight

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_use_weight
protectedinherited

◆ m_bitmap_vcamera_img

wxStaticBitmap* Slic3r::GUI::StatusBasePanel::m_bitmap_vcamera_img
protectedinherited

◆ m_bitmap_vcamera_off

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_vcamera_off
protectedinherited

◆ m_bitmap_vcamera_on

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_bitmap_vcamera_on
protectedinherited

◆ m_bmToggleBtn_timelapse

SwitchButton* Slic3r::GUI::StatusBasePanel::m_bmToggleBtn_timelapse
protectedinherited

◆ m_bpButton_e_10

◆ m_bpButton_e_down_10

◆ m_bpButton_xy

◆ m_bpButton_z_1

◆ m_bpButton_z_10

◆ m_bpButton_z_down_1

◆ m_bpButton_z_down_10

◆ m_button_abort

ScalableButton* Slic3r::GUI::StatusBasePanel::m_button_abort
protectedinherited

◆ m_button_clean

Button* Slic3r::GUI::StatusBasePanel::m_button_clean
protectedinherited

◆ m_button_partskip

Button* Slic3r::GUI::StatusBasePanel::m_button_partskip
protectedinherited

◆ m_button_pause_resume

ScalableButton* Slic3r::GUI::StatusBasePanel::m_button_pause_resume
protectedinherited

◆ m_button_report

Button* Slic3r::GUI::StatusBasePanel::m_button_report
protectedinherited

◆ m_button_retry

Button* Slic3r::GUI::StatusBasePanel::m_button_retry {nullptr}
protectedinherited
587{nullptr};

Referenced by create_filament_group().

◆ m_buttons

std::vector<Button *> Slic3r::GUI::StatusPanel::m_buttons
protected

Referenced by msw_rescale(), and wire_controls().

◆ m_calib_method

CalibrationMethod Slic3r::GUI::StatusPanel::m_calib_method
protected

◆ m_calib_mode

CalibMode Slic3r::GUI::StatusPanel::m_calib_mode
protected

◆ m_calibration_btn

◆ m_calibration_flow

StepIndicator* Slic3r::GUI::StatusBasePanel::m_calibration_flow
protectedinherited

◆ m_calibration_text

wxStaticText* Slic3r::GUI::StatusBasePanel::m_calibration_text
protectedinherited

◆ m_camera_popup

std::shared_ptr<CameraPopup> Slic3r::GUI::StatusPanel::m_camera_popup
protected

◆ m_children

std::vector<StagedBuild*> Slic3r::GUI::StagedBuild::m_children
privateinherited

◆ m_current_nozzle_id

int Slic3r::GUI::StatusBasePanel::m_current_nozzle_id { 0 }
protectedinherited
527{ 0 };

◆ m_current_print_mode

◆ m_custom_camera_view

wxWebView* Slic3r::GUI::StatusBasePanel::m_custom_camera_view {nullptr}
protectedinherited

◆ m_error_text

Label* Slic3r::GUI::StatusBasePanel::m_error_text
protectedinherited

◆ m_extruder_book

wxSimplebook* Slic3r::GUI::StatusBasePanel::m_extruder_book
protectedinherited

◆ m_extruder_label

Label* Slic3r::GUI::StatusBasePanel::m_extruder_label
protectedinherited

◆ m_extruder_switching_status

◆ m_extruderImage

std::vector<ExtruderImage *> Slic3r::GUI::StatusBasePanel::m_extruderImage
protectedinherited

◆ m_extrusion_cali_dlg

ExtrusionCalibration* Slic3r::GUI::StatusPanel::m_extrusion_cali_dlg {nullptr}
protected
679{nullptr};

Referenced by on_filament_extrusion_cali(), and update().

◆ m_fan_control_popup

FanControlPopupNew* Slic3r::GUI::StatusPanel::m_fan_control_popup {nullptr}
protected
677{nullptr};

Referenced by msw_rescale(), on_nozzle_fan_switch(), and update_misc_ctrl().

◆ m_fan_panel

StaticBox* Slic3r::GUI::StatusBasePanel::m_fan_panel
protectedinherited

◆ m_fila_change_abort

Button* Slic3r::GUI::StatusBasePanel::m_fila_change_abort {nullptr}
protectedinherited
588{nullptr}; // Orca: filament-change Stop button

Referenced by create_filament_group(), and Slic3r::GUI::StatusPanel::update_filament_loading_panel().

◆ m_filament_load_box

StaticBox* Slic3r::GUI::StatusBasePanel::m_filament_load_box
protectedinherited

◆ m_filament_load_img

wxStaticBitmap* Slic3r::GUI::StatusBasePanel::m_filament_load_img
protectedinherited

◆ m_filament_setting_dlg

AMSMaterialsSetting* Slic3r::GUI::StatusPanel::m_filament_setting_dlg {nullptr}
protected
668{nullptr};

Referenced by on_ext_spool_edit(), on_filament_edit(), and update_ams().

◆ m_filament_step

◆ m_fixed_aspect_ratio

float Slic3r::GUI::StatusBasePanel::m_fixed_aspect_ratio {1.8}
protectedinherited
529{1.8};

◆ m_gauge_progress

ProgressBar* Slic3r::GUI::StatusBasePanel::m_gauge_progress
protectedinherited

◆ m_image_popup

std::shared_ptr<ImageTransientPopup> Slic3r::GUI::StatusPanel::m_image_popup
protected

◆ m_img_filament_loading

wxStaticBitmap* Slic3r::GUI::StatusBasePanel::m_img_filament_loading
protectedinherited

◆ m_is_load_with_temp

bool Slic3r::GUI::StatusPanel::m_is_load_with_temp = false
protected

◆ m_item_placeholder

wxBitmap Slic3r::GUI::StatusBasePanel::m_item_placeholder
protectedinherited

◆ m_last_extrusion

int Slic3r::GUI::StatusPanel::m_last_extrusion = -1
protected

◆ m_last_recording

int Slic3r::GUI::StatusPanel::m_last_recording = -1
protected

Referenced by update_camera_state().

◆ m_last_sdcard

int Slic3r::GUI::StatusPanel::m_last_sdcard = -1
protected

Referenced by update_camera_state().

◆ m_last_timelapse

int Slic3r::GUI::StatusPanel::m_last_timelapse = -1
protected

Referenced by update_camera_state().

◆ m_last_vcamera

int Slic3r::GUI::StatusPanel::m_last_vcamera = -1
protected

Referenced by update_camera_state().

◆ m_line_nozzle

StaticLine* Slic3r::GUI::StatusBasePanel::m_line_nozzle
protectedinherited

◆ m_load_sdcard_thumbnail

bool Slic3r::GUI::StatusPanel::m_load_sdcard_thumbnail = false
protected

◆ m_machine_ctrl_panel

wxPanel* Slic3r::GUI::StatusBasePanel::m_machine_ctrl_panel
protectedinherited

Referenced by StatusBasePanel().

◆ m_media_ctrl

wxMediaCtrl3* Slic3r::GUI::StatusBasePanel::m_media_ctrl
protectedinherited

◆ m_media_play_ctrl

◆ m_misc_ctrl_sizer

wxBoxSizer* Slic3r::GUI::StatusBasePanel::m_misc_ctrl_sizer
protectedinherited

Referenced by create_temp_control().

◆ m_model_mall_request_count

int Slic3r::GUI::StatusPanel::m_model_mall_request_count = 0
protected

◆ m_mqtt_source

wxStaticText* Slic3r::GUI::StatusBasePanel::m_mqtt_source
protectedinherited

◆ m_next_step

size_t Slic3r::GUI::StagedBuild::m_next_step { 0 }
privateinherited
59{ 0 };

Referenced by add_build_steps_of(), build_step(), and built().

◆ m_nozzle_btn_panel

◆ m_nozzle_num

int Slic3r::GUI::StatusBasePanel::m_nozzle_num { 0 }
protectedinherited

◆ m_options_btn

◆ m_panel_control_title

wxPanel* Slic3r::GUI::StatusBasePanel::m_panel_control_title
protectedinherited

◆ m_panel_error_txt

wxPanel* Slic3r::GUI::StatusBasePanel::m_panel_error_txt
protectedinherited

◆ m_panel_monitoring_title

wxPanel* Slic3r::GUI::StatusBasePanel::m_panel_monitoring_title
protectedinherited

◆ m_panel_nozzle_rack

◆ m_panel_printing_title

wxPanel* Slic3r::GUI::StatusBasePanel::m_panel_printing_title
protectedinherited

◆ m_panel_separator_right

wxPanel* Slic3r::GUI::StatusBasePanel::m_panel_separator_right
protectedinherited

Referenced by StatusBasePanel().

◆ m_panel_separotor_bottom

wxPanel* Slic3r::GUI::StatusBasePanel::m_panel_separotor_bottom
protectedinherited

Referenced by StatusBasePanel().

◆ m_parts_btn

◆ m_partskip_dlg

PartSkipDialog* Slic3r::GUI::StatusPanel::m_partskip_dlg {nullptr}
protected
680{nullptr};

Referenced by on_subtask_partskip(), and update_partskip_subtask().

◆ m_print_connect_types

std::map<std::string, std::string> Slic3r::GUI::StatusPanel::m_print_connect_types
protected

Referenced by update().

◆ m_print_error_dlg

DeviceErrorDialog* Slic3r::GUI::StatusPanel::m_print_error_dlg = nullptr
protected

Referenced by update_error_message().

◆ m_printing_sizer

wxBoxSizer* Slic3r::GUI::StatusBasePanel::m_printing_sizer
protectedinherited

◆ m_printing_stage_value

wxStaticText* Slic3r::GUI::StatusBasePanel::m_printing_stage_value
protectedinherited

◆ m_project_task_panel

◆ m_rating_result

nlohmann::json Slic3r::GUI::StatusPanel::m_rating_result
protected

◆ m_request_url

wxString Slic3r::GUI::StatusPanel::m_request_url
protected

◆ m_safety_btn

◆ m_scale_panel

wxPanel* Slic3r::GUI::StatusBasePanel::m_scale_panel
protectedinherited

◆ m_score_data

ScoreData* Slic3r::GUI::StatusPanel::m_score_data = nullptr
protected

◆ m_setting_button

◆ m_show_ams_group

bool Slic3r::GUI::StatusBasePanel::m_show_ams_group {false}
protectedinherited
548{false};

Referenced by Slic3r::GUI::StatusPanel::set_default().

◆ m_show_filament_group

bool Slic3r::GUI::StatusBasePanel::m_show_filament_group { false }
protectedinherited
549{ false };

Referenced by Slic3r::GUI::StatusPanel::set_default().

◆ m_show_mode_changed

bool Slic3r::GUI::StatusPanel::m_show_mode_changed = false
protected

◆ m_slice_info_popup

std::shared_ptr<SliceInfoPopup> Slic3r::GUI::StatusPanel::m_slice_info_popup
protected

◆ m_start_loading_thumbnail

bool Slic3r::GUI::StatusPanel::m_start_loading_thumbnail = false
protected

◆ m_state_recording

CameraRecordingStatus Slic3r::GUI::StatusBasePanel::m_state_recording {CameraRecordingStatus::RECORDING_NONE}
protectedinherited
@ RECORDING_NONE
Definition StatusPanel.hpp:83

◆ m_state_timelapse

CameraTimelapseStatus Slic3r::GUI::StatusBasePanel::m_state_timelapse {CameraTimelapseStatus::TIMELAPSE_NONE}
protectedinherited
@ TIMELAPSE_NONE
Definition StatusPanel.hpp:91

◆ m_staticline

wxPanel* Slic3r::GUI::StatusBasePanel::m_staticline
protectedinherited

◆ m_staticText_calibration_caption

wxStaticText* Slic3r::GUI::StatusBasePanel::m_staticText_calibration_caption
protectedinherited

◆ m_staticText_calibration_caption_top

wxStaticText* Slic3r::GUI::StatusBasePanel::m_staticText_calibration_caption_top
protectedinherited

◆ m_staticText_consumption_of_time

wxStaticText* Slic3r::GUI::StatusBasePanel::m_staticText_consumption_of_time
protectedinherited

◆ m_staticText_consumption_of_weight

wxStaticText* Slic3r::GUI::StatusBasePanel::m_staticText_consumption_of_weight
protectedinherited

◆ m_staticText_control

Label* Slic3r::GUI::StatusBasePanel::m_staticText_control
protectedinherited

◆ m_staticText_layers

wxStaticText* Slic3r::GUI::StatusBasePanel::m_staticText_layers
protectedinherited

◆ m_staticText_monitoring

Label* Slic3r::GUI::StatusBasePanel::m_staticText_monitoring
protectedinherited

Referenced by create_monitoring_page().

◆ m_staticText_printing

Label* Slic3r::GUI::StatusBasePanel::m_staticText_printing
protectedinherited

◆ m_staticText_profile_value

wxStaticText* Slic3r::GUI::StatusBasePanel::m_staticText_profile_value
protectedinherited

◆ m_staticText_progress_left

wxStaticText* Slic3r::GUI::StatusBasePanel::m_staticText_progress_left
protectedinherited

◆ m_staticText_progress_percent

wxStaticText* Slic3r::GUI::StatusBasePanel::m_staticText_progress_percent
protectedinherited

◆ m_staticText_progress_percent_icon

wxStaticText* Slic3r::GUI::StatusBasePanel::m_staticText_progress_percent_icon
protectedinherited

◆ m_staticText_subtask_value

wxStaticText* Slic3r::GUI::StatusBasePanel::m_staticText_subtask_value
protectedinherited

◆ m_staticText_timelapse

wxStaticText* Slic3r::GUI::StatusBasePanel::m_staticText_timelapse
protectedinherited

◆ m_staticText_z_tip

wxStaticText* Slic3r::GUI::StatusBasePanel::m_staticText_z_tip
protectedinherited

◆ m_steps

std::vector<std::function<void()> > Slic3r::GUI::StagedBuild::m_steps
privateinherited

◆ m_switch_block_fan

wxPanel* Slic3r::GUI::StatusBasePanel::m_switch_block_fan
protectedinherited

◆ m_switch_cham_fan

FanSwitchButton* Slic3r::GUI::StatusBasePanel::m_switch_cham_fan
protectedinherited

◆ m_switch_cham_fan_timeout

int Slic3r::GUI::StatusBasePanel::m_switch_cham_fan_timeout {0}
protectedinherited

◆ m_switch_fan

◆ m_switch_lamp

◆ m_switch_lamp_timeout

int Slic3r::GUI::StatusBasePanel::m_switch_lamp_timeout {0}
protectedinherited

◆ m_switch_nozzle_fan

FanSwitchButton* Slic3r::GUI::StatusBasePanel::m_switch_nozzle_fan
protectedinherited

◆ m_switch_nozzle_fan_timeout

int Slic3r::GUI::StatusBasePanel::m_switch_nozzle_fan_timeout {0}
protectedinherited

◆ m_switch_printing_fan

FanSwitchButton* Slic3r::GUI::StatusBasePanel::m_switch_printing_fan
protectedinherited

◆ m_switch_printing_fan_timeout

int Slic3r::GUI::StatusBasePanel::m_switch_printing_fan_timeout {0}
protectedinherited

◆ m_switch_speed

◆ m_tasklist_caption_sizer

wxBoxSizer* Slic3r::GUI::StatusBasePanel::m_tasklist_caption_sizer
protectedinherited

◆ m_tasklist_info_sizer

wxGridBagSizer* Slic3r::GUI::StatusBasePanel::m_tasklist_info_sizer {nullptr}
protectedinherited
563{nullptr};

◆ m_tasklist_sizer

wxBoxSizer* Slic3r::GUI::StatusBasePanel::m_tasklist_sizer
protectedinherited

◆ m_temp_bed_timeout

int Slic3r::GUI::StatusBasePanel::m_temp_bed_timeout {0}
protectedinherited

◆ m_temp_chamber_timeout

int Slic3r::GUI::StatusBasePanel::m_temp_chamber_timeout {0}
protectedinherited

◆ m_temp_extruder_line

wxPanel* Slic3r::GUI::StatusBasePanel::m_temp_extruder_line
protectedinherited

◆ m_temp_nozzle_deputy_timeout

int Slic3r::GUI::StatusBasePanel::m_temp_nozzle_deputy_timeout { 0 }
protectedinherited

◆ m_temp_nozzle_timeout

int Slic3r::GUI::StatusBasePanel::m_temp_nozzle_timeout { 0 }
protectedinherited

◆ m_temp_temp_line

wxPanel* Slic3r::GUI::StatusBasePanel::m_temp_temp_line
protectedinherited

Referenced by create_temp_axis_group().

◆ m_tempCtrl_bed

◆ m_tempCtrl_chamber

◆ m_tempCtrl_nozzle

◆ m_tempCtrl_nozzle_deputy

◆ m_text_tasklist_caption

wxStaticText* Slic3r::GUI::StatusBasePanel::m_text_tasklist_caption
protectedinherited

◆ m_thumbnail_brokenimg

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_thumbnail_brokenimg
protectedinherited

◆ m_thumbnail_placeholder

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_thumbnail_placeholder
protectedinherited

◆ m_thumbnail_sdcard

ScalableBitmap Slic3r::GUI::StatusBasePanel::m_thumbnail_sdcard
protectedinherited

◆ m_web_media_controller

std::unique_ptr<WebMediaController> Slic3r::GUI::StatusBasePanel::m_web_media_controller
protectedinherited

Referenced by create_monitoring_page().

◆ media_ctrl_panel

wxPanel* Slic3r::GUI::StatusBasePanel::media_ctrl_panel
protectedinherited

◆ nozzle_temp_input

bool Slic3r::GUI::StatusPanel::nozzle_temp_input = false
protected

◆ obj

MachineObject* Slic3r::GUI::StatusBasePanel::obj {nullptr}
inherited
620{nullptr};

Referenced by StatusBasePanel(), Slic3r::GUI::StatusPanel::check_axis_z_at_home(), create_filament_group(), expand_filament_loading(), Slic3r::GUI::StatusPanel::is_stage_list_info_changed(), Slic3r::GUI::StatusPanel::is_task_changed(), jump_to_Rack(), Slic3r::GUI::StatusPanel::load_thumbnail_from_url(), Slic3r::GUI::StatusPanel::MonitorPanel, Slic3r::GUI::StatusPanel::msw_rescale(), Slic3r::GUI::StatusPanel::on_ams_filament_backup(), Slic3r::GUI::StatusPanel::on_ams_load_curr(), Slic3r::GUI::StatusPanel::on_ams_refresh_rfid(), Slic3r::GUI::StatusPanel::on_ams_retry(), Slic3r::GUI::StatusPanel::on_ams_selected(), Slic3r::GUI::StatusPanel::on_ams_setting_click(), Slic3r::GUI::StatusPanel::on_ams_switch(), Slic3r::GUI::StatusPanel::on_ams_unload(), Slic3r::GUI::StatusPanel::on_auto_leveling(), Slic3r::GUI::StatusPanel::on_axis_ctrl_e_down_10(), Slic3r::GUI::StatusPanel::on_axis_ctrl_e_up_10(), Slic3r::GUI::StatusPanel::on_axis_ctrl_xy(), Slic3r::GUI::StatusPanel::on_axis_ctrl_z_down_1(), Slic3r::GUI::StatusPanel::on_axis_ctrl_z_down_10(), Slic3r::GUI::StatusPanel::on_axis_ctrl_z_up_1(), Slic3r::GUI::StatusPanel::on_axis_ctrl_z_up_10(), Slic3r::GUI::StatusPanel::on_camera_enter(), Slic3r::GUI::StatusPanel::on_camera_leave(), Slic3r::GUI::StatusPanel::on_ext_spool_edit(), Slic3r::GUI::StatusPanel::on_filament_edit(), Slic3r::GUI::StatusPanel::on_filament_extrusion_cali(), Slic3r::GUI::StatusPanel::on_lamp_switch(), Slic3r::GUI::StatusPanel::on_market_retry(), Slic3r::GUI::StatusPanel::on_market_scoring(), Slic3r::GUI::StatusPanel::on_nozzle_fan_switch(), Slic3r::GUI::StatusPanel::on_nozzle_selected(), Slic3r::GUI::StatusPanel::on_print_error_clean(), Slic3r::GUI::StatusPanel::on_set_bed_temp(), Slic3r::GUI::StatusPanel::on_set_chamber_temp(), Slic3r::GUI::StatusPanel::on_set_nozzle_temp(), Slic3r::GUI::StatusPanel::on_show_parts_options(), Slic3r::GUI::StatusPanel::on_show_print_options(), Slic3r::GUI::StatusPanel::on_show_safety_options(), Slic3r::GUI::StatusPanel::on_start_calibration(), Slic3r::GUI::StatusPanel::on_subtask_abort(), Slic3r::GUI::StatusPanel::on_subtask_pause_resume(), Slic3r::GUI::StatusPanel::on_switch_speed(), Slic3r::GUI::StatusPanel::on_thumbnail_leave(), Slic3r::GUI::StatusPanel::on_webrequest_state(), Slic3r::GUI::StatusPanel::on_xyz_abs(), Slic3r::GUI::StatusPanel::refresh_thumbnail_webrequest(), Slic3r::GUI::StatusPanel::rescale_camera_icons(), Slic3r::GUI::StatusPanel::reset_printing_values(), Slic3r::GUI::StatusPanel::set_default(), show_filament_load_group(), Slic3r::GUI::StatusPanel::show_recenter_dialog(), Slic3r::GUI::CalibrationCaliPage::update(), Slic3r::GUI::StatusPanel::update(), Slic3r::GUI::StatusPanel::update_ams(), Slic3r::GUI::StatusPanel::update_ams_control_state(), Slic3r::GUI::StatusPanel::update_basic_print_data(), Slic3r::GUI::StatusPanel::update_cali(), Slic3r::GUI::StatusPanel::update_camera_state(), Slic3r::GUI::StatusPanel::update_cloud_subtask(), Slic3r::GUI::StatusPanel::update_error_message(), Slic3r::GUI::StatusPanel::update_extruder_status(), Slic3r::GUI::StatusPanel::update_filament_loading_panel(), Slic3r::GUI::StatusPanel::update_left_time(), Slic3r::GUI::StatusPanel::update_load_with_temp(), Slic3r::GUI::StatusPanel::update_misc_ctrl(), Slic3r::GUI::StatusPanel::update_model_info(), Slic3r::GUI::StatusPanel::update_partskip_button(), Slic3r::GUI::StatusPanel::update_partskip_subtask(), Slic3r::GUI::StatusPanel::update_rack(), Slic3r::GUI::StatusPanel::update_sdcard_subtask(), Slic3r::GUI::StatusPanel::update_subtask(), Slic3r::GUI::StatusPanel::update_tasklist_info(), Slic3r::GUI::StatusPanel::update_temp_ctrl(), and Slic3r::GUI::StatusPanel::wire_controls().

◆ print_options_dlg

PrintOptionsDialog* Slic3r::GUI::StatusPanel::print_options_dlg { nullptr }
protected
665{ nullptr };

Referenced by on_show_print_options(), and update().

◆ print_parts_dlg

PrinterPartsDialog* Slic3r::GUI::StatusPanel::print_parts_dlg { nullptr }
protected
664{ nullptr };

Referenced by on_show_parts_options(), and update_printer_parts_options().

◆ rated_model_id

std::set<int> Slic3r::GUI::StatusPanel::rated_model_id
protected

◆ request_model_info_flag

bool Slic3r::GUI::StatusPanel::request_model_info_flag = false
protected

◆ safety_options_dlg

SafetyOptionsDialog* Slic3r::GUI::StatusPanel::safety_options_dlg { nullptr }
protected
666{ nullptr };

Referenced by on_show_safety_options(), and update().

◆ sdcard_hint_dlg

SecondaryCheckDialog* Slic3r::GUI::StatusPanel::sdcard_hint_dlg = nullptr
protected

Referenced by ~StatusPanel(), and on_camera_enter().

◆ show_vcamera

bool Slic3r::GUI::StatusPanel::show_vcamera = false
protected

◆ skip_print_error

int Slic3r::GUI::StatusBasePanel::skip_print_error = 0
inherited

◆ speed_dismiss_time

boost::posix_time::ptime Slic3r::GUI::StatusPanel::speed_dismiss_time
protected

Referenced by on_switch_speed().

◆ speed_lvl

int Slic3r::GUI::StatusPanel::speed_lvl = 1
protected

◆ speed_lvl_timeout

int Slic3r::GUI::StatusPanel::speed_lvl_timeout {0}
protected
700{0};

Referenced by on_switch_speed(), set_default(), and update_misc_ctrl().

◆ web_request

wxWebRequest Slic3r::GUI::StatusPanel::web_request
protected

The documentation for this class was generated from the following files: