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

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

Inheritance diagram for Slic3r::GUI::PrintOptionsDialog:
Collaboration diagram for Slic3r::GUI::PrintOptionsDialog:

Public Types

enum  AiMonitorSensitivityLevel { LOW = 0 , MEDIUM = 1 , HIGH = 2 , LEVELS_NUM = 3 }

Public Member Functions

 PrintOptionsDialog (wxWindow *parent)
 ~PrintOptionsDialog ()
void on_dpi_changed (const wxRect &suggested_rect) override
void update_ai_monitor_status ()
void update_spaghetti_detection_status ()
void update_purgechutepileup_detection_status ()
void update_nozzleclumping_detection_status ()
void update_airprinting_detection_status ()
void update_purify_air_at_print_end (MachineObject *obj_)
void update_smart_nozzle_blob_mode_desc (int selection)
void update_options (MachineObject *obj_)
void update_machine_obj (MachineObject *obj_)
bool Show (bool show) override
wxString sensitivity_level_to_label_string (enum AiMonitorSensitivityLevel level)
std::string sensitivity_level_to_msg_string (enum AiMonitorSensitivityLevel level)
void set_ai_monitor_sensitivity (wxCommandEvent &evt)
void set_spaghetti_detection_sensitivity (wxCommandEvent &evt)
void set_purgechutepileup_detection_sensitivity (wxCommandEvent &evt)
void set_nozzleclumping_detection_sensitivity (wxCommandEvent &evt)
void set_airprinting_detection_sensitivity (wxCommandEvent &evt)
void EndModal (int retCode) override
float scale_factor () const
float prev_scale_factor () const
void set_scale_factor (float v)
void set_prev_scale_factor (float v)
void set_em_unit (int v)
bool force_rescale () const
int em_unit () const
const wxFont & normal_font () const
void enable_force_rescale ()
int ShowModal ()

Public Attributes

MachineObject * obj { nullptr }
std::vector< int > last_stage_list_info
int m_state {0}

Protected Member Functions

wxBoxSizer * create_settings_group (wxWindow *parent)
virtual void on_sys_color_changed ()

Protected Attributes

wxScrolledWindow * m_scrollwindow
CheckBox * m_cb_first_layer
CheckBox * m_cb_ai_monitoring
CheckBox * m_cb_spaghetti_detection
CheckBox * m_cb_purgechutepileup_detection
CheckBox * m_cb_nozzleclumping_detection
CheckBox * m_cb_airprinting_detection
CheckBox * m_cb_plate_mark
CheckBox * m_cb_auto_recovery
CheckBox * m_cb_save_remote_print_file_to_storage
CheckBox * m_cb_sup_sound
CheckBox * m_cb_filament_tangle
CheckBox * m_cb_nozzle_blob
CheckBox * m_cb_open_door
CheckBox * m_cb_plate_align {nullptr}
CheckBox * m_cb_fod_check {nullptr}
CheckBox * m_cb_displacement_detection {nullptr}
CheckBox * m_cb_purify_air_at_print_end {nullptr}
CheckBox * m_cb_snapshot_enable {nullptr}
Label * text_first_layer
Label * text_ai_detections
Label * text_ai_detections_caption
wxPanel * ai_refine_panel
wxSizerItem * ai_detections_bottom_space
wxSizerItem * ai_monitoring_bottom_space
wxSizerItem * spaghetti_bottom_space
wxSizerItem * purgechutepileup_bottom_space
wxSizerItem * nozzleclumping_bottom_space
wxSizerItem * airprinting_bottom_space
wxSizerItem * purify_air_bottom_space {nullptr}
wxSizerItem * plate_align_bottom_space {nullptr}
wxSizerItem * fod_check_bottom_space {nullptr}
wxSizerItem * displacement_bottom_space {nullptr}
wxSizerItem * smart_nozzle_blob_bottom_space {nullptr}
Label * text_ai_monitoring
Label * text_ai_monitoring_caption
Label * text_spaghetti_detection
Label * text_spaghetti_detection_caption0
Label * text_spaghetti_detection_caption1
Label * text_purgechutepileup_detection
Label * text_purgechutepileup_detection_caption0
Label * text_purgechutepileup_detection_caption1
Label * text_nozzleclumping_detection
Label * text_nozzleclumping_detection_caption0
Label * text_nozzleclumping_detection_caption1
Label * text_airprinting_detection
Label * text_airprinting_detection_caption0
Label * text_airprinting_detection_caption1
ComboBox * ai_monitoring_level_list
ComboBox * spaghetti_detection_level_list
ComboBox * purgechutepileup_detection_level_list
ComboBox * nozzleclumping_detection_level_list
ComboBox * airprinting_detection_level_list
Label * text_plate_mark
Label * text_plate_mark_caption
Label * text_auto_recovery
Label * text_save_remote_print_file_to_storage
Label * text_save_remote_print_file_to_storage_explain
Label * text_sup_sound
Label * text_filament_tangle
Label * text_nozzle_blob
Label * text_nozzle_blob_caption
Label * text_open_door
Label * text_plate_align {nullptr}
Label * text_plate_align_caption {nullptr}
Label * text_fod_check {nullptr}
Label * text_fod_check_caption {nullptr}
Label * text_displacement_detection {nullptr}
Label * text_displacement_detection_caption {nullptr}
Label * text_purify_air {nullptr}
Label * text_purify_air_context {nullptr}
Label * text_smart_nozzle_blob {nullptr}
Label * text_smart_nozzle_blob_mode_desc {nullptr}
StaticLine * line1
StaticLine * line2
StaticLine * line3
StaticLine * line4
StaticLine * line5
StaticLine * line6
StaticLine * line7
SwitchBoard * open_door_switch_board
SwitchBoard * purify_air_switch_board {nullptr}
MultiSwitchButton * m_smart_nozzle_blob_mode_switch {nullptr}
wxBoxSizer * m_snapshot_sizer {nullptr}
wxPanel * m_line
bool print_halt = false

Private Member Functions

void UpdateOptionSavePrintFileToStorage (MachineObject *obj)
void UpdateOptionOpenDoorCheck (MachineObject *obj)
void UpdateOptionSnapshot (MachineObject *obj)
void update_em_unit ()
bool is_new_scale_factor () const
void rescale (const wxRect &suggested_rect)

Private Attributes

float m_scale_factor
int m_em_unit
wxFont m_normal_font
float m_prev_scale_factor
bool m_can_rescale
bool m_force_rescale
int m_new_font_point_size

Detailed Description

Member Enumeration Documentation

◆ AiMonitorSensitivityLevel

Enumerator
LOW 
MEDIUM 
HIGH 
LEVELS_NUM 
204 {
205 LOW = 0,
206 MEDIUM = 1,
207 HIGH = 2,
208 LEVELS_NUM = 3
209 };
@ HIGH
Definition PrintOptionsDialog.hpp:207
@ MEDIUM
Definition PrintOptionsDialog.hpp:206
@ LEVELS_NUM
Definition PrintOptionsDialog.hpp:208
@ LOW
Definition PrintOptionsDialog.hpp:205

Constructor & Destructor Documentation

◆ PrintOptionsDialog()

Slic3r::GUI::PrintOptionsDialog::PrintOptionsDialog ( wxWindow * parent)
52 : DPIDialog(parent, wxID_ANY, _L("Print Options"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX)
53{
54 this->SetDoubleBuffered(true);
55 SetBackgroundColour(*wxWHITE);
56 // SetMinSize(FromDIP(wxSize{wxDefaultCoord,520}));
57
58
59 m_scrollwindow = new wxScrolledWindow(this, wxID_ANY);
60 m_scrollwindow->SetScrollRate(0, FromDIP(20));
61 m_scrollwindow->SetBackgroundColour(*wxWHITE);
62 m_scrollwindow->SetMinSize(wxSize(FromDIP(480), wxDefaultCoord));
63 m_scrollwindow->SetMaxSize(wxSize(FromDIP(480), wxDefaultCoord));
64
65 auto m_options_sizer = create_settings_group(m_scrollwindow);
66 m_options_sizer->SetMinSize(wxSize(FromDIP(460), wxDefaultCoord));
67
68 m_scrollwindow->SetSizer(m_options_sizer);
69
70 wxBoxSizer *mainSizer = new wxBoxSizer(wxVERTICAL);
71 mainSizer->Add(m_scrollwindow, 1, wxEXPAND);
72 this->SetSizer(mainSizer);
73
74 m_options_sizer->Fit(m_scrollwindow);
75 m_scrollwindow->FitInside();
76
77 this->Layout();
78 mainSizer->SetMinSize(wxDefaultCoord, FromDIP(520));
79 mainSizer->Fit(this);
80 //this->Fit();
81
82 m_cb_ai_monitoring->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent &evt) {
83 if (obj) {
84 int level = ai_monitoring_level_list->GetSelection();
86 if (!lvl.empty())
87 obj->command_xcam_control_ai_monitoring(m_cb_ai_monitoring->GetValue(), lvl);
88 else
89 BOOST_LOG_TRIVIAL(warning) << "print_option: lvl = " << lvl;
90 }
91 evt.Skip();
92 });
93
94
95 // refine printer function options
96 m_cb_spaghetti_detection->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
97 if (obj) {
98 int level = spaghetti_detection_level_list->GetSelection();
100 if (!lvl.empty())
101 obj->command_xcam_control_spaghetti_detection(m_cb_spaghetti_detection->GetValue(), lvl);
102 else
103 BOOST_LOG_TRIVIAL(warning) << "print_option: lvl = " << lvl;
104 }
105 evt.Skip();
106 });
107
108
109 m_cb_purgechutepileup_detection->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent &evt) {
110 if (obj) {
111 int level = purgechutepileup_detection_level_list->GetSelection();
113 if (!lvl.empty())
114 obj->command_xcam_control_purgechutepileup_detection(m_cb_purgechutepileup_detection->GetValue(), lvl);
115 else
116 BOOST_LOG_TRIVIAL(warning) << "print_option: lvl = " << lvl;
117 }
118 evt.Skip();
119 });
120
121
122 m_cb_nozzleclumping_detection->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent &evt) {
123 if (obj) {
124 int level = nozzleclumping_detection_level_list->GetSelection();
126 if (!lvl.empty())
127 obj->command_xcam_control_nozzleclumping_detection(m_cb_nozzleclumping_detection->GetValue(), lvl);
128 else
129 BOOST_LOG_TRIVIAL(warning) << "print_option: lvl = " << lvl;
130 }
131 evt.Skip();
132 });
133
134 m_cb_airprinting_detection->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent &evt) {
135 if (obj) {
136 int level = airprinting_detection_level_list->GetSelection();
138 if (!lvl.empty())
139 obj->command_xcam_control_airprinting_detection(m_cb_airprinting_detection->GetValue(), lvl);
140 else
141 BOOST_LOG_TRIVIAL(warning) << "print_option: lvl = " << lvl;
142 }
143 evt.Skip();
144 });
145
146
147
148 m_cb_first_layer->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
149 if (obj) {
150 obj->command_xcam_control_first_layer_inspector(m_cb_first_layer->GetValue(), false);
151 }
152 evt.Skip();
153 });
154
155 m_cb_auto_recovery->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
156 if (obj) {
157 obj->command_xcam_control_auto_recovery_step_loss(m_cb_auto_recovery->GetValue());
158 }
159 evt.Skip();
160 });
161
162 m_cb_save_remote_print_file_to_storage->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt)
163 {
164 if (obj) { obj->command_set_save_remote_print_file_to_storage(m_cb_save_remote_print_file_to_storage->GetValue());}
165 evt.Skip();
166 });
167
168 m_cb_plate_mark->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
169 if (obj) {
170 obj->command_xcam_control_buildplate_marker_detector(m_cb_plate_mark->GetValue());
171 }
172 evt.Skip();
173 });
174 m_cb_sup_sound->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
175 if (obj) {
176 obj->command_xcam_control_allow_prompt_sound(m_cb_sup_sound->GetValue());
177 }
178 evt.Skip();
179 });
180 m_cb_filament_tangle->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
181 if (obj) {
182 obj->command_xcam_control_filament_tangle_detect(m_cb_filament_tangle->GetValue());
183 }
184 evt.Skip();
185 });
186 m_cb_nozzle_blob->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
187 if (obj) {
188 obj->command_nozzle_blob_detect(m_cb_nozzle_blob->GetValue());
189 }
190 evt.Skip();
191 });
192
193 m_cb_open_door->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
194 if (m_cb_open_door->GetValue()) {
195 if (obj) { obj->command_set_door_open_check(MachineObject::DOOR_OPEN_CHECK_ENABLE_WARNING); }
196 } else {
197 if (obj) { obj->command_set_door_open_check(MachineObject::DOOR_OPEN_CHECK_DISABLE); }
198 }
199 evt.Skip();
200 });
201
202 open_door_switch_board->Bind(wxCUSTOMEVT_SWITCH_POS, [this](wxCommandEvent& evt)
203 {
204 if (evt.GetInt() == 0)
205 {
206 if (obj) { obj->command_set_door_open_check(MachineObject::DOOR_OPEN_CHECK_ENABLE_PAUSE_PRINT); }
207 }
208 else if (evt.GetInt() == 1)
209 {
210 if (obj) { obj->command_set_door_open_check(MachineObject::DOOR_OPEN_CHECK_ENABLE_WARNING); }
211 }
212 evt.Skip();
213 });
214
215 // Firmware print-option toggles (each gated on a fun2 capability bit, published via DevPrintOptions).
216 m_cb_plate_align->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
217 if (obj) { obj->GetPrintOptions()->command_xcam_control_build_plate_align_detector(m_cb_plate_align->GetValue()); }
218 evt.Skip();
219 });
220
221 m_cb_fod_check->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
222 if (obj) { obj->GetPrintOptions()->command_xcam_control_fod_check(m_cb_fod_check->GetValue()); }
223 evt.Skip();
224 });
225
226 m_cb_displacement_detection->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
227 if (obj) { obj->GetPrintOptions()->command_xcam_control_displacement_detection(m_cb_displacement_detection->GetValue()); }
228 evt.Skip();
229 });
230
231 m_cb_purify_air_at_print_end->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
232 if (obj) { obj->GetPrintOptions()->command_xcam_control_purify_air_at_print_end(m_cb_purify_air_at_print_end->GetValue()); }
233 evt.Skip();
234 });
235
236 purify_air_switch_board->Bind(wxCUSTOMEVT_SWITCH_POS, [this](wxCommandEvent& evt) {
237 if (evt.GetInt() == 0) {
238 if (obj) { obj->GetPrintOptions()->command_xcam_control_purify_air_at_print_end((int) DevPrintOptions::PurifyAirAtPrintEndState::PurifyAirByOutside); }
239 } else if (evt.GetInt() == 1) {
240 if (obj) { obj->GetPrintOptions()->command_xcam_control_purify_air_at_print_end((int) DevPrintOptions::PurifyAirAtPrintEndState::PurifyAirByInside); }
241 }
242 evt.Skip();
243 });
244
245 m_smart_nozzle_blob_mode_switch->Bind(wxCUSTOMEVT_MULTISWITCH_SELECTION, [this](wxCommandEvent& evt) {
246 if (!obj || !obj->GetPrintOptions()) { evt.Skip(); return; }
247 int sel = m_smart_nozzle_blob_mode_switch->GetSelection();
248 // UI: 0=Auto, 1=On, 2=Off -> protocol: 0=off, 1=on, 2=auto
249 int mode_map[] = {2, 1, 0};
250 if (sel < 0 || sel > 2) { evt.Skip(); return; }
251
252 // If currently in Auto (current_detect_value == 2), a print is running, and a loaded
253 // filament is stringing-prone, confirm before enabling — turning blob detection on
254 // mid-print with such filament can degrade quality.
255 const auto* blob_opt = obj->GetPrintOptions()->GetDetectionOption(PrintOptionEnum::Smart_Nozzle_Blob_Detection);
256 const bool was_auto = blob_opt && blob_opt->current_detect_value == 2;
257 if (sel == 1 /*On*/ && was_auto && obj->is_in_printing()
258 && obj->any_loaded_filament_is_stringing_prone()) {
259 wxString message = _L("There is stringing-prone filament in the current print job. "
260 "Enabling nozzle clumping detection now may degrade print quality. "
261 "Are you sure you want to enable it?");
262 wxString caption = _L("Enable Nozzle Clumping Detection");
263 // Themed warning dialog with Cancel as the highlighted default, so the safe choice (leave
264 // detection off) is the default and Confirm must be actively picked.
265 MessageDialog dialog(this, message, caption, wxICON_WARNING);
266 dialog.AddButton(wxID_CANCEL, _L("Cancel"), true);
267 dialog.AddButton(wxID_OK, _L("Confirm"), false);
268 if (dialog.ShowModal() != wxID_OK) {
269 // User cancelled: roll the switch back to Auto without sending the command.
270 m_smart_nozzle_blob_mode_switch->SetSelection(0);
272 evt.Skip();
273 return;
274 }
275 }
276
277 obj->GetPrintOptions()->command_smart_nozzle_blob_detect_mode(mode_map[sel]);
279 evt.Skip();
280 });
281
282 m_cb_snapshot_enable->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& evt) {
283 if (!obj || !obj->GetPrintOptions()) { evt.Skip(); return; }
284 if (m_cb_snapshot_enable->GetValue()) {
285 wxString message = _L("When enabled, the printer will automatically capture photos of printed parts and upload them to the cloud. Would you like to enable this option?");
286 wxString caption = _L("Confirm Enable Print Status Snapshot");
287 wxMessageDialog dialog(this, message, caption, wxYES_NO | wxICON_QUESTION);
288 dialog.SetYesNoLabels(_L("Confirm"), _L("Cancel"));
289 if (dialog.ShowModal() == wxID_YES) {
290 obj->GetPrintOptions()->command_snapshot_control(true);
291 m_cb_snapshot_enable->SetValue(true);
292 } else {
293 m_cb_snapshot_enable->SetValue(false);
294 }
295 } else {
296 obj->GetPrintOptions()->command_snapshot_control(false);
297 }
298 evt.Skip();
299 });
300
301 wxGetApp().UpdateDlgDarkUI(this);
302}
#define _L(s)
Definition OBJ.cpp:34
@ PurifyAirByInside
Definition DevPrintOptions.h:50
@ PurifyAirByOutside
Definition DevPrintOptions.h:51
ComboBox * nozzleclumping_detection_level_list
Definition PrintOptionsDialog.hpp:143
CheckBox * m_cb_filament_tangle
Definition PrintOptionsDialog.hpp:96
CheckBox * m_cb_open_door
Definition PrintOptionsDialog.hpp:98
CheckBox * m_cb_plate_align
Definition PrintOptionsDialog.hpp:100
MultiSwitchButton * m_smart_nozzle_blob_mode_switch
Definition PrintOptionsDialog.hpp:174
CheckBox * m_cb_nozzleclumping_detection
Definition PrintOptionsDialog.hpp:90
wxBoxSizer * create_settings_group(wxWindow *parent)
Definition PrintOptionsDialog.cpp:817
void update_smart_nozzle_blob_mode_desc(int selection)
Definition PrintOptionsDialog.cpp:773
CheckBox * m_cb_nozzle_blob
Definition PrintOptionsDialog.hpp:97
CheckBox * m_cb_airprinting_detection
Definition PrintOptionsDialog.hpp:91
CheckBox * m_cb_displacement_detection
Definition PrintOptionsDialog.hpp:102
CheckBox * m_cb_purgechutepileup_detection
Definition PrintOptionsDialog.hpp:89
AiMonitorSensitivityLevel
Definition PrintOptionsDialog.hpp:204
CheckBox * m_cb_ai_monitoring
Definition PrintOptionsDialog.hpp:87
CheckBox * m_cb_spaghetti_detection
Definition PrintOptionsDialog.hpp:88
CheckBox * m_cb_auto_recovery
Definition PrintOptionsDialog.hpp:93
SwitchBoard * open_door_switch_board
Definition PrintOptionsDialog.hpp:172
SwitchBoard * purify_air_switch_board
Definition PrintOptionsDialog.hpp:173
ComboBox * purgechutepileup_detection_level_list
Definition PrintOptionsDialog.hpp:142
CheckBox * m_cb_fod_check
Definition PrintOptionsDialog.hpp:101
CheckBox * m_cb_plate_mark
Definition PrintOptionsDialog.hpp:92
ComboBox * airprinting_detection_level_list
Definition PrintOptionsDialog.hpp:144
CheckBox * m_cb_purify_air_at_print_end
Definition PrintOptionsDialog.hpp:103
CheckBox * m_cb_snapshot_enable
Definition PrintOptionsDialog.hpp:104
CheckBox * m_cb_first_layer
Definition PrintOptionsDialog.hpp:86
ComboBox * ai_monitoring_level_list
Definition PrintOptionsDialog.hpp:140
CheckBox * m_cb_save_remote_print_file_to_storage
Definition PrintOptionsDialog.hpp:94
std::string sensitivity_level_to_msg_string(enum AiMonitorSensitivityLevel level)
Definition PrintOptionsDialog.cpp:1387
ComboBox * spaghetti_detection_level_list
Definition PrintOptionsDialog.hpp:141
wxScrolledWindow * m_scrollwindow
Definition PrintOptionsDialog.hpp:85
CheckBox * m_cb_sup_sound
Definition PrintOptionsDialog.hpp:95
MachineObject * obj
Definition PrintOptionsDialog.hpp:196
@ DOOR_OPEN_CHECK_ENABLE_PAUSE_PRINT
Definition DeviceManager.hpp:577
@ DOOR_OPEN_CHECK_DISABLE
Definition DeviceManager.hpp:575
@ DOOR_OPEN_CHECK_ENABLE_WARNING
Definition DeviceManager.hpp:576
@ Smart_Nozzle_Blob_Detection
Definition DevPrintOptions.h:29

References _L, Slic3r::GUI::MsgDialog::AddButton(), ai_monitoring_level_list, airprinting_detection_level_list, create_settings_group(), Slic3r::MachineObject::DOOR_OPEN_CHECK_DISABLE, Slic3r::MachineObject::DOOR_OPEN_CHECK_ENABLE_PAUSE_PRINT, Slic3r::MachineObject::DOOR_OPEN_CHECK_ENABLE_WARNING, m_cb_ai_monitoring, m_cb_airprinting_detection, m_cb_auto_recovery, m_cb_displacement_detection, m_cb_filament_tangle, m_cb_first_layer, m_cb_fod_check, m_cb_nozzle_blob, m_cb_nozzleclumping_detection, m_cb_open_door, m_cb_plate_align, m_cb_plate_mark, m_cb_purgechutepileup_detection, m_cb_purify_air_at_print_end, m_cb_save_remote_print_file_to_storage, m_cb_snapshot_enable, m_cb_spaghetti_detection, m_cb_sup_sound, m_scrollwindow, m_smart_nozzle_blob_mode_switch, nozzleclumping_detection_level_list, obj, open_door_switch_board, purgechutepileup_detection_level_list, purify_air_switch_board, Slic3r::DevPrintOptions::PurifyAirByInside, Slic3r::DevPrintOptions::PurifyAirByOutside, sensitivity_level_to_msg_string(), Slic3r::GUI::DPIAware< P >::ShowModal(), Slic3r::Smart_Nozzle_Blob_Detection, spaghetti_detection_level_list, and update_smart_nozzle_blob_mode_desc().

Here is the call graph for this function:

◆ ~PrintOptionsDialog()

Slic3r::GUI::PrintOptionsDialog::~PrintOptionsDialog ( )
305{
306 ai_monitoring_level_list->Disconnect(wxEVT_COMBOBOX, wxCommandEventHandler(PrintOptionsDialog::set_ai_monitor_sensitivity), NULL, this);
307 // refine printer function options
308 spaghetti_detection_level_list->Disconnect(wxEVT_COMBOBOX, wxCommandEventHandler(PrintOptionsDialog::set_spaghetti_detection_sensitivity), NULL, this);
309 purgechutepileup_detection_level_list->Disconnect(wxEVT_COMBOBOX, wxCommandEventHandler(PrintOptionsDialog::set_purgechutepileup_detection_sensitivity), NULL, this);
310 nozzleclumping_detection_level_list->Disconnect(wxEVT_COMBOBOX, wxCommandEventHandler(PrintOptionsDialog::set_nozzleclumping_detection_sensitivity), NULL, this);
311 airprinting_detection_level_list->Disconnect(wxEVT_COMBOBOX, wxCommandEventHandler(PrintOptionsDialog::set_airprinting_detection_sensitivity), NULL, this);
312}
void set_airprinting_detection_sensitivity(wxCommandEvent &evt)
Definition PrintOptionsDialog.cpp:1450
void set_ai_monitor_sensitivity(wxCommandEvent &evt)
Definition PrintOptionsDialog.cpp:1401
void set_purgechutepileup_detection_sensitivity(wxCommandEvent &evt)
Definition PrintOptionsDialog.cpp:1426
void set_spaghetti_detection_sensitivity(wxCommandEvent &evt)
Definition PrintOptionsDialog.cpp:1414
void set_nozzleclumping_detection_sensitivity(wxCommandEvent &evt)
Definition PrintOptionsDialog.cpp:1438

References ai_monitoring_level_list, airprinting_detection_level_list, nozzleclumping_detection_level_list, purgechutepileup_detection_level_list, set_ai_monitor_sensitivity(), set_airprinting_detection_sensitivity(), set_nozzleclumping_detection_sensitivity(), set_purgechutepileup_detection_sensitivity(), set_spaghetti_detection_sensitivity(), and spaghetti_detection_level_list.

Here is the call graph for this function:

Member Function Documentation

◆ create_settings_group()

wxBoxSizer * Slic3r::GUI::PrintOptionsDialog::create_settings_group ( wxWindow * parent)
protected
818{
819 wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
820 wxBoxSizer* line_sizer = new wxBoxSizer(wxHORIZONTAL);
821
822 /* auto m_line = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL);
823 m_line->SetBackgroundColour(wxColour(166, 169, 170));
824 sizer->Add(m_line, 0, wxEXPAND, 0);*/
825
826 //wxPanel *m_line = new wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(-1, FromDIP(1)), wxTAB_TRAVERSAL);
827 //m_line->SetBackgroundColour(wxColour(166, 169, 170));
828 //sizer->Add(m_line, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(0));
829
830 ai_refine_panel = new wxPanel(parent);
831 wxBoxSizer *ai_refine_sizer = new wxBoxSizer(wxVERTICAL);
832 ai_refine_panel->SetBackgroundColour(*wxWHITE);
833
834 // ai detections
835 line_sizer = new wxBoxSizer(wxHORIZONTAL);
836 text_ai_detections = new Label(ai_refine_panel, _L("AI Detections"));
838 line_sizer->Add(FromDIP(5), 0, 0, 0);
839 line_sizer->Add(text_ai_detections, 0, wxLEFT | wxRIGHT | wxDOWN | wxALIGN_CENTER_VERTICAL, FromDIP(2));
840 ai_refine_sizer->Add(0, 0, 0, wxTOP, FromDIP(20));
841 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
842
843 line_sizer = new wxBoxSizer(wxHORIZONTAL);
844 text_ai_detections_caption = new Label(ai_refine_panel, _L("Printer will send assistant message or pause printing if any of the following problem is detected."));
847 text_ai_detections_caption->Wrap(FromDIP(400));
848 line_sizer->Add(FromDIP(5), 0, 0, 0);
849 line_sizer->Add(text_ai_detections_caption, 0,wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
850 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
851 ai_detections_bottom_space = ai_refine_sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
852
853 // ai monitoring with levels
854 line_sizer = new wxBoxSizer(wxHORIZONTAL);
855 m_cb_ai_monitoring = new CheckBox(parent);
856 text_ai_monitoring = new Label(parent, _L("Enable AI monitoring of printing"));
858 line_sizer->Add(FromDIP(5), 0, 0, 0);
859 line_sizer->Add(m_cb_ai_monitoring, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
860 line_sizer->Add(text_ai_monitoring, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
861 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
862 line_sizer->Add(FromDIP(5), 0, 0, 0);
863 line_sizer = new wxBoxSizer(wxHORIZONTAL);
864 text_ai_monitoring_caption = new Label(parent, _L("Pausing Sensitivity:"));
868
869 ai_monitoring_level_list = new ComboBox(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(FromDIP(100), -1), 0, NULL, wxCB_READONLY);
870 for (auto i = AiMonitorSensitivityLevel::LOW; i < LEVELS_NUM; i = (AiMonitorSensitivityLevel) (i + 1)) {
871 wxString level_option = sensitivity_level_to_label_string(i);
872 ai_monitoring_level_list->Append(level_option);
873 }
874
875 if (ai_monitoring_level_list->GetCount() > 0) { ai_monitoring_level_list->SetSelection(0); }
876
877 line_sizer->Add(FromDIP(30), 0, 0, 0);
878 line_sizer->Add(text_ai_monitoring_caption, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
879 line_sizer->Add(ai_monitoring_level_list, 0, wxEXPAND | wxALL, FromDIP(5));
880 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
881 ai_monitoring_bottom_space = sizer->Add(0, 0, 0, wxTOP, FromDIP(12));
882
883 //spaghetti detection with levels
884 line_sizer = new wxBoxSizer(wxHORIZONTAL);
886 text_spaghetti_detection = new Label(ai_refine_panel, _L("Spaghetti Detection"));
888 line_sizer->Add(FromDIP(5), 0, 0, 0);
889 line_sizer->Add(m_cb_spaghetti_detection, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
890 line_sizer->Add(text_spaghetti_detection, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
891 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
892
893 line_sizer = new wxBoxSizer(wxHORIZONTAL);
894 text_spaghetti_detection_caption0 = new Label(ai_refine_panel, _L("Detect spaghetti failures (scattered lose filament)."));
898 line_sizer->Add(FromDIP(30), 0, 0, 0);
899 line_sizer->Add(text_spaghetti_detection_caption0, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
900 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
901
902 line_sizer = new wxBoxSizer(wxHORIZONTAL);
903 text_spaghetti_detection_caption1 = new Label(ai_refine_panel, _L("Pausing Sensitivity:"));
907
908 spaghetti_detection_level_list = new ComboBox(ai_refine_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(FromDIP(100), -1), 0, NULL, wxCB_READONLY);
909 for (auto i = AiMonitorSensitivityLevel::LOW; i < LEVELS_NUM; i = (AiMonitorSensitivityLevel) (i + 1)) {
910 wxString level_option = sensitivity_level_to_label_string(i);
911 spaghetti_detection_level_list->Append(level_option);
912 }
913 if (spaghetti_detection_level_list->GetCount() > 0) {
914 spaghetti_detection_level_list->SetSelection(0);
915 }
916
917 line_sizer->Add(FromDIP(30), 0, 0, 0);
918 line_sizer->Add(text_spaghetti_detection_caption1, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
919 line_sizer->Add( spaghetti_detection_level_list, 0, wxEXPAND|wxALL, FromDIP(5) );
920 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
921
922 /* line1 = new StaticLine(parent, false);
923 line1->SetLineColour(STATIC_BOX_LINE_COL);
924 sizer->Add(line1, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));*/
925 spaghetti_bottom_space = ai_refine_sizer->Add(0, 0, 0, wxTOP, FromDIP(12));
926
927 //purge chute pile-up detection
928 line_sizer = new wxBoxSizer(wxHORIZONTAL);
930 text_purgechutepileup_detection = new Label(ai_refine_panel, _L("Purge Chute Pile-Up Detection"));
932 line_sizer->Add(FromDIP(5), 0, 0, 0);
933 line_sizer->Add(m_cb_purgechutepileup_detection, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
934 line_sizer->Add(text_purgechutepileup_detection, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
935 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
936
937 line_sizer = new wxBoxSizer(wxHORIZONTAL);
938 text_purgechutepileup_detection_caption0 = new Label(ai_refine_panel, _L("Monitor if the waste is piled up in the purge chute."));
942 line_sizer->Add(FromDIP(30), 0, 0, 0);
943 line_sizer->Add(text_purgechutepileup_detection_caption0, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
944 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
945
946 line_sizer = new wxBoxSizer(wxHORIZONTAL);
947 text_purgechutepileup_detection_caption1 = new Label(ai_refine_panel, _L("Pausing Sensitivity:"));
951
952 purgechutepileup_detection_level_list = new ComboBox(ai_refine_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(FromDIP(100), -1), 0, NULL, wxCB_READONLY);
953 for (auto i = AiMonitorSensitivityLevel::LOW; i < LEVELS_NUM; i = (AiMonitorSensitivityLevel) (i + 1)) {
954 wxString level_option = sensitivity_level_to_label_string(i);
955 purgechutepileup_detection_level_list->Append(level_option);
956 }
958
959 line_sizer->Add(FromDIP(30), 0, 0, 0);
960 line_sizer->Add(text_purgechutepileup_detection_caption1, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
961 line_sizer->Add(purgechutepileup_detection_level_list, 0, wxEXPAND | wxALL, FromDIP(5));
962 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
963 purgechutepileup_bottom_space = ai_refine_sizer->Add(0, 0, 0, wxTOP, FromDIP(12));
964
965
966 //nozzle clumping detection
967 line_sizer = new wxBoxSizer(wxHORIZONTAL);
969 text_nozzleclumping_detection = new Label(ai_refine_panel, _L("Nozzle Clumping Detection"));
971 line_sizer->Add(FromDIP(5), 0, 0, 0);
972 line_sizer->Add(m_cb_nozzleclumping_detection, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
973 line_sizer->Add(text_nozzleclumping_detection, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
974 /* sizer->Add(0, 0, 0, wxTOP, FromDIP(10));*/
975 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
976
977 line_sizer = new wxBoxSizer(wxHORIZONTAL);
978 text_nozzleclumping_detection_caption0 = new Label(ai_refine_panel, _L("Check if the nozzle is clumping by filaments or other foreign objects."));
982 line_sizer->Add(FromDIP(30), 0, 0, 0);
983 line_sizer->Add(text_nozzleclumping_detection_caption0, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
984 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
985
986
987 line_sizer = new wxBoxSizer(wxHORIZONTAL);
988 text_nozzleclumping_detection_caption1 = new Label(ai_refine_panel, _L("Pausing Sensitivity:"));
992
993 nozzleclumping_detection_level_list = new ComboBox(ai_refine_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(FromDIP(100), -1), 0, NULL, wxCB_READONLY);
994 for (auto i = AiMonitorSensitivityLevel::LOW; i < LEVELS_NUM; i = (AiMonitorSensitivityLevel) (i + 1)) {
995 wxString level_option = sensitivity_level_to_label_string(i);
996 nozzleclumping_detection_level_list->Append(level_option);
997 }
998 if (nozzleclumping_detection_level_list->GetCount() > 0) { nozzleclumping_detection_level_list->SetSelection(0); }
999
1000 line_sizer->Add(FromDIP(30), 0, 0, 0);
1001 line_sizer->Add(text_nozzleclumping_detection_caption1, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1002 line_sizer->Add(nozzleclumping_detection_level_list, 0, wxEXPAND | wxALL, FromDIP(5));
1003 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1004 nozzleclumping_bottom_space = ai_refine_sizer->Add(0, 0, 0, wxTOP, FromDIP(12));
1005
1006
1007 //air printing detection
1008 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1010 text_airprinting_detection = new Label(ai_refine_panel, _L("Air Printing Detection"));
1012 line_sizer->Add(FromDIP(5), 0, 0, 0);
1013 line_sizer->Add(m_cb_airprinting_detection, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
1014 line_sizer->Add(text_airprinting_detection, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2));
1015 /* sizer->Add(0, 0, 0, wxTOP, FromDIP(12));*/
1016 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1017
1018 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1019 text_airprinting_detection_caption0 = new Label(ai_refine_panel, _L("Detects air printing caused by nozzle clogging or filament grinding."));
1023 line_sizer->Add(FromDIP(30), 0, 0, 0);
1024 line_sizer->Add(text_airprinting_detection_caption0, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1025 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1026
1027 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1028 text_airprinting_detection_caption1 = new Label(ai_refine_panel, _L("Pausing Sensitivity:"));
1032
1033 airprinting_detection_level_list = new ComboBox(ai_refine_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(FromDIP(100), -1), 0, NULL, wxCB_READONLY);
1034 for (auto i = AiMonitorSensitivityLevel::LOW; i < LEVELS_NUM; i = (AiMonitorSensitivityLevel) (i + 1)) {
1035 wxString level_option = sensitivity_level_to_label_string(i);
1036 airprinting_detection_level_list->Append(level_option);
1037 }
1038 if (airprinting_detection_level_list->GetCount() > 0) { airprinting_detection_level_list->SetSelection(0); }
1039
1040 line_sizer->Add(FromDIP(30), 0, 0, 0);
1041 line_sizer->Add(text_airprinting_detection_caption1, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1042 line_sizer->Add(airprinting_detection_level_list, 0, wxEXPAND | wxALL, FromDIP(5));
1043 ai_refine_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1044 airprinting_bottom_space = ai_refine_sizer->Add(0, 0, 0, wxTOP, FromDIP(12));
1045
1046 ai_refine_panel->SetSizer(ai_refine_sizer);
1047 sizer->Add(ai_refine_panel, 0, wxEXPAND | wxRIGHT, FromDIP(18));
1048
1049 // sizer->Add(line1, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1050
1051 m_line = new wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(400), FromDIP(1)));
1052 m_line->SetBackgroundColour(wxColour("#A6A9AA"));
1053 sizer->Add(m_line, 0, wxLEFT | wxBOTTOM, FromDIP(20));
1054
1055 // detection of build plate position
1056 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1057 m_cb_plate_mark = new CheckBox(parent);
1058 text_plate_mark = new Label(parent, _L("Enable detection of build plate position"));
1060 line_sizer->Add(FromDIP(5), 0, 0, 0);
1061 line_sizer->Add(m_cb_plate_mark, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1062 line_sizer->Add(text_plate_mark, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1063
1064 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1065 line_sizer->Add(FromDIP(5), 0, 0, 0);
1066
1067 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1068 wxString caption_text = _L("The localization tag of the build plate will be detected, and printing will be paused if the tag is not in predefined range.");
1069 text_plate_mark_caption = new Label(parent, caption_text);
1070 text_plate_mark_caption->Wrap(FromDIP(400));
1073 line_sizer->Add(FromDIP(38), 0, 0, 0);
1074 line_sizer->Add(text_plate_mark_caption, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(0));
1075
1076 //m_line = new wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(-1, FromDIP(1)), wxTAB_TRAVERSAL);
1077 //m_line->SetBackgroundColour(wxColour(166, 169, 170));
1078 //sizer->Add(m_line, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
1079
1080 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1081
1082 line2 = new StaticLine(parent, false);
1083 line2->SetLineColour(STATIC_BOX_LINE_COL);
1084 sizer->Add(line2, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
1085 line2->Hide();
1086 sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
1087
1088 // detection of first layer
1089 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1090 m_cb_first_layer = new CheckBox(parent);
1091 text_first_layer = new Label(parent, _L("First Layer Inspection"));
1093 line_sizer->Add(FromDIP(5), 0, 0, 0);
1094 line_sizer->Add(m_cb_first_layer, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1095 line_sizer->Add(text_first_layer, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1096 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1097 line_sizer->Add(FromDIP(5), 0, 0, 0);
1098
1099 line3 = new StaticLine(parent, false);
1100 line3->SetLineColour(STATIC_BOX_LINE_COL);
1101 sizer->Add(line3, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
1102 line3->Hide();
1103 sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
1104
1105 // auto-recovery from step loss
1106 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1107 m_cb_auto_recovery = new CheckBox(parent);
1108 text_auto_recovery = new Label(parent, _L("Auto-recover from step loss"));
1110 line_sizer->Add(FromDIP(5), 0, 0, 0);
1111 line_sizer->Add(m_cb_auto_recovery, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1112 line_sizer->Add(text_auto_recovery, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1113 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1114 line_sizer->Add(FromDIP(10), 0, 0, 0);
1115
1116 line4 = new StaticLine(parent, false);
1117 line4->SetLineColour(wxColour("#FFFFFF"));
1118 sizer->Add(line4, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
1119 line4->Hide();
1120 sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
1121
1122 //Save remote file to local storage
1123 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1124 m_cb_save_remote_print_file_to_storage = new CheckBox(parent);
1125 text_save_remote_print_file_to_storage = new Label(parent, _L("Store Sent Files on External Storage"));
1127 line_sizer->Add(FromDIP(5), 0, 0, 0);
1128 line_sizer->Add(m_cb_save_remote_print_file_to_storage, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1129 line_sizer->Add(text_save_remote_print_file_to_storage, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1130 text_save_remote_print_file_to_storage_explain = new Label(parent, _L("Save the printing files sent from the slicer and other apps on External Storage")); // Orca: neutral wording (vendor app names removed)
1134
1135 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1136 sizer->Add(text_save_remote_print_file_to_storage_explain, 0, wxLEFT, FromDIP(58));
1137 line_sizer->Add(FromDIP(5), 0, 0, 0);
1138 sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
1139 //Allow prompt sound
1140 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1141 m_cb_sup_sound = new CheckBox(parent);
1142 text_sup_sound = new Label(parent, _L("Allow Prompt Sound"));
1144 line_sizer->Add(FromDIP(5), 0, 0, 0);
1145 line_sizer->Add(m_cb_sup_sound, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1146 line_sizer->Add(text_sup_sound, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1147
1148 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1149 line_sizer->Add(FromDIP(5), 0, 0, 0);
1150
1151 line5 = new StaticLine(parent, false);
1152 line5->SetLineColour(STATIC_BOX_LINE_COL);
1153 sizer->Add(line5, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
1154 line5->Hide();
1155 /*sizer->Add(0, 0, 0, wxTOP, FromDIP(20));*/
1156 sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
1157 //filament tangle detect
1158 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1159 m_cb_filament_tangle = new CheckBox(parent);
1160 text_filament_tangle = new Label(parent, _L("Filament Tangle Detection"));
1162 line_sizer->Add(FromDIP(5), 0, 0, 0);
1163 line_sizer->Add(m_cb_filament_tangle, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1164 line_sizer->Add(text_filament_tangle, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1165
1166 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1167 line_sizer->Add(FromDIP(5), 0, 0, 0);
1168
1169 line6 = new StaticLine(parent, false);
1170 line6->SetLineColour(STATIC_BOX_LINE_COL);
1171 sizer->Add(line6, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
1172 line6->Hide();
1173 //sizer->Add(0, 0, 0, wxTOP, FromDIP(20));
1174 sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
1175 //nozzle blob detect
1176 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1177 m_cb_nozzle_blob = new CheckBox(parent);
1178 text_nozzle_blob = new Label(parent, _L("Nozzle Clumping Detection"));
1180 line_sizer->Add(FromDIP(5), 0, 0, 0);
1181 line_sizer->Add(m_cb_nozzle_blob, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1182 line_sizer->Add(text_nozzle_blob, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1183
1184 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1185 line_sizer->Add(FromDIP(5), 0, 0, 0);
1186
1187 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1188 wxString nozzle_blob_caption_text = _L("Check if the nozzle is clumping by filament or other foreign objects.");
1189 text_nozzle_blob_caption = new Label(parent, nozzle_blob_caption_text);
1191 text_nozzle_blob_caption->Wrap(-1);
1193 line_sizer->Add(FromDIP(30), 0, 0, 0);
1194 line_sizer->Add(text_nozzle_blob_caption, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(0));
1195 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1196
1197 line7 = new StaticLine(parent, false);
1198 line7->SetLineColour(STATIC_BOX_LINE_COL);
1199 sizer->Add(line7, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
1200
1201 text_nozzle_blob->Hide();
1202 m_cb_nozzle_blob->Hide();
1204 line7->Hide();
1205
1206 // ---- Firmware print-option toggles (hidden until their fun2 capability bit is reported) ----
1207
1208 // Purify Air at Print End (tri-state: internal circulation / exhaust)
1209 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1210 m_cb_purify_air_at_print_end = new CheckBox(parent);
1211 text_purify_air = new Label(parent, _L("Purify Air at Print End"));
1213 text_purify_air_context = new Label(parent, wxEmptyString);
1216 purify_air_switch_board = new SwitchBoard(parent, _L("Internal Circulation"), _L("Exhaust"), wxSize(FromDIP(300), FromDIP(26)));
1217 purify_air_switch_board->Disable();
1218 line_sizer->Add(FromDIP(5), 0, 0, 0);
1219 line_sizer->Add(m_cb_purify_air_at_print_end, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1220 line_sizer->Add(text_purify_air, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1221 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1222 sizer->Add(text_purify_air_context, 0, wxLEFT, FromDIP(58));
1223 sizer->Add(purify_air_switch_board, 0, wxLEFT, FromDIP(58));
1224 purify_air_bottom_space = sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
1226 text_purify_air->Hide();
1229 purify_air_bottom_space->Show(false);
1230
1231 // Build plate alignment detection
1232 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1233 m_cb_plate_align = new CheckBox(parent);
1234 text_plate_align = new Label(parent, _L("Alignment Detection"));
1236 line_sizer->Add(FromDIP(5), 0, 0, 0);
1237 line_sizer->Add(m_cb_plate_align, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1238 line_sizer->Add(text_plate_align, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1239 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1240 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1241 text_plate_align_caption = new Label(parent, _L("Pauses printing when build plate misalignment is detected."));
1242 text_plate_align_caption->Wrap(FromDIP(400));
1245 line_sizer->Add(FromDIP(38), 0, 0, 0);
1246 line_sizer->Add(text_plate_align_caption, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(0));
1247 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1248 plate_align_bottom_space = sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
1249 m_cb_plate_align->Hide();
1250 text_plate_align->Hide();
1252 plate_align_bottom_space->Show(false);
1253
1254 // Foreign Object Detection
1255 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1256 m_cb_fod_check = new CheckBox(parent);
1257 text_fod_check = new Label(parent, _L("Foreign Object Detection"));
1259 line_sizer->Add(FromDIP(5), 0, 0, 0);
1260 line_sizer->Add(m_cb_fod_check, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1261 line_sizer->Add(text_fod_check, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1262 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1263 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1264 text_fod_check_caption = new Label(parent, _L("Checks for any objects on the build plate at the start of a print to avoid collisions."));
1265 text_fod_check_caption->Wrap(FromDIP(400));
1267 text_fod_check_caption->SetForegroundColour(STATIC_TEXT_CAPTION_COL);
1268 line_sizer->Add(FromDIP(38), 0, 0, 0);
1269 line_sizer->Add(text_fod_check_caption, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(0));
1270 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1271 fod_check_bottom_space = sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
1272 m_cb_fod_check->Hide();
1273 text_fod_check->Hide();
1274 text_fod_check_caption->Hide();
1275 fod_check_bottom_space->Show(false);
1276
1277 // Printed Part Displacement Detection
1278 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1279 m_cb_displacement_detection = new CheckBox(parent);
1280 text_displacement_detection = new Label(parent, _L("Printed Part Displacement Detection"));
1282 line_sizer->Add(FromDIP(5), 0, 0, 0);
1283 line_sizer->Add(m_cb_displacement_detection, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1284 line_sizer->Add(text_displacement_detection, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1285 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1286 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1287 text_displacement_detection_caption = new Label(parent, _L("Monitors the printed part during printing and alerts immediately if it shifts or collapses."));
1288 text_displacement_detection_caption->Wrap(FromDIP(400));
1291 line_sizer->Add(FromDIP(38), 0, 0, 0);
1292 line_sizer->Add(text_displacement_detection_caption, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(0));
1293 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1294 displacement_bottom_space = sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
1298 displacement_bottom_space->Show(false);
1299
1300 // Smart nozzle clumping detection (tri-mode: Auto / On / Off)
1301 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1302 text_smart_nozzle_blob = new Label(parent, _L("Nozzle Clumping Detection"));
1304 line_sizer->Add(FromDIP(5), 0, 0, 0);
1305 line_sizer->Add(text_smart_nozzle_blob, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1306 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1307 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1308 text_smart_nozzle_blob_mode_desc = new Label(parent, _L("Checks if the nozzle is clumping by filament or other foreign objects."));
1310 text_smart_nozzle_blob_mode_desc->Wrap(FromDIP(400));
1312 line_sizer->Add(FromDIP(5), 0, 0, 0);
1313 line_sizer->Add(text_smart_nozzle_blob_mode_desc, 1, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1314 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1315 m_smart_nozzle_blob_mode_switch = new MultiSwitchButton(parent);
1316 m_smart_nozzle_blob_mode_switch->SetOptions({_L("Auto"), _L("On"), _L("Off")});
1317 m_smart_nozzle_blob_mode_switch->SetSelection(0);
1318 sizer->Add(m_smart_nozzle_blob_mode_switch, 0, wxLEFT, FromDIP(30));
1319 smart_nozzle_blob_bottom_space = sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
1320 text_smart_nozzle_blob->Hide();
1323 smart_nozzle_blob_bottom_space->Show(false);
1324
1325 //Open Door Detection
1326 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1327 m_cb_open_door = new CheckBox(parent);
1328 text_open_door = new Label(parent, _L("Open Door Detection"));
1330 open_door_switch_board = new SwitchBoard(parent, _L("Notification"), _L("Pause printing"), wxSize(FromDIP(200), FromDIP(26)));
1331 open_door_switch_board->Disable();
1332 line_sizer->Add(FromDIP(5), 0, 0, 0);
1333 line_sizer->Add(m_cb_open_door, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1334 line_sizer->Add(text_open_door, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1335
1336 sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1337 sizer->Add(open_door_switch_board, 0, wxLEFT, FromDIP(58));
1338 sizer->Add(0, 0, 0, wxTOP, FromDIP(15));
1339
1340 // Print status snapshot (enable path shows a confirm prompt; hidden until supported)
1341 m_snapshot_sizer = new wxBoxSizer(wxVERTICAL);
1342 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1343 m_cb_snapshot_enable = new CheckBox(parent);
1344 Label* text_snapshot = new Label(parent, _L("Print Status Snapshot"));
1345 text_snapshot->SetFont(Label::Body_14);
1346 line_sizer->Add(FromDIP(5), 0, 0, 0);
1347 line_sizer->Add(m_cb_snapshot_enable, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1348 line_sizer->Add(text_snapshot, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1349 m_snapshot_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1350 line_sizer = new wxBoxSizer(wxHORIZONTAL);
1351 Label* text_snapshot_caption = new Label(parent, _L("Automatically capture and upload print photos, showing defects during printing and the final result for remote viewing."));
1352 text_snapshot_caption->Wrap(FromDIP(400));
1353 text_snapshot_caption->SetFont(Label::Body_12);
1354 text_snapshot_caption->SetForegroundColour(STATIC_TEXT_CAPTION_COL);
1355 line_sizer->Add(FromDIP(38), 0, 0, 0);
1356 line_sizer->Add(text_snapshot_caption, 1, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(0));
1357 m_snapshot_sizer->Add(line_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(18));
1358 sizer->Add(m_snapshot_sizer, 0, wxEXPAND | wxRIGHT, FromDIP(18));
1359 m_cb_snapshot_enable->Hide();
1360 m_snapshot_sizer->Show(false);
1361
1362 ai_monitoring_level_list->Connect(wxEVT_COMBOBOX, wxCommandEventHandler(PrintOptionsDialog::set_ai_monitor_sensitivity), NULL, this);
1363
1364 // refine printer function options
1365 spaghetti_detection_level_list->Connect(wxEVT_COMBOBOX, wxCommandEventHandler(PrintOptionsDialog::set_spaghetti_detection_sensitivity), NULL, this);
1366 purgechutepileup_detection_level_list->Connect(wxEVT_COMBOBOX, wxCommandEventHandler(PrintOptionsDialog::set_purgechutepileup_detection_sensitivity), NULL, this);
1367 nozzleclumping_detection_level_list->Connect(wxEVT_COMBOBOX, wxCommandEventHandler(PrintOptionsDialog::set_nozzleclumping_detection_sensitivity), NULL, this);
1368 airprinting_detection_level_list->Connect(wxEVT_COMBOBOX, wxCommandEventHandler(PrintOptionsDialog::set_airprinting_detection_sensitivity), NULL, this);
1369
1370 return sizer;
1371}
static const wxColour STATIC_TEXT_CAPTION_COL
Definition PrintOptionsDialog.cpp:41
static const wxColour STATIC_TEXT_EXPLAIN_COL
Definition PrintOptionsDialog.cpp:42
static wxFont Body_12
Definition Label.hpp:55
static wxFont Body_14
Definition Label.hpp:53
void Wrap(int width)
Definition Label.cpp:366
Label * text_airprinting_detection_caption1
Definition PrintOptionsDialog.hpp:138
Label * text_nozzleclumping_detection
Definition PrintOptionsDialog.hpp:132
Label * text_auto_recovery
Definition PrintOptionsDialog.hpp:147
wxSizerItem * ai_monitoring_bottom_space
Definition PrintOptionsDialog.hpp:110
wxSizerItem * airprinting_bottom_space
Definition PrintOptionsDialog.hpp:114
wxSizerItem * nozzleclumping_bottom_space
Definition PrintOptionsDialog.hpp:113
Label * text_purify_air
Definition PrintOptionsDialog.hpp:161
Label * text_ai_detections_caption
Definition PrintOptionsDialog.hpp:107
wxPanel * m_line
Definition PrintOptionsDialog.hpp:177
StaticLine * line2
Definition PrintOptionsDialog.hpp:166
Label * text_purify_air_context
Definition PrintOptionsDialog.hpp:162
Label * text_nozzleclumping_detection_caption1
Definition PrintOptionsDialog.hpp:134
StaticLine * line5
Definition PrintOptionsDialog.hpp:169
Label * text_open_door
Definition PrintOptionsDialog.hpp:154
Label * text_plate_mark
Definition PrintOptionsDialog.hpp:145
Label * text_save_remote_print_file_to_storage
Definition PrintOptionsDialog.hpp:148
Label * text_nozzle_blob
Definition PrintOptionsDialog.hpp:152
Label * text_spaghetti_detection_caption0
Definition PrintOptionsDialog.hpp:126
wxSizerItem * plate_align_bottom_space
Definition PrintOptionsDialog.hpp:118
StaticLine * line7
Definition PrintOptionsDialog.hpp:171
Label * text_spaghetti_detection_caption1
Definition PrintOptionsDialog.hpp:127
Label * text_displacement_detection
Definition PrintOptionsDialog.hpp:159
wxSizerItem * fod_check_bottom_space
Definition PrintOptionsDialog.hpp:119
Label * text_spaghetti_detection
Definition PrintOptionsDialog.hpp:125
Label * text_fod_check_caption
Definition PrintOptionsDialog.hpp:158
wxSizerItem * ai_detections_bottom_space
Definition PrintOptionsDialog.hpp:109
Label * text_purgechutepileup_detection_caption1
Definition PrintOptionsDialog.hpp:130
Label * text_smart_nozzle_blob_mode_desc
Definition PrintOptionsDialog.hpp:164
Label * text_sup_sound
Definition PrintOptionsDialog.hpp:150
wxSizerItem * purify_air_bottom_space
Definition PrintOptionsDialog.hpp:117
Label * text_displacement_detection_caption
Definition PrintOptionsDialog.hpp:160
Label * text_filament_tangle
Definition PrintOptionsDialog.hpp:151
Label * text_airprinting_detection_caption0
Definition PrintOptionsDialog.hpp:137
Label * text_fod_check
Definition PrintOptionsDialog.hpp:157
Label * text_save_remote_print_file_to_storage_explain
Definition PrintOptionsDialog.hpp:149
Label * text_plate_align
Definition PrintOptionsDialog.hpp:155
Label * text_purgechutepileup_detection_caption0
Definition PrintOptionsDialog.hpp:129
Label * text_smart_nozzle_blob
Definition PrintOptionsDialog.hpp:163
wxSizerItem * smart_nozzle_blob_bottom_space
Definition PrintOptionsDialog.hpp:121
Label * text_ai_monitoring_caption
Definition PrintOptionsDialog.hpp:124
wxPanel * ai_refine_panel
Definition PrintOptionsDialog.hpp:108
Label * text_purgechutepileup_detection
Definition PrintOptionsDialog.hpp:128
Label * text_nozzleclumping_detection_caption0
Definition PrintOptionsDialog.hpp:133
Label * text_ai_monitoring
Definition PrintOptionsDialog.hpp:123
Label * text_airprinting_detection
Definition PrintOptionsDialog.hpp:136
StaticLine * line6
Definition PrintOptionsDialog.hpp:170
wxSizerItem * spaghetti_bottom_space
Definition PrintOptionsDialog.hpp:111
Label * text_first_layer
Definition PrintOptionsDialog.hpp:105
wxString sensitivity_level_to_label_string(enum AiMonitorSensitivityLevel level)
Definition PrintOptionsDialog.cpp:1373
StaticLine * line4
Definition PrintOptionsDialog.hpp:168
wxBoxSizer * m_snapshot_sizer
Definition PrintOptionsDialog.hpp:175
wxSizerItem * displacement_bottom_space
Definition PrintOptionsDialog.hpp:120
Label * text_plate_mark_caption
Definition PrintOptionsDialog.hpp:146
StaticLine * line3
Definition PrintOptionsDialog.hpp:167
Label * text_ai_detections
Definition PrintOptionsDialog.hpp:106
Label * text_nozzle_blob_caption
Definition PrintOptionsDialog.hpp:153
Label * text_plate_align_caption
Definition PrintOptionsDialog.hpp:156
wxSizerItem * purgechutepileup_bottom_space
Definition PrintOptionsDialog.hpp:112
static const wxColour STATIC_BOX_LINE_COL
Definition StatusPanel.cpp:141

References _L, ai_detections_bottom_space, ai_monitoring_bottom_space, ai_monitoring_level_list, ai_refine_panel, airprinting_bottom_space, airprinting_detection_level_list, Label::Body_12, Label::Body_14, displacement_bottom_space, fod_check_bottom_space, LEVELS_NUM, line2, line3, line4, line5, line6, line7, LOW, m_cb_ai_monitoring, m_cb_airprinting_detection, m_cb_auto_recovery, m_cb_displacement_detection, m_cb_filament_tangle, m_cb_first_layer, m_cb_fod_check, m_cb_nozzle_blob, m_cb_nozzleclumping_detection, m_cb_open_door, m_cb_plate_align, m_cb_plate_mark, m_cb_purgechutepileup_detection, m_cb_purify_air_at_print_end, m_cb_save_remote_print_file_to_storage, m_cb_snapshot_enable, m_cb_spaghetti_detection, m_cb_sup_sound, m_line, m_smart_nozzle_blob_mode_switch, m_snapshot_sizer, nozzleclumping_bottom_space, nozzleclumping_detection_level_list, open_door_switch_board, plate_align_bottom_space, purgechutepileup_bottom_space, purgechutepileup_detection_level_list, purify_air_bottom_space, purify_air_switch_board, sensitivity_level_to_label_string(), set_ai_monitor_sensitivity(), set_airprinting_detection_sensitivity(), set_nozzleclumping_detection_sensitivity(), set_purgechutepileup_detection_sensitivity(), set_spaghetti_detection_sensitivity(), smart_nozzle_blob_bottom_space, spaghetti_bottom_space, spaghetti_detection_level_list, Slic3r::GUI::STATIC_BOX_LINE_COL, STATIC_TEXT_CAPTION_COL, STATIC_TEXT_EXPLAIN_COL, text_ai_detections, text_ai_detections_caption, text_ai_monitoring, text_ai_monitoring_caption, text_airprinting_detection, text_airprinting_detection_caption0, text_airprinting_detection_caption1, text_auto_recovery, text_displacement_detection, text_displacement_detection_caption, text_filament_tangle, text_first_layer, text_fod_check, text_fod_check_caption, text_nozzle_blob, text_nozzle_blob_caption, text_nozzleclumping_detection, text_nozzleclumping_detection_caption0, text_nozzleclumping_detection_caption1, text_open_door, text_plate_align, text_plate_align_caption, text_plate_mark, text_plate_mark_caption, text_purgechutepileup_detection, text_purgechutepileup_detection_caption0, text_purgechutepileup_detection_caption1, text_purify_air, text_purify_air_context, text_save_remote_print_file_to_storage, text_save_remote_print_file_to_storage_explain, text_smart_nozzle_blob, text_smart_nozzle_blob_mode_desc, text_spaghetti_detection, text_spaghetti_detection_caption0, text_spaghetti_detection_caption1, text_sup_sound, and Label::Wrap().

Referenced by PrintOptionsDialog().

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

◆ em_unit()

int Slic3r::GUI::DPIAware< wxDialog >::em_unit ( ) const
inlineinherited
203{ return m_em_unit; }
Definition GUI_Utils.hpp:107

Referenced by Slic3r::GUI::AuxiliaryDialog::AuxiliaryDialog(), Slic3r::GUI::CopyrightsDialog::CopyrightsDialog(), Slic3r::GUI::DesignTextDialog::DesignTextDialog(), Slic3r::GUI::EditGCodeDialog::EditGCodeDialog(), Slic3r::GUI::FileArchiveDialog::FileArchiveDialog(), Slic3r::GUI::MsgNoUpdates::MsgNoUpdates(), Slic3r::GUI::MsgUpdateForced::MsgUpdateForced(), Slic3r::GUI::OAuthDialog::OAuthDialog(), Slic3r::GUI::ParamsDialog::ParamsDialog(), Slic3r::GUI::PhysicalPrinterDialog::PhysicalPrinterDialog(), Slic3r::GUI::SettingsDialog::SettingsDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::TokenAuthDialog(), anonymous_namespace{3DPrinterOS.cpp}::UploadOptionsDialog::UploadOptionsDialog(), Slic3r::GUI::PublishSettingsDialog::add_row_ui(), Slic3r::GUI::DiffPresetDialog::complete_dialog_creation(), Slic3r::GUI::DiffPresetDialog::create_edit_sizer(), Slic3r::GUI::DiffPresetDialog::create_presets_sizer(), Slic3r::GUI::DiffPresetDialog::create_tree(), Slic3r::GUI::ElegooPrintHostSendDialog::init(), Slic3r::GUI::FlashforgePrintHostSendDialog::init(), Slic3r::GUI::PrintHostSendDialog::init(), Slic3r::GUI::AboutDialog::on_dpi_changed(), Slic3r::GUI::AuxiliaryDialog::on_dpi_changed(), Slic3r::GUI::BedShapeDialog::on_dpi_changed(), Slic3r::GUI::ConfigWizard::on_dpi_changed(), Slic3r::GUI::CopyrightsDialog::on_dpi_changed(), Slic3r::GUI::DiffPresetDialog::on_dpi_changed(), Slic3r::GUI::EditGCodeDialog::on_dpi_changed(), Slic3r::GUI::FileArchiveDialog::on_dpi_changed(), Slic3r::GUI::OAuthDialog::on_dpi_changed(), Slic3r::GUI::ObjectTableDialog::on_dpi_changed(), Slic3r::GUI::ParamsDialog::on_dpi_changed(), Slic3r::GUI::PhysicalPrinterDialog::on_dpi_changed(), Slic3r::GUI::PrintHostQueueDialog::on_dpi_changed(), Slic3r::GUI::PurgeModeDialog::on_dpi_changed(), Slic3r::GUI::SavePresetDialog::on_dpi_changed(), Slic3r::GUI::SendSystemInfoDialog::on_dpi_changed(), Slic3r::GUI::SettingsDialog::on_dpi_changed(), and Slic3r::GUI::UnsavedChangesDialog::on_dpi_changed().

Here is the caller graph for this function:

◆ enable_force_rescale()

void Slic3r::GUI::DPIAware< wxDialog >::enable_force_rescale ( )
inlineinherited
206{ m_force_rescale = true; }

◆ EndModal()

void Slic3r::GUI::DPIDialog::EndModal ( int retCode)
inlineoverrideinherited
306 {
307 if (!dialogStack.empty() && dialogStack.front() != this) {
308 // This is a bug in wxWidgets
309 // when the dialog is not top modal dialog, EndModal() just hide dialog without quit
310 // the modal event loop. And the modal event loop blocks us from bottom widgets.
311 // Solution: let user click it manually or close outside. FIXME
312 BOOST_LOG_TRIVIAL(warning) << "DPIAware::EndModal Error: dialogStack is not empty, but top dialog is not this one. retCode=" << retCode;
313 return;
314 }
315
316 return wxDialog::EndModal(retCode);
317 }
std::deque< wxDialog * > dialogStack
Definition GUI_Utils.cpp:549

References Slic3r::GUI::dialogStack.

Referenced by Slic3r::GUI::CloneDialog::CloneDialog(), Slic3r::GUI::ConfigWizard::ConfigWizard(), Slic3r::GUI::CreatePresetSuccessfulDialog::CreatePresetSuccessfulDialog(), Slic3r::GUI::DeleteConfirmDialog::DeleteConfirmDialog(), Slic3r::GUI::DesignVariableDialog::DesignVariableDialog(), Slic3r::GUI::anonymous_namespace{PrintHostDialogs.cpp}::FlashforgeSlotDialog::FlashforgeSlotDialog(), Slic3r::GUI::GuideFrame::GuideFrame(), Slic3r::GUI::InputIpAddressDialog::InputIpAddressDialog(), Slic3r::GUI::ManualNozzleCountDialog::ManualNozzleCountDialog(), Slic3r::GUI::MsgUpdateConfig::MsgUpdateConfig(), Slic3r::GUI::MsgUpdateForced::MsgUpdateForced(), Slic3r::GUI::MultiChoiceDialog::MultiChoiceDialog(), Slic3r::GUI::NetworkErrorDialog::NetworkErrorDialog(), Slic3r::GUI::NetworkPluginRestartDialog::NetworkPluginRestartDialog(), Slic3r::GUI::PartSkipConfirmDialog::PartSkipConfirmDialog(), Slic3r::GUI::PhysicalPrinterDialog::PhysicalPrinterDialog(), Slic3r::GUI::PlateNameEditDialog::PlateNameEditDialog(), Slic3r::GUI::PlateSettingsDialog::PlateSettingsDialog(), Slic3r::GUI::PublishSettingsDialog::PublishSettingsDialog(), Slic3r::GUI::SelectMachineDialog::SelectMachineDialog(), Slic3r::GUI::SendFailedConfirm::SendFailedConfirm(), Slic3r::GUI::SendSystemInfoDialog::SendSystemInfoDialog(), Slic3r::GUI::ShortcutCaptureDialog::ShortcutCaptureDialog(), Slic3r::GUI::SingleChoiceDialog::SingleChoiceDialog(), StepMeshDialog::StepMeshDialog(), Slic3r::GUI::SyncAmsInfoDialog::SyncAmsInfoDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::TokenAuthDialog(), Slic3r::GUI::UpdatePluginDialog::UpdatePluginDialog(), Slic3r::GUI::UpdateVersionDialog::UpdateVersionDialog(), Slic3r::GUI::wgtDeviceNozzleRackUpgradeDlg::wgtDeviceNozzleRackUpgradeDlg(), Slic3r::GUI::SavePresetDialog::accept(), Slic3r::GUI::MsgDialog::add_button(), Slic3r::GUI::TipsDialog::add_button(), Slic3r::GUI::FilamentPickerDialog::BindEvents(), Slic3r::GUI::PluginPickerDialog::build_capability_ui(), Slic3r::GUI::BedShapeDialog::build_dialog(), Slic3r::GUI::PluginPickerDialog::build_ui(), Slic3r::GUI::UnsavedChangesDialog::close(), Slic3r::GUI::FileArchiveDialog::create_btn_sizer(), Slic3r::GUI::ColorDecomposeDialog::create_button_panel(), Slic3r::GUI::MixedFilamentDialog::create_button_panel(), Slic3r::GUI::CreateFilamentPresetDialog::create_dialog_buttons(), Slic3r::GUI::CreatePresetForPrinterDialog::create_dialog_buttons(), Slic3r::GUI::EditFilamentPresetDialog::create_dialog_buttons(), Slic3r::GUI::ExportConfigsDialog::create_dialog_buttons(), Slic3r::GUI::PreferencesDialog::create_item_language_combobox(), Slic3r::GUI::PreferencesDialog::create_item_region_combobox(), Slic3r::GUI::PreferencesDialog::create_items(), Slic3r::GUI::CreatePrinterPresetDialog::create_page1_dialog_buttons(), Slic3r::GUI::CreatePrinterPresetDialog::create_page2_dialog_buttons(), Slic3r::GUI::ExportConfigsDialog::data_init(), Slic3r::GUI::WebDialog::destroy_silently(), Slic3r::GUI::EditFilamentPresetDialog::edit_preset(), Slic3r::GUI::ConnectPrinterDialog::end_modal(), Slic3r::GUI::PrintHostSendDialog::EndModal(), Slic3r::GUI::ColorPickerDialog::finish(), Slic3r::GUI::WebDialog::finish(), Slic3r::GUI::Newer3mfVersionDialog::get_btn_sizer(), Slic3r::GUI::ScoreDialog::get_button_sizer(), Slic3r::GUI::WebViewHostDialog::handle_common_script_command(), Slic3r::GUI::ExportPresetBundleDialog::InitExportData(), Slic3r::GUI::SelectMachineDialog::navigate_to_timelapse_page(), Slic3r::GUI::BindMachineDialog::on_bind_success(), Slic3r::GUI::ConnectPrinterDialog::on_button_confirm(), Slic3r::GUI::RecenterDialog::on_button_confirm(), Slic3r::GUI::BindMachineDialog::on_cancel(), Slic3r::GUI::EditCalibrationHistoryDialog::on_cancel(), Slic3r::GUI::InputIpAddressDialog::on_cancel(), Slic3r::GUI::NewCalibrationHistoryDialog::on_cancel(), Slic3r::GUI::OAuthDialog::on_cancel(), Slic3r::GUI::PingCodeBindDialog::on_cancel(), Slic3r::GUI::SelectMachineDialog::on_cancel(), Slic3r::GUI::SendToPrinterDialog::on_cancel(), Slic3r::GUI::SyncAmsInfoDialog::on_cancel(), Slic3r::GUI::UnBindMachineDialog::on_cancel(), Slic3r::GUI::WebDialog::on_close_window(), Slic3r::GUI::NetworkPluginDownloadDialog::on_dont_ask(), Slic3r::GUI::NetworkPluginDownloadDialog::on_download(), Slic3r::GUI::EditDevNameDialog::on_edit_name(), Slic3r::GUI::ConfirmBeforeSendDialog::on_hide(), Slic3r::GUI::PrivacyUpdateDialog::on_hide(), Slic3r::GUI::ShortcutCaptureDialog::on_key(), Slic3r::GUI::TextureImportDialog::on_ok_clicked(), Slic3r::GUI::FileArchiveDialog::on_open_button(), Slic3r::GUI::NetworkPluginDownloadDialog::on_remind_later(), Slic3r::GUI::ProjectDropDialog::on_select_cancel(), Slic3r::GUI::SavePresetDialog::on_select_cancel(), Slic3r::GUI::ProjectDropDialog::on_select_ok(), Slic3r::GUI::SendMultiMachinePage::on_send(), Slic3r::GUI::NetworkPluginDownloadDialog::on_skip(), Slic3r::GUI::TextureImportDialog::on_skip_clicked(), Slic3r::GUI::NetworkPluginDownloadDialog::on_skip_version(), Slic3r::GUI::Cornering_Test_Dlg::on_start(), Slic3r::GUI::FlowRateCalibrationDialog::on_start(), Slic3r::GUI::Input_Shaping_Damp_Test_Dlg::on_start(), Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::on_start(), Slic3r::GUI::MaxVolumetricSpeed_Test_Dlg::on_start(), Slic3r::GUI::PA_Calibration_Dlg::on_start(), Slic3r::GUI::Retraction_Test_Dlg::on_start(), Slic3r::GUI::Temp_Calibration_Dlg::on_start(), Slic3r::GUI::VFA_Test_Dlg::on_start(), Slic3r::GUI::CalibrationDialog::on_start_calibration(), Slic3r::GUI::UnBindMachineDialog::on_unbind_printer(), Slic3r::GUI::PartSkipDialog::OnApplyDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::OnCancel(), Slic3r::GUI::AboutDialog::onCloseDialog(), Slic3r::GUI::CopyrightsDialog::onCloseDialog(), Slic3r::GUI::MultiNozzleSyncDialog::OnRackStatusReadingFinished(), Slic3r::GUI::GuideFrame::OnScriptMessage(), Slic3r::GUI::InputIpAddressDialog::OnTimer(), Slic3r::GUI::KBShortcutsDialog::open_mouse_preferences(), Slic3r::GUI::TroubleshootDialog::PackAll(), Slic3r::GUI::TroubleshootDialog::RebuildSystemProfiles(), Slic3r::GUI::SpeedDialWebDialog::run_action(), Slic3r::GUI::OAuthDialog::Show(), Slic3r::GUI::MultiNozzleSyncDialog::UpdateButton(), and Slic3r::GUI::CreatePrinterPresetDialog::validate_input_valid().

◆ force_rescale()

bool Slic3r::GUI::DPIAware< wxDialog >::force_rescale ( ) const
inlineinherited
201{ return m_force_rescale; }

◆ is_new_scale_factor()

bool Slic3r::GUI::DPIAware< wxDialog >::is_new_scale_factor ( ) const
inlineprivateinherited
262{ return fabs(m_scale_factor - m_prev_scale_factor) > 0.001; }

◆ normal_font()

◆ on_dpi_changed()

void Slic3r::GUI::PrintOptionsDialog::on_dpi_changed ( const wxRect & suggested_rect)
overridevirtual

Implements Slic3r::GUI::DPIAware< wxDialog >.

315{
316 Fit();
317}

◆ on_sys_color_changed()

◆ prev_scale_factor()

float Slic3r::GUI::DPIAware< wxDialog >::prev_scale_factor ( ) const
inlineinherited
196{ return m_prev_scale_factor; }

◆ rescale()

void Slic3r::GUI::DPIAware< wxDialog >::rescale ( const wxRect & suggested_rect)
inlineprivateinherited
265 {
266 this->Freeze();
267
268 m_force_rescale = false;
269
270 // set normal application font as a current window font
271 m_normal_font = this->GetFont();
272
274
275 // rescale missed controls sizes and images
277
278 this->Layout();
279 this->Thaw();
280
281 // reset previous scale factor from current scale factor value
283 }
virtual void on_dpi_changed(const wxRect &suggested_rect)=0
void update_em_unit()
Definition GUI_Utils.hpp:249

◆ scale_factor()

float Slic3r::GUI::DPIAware< wxDialog >::scale_factor ( ) const
inlineinherited
195{ return m_scale_factor; }

◆ sensitivity_level_to_label_string()

wxString Slic3r::GUI::PrintOptionsDialog::sensitivity_level_to_label_string ( enum AiMonitorSensitivityLevel level)
1373 {
1374 switch (level) {
1375 case LOW:
1376 return _L("Low");
1377 case MEDIUM:
1378 return _L("Medium");
1379 case HIGH:
1380 return _L("High");
1381 default:
1382 return "";
1383 }
1384 return "";
1385}

References _L, HIGH, LOW, and MEDIUM.

Referenced by create_settings_group().

Here is the caller graph for this function:

◆ sensitivity_level_to_msg_string()

std::string Slic3r::GUI::PrintOptionsDialog::sensitivity_level_to_msg_string ( enum AiMonitorSensitivityLevel level)
1387 {
1388 switch (level) {
1389 case LOW:
1390 return "low";
1391 case MEDIUM:
1392 return "medium";
1393 case HIGH:
1394 return "high";
1395 default:
1396 return "";
1397 }
1398 return "";
1399}

References HIGH, LOW, and MEDIUM.

Referenced by PrintOptionsDialog(), set_ai_monitor_sensitivity(), set_airprinting_detection_sensitivity(), set_nozzleclumping_detection_sensitivity(), set_purgechutepileup_detection_sensitivity(), set_spaghetti_detection_sensitivity(), and update_options().

Here is the caller graph for this function:

◆ set_ai_monitor_sensitivity()

void Slic3r::GUI::PrintOptionsDialog::set_ai_monitor_sensitivity ( wxCommandEvent & evt)
1402{
1403 int level = ai_monitoring_level_list->GetSelection();
1405
1406 if (obj && !lvl.empty()) {
1407 obj->command_xcam_control_ai_monitoring(m_cb_ai_monitoring->GetValue(), lvl);
1408 } else {
1409 BOOST_LOG_TRIVIAL(warning) << "print_option: obj is null or lvl = " << lvl;
1410 }
1411}

References ai_monitoring_level_list, m_cb_ai_monitoring, obj, and sensitivity_level_to_msg_string().

Referenced by ~PrintOptionsDialog(), and create_settings_group().

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

◆ set_airprinting_detection_sensitivity()

void Slic3r::GUI::PrintOptionsDialog::set_airprinting_detection_sensitivity ( wxCommandEvent & evt)
1451{
1452 int level = airprinting_detection_level_list->GetSelection();
1454
1455 if (obj && !lvl.empty()) {
1456 obj->command_xcam_control_airprinting_detection(m_cb_airprinting_detection->GetValue(), lvl);
1457 } else {
1458 BOOST_LOG_TRIVIAL(warning) << "print_option: obj is null or lvl = " << lvl;
1459 }
1460}

References airprinting_detection_level_list, m_cb_airprinting_detection, obj, and sensitivity_level_to_msg_string().

Referenced by ~PrintOptionsDialog(), and create_settings_group().

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

◆ set_em_unit()

void Slic3r::GUI::DPIAware< wxDialog >::set_em_unit ( int v)
inlineinherited
200{ m_em_unit = v; }

◆ set_nozzleclumping_detection_sensitivity()

void Slic3r::GUI::PrintOptionsDialog::set_nozzleclumping_detection_sensitivity ( wxCommandEvent & evt)
1439{
1440 int level = nozzleclumping_detection_level_list->GetSelection();
1442
1443 if (obj && !lvl.empty()) {
1444 obj->command_xcam_control_nozzleclumping_detection(m_cb_nozzleclumping_detection->GetValue(), lvl);
1445 } else {
1446 BOOST_LOG_TRIVIAL(warning) << "print_option: obj is null or lvl = " << lvl;
1447 }
1448}

References m_cb_nozzleclumping_detection, nozzleclumping_detection_level_list, obj, and sensitivity_level_to_msg_string().

Referenced by ~PrintOptionsDialog(), and create_settings_group().

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

◆ set_prev_scale_factor()

void Slic3r::GUI::DPIAware< wxDialog >::set_prev_scale_factor ( float v)
inlineinherited

◆ set_purgechutepileup_detection_sensitivity()

void Slic3r::GUI::PrintOptionsDialog::set_purgechutepileup_detection_sensitivity ( wxCommandEvent & evt)
1427{
1428 int level = purgechutepileup_detection_level_list->GetSelection();
1430
1431 if (obj && !lvl.empty()) {
1432 obj->command_xcam_control_purgechutepileup_detection(m_cb_purgechutepileup_detection->GetValue(), lvl);
1433 } else {
1434 BOOST_LOG_TRIVIAL(warning) << "print_option: obj is null or lvl = " << lvl;
1435 }
1436}

References m_cb_purgechutepileup_detection, obj, purgechutepileup_detection_level_list, and sensitivity_level_to_msg_string().

Referenced by ~PrintOptionsDialog(), and create_settings_group().

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

◆ set_scale_factor()

void Slic3r::GUI::DPIAware< wxDialog >::set_scale_factor ( float v)
inlineinherited
198{ m_scale_factor = v; }

◆ set_spaghetti_detection_sensitivity()

void Slic3r::GUI::PrintOptionsDialog::set_spaghetti_detection_sensitivity ( wxCommandEvent & evt)
1415{
1416 int level = spaghetti_detection_level_list->GetSelection();
1418
1419 if (obj && !lvl.empty()) {
1420 obj->command_xcam_control_spaghetti_detection(m_cb_spaghetti_detection->GetValue(), lvl);
1421 } else {
1422 BOOST_LOG_TRIVIAL(warning) << "print_option: obj is null or lvl = " << lvl;
1423 }
1424}

References m_cb_spaghetti_detection, obj, sensitivity_level_to_msg_string(), and spaghetti_detection_level_list.

Referenced by ~PrintOptionsDialog(), and create_settings_group().

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

◆ Show()

bool Slic3r::GUI::PrintOptionsDialog::Show ( bool show)
override
1468{
1469 if (show) {
1470 wxGetApp().UpdateDlgDarkUI(this);
1471 CentreOnParent();
1472 }
1473 return DPIDialog::Show(show);
1474}

◆ ShowModal()

◆ update_ai_monitor_status()

void Slic3r::GUI::PrintOptionsDialog::update_ai_monitor_status ( )
320{
321 if (m_cb_ai_monitoring->GetValue()) {
322 ai_monitoring_level_list->Enable();
323 } else {
324 ai_monitoring_level_list->Disable();
325 }
326}

References ai_monitoring_level_list, and m_cb_ai_monitoring.

Referenced by update_options().

Here is the caller graph for this function:

◆ update_airprinting_detection_status()

void Slic3r::GUI::PrintOptionsDialog::update_airprinting_detection_status ( )
358{
359 if (m_cb_airprinting_detection->GetValue()) {
361 } else {
363 }
364}

References airprinting_detection_level_list, and m_cb_airprinting_detection.

Referenced by update_options().

Here is the caller graph for this function:

◆ update_em_unit()

void Slic3r::GUI::DPIAware< wxDialog >::update_em_unit ( )
inlineprivateinherited
250 {
251 // Linux specific issue : get_dpi_for_window(this) still doesn't responce to the Display's scale in new wxWidgets(3.1.3).
252 // So, calculate the m_em_unit value from the font size, as before
253#if !defined(__WXGTK__)
255#else
256 // initialize default width_unit according to the width of the one symbol ("m") of the currently active font of this window.
257 m_em_unit = std::max<size_t>(10, this->GetTextExtent("m").x - 1);
258#endif // __WXGTK__
259 }

◆ update_machine_obj()

void Slic3r::GUI::PrintOptionsDialog::update_machine_obj ( MachineObject * obj_)
1463{
1464 obj = obj_;
1465}

References obj.

◆ update_nozzleclumping_detection_status()

void Slic3r::GUI::PrintOptionsDialog::update_nozzleclumping_detection_status ( )
349{
350 if (m_cb_nozzleclumping_detection->GetValue()) {
352 } else {
354 }
355}

References m_cb_nozzleclumping_detection, and nozzleclumping_detection_level_list.

Referenced by update_options().

Here is the caller graph for this function:

◆ update_options()

void Slic3r::GUI::PrintOptionsDialog::update_options ( MachineObject * obj_)
368{
369 if (!obj_) return;
370
371 if (obj_->is_support_spaghetti_detection || obj_->is_support_purgechutepileup_detection || obj_->is_support_nozzleclumping_detection || obj_->is_support_airprinting_detection) {
372 ai_refine_panel->Show();
373 text_ai_detections->Show();
375 m_line->Show();
376 } else {
377 ai_refine_panel->Hide();
378 text_ai_detections->Hide();
380 m_line->Hide();
381 }
382
383 if (obj_->GetConfig()->SupportAIMonitor() && !obj_->xcam_disable_ai_detection_display) {
384 text_ai_monitoring->Show();
385 m_cb_ai_monitoring->Show();
388 ai_monitoring_bottom_space->Show(true);
389 // line1->Show();
390 } else {
391 text_ai_monitoring->Hide();
392 m_cb_ai_monitoring->Hide();
395 ai_monitoring_bottom_space->Show(false);
396 //line1->Hide();
397 }
398
399 //refine printer function options
400 if (obj_->is_support_spaghetti_detection) {
406 spaghetti_bottom_space->Show(true);
407
408 //line1->Show();
409 } else {
415 spaghetti_bottom_space->Show(false);
416 //line1->Hide();
417 }
418
419
420 if (obj_->is_support_purgechutepileup_detection) {
427 // line1->Show();
428 } else {
435 // line1->Hide();
436 }
437
438
439 if (obj_->is_support_nozzleclumping_detection) {
445 nozzleclumping_bottom_space->Show(true);
446
447 // line1->Show();
448 } else {
454 nozzleclumping_bottom_space->Show(false);
455 // line1->Hide();
456 }
457
458 if (obj_->is_support_airprinting_detection) {
464 airprinting_bottom_space->Show(true);
465 // line1->Show();
466 } else {
472 // line1->Hide();
473 airprinting_bottom_space->Show(false);
474 }
475
476
477
478 if (obj_->is_support_build_plate_marker_detect) {
479 if (obj_->m_plate_maker_detect_type == MachineObject::POS_CHECK && (text_plate_mark->GetLabel() != _L("Enable detection of build plate position"))) {
480 text_plate_mark->SetLabel(_L("Enable detection of build plate position"));
481 text_plate_mark_caption->SetLabel(_L("The localization tag of the build plate will be detected, and printing will be paused if the tag is not in predefined range."));
482 text_plate_mark_caption->Wrap(FromDIP(400));
483 } else if (obj_->m_plate_maker_detect_type == MachineObject::TYPE_POS_CHECK && (text_plate_mark->GetLabel() != _L("Build Plate Detection"))) {
484 text_plate_mark->SetLabel(_L("Build Plate Detection"));
485 text_plate_mark_caption->SetLabel(_L("Identifies the type and position of the build plate on the heatbed. Pausing printing if a mismatch is detected."));
486 text_plate_mark_caption->Wrap(FromDIP(400));
487 }
488
489 text_plate_mark->Show();
490 m_cb_plate_mark->Show();
492 // line2->Show();
493 }
494 else {
495 text_plate_mark->Hide();
496 m_cb_plate_mark->Hide();
498 line2->Hide();
499 }
500
501 if (obj_->GetConfig()->SupportFirstLayerInspect()) {
502 text_first_layer->Show();
503 m_cb_first_layer->Show();
504 // line3->Show();
505 }
506 else {
507 text_first_layer->Hide();
508 m_cb_first_layer->Hide();
509 line3->Hide();
510 }
511
512 if (obj_->is_support_auto_recovery_step_loss) {
513 text_auto_recovery->Show();
514 m_cb_auto_recovery->Show();
515 //line4->Show();
516 }
517 else {
518 text_auto_recovery->Hide();
519 m_cb_auto_recovery->Hide();
520 line4->Hide();
521 }
522 if (obj_->is_support_prompt_sound) {
523 text_sup_sound->Show();
524 m_cb_sup_sound->Show();
525 // line5->Show();
526 }
527 else {
528 text_sup_sound->Hide();
529 m_cb_sup_sound->Hide();
530 line5->Hide();
531 }
532 if (obj_->is_support_filament_tangle_detect) {
533 text_filament_tangle->Show();
534 m_cb_filament_tangle->Show();
535 // line6->Show();
536 }
537 else {
538 text_filament_tangle->Hide();
539 m_cb_filament_tangle->Hide();
540 line6->Hide();
541 }
542 if (false/*obj_->is_support_nozzle_blob_detection*/) {
543 text_nozzle_blob->Show();
544 m_cb_nozzle_blob->Show();
546 // line7->Show();
547 }
548 else {
549 text_nozzle_blob->Hide();
550 m_cb_nozzle_blob->Hide();
552 line7->Hide();
553 }
554
555 // Orca: firmware print-option toggles, each shown only when its fun2 capability bit is
556 // reported. A printer reporting none of these bits renders the dialog as before.
557 auto* print_opts = obj_->GetPrintOptions();
558 auto show_row = [](bool support, std::initializer_list<wxWindow*> widgets, wxSizerItem* bottom_space) {
559 for (auto* w : widgets) { if (w) w->Show(support); }
560 if (bottom_space) bottom_space->Show(support);
561 };
562
563 auto* plate_align_opt = print_opts ? print_opts->GetDetectionOption(PrintOptionEnum::Buildplate_Align_Detection) : nullptr;
564 show_row(plate_align_opt && plate_align_opt->is_support_detect, {m_cb_plate_align, text_plate_align, text_plate_align_caption}, plate_align_bottom_space);
565
566 auto* fod_opt = print_opts ? print_opts->GetDetectionOption(PrintOptionEnum::FOD_Check_Detection) : nullptr;
567 show_row(fod_opt && fod_opt->is_support_detect, {m_cb_fod_check, text_fod_check, text_fod_check_caption}, fod_check_bottom_space);
568
569 auto* displacement_opt = print_opts ? print_opts->GetDetectionOption(PrintOptionEnum::Displacement_Detection) : nullptr;
570 show_row(displacement_opt && displacement_opt->is_support_detect, {m_cb_displacement_detection, text_displacement_detection, text_displacement_detection_caption}, displacement_bottom_space);
571
572 auto* smart_blob_opt = print_opts ? print_opts->GetDetectionOption(PrintOptionEnum::Smart_Nozzle_Blob_Detection) : nullptr;
573 show_row(smart_blob_opt && smart_blob_opt->is_support_detect, {m_smart_nozzle_blob_mode_switch, text_smart_nozzle_blob, text_smart_nozzle_blob_mode_desc}, smart_nozzle_blob_bottom_space);
574
578
579 this->Freeze();
580
581 if (plate_align_opt) m_cb_plate_align->SetValue(plate_align_opt->current_detect_value == 1);
582 if (fod_opt) m_cb_fod_check->SetValue(fod_opt->current_detect_value == 1);
583 if (displacement_opt) m_cb_displacement_detection->SetValue(displacement_opt->current_detect_value == 1);
584 if (smart_blob_opt && smart_blob_opt->is_support_detect) {
585 // Protocol: 0=off, 1=on, 2=auto -> UI: 0=Auto, 1=On, 2=Off
586 int mode = smart_blob_opt->current_detect_value;
587 int ui_map[] = {2, 1, 0};
588 int ui_sel = (mode >= 0 && mode <= 2) ? ui_map[mode] : 0;
589 m_smart_nozzle_blob_mode_switch->SetSelection(ui_sel);
591 }
592
593 m_cb_first_layer->SetValue(obj_->xcam_first_layer_inspector);
594 m_cb_plate_mark->SetValue(obj_->xcam_buildplate_marker_detector);
595 m_cb_auto_recovery->SetValue(obj_->xcam_auto_recovery_step_loss);
596 m_cb_sup_sound->SetValue(obj_->xcam_allow_prompt_sound);
597 m_cb_filament_tangle->SetValue(obj_->xcam_filament_tangle_detect);
598 m_cb_nozzle_blob->SetValue(obj_->nozzle_blob_detection_enabled);
599
600
601 m_cb_ai_monitoring->SetValue(obj_->xcam_ai_monitoring);
602 for (auto i = AiMonitorSensitivityLevel::LOW; i < LEVELS_NUM; i = (AiMonitorSensitivityLevel) (i + 1)) {
603 if (sensitivity_level_to_msg_string(i) == obj_->xcam_ai_monitoring_sensitivity) {
604 ai_monitoring_level_list->SetSelection((int) i);
605 break;
606 }
607 }
608 //refine printer function options
609 m_cb_spaghetti_detection->SetValue(obj_->xcam_spaghetti_detection);
610 for (auto i = AiMonitorSensitivityLevel::LOW; i < LEVELS_NUM; i = (AiMonitorSensitivityLevel) (i + 1)) {
611 if (sensitivity_level_to_msg_string(i) == obj_->xcam_spaghetti_detection_sensitivity) {
612 spaghetti_detection_level_list->SetSelection((int) i);
613 break;
614 }
615 }
616
617 m_cb_purgechutepileup_detection->SetValue(obj_->xcam_purgechutepileup_detection);
618 for (auto i = AiMonitorSensitivityLevel::LOW; i < LEVELS_NUM; i = (AiMonitorSensitivityLevel) (i + 1)) {
619 if (sensitivity_level_to_msg_string(i) == obj_->xcam_purgechutepileup_detection_sensitivity) {
620 purgechutepileup_detection_level_list->SetSelection((int) i);
621 break;
622 }
623 }
624
625 m_cb_nozzleclumping_detection->SetValue(obj_->xcam_nozzleclumping_detection);
626 for (auto i = AiMonitorSensitivityLevel::LOW; i < LEVELS_NUM; i = (AiMonitorSensitivityLevel) (i + 1)) {
627 if (sensitivity_level_to_msg_string(i) == obj_->xcam_nozzleclumping_detection_sensitivity) {
628 nozzleclumping_detection_level_list->SetSelection((int) i);
629 break;
630 }
631 }
632
633
634 m_cb_airprinting_detection->SetValue(obj_->xcam_airprinting_detection);
635 for (auto i = AiMonitorSensitivityLevel::LOW; i < LEVELS_NUM; i = (AiMonitorSensitivityLevel) (i + 1)) {
636 if (sensitivity_level_to_msg_string(i) == obj_->xcam_airprinting_detection_sensitivity) {
637 airprinting_detection_level_list->SetSelection((int) i);
638 break;
639 }
640 }
641
643 // refine printer function options
649
650
651 this->Thaw();
652 Layout();
653}
void update_spaghetti_detection_status()
Definition PrintOptionsDialog.cpp:330
void update_airprinting_detection_status()
Definition PrintOptionsDialog.cpp:357
void update_ai_monitor_status()
Definition PrintOptionsDialog.cpp:319
void update_purify_air_at_print_end(MachineObject *obj_)
Definition PrintOptionsDialog.cpp:714
void update_purgechutepileup_detection_status()
Definition PrintOptionsDialog.cpp:339
void UpdateOptionSnapshot(MachineObject *obj)
Definition PrintOptionsDialog.cpp:794
void update_nozzleclumping_detection_status()
Definition PrintOptionsDialog.cpp:348
void UpdateOptionOpenDoorCheck(MachineObject *obj)
Definition PrintOptionsDialog.cpp:671
void UpdateOptionSavePrintFileToStorage(MachineObject *obj)
Definition PrintOptionsDialog.cpp:657
@ TYPE_POS_CHECK
Definition DeviceManager.hpp:570
@ POS_CHECK
Definition DeviceManager.hpp:569
@ FOD_Check_Detection
Definition DevPrintOptions.h:27
@ Buildplate_Align_Detection
Definition DevPrintOptions.h:20
@ Displacement_Detection
Definition DevPrintOptions.h:28

References _L, ai_monitoring_bottom_space, ai_monitoring_level_list, ai_refine_panel, airprinting_bottom_space, airprinting_detection_level_list, Slic3r::Buildplate_Align_Detection, displacement_bottom_space, Slic3r::Displacement_Detection, fod_check_bottom_space, Slic3r::FOD_Check_Detection, Slic3r::MachineObject::GetConfig(), Slic3r::DevPrintOptions::GetDetectionOption(), Slic3r::MachineObject::GetPrintOptions(), Slic3r::MachineObject::is_support_airprinting_detection, Slic3r::MachineObject::is_support_auto_recovery_step_loss, Slic3r::MachineObject::is_support_build_plate_marker_detect, Slic3r::MachineObject::is_support_filament_tangle_detect, Slic3r::MachineObject::is_support_nozzleclumping_detection, Slic3r::MachineObject::is_support_prompt_sound, Slic3r::MachineObject::is_support_purgechutepileup_detection, Slic3r::MachineObject::is_support_spaghetti_detection, LEVELS_NUM, line2, line3, line4, line5, line6, line7, LOW, m_cb_ai_monitoring, m_cb_airprinting_detection, m_cb_auto_recovery, m_cb_displacement_detection, m_cb_filament_tangle, m_cb_first_layer, m_cb_fod_check, m_cb_nozzle_blob, m_cb_nozzleclumping_detection, m_cb_plate_align, m_cb_plate_mark, m_cb_purgechutepileup_detection, m_cb_spaghetti_detection, m_cb_sup_sound, m_line, Slic3r::MachineObject::m_plate_maker_detect_type, m_smart_nozzle_blob_mode_switch, Slic3r::MachineObject::nozzle_blob_detection_enabled, nozzleclumping_bottom_space, nozzleclumping_detection_level_list, plate_align_bottom_space, Slic3r::MachineObject::POS_CHECK, purgechutepileup_bottom_space, purgechutepileup_detection_level_list, sensitivity_level_to_msg_string(), smart_nozzle_blob_bottom_space, Slic3r::Smart_Nozzle_Blob_Detection, spaghetti_bottom_space, spaghetti_detection_level_list, Slic3r::DevConfig::SupportAIMonitor(), Slic3r::DevConfig::SupportFirstLayerInspect(), text_ai_detections, text_ai_detections_caption, text_ai_monitoring, text_ai_monitoring_caption, text_airprinting_detection, text_airprinting_detection_caption0, text_airprinting_detection_caption1, text_auto_recovery, text_filament_tangle, text_first_layer, text_nozzle_blob, text_nozzle_blob_caption, text_nozzleclumping_detection, text_nozzleclumping_detection_caption0, text_nozzleclumping_detection_caption1, text_plate_mark, text_plate_mark_caption, text_purgechutepileup_detection, text_purgechutepileup_detection_caption0, text_purgechutepileup_detection_caption1, text_spaghetti_detection, text_spaghetti_detection_caption0, text_spaghetti_detection_caption1, text_sup_sound, Slic3r::MachineObject::TYPE_POS_CHECK, update_ai_monitor_status(), update_airprinting_detection_status(), update_nozzleclumping_detection_status(), update_purgechutepileup_detection_status(), update_purify_air_at_print_end(), update_smart_nozzle_blob_mode_desc(), update_spaghetti_detection_status(), UpdateOptionOpenDoorCheck(), UpdateOptionSavePrintFileToStorage(), UpdateOptionSnapshot(), Slic3r::MachineObject::xcam_ai_monitoring, Slic3r::MachineObject::xcam_ai_monitoring_sensitivity, Slic3r::MachineObject::xcam_airprinting_detection, Slic3r::MachineObject::xcam_airprinting_detection_sensitivity, Slic3r::MachineObject::xcam_allow_prompt_sound, Slic3r::MachineObject::xcam_auto_recovery_step_loss, Slic3r::MachineObject::xcam_buildplate_marker_detector, Slic3r::MachineObject::xcam_disable_ai_detection_display, Slic3r::MachineObject::xcam_filament_tangle_detect, Slic3r::MachineObject::xcam_first_layer_inspector, Slic3r::MachineObject::xcam_nozzleclumping_detection, Slic3r::MachineObject::xcam_nozzleclumping_detection_sensitivity, Slic3r::MachineObject::xcam_purgechutepileup_detection, Slic3r::MachineObject::xcam_purgechutepileup_detection_sensitivity, Slic3r::MachineObject::xcam_spaghetti_detection, and Slic3r::MachineObject::xcam_spaghetti_detection_sensitivity.

Here is the call graph for this function:

◆ update_purgechutepileup_detection_status()

void Slic3r::GUI::PrintOptionsDialog::update_purgechutepileup_detection_status ( )
340{
341 if (m_cb_purgechutepileup_detection->GetValue()) {
343 } else {
345 }
346}

References m_cb_purgechutepileup_detection, and purgechutepileup_detection_level_list.

Referenced by update_options().

Here is the caller graph for this function:

◆ update_purify_air_at_print_end()

void Slic3r::GUI::PrintOptionsDialog::update_purify_air_at_print_end ( MachineObject * obj_)
715{
716 if (!obj_ || !obj_->GetPrintOptions()) return;
717
718 auto* opt = obj_->GetPrintOptions()->GetDetectionOption(PrintOptionEnum::Purify_Air_At_Print_End);
719 if (!opt || !opt->is_support_detect) {
720 purify_air_switch_board->Disable();
722 text_purify_air->Hide();
726 return;
727 }
728
731 text_purify_air->Show();
733 purify_air_switch_board->Enable();
735 text_purify_air->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#262E30")));
736
737 // Orca: this codebase's AirDuctData has no IsExaustFanExit() helper, so the exhaust/chamber
738 // fan is detected inline by scanning the air-duct parts for the chamber-fan id.
739 bool has_exhaust_fan = false;
740 for (const auto& part : obj_->GetFan()->GetAirDuctData().parts) {
741 if (part.id == int(AIR_FUN::FAN_CHAMBER_0_IDX)) { has_exhaust_fan = true; break; }
742 }
743
744 if (has_exhaust_fan) {
745 text_purify_air_context->SetLabel(_L("Purifies the chamber air as the print finishes, based on the selected mode."));
747 if (opt->current_detect_value != 0) {
748 m_cb_purify_air_at_print_end->SetValue(true);
749 purify_air_switch_board->updateState(opt->current_detect_value == 1 ? "left" : "right");
750 purify_air_switch_board->Refresh();
751 } else {
752 purify_air_switch_board->Disable();
753 m_cb_purify_air_at_print_end->SetValue(false);
754 }
755 } else {
756 text_purify_air_context->SetLabel(_L("Purifies the chamber air through internal circulation as each print finishes."));
758 m_cb_purify_air_at_print_end->SetValue(opt->current_detect_value != 0);
759 }
761 text_purify_air_context->Wrap(FromDIP(400));
762
763 // Orca: disabled while a print is running (matches the reference); the reference's
764 // "unavailable during the task" toast is not ported.
765 if (obj_->is_in_printing()) {
767 purify_air_switch_board->Disable();
768 text_purify_air_context->SetForegroundColour(wxColour(170, 170, 170));
769 text_purify_air->SetForegroundColour(wxColour(170, 170, 170));
770 }
771}
static wxColour darkModeColorFor(wxColour const &color)
Definition StateColor.cpp:219
@ Purify_Air_At_Print_End
Definition DevPrintOptions.h:25
@ FAN_CHAMBER_0_IDX
Definition DevFan.h:21

References _L, StateColor::darkModeColorFor(), Slic3r::FAN_CHAMBER_0_IDX, Slic3r::DevFan::GetAirDuctData(), Slic3r::DevPrintOptions::GetDetectionOption(), Slic3r::MachineObject::GetFan(), Slic3r::MachineObject::GetPrintOptions(), Slic3r::MachineObject::is_in_printing(), m_cb_purify_air_at_print_end, Slic3r::AirDuctData::parts, Slic3r::Purify_Air_At_Print_End, purify_air_bottom_space, purify_air_switch_board, STATIC_TEXT_CAPTION_COL, text_purify_air, and text_purify_air_context.

Referenced by update_options().

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

◆ update_smart_nozzle_blob_mode_desc()

void Slic3r::GUI::PrintOptionsDialog::update_smart_nozzle_blob_mode_desc ( int selection)
774{
775 wxString desc;
776 switch (selection) {
777 case 0: // Auto
778 desc = _L("Automatically match the corresponding switch strategy for leak-prone filaments (disable blob detection) and regular filaments (enable blob detection).");
779 break;
780 case 1: // On
781 desc = _L("Detect whether the nozzle is wrapped by filament or other foreign matter.");
782 break;
783 case 2: // Off
784 desc = _L("After disabling, nozzle wrapping cannot be detected, which may lead to print failure or nozzle damage.");
785 break;
786 default:
787 desc = _L("Detect whether the nozzle is wrapped by filament or other foreign matter.");
788 break;
789 }
790 text_smart_nozzle_blob_mode_desc->SetLabel(desc);
791 text_smart_nozzle_blob_mode_desc->Wrap(FromDIP(400));
792}

References _L, and text_smart_nozzle_blob_mode_desc.

Referenced by PrintOptionsDialog(), and update_options().

Here is the caller graph for this function:

◆ update_spaghetti_detection_status()

void Slic3r::GUI::PrintOptionsDialog::update_spaghetti_detection_status ( )
331{
332 if (m_cb_spaghetti_detection->GetValue()) {
334 } else {
336 }
337}

References m_cb_spaghetti_detection, and spaghetti_detection_level_list.

Referenced by update_options().

Here is the caller graph for this function:

◆ UpdateOptionOpenDoorCheck()

void Slic3r::GUI::PrintOptionsDialog::UpdateOptionOpenDoorCheck ( MachineObject * obj)
private
672{
673 if (!obj || !obj->support_door_open_check()) {
674 m_cb_open_door->Hide();
675 text_open_door->Hide();
677 return;
678 }
679
680 // Determine if current printer supports safety options
681 std::string current_printer_type = obj->printer_type;
682 bool supports_safety = DevPrinterConfigUtil::support_safety_options(current_printer_type);
683
684 // Hide door open check for printers that support safety options
685 if (supports_safety) {
686 m_cb_open_door->Hide();
687 text_open_door->Hide();
689 return;
690 }
691
692 if (obj->get_door_open_check_state() != MachineObject::DOOR_OPEN_CHECK_DISABLE) {
693 m_cb_open_door->SetValue(true);
694 open_door_switch_board->Enable();
695
696 if (obj->get_door_open_check_state() == MachineObject::DOOR_OPEN_CHECK_ENABLE_WARNING) {
697 open_door_switch_board->updateState("left");
698 open_door_switch_board->Refresh();
699 } else if (obj->get_door_open_check_state() == MachineObject::DOOR_OPEN_CHECK_ENABLE_PAUSE_PRINT) {
700 open_door_switch_board->updateState("right");
701 open_door_switch_board->Refresh();
702 }
703
704 } else {
705 m_cb_open_door->SetValue(false);
706 open_door_switch_board->Disable();
707 }
708
709 m_cb_open_door->Show();
710 text_open_door->Show();
712}
static bool support_safety_options(const std::string &type_str)
Definition DevConfigUtil.h:125

References Slic3r::MachineObject::DOOR_OPEN_CHECK_DISABLE, Slic3r::MachineObject::DOOR_OPEN_CHECK_ENABLE_PAUSE_PRINT, Slic3r::MachineObject::DOOR_OPEN_CHECK_ENABLE_WARNING, m_cb_open_door, obj, open_door_switch_board, Slic3r::DevPrinterConfigUtil::support_safety_options(), and text_open_door.

Referenced by update_options().

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

◆ UpdateOptionSavePrintFileToStorage()

void Slic3r::GUI::PrintOptionsDialog::UpdateOptionSavePrintFileToStorage ( MachineObject * obj)
private
658{
659 if (obj && obj->GetConfig()->SupportSaveRemotePrintFileToStorage())
660 {
661 m_cb_save_remote_print_file_to_storage->SetValue(obj->get_save_remote_print_file_to_storage());
662 }
663 else
664 {
668 }
669}

References m_cb_save_remote_print_file_to_storage, obj, text_save_remote_print_file_to_storage, and text_save_remote_print_file_to_storage_explain.

Referenced by update_options().

Here is the caller graph for this function:

◆ UpdateOptionSnapshot()

void Slic3r::GUI::PrintOptionsDialog::UpdateOptionSnapshot ( MachineObject * obj)
private
795{
796 if (!IsShown()) { return; }
797
798 auto* opt = (obj && obj->GetPrintOptions()) ? obj->GetPrintOptions()->GetDetectionOption(PrintOptionEnum::Snapshot_Detection) : nullptr;
799 if (!opt || !opt->is_support_detect) {
800 m_cb_snapshot_enable->Show(false);
801 m_snapshot_sizer->Show(false);
802 Layout();
803 return;
804 }
805
806 if (!m_cb_snapshot_enable->IsShown()) {
807 m_cb_snapshot_enable->Show(true);
808 m_snapshot_sizer->Show(true);
809 Layout();
810 }
811
812 if (time(nullptr) - opt->detect_hold_start > HOLD_TIME_6SEC) {
813 m_cb_snapshot_enable->SetValue(opt->current_detect_value == 2);
814 }
815}
#define HOLD_TIME_6SEC
Definition DeviceManager.hpp:57
@ Snapshot_Detection
Definition DevPrintOptions.h:26

References HOLD_TIME_6SEC, m_cb_snapshot_enable, m_snapshot_sizer, obj, and Slic3r::Snapshot_Detection.

Referenced by update_options().

Here is the caller graph for this function:

Member Data Documentation

◆ ai_detections_bottom_space

wxSizerItem* Slic3r::GUI::PrintOptionsDialog::ai_detections_bottom_space
protected

Referenced by create_settings_group().

◆ ai_monitoring_bottom_space

wxSizerItem* Slic3r::GUI::PrintOptionsDialog::ai_monitoring_bottom_space
protected

◆ ai_monitoring_level_list

ComboBox* Slic3r::GUI::PrintOptionsDialog::ai_monitoring_level_list
protected

◆ ai_refine_panel

wxPanel* Slic3r::GUI::PrintOptionsDialog::ai_refine_panel
protected

◆ airprinting_bottom_space

wxSizerItem* Slic3r::GUI::PrintOptionsDialog::airprinting_bottom_space
protected

◆ airprinting_detection_level_list

◆ displacement_bottom_space

wxSizerItem* Slic3r::GUI::PrintOptionsDialog::displacement_bottom_space {nullptr}
protected
120{nullptr};

Referenced by create_settings_group(), and update_options().

◆ fod_check_bottom_space

wxSizerItem* Slic3r::GUI::PrintOptionsDialog::fod_check_bottom_space {nullptr}
protected
119{nullptr};

Referenced by create_settings_group(), and update_options().

◆ last_stage_list_info

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

◆ line1

StaticLine* Slic3r::GUI::PrintOptionsDialog::line1
protected

◆ line2

StaticLine* Slic3r::GUI::PrintOptionsDialog::line2
protected

◆ line3

StaticLine* Slic3r::GUI::PrintOptionsDialog::line3
protected

◆ line4

StaticLine* Slic3r::GUI::PrintOptionsDialog::line4
protected

◆ line5

StaticLine* Slic3r::GUI::PrintOptionsDialog::line5
protected

◆ line6

StaticLine* Slic3r::GUI::PrintOptionsDialog::line6
protected

◆ line7

StaticLine* Slic3r::GUI::PrintOptionsDialog::line7
protected

◆ m_can_rescale

bool Slic3r::GUI::DPIAware< wxDialog >::m_can_rescale
privateinherited
235{ true };

◆ m_cb_ai_monitoring

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_ai_monitoring
protected

◆ m_cb_airprinting_detection

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_airprinting_detection
protected

◆ m_cb_auto_recovery

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_auto_recovery
protected

◆ m_cb_displacement_detection

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_displacement_detection {nullptr}
protected

◆ m_cb_filament_tangle

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_filament_tangle
protected

◆ m_cb_first_layer

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_first_layer
protected

◆ m_cb_fod_check

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_fod_check {nullptr}
protected

◆ m_cb_nozzle_blob

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_nozzle_blob
protected

◆ m_cb_nozzleclumping_detection

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_nozzleclumping_detection
protected

◆ m_cb_open_door

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_open_door
protected

◆ m_cb_plate_align

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_plate_align {nullptr}
protected

◆ m_cb_plate_mark

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_plate_mark
protected

◆ m_cb_purgechutepileup_detection

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_purgechutepileup_detection
protected

◆ m_cb_purify_air_at_print_end

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_purify_air_at_print_end {nullptr}
protected

◆ m_cb_save_remote_print_file_to_storage

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_save_remote_print_file_to_storage
protected

◆ m_cb_snapshot_enable

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_snapshot_enable {nullptr}
protected

◆ m_cb_spaghetti_detection

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_spaghetti_detection
protected

◆ m_cb_sup_sound

CheckBox* Slic3r::GUI::PrintOptionsDialog::m_cb_sup_sound
protected

◆ m_em_unit

int Slic3r::GUI::DPIAware< wxDialog >::m_em_unit
privateinherited

◆ m_force_rescale

bool Slic3r::GUI::DPIAware< wxDialog >::m_force_rescale
privateinherited
236{ false };

◆ m_line

wxPanel* Slic3r::GUI::PrintOptionsDialog::m_line
protected

◆ m_new_font_point_size

int Slic3r::GUI::DPIAware< wxDialog >::m_new_font_point_size
privateinherited

◆ m_normal_font

wxFont Slic3r::GUI::DPIAware< wxDialog >::m_normal_font
privateinherited

◆ m_prev_scale_factor

float Slic3r::GUI::DPIAware< wxDialog >::m_prev_scale_factor
privateinherited

◆ m_scale_factor

float Slic3r::GUI::DPIAware< wxDialog >::m_scale_factor
privateinherited

◆ m_scrollwindow

wxScrolledWindow* Slic3r::GUI::PrintOptionsDialog::m_scrollwindow
protected

Referenced by PrintOptionsDialog().

◆ m_smart_nozzle_blob_mode_switch

MultiSwitchButton* Slic3r::GUI::PrintOptionsDialog::m_smart_nozzle_blob_mode_switch {nullptr}
protected

◆ m_snapshot_sizer

wxBoxSizer* Slic3r::GUI::PrintOptionsDialog::m_snapshot_sizer {nullptr}
protected
175{nullptr};

Referenced by create_settings_group(), and UpdateOptionSnapshot().

◆ m_state

int Slic3r::GUI::PrintOptionsDialog::m_state {0}
199{0};

◆ nozzleclumping_bottom_space

wxSizerItem* Slic3r::GUI::PrintOptionsDialog::nozzleclumping_bottom_space
protected

◆ nozzleclumping_detection_level_list

◆ obj

◆ open_door_switch_board

SwitchBoard* Slic3r::GUI::PrintOptionsDialog::open_door_switch_board
protected

◆ plate_align_bottom_space

wxSizerItem* Slic3r::GUI::PrintOptionsDialog::plate_align_bottom_space {nullptr}
protected
118{nullptr};

Referenced by create_settings_group(), and update_options().

◆ print_halt

bool Slic3r::GUI::PrintOptionsDialog::print_halt = false
protected

◆ purgechutepileup_bottom_space

wxSizerItem* Slic3r::GUI::PrintOptionsDialog::purgechutepileup_bottom_space
protected

◆ purgechutepileup_detection_level_list

◆ purify_air_bottom_space

wxSizerItem* Slic3r::GUI::PrintOptionsDialog::purify_air_bottom_space {nullptr}
protected
117{nullptr};

Referenced by create_settings_group(), and update_purify_air_at_print_end().

◆ purify_air_switch_board

SwitchBoard* Slic3r::GUI::PrintOptionsDialog::purify_air_switch_board {nullptr}
protected

◆ smart_nozzle_blob_bottom_space

wxSizerItem* Slic3r::GUI::PrintOptionsDialog::smart_nozzle_blob_bottom_space {nullptr}
protected
121{nullptr};

Referenced by create_settings_group(), and update_options().

◆ spaghetti_bottom_space

wxSizerItem* Slic3r::GUI::PrintOptionsDialog::spaghetti_bottom_space
protected

◆ spaghetti_detection_level_list

ComboBox* Slic3r::GUI::PrintOptionsDialog::spaghetti_detection_level_list
protected

◆ text_ai_detections

Label* Slic3r::GUI::PrintOptionsDialog::text_ai_detections
protected

◆ text_ai_detections_caption

Label* Slic3r::GUI::PrintOptionsDialog::text_ai_detections_caption
protected

◆ text_ai_monitoring

Label* Slic3r::GUI::PrintOptionsDialog::text_ai_monitoring
protected

◆ text_ai_monitoring_caption

Label* Slic3r::GUI::PrintOptionsDialog::text_ai_monitoring_caption
protected

◆ text_airprinting_detection

Label* Slic3r::GUI::PrintOptionsDialog::text_airprinting_detection
protected

◆ text_airprinting_detection_caption0

Label* Slic3r::GUI::PrintOptionsDialog::text_airprinting_detection_caption0
protected

◆ text_airprinting_detection_caption1

Label* Slic3r::GUI::PrintOptionsDialog::text_airprinting_detection_caption1
protected

◆ text_auto_recovery

Label* Slic3r::GUI::PrintOptionsDialog::text_auto_recovery
protected

◆ text_displacement_detection

Label* Slic3r::GUI::PrintOptionsDialog::text_displacement_detection {nullptr}
protected
159{nullptr};

Referenced by create_settings_group().

◆ text_displacement_detection_caption

Label* Slic3r::GUI::PrintOptionsDialog::text_displacement_detection_caption {nullptr}
protected
160{nullptr};

Referenced by create_settings_group().

◆ text_filament_tangle

Label* Slic3r::GUI::PrintOptionsDialog::text_filament_tangle
protected

◆ text_first_layer

Label* Slic3r::GUI::PrintOptionsDialog::text_first_layer
protected

◆ text_fod_check

Label* Slic3r::GUI::PrintOptionsDialog::text_fod_check {nullptr}
protected
157{nullptr};

Referenced by create_settings_group().

◆ text_fod_check_caption

Label* Slic3r::GUI::PrintOptionsDialog::text_fod_check_caption {nullptr}
protected
158{nullptr};

Referenced by create_settings_group().

◆ text_nozzle_blob

Label* Slic3r::GUI::PrintOptionsDialog::text_nozzle_blob
protected

◆ text_nozzle_blob_caption

Label* Slic3r::GUI::PrintOptionsDialog::text_nozzle_blob_caption
protected

◆ text_nozzleclumping_detection

Label* Slic3r::GUI::PrintOptionsDialog::text_nozzleclumping_detection
protected

◆ text_nozzleclumping_detection_caption0

Label* Slic3r::GUI::PrintOptionsDialog::text_nozzleclumping_detection_caption0
protected

◆ text_nozzleclumping_detection_caption1

Label* Slic3r::GUI::PrintOptionsDialog::text_nozzleclumping_detection_caption1
protected

◆ text_open_door

Label* Slic3r::GUI::PrintOptionsDialog::text_open_door
protected

◆ text_plate_align

Label* Slic3r::GUI::PrintOptionsDialog::text_plate_align {nullptr}
protected
155{nullptr};

Referenced by create_settings_group().

◆ text_plate_align_caption

Label* Slic3r::GUI::PrintOptionsDialog::text_plate_align_caption {nullptr}
protected
156{nullptr};

Referenced by create_settings_group().

◆ text_plate_mark

Label* Slic3r::GUI::PrintOptionsDialog::text_plate_mark
protected

◆ text_plate_mark_caption

Label* Slic3r::GUI::PrintOptionsDialog::text_plate_mark_caption
protected

◆ text_purgechutepileup_detection

Label* Slic3r::GUI::PrintOptionsDialog::text_purgechutepileup_detection
protected

◆ text_purgechutepileup_detection_caption0

Label* Slic3r::GUI::PrintOptionsDialog::text_purgechutepileup_detection_caption0
protected

◆ text_purgechutepileup_detection_caption1

Label* Slic3r::GUI::PrintOptionsDialog::text_purgechutepileup_detection_caption1
protected

◆ text_purify_air

Label* Slic3r::GUI::PrintOptionsDialog::text_purify_air {nullptr}
protected
161{nullptr};

Referenced by create_settings_group(), and update_purify_air_at_print_end().

◆ text_purify_air_context

Label* Slic3r::GUI::PrintOptionsDialog::text_purify_air_context {nullptr}
protected
162{nullptr};

Referenced by create_settings_group(), and update_purify_air_at_print_end().

◆ text_save_remote_print_file_to_storage

Label* Slic3r::GUI::PrintOptionsDialog::text_save_remote_print_file_to_storage
protected

◆ text_save_remote_print_file_to_storage_explain

Label* Slic3r::GUI::PrintOptionsDialog::text_save_remote_print_file_to_storage_explain
protected

◆ text_smart_nozzle_blob

Label* Slic3r::GUI::PrintOptionsDialog::text_smart_nozzle_blob {nullptr}
protected
163{nullptr};

Referenced by create_settings_group().

◆ text_smart_nozzle_blob_mode_desc

Label* Slic3r::GUI::PrintOptionsDialog::text_smart_nozzle_blob_mode_desc {nullptr}
protected

◆ text_spaghetti_detection

Label* Slic3r::GUI::PrintOptionsDialog::text_spaghetti_detection
protected

◆ text_spaghetti_detection_caption0

Label* Slic3r::GUI::PrintOptionsDialog::text_spaghetti_detection_caption0
protected

◆ text_spaghetti_detection_caption1

Label* Slic3r::GUI::PrintOptionsDialog::text_spaghetti_detection_caption1
protected

◆ text_sup_sound

Label* Slic3r::GUI::PrintOptionsDialog::text_sup_sound
protected

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