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

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

Inheritance diagram for Slic3r::GUI::SideTools:
Collaboration diagram for Slic3r::GUI::SideTools:

Public Member Functions

 SideTools (wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize)
 ~SideTools ()
void set_table_panel (Tabbook *tb)
void msw_rescale ()
bool is_in_interval ()
void set_current_printer_name (std::string dev_name)
void set_current_printer_signal (WifiSignal sign)
void set_none_printer_mode ()
void start_interval ()
void update_status (MachineObject *obj)
void update_connect_err_info (int code, wxString desc, wxString info)
void show_status (int status)
SideToolsPanel * get_panel ()

Private Attributes

SideToolsPanel * m_side_tools { nullptr }
Tabbook * m_tabpanel { nullptr }
HyperLink * m_link_network_state { nullptr }
Label * m_st_txt_error_code { nullptr }
Label * m_st_txt_error_desc { nullptr }
Label * m_st_txt_extra_info { nullptr }
wxWindow * m_side_error_panel { nullptr }
Button * m_connection_info { nullptr }
HyperLink * m_hyperlink { nullptr }
ScalableButton * m_more_button { nullptr }
ScalableBitmap m_more_err_open
ScalableBitmap m_more_err_close
bool m_more_err_state { false }

Detailed Description

Constructor & Destructor Documentation

◆ SideTools()

Slic3r::GUI::SideTools::SideTools ( wxWindow * parent,
wxWindowID id = wxID_ANY,
const wxPoint & pos = wxDefaultPosition,
const wxSize & size = wxDefaultSize )
272{
273 wxPanel::Create(parent, id, pos, size);
274 SetBackgroundColour(wxColour("#FEFFFF"));
275
276 m_side_tools = new SideToolsPanel(this, wxID_ANY);
277
278 m_connection_info = new Button(this, wxEmptyString);
279 m_connection_info->SetBackgroundColor(wxColour(255, 111, 0));
280 m_connection_info->SetBorderColor(wxColour(255, 111, 0));
281 m_connection_info->SetTextColor(*wxWHITE);
283 m_connection_info->SetCornerRadius(0);
284 m_connection_info->SetSize(wxSize(FromDIP(-1), FromDIP(25)));
285 m_connection_info->SetMinSize(wxSize(FromDIP(-1), FromDIP(25)));
286 m_connection_info->SetMaxSize(wxSize(FromDIP(-1), FromDIP(25)));
287
288
289 wxBoxSizer* connection_sizer_V = new wxBoxSizer(wxVERTICAL);
290 wxBoxSizer* connection_sizer_H = new wxBoxSizer(wxHORIZONTAL);
291
292 // ORCA standardized HyperLink; Orca: neutral wiki link (vendor URL removed)
293 m_hyperlink = new HyperLink(m_connection_info, _L("Failed to connect to the server"), wxT("https://www.orcaslicer.com/wiki/"));
294
295 m_more_err_open = ScalableBitmap(this, "monitir_err_open", 16);
296 m_more_err_close = ScalableBitmap(this, "monitir_err_close", 16);
297 m_more_button = new ScalableButton(m_connection_info, wxID_ANY, "monitir_err_open");
298 m_more_button->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_HAND); });
299 m_more_button->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_ARROW); });
300 m_more_button->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {
301 if (!m_more_err_state) {
302 m_more_button->SetBitmap(m_more_err_close.bmp());
303 Freeze();
304 m_side_error_panel->Show();
305 m_more_err_state = true;
306 m_tabpanel->Refresh();
307 m_tabpanel->Layout();
308 Thaw();
309 }
310 else {
311 m_more_button->SetBitmap(m_more_err_open.bmp());
312 Freeze();
313 m_side_error_panel->Hide();
314 m_more_err_state = false;
315 m_tabpanel->Refresh();
316 m_tabpanel->Layout();
317 Thaw();
318 }
319
320 });
321
322 connection_sizer_H->Add(m_hyperlink, 0, wxALIGN_CENTER | wxALL, 5);
323 connection_sizer_H->Add(m_more_button, 0, wxALIGN_CENTER | wxALL, 3);
324 connection_sizer_V->Add(connection_sizer_H, 0, wxALIGN_CENTER, 0);
325
326 m_connection_info->SetSizer(connection_sizer_V);
327 m_connection_info->Layout();
328 connection_sizer_V->Fit(m_connection_info);
329
330 m_side_error_panel = new wxWindow(this, wxID_ANY);
331 m_side_error_panel->SetBackgroundColour(wxColour(255, 232, 214));
332 m_side_error_panel->SetMinSize(wxSize(-1, -1));
333 m_side_error_panel->SetMaxSize(wxSize(-1, -1));
334
335 m_side_error_panel->Hide();
336 m_more_button->Hide();
337 m_connection_info->Hide();
338
339 wxBoxSizer* sizer_print_failed_info = new wxBoxSizer(wxVERTICAL);
340 m_side_error_panel->SetSizer(sizer_print_failed_info);
341
342 wxBoxSizer* sizer_error_code = new wxBoxSizer(wxHORIZONTAL);
343 wxBoxSizer* sizer_error_desc = new wxBoxSizer(wxHORIZONTAL);
344 wxBoxSizer* sizer_extra_info = new wxBoxSizer(wxHORIZONTAL);
345
346 // ORCA standardized HyperLink
347 m_link_network_state = new HyperLink(m_side_error_panel, _L("Check the status of current system services"), wxGetApp().link_to_network_check(), wxST_ELLIPSIZE_END);
348 m_link_network_state->SetMaxSize(wxSize(FromDIP(220), -1));
350
351 auto st_title_error_code = new wxStaticText(m_side_error_panel, wxID_ANY, _L("code"), wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END);
352 auto st_title_error_code_doc = new wxStaticText(m_side_error_panel, wxID_ANY, ": ");
353 m_st_txt_error_code = new Label(m_side_error_panel, wxEmptyString, LB_AUTO_WRAP);
354 st_title_error_code->SetForegroundColour(0x909090);
355 st_title_error_code_doc->SetForegroundColour(0x909090);
356 m_st_txt_error_code->SetForegroundColour(0x909090);
357 st_title_error_code->SetFont(::Label::Body_12);
358 st_title_error_code_doc->SetFont(::Label::Body_12);
360 st_title_error_code->SetMinSize(wxSize(FromDIP(32), -1));
361 st_title_error_code->SetMaxSize(wxSize(FromDIP(32), -1));
362 m_st_txt_error_code->SetMinSize(wxSize(FromDIP(175), -1));
363 m_st_txt_error_code->SetMaxSize(wxSize(FromDIP(175), -1));
364 sizer_error_code->Add(st_title_error_code, 0, wxALL, 0);
365 sizer_error_code->Add(st_title_error_code_doc, 0, wxALL, 0);
366 sizer_error_code->Add(m_st_txt_error_code, 0, wxALL, 0);
367
368
369 // TRN Short for "description" of a connection error
370 auto st_title_error_desc = new wxStaticText(m_side_error_panel, wxID_ANY, _L("desc"), wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END);
371 auto st_title_error_desc_doc = new wxStaticText(m_side_error_panel, wxID_ANY, ": ");
372 m_st_txt_error_desc = new Label(m_side_error_panel, wxEmptyString, LB_AUTO_WRAP);
373 st_title_error_desc->SetForegroundColour(0x909090);
374 st_title_error_desc_doc->SetForegroundColour(0x909090);
375 m_st_txt_error_desc->SetForegroundColour(0x909090);
376 st_title_error_desc->SetFont(::Label::Body_12);
377 st_title_error_desc_doc->SetFont(::Label::Body_12);
379 st_title_error_desc->SetMinSize(wxSize(FromDIP(32), -1));
380 st_title_error_desc->SetMaxSize(wxSize(FromDIP(32), -1));
381 m_st_txt_error_desc->SetMinSize(wxSize(FromDIP(175), -1));
382 m_st_txt_error_desc->SetMaxSize(wxSize(FromDIP(175), -1));
383 sizer_error_desc->Add(st_title_error_desc, 0, wxALL, 0);
384 sizer_error_desc->Add(st_title_error_desc_doc, 0, wxALL, 0);
385 sizer_error_desc->Add(m_st_txt_error_desc, 0, wxALL, 0);
386
387 // TRN Short for "additional information" about a connection error
388 auto st_title_extra_info = new wxStaticText(m_side_error_panel, wxID_ANY, _L("info"), wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END);
389 auto st_title_extra_info_doc = new wxStaticText(m_side_error_panel, wxID_ANY, ": ");
390 m_st_txt_extra_info = new Label(m_side_error_panel, wxEmptyString, LB_AUTO_WRAP);
391 st_title_extra_info->SetForegroundColour(0x909090);
392 st_title_extra_info_doc->SetForegroundColour(0x909090);
393 m_st_txt_extra_info->SetForegroundColour(0x909090);
394 st_title_extra_info->SetFont(::Label::Body_12);
395 st_title_extra_info_doc->SetFont(::Label::Body_12);
397 st_title_extra_info->SetMinSize(wxSize(FromDIP(32), -1));
398 st_title_extra_info->SetMaxSize(wxSize(FromDIP(32), -1));
399 m_st_txt_extra_info->SetMinSize(wxSize(FromDIP(175), -1));
400 m_st_txt_extra_info->SetMaxSize(wxSize(FromDIP(175), -1));
401 sizer_extra_info->Add(st_title_extra_info, 0, wxALL, 0);
402 sizer_extra_info->Add(st_title_extra_info_doc, 0, wxALL, 0);
403 sizer_extra_info->Add(m_st_txt_extra_info, 0, wxALL, 0);
404
405 sizer_print_failed_info->Add(m_link_network_state, 0, wxALIGN_CENTER, 3);
406 sizer_print_failed_info->Add(sizer_error_code, 0, wxLEFT, 5);
407 sizer_print_failed_info->Add(0, 0, 0, wxTOP, FromDIP(3));
408 sizer_print_failed_info->Add(sizer_error_desc, 0, wxLEFT, 5);
409 sizer_print_failed_info->Add(0, 0, 0, wxTOP, FromDIP(3));
410 sizer_print_failed_info->Add(sizer_extra_info, 0, wxLEFT, 5);
411
412 m_st_txt_error_desc->SetLabel("");
413
414 wxBoxSizer* m_main_sizer = new wxBoxSizer(wxVERTICAL);
415 m_main_sizer->Add(m_connection_info, 0, wxEXPAND, 0);
416 m_main_sizer->Add(m_side_error_panel, 0, wxEXPAND, 0);
417 m_main_sizer->Add(m_side_tools, 1, wxEXPAND, 0);
418 SetSizer(m_main_sizer);
419 Layout();
420 Fit();
421}
#define LB_AUTO_WRAP
Definition Label.hpp:12
#define _L(s)
Definition OBJ.cpp:34
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
static wxFont Body_13
Definition Label.hpp:54
static wxFont Body_12
Definition Label.hpp:55
Label * m_st_txt_error_code
Definition SideTools.hpp:109
Label * m_st_txt_error_desc
Definition SideTools.hpp:110
ScalableBitmap m_more_err_open
Definition SideTools.hpp:116
Label * m_st_txt_extra_info
Definition SideTools.hpp:111
HyperLink * m_link_network_state
Definition SideTools.hpp:108
wxWindow * m_side_error_panel
Definition SideTools.hpp:112
ScalableBitmap m_more_err_close
Definition SideTools.hpp:117
bool m_more_err_state
Definition SideTools.hpp:118
HyperLink * m_hyperlink
Definition SideTools.hpp:114
Tabbook * m_tabpanel
Definition SideTools.hpp:107
ScalableButton * m_more_button
Definition SideTools.hpp:115
Button * m_connection_info
Definition SideTools.hpp:113
SideToolsPanel * m_side_tools
Definition SideTools.hpp:106

References _L, Label::Body_12, Label::Body_13, LB_AUTO_WRAP, m_connection_info, m_hyperlink, m_link_network_state, m_more_button, m_more_err_close, m_more_err_open, m_more_err_state, m_side_error_panel, m_side_tools, m_st_txt_error_code, m_st_txt_error_desc, m_st_txt_extra_info, m_tabpanel, and wxStaticText.

◆ ~SideTools()

Slic3r::GUI::SideTools::~SideTools ( )
574{
575}

Member Function Documentation

◆ get_panel()

SideToolsPanel * Slic3r::GUI::SideTools::get_panel ( )
inline
133{return m_side_tools;};

References m_side_tools.

◆ is_in_interval()

bool Slic3r::GUI::SideTools::is_in_interval ( )
433{
434 return m_side_tools->is_in_interval();
435}

References m_side_tools.

◆ msw_rescale()

void Slic3r::GUI::SideTools::msw_rescale ( )
424{
425 m_side_tools->msw_rescale();
426 m_connection_info->SetCornerRadius(0);
427 m_connection_info->SetSize(wxSize(FromDIP(220), FromDIP(25)));
428 m_connection_info->SetMinSize(wxSize(FromDIP(220), FromDIP(25)));
429 m_connection_info->SetMaxSize(wxSize(FromDIP(220), FromDIP(25)));
430}

References m_connection_info, and m_side_tools.

◆ set_current_printer_name()

void Slic3r::GUI::SideTools::set_current_printer_name ( std::string dev_name)
438{
439 m_side_tools->set_current_printer_name(dev_name);
440}

References m_side_tools.

◆ set_current_printer_signal()

void Slic3r::GUI::SideTools::set_current_printer_signal ( WifiSignal sign)
443{
444 m_side_tools->set_current_printer_signal(sign);
445}

References m_side_tools.

◆ set_none_printer_mode()

void Slic3r::GUI::SideTools::set_none_printer_mode ( )
448{
449 m_side_tools->set_none_printer_mode();
450}

References m_side_tools.

◆ set_table_panel()

void Slic3r::GUI::SideTools::set_table_panel ( Tabbook * tb)
inline
121{m_tabpanel = tb;};

References m_tabpanel.

◆ show_status()

void Slic3r::GUI::SideTools::show_status ( int status)
514{
515 if (((status & (int)MonitorStatus::MONITOR_DISCONNECTED) != 0) || ((status & (int)MonitorStatus::MONITOR_DISCONNECTED_SERVER) != 0)) {
516 if ((status & (int)MonitorStatus::MONITOR_DISCONNECTED_SERVER)) {
517 m_hyperlink->SetLabel(_L("Failed to connect to the server"));
519 _L("Failed to connect to cloud service"),
520 _L("Please click on the hyperlink above to view the cloud service status"));
521 }
522 else {
523 m_hyperlink->SetLabel(_L("Failed to connect to the printer"));
525 _L("Connection to printer failed"),
526 _L("Please check the network connection of the printer and Orca."));
527 }
528
529 m_hyperlink->Show();
530 m_connection_info->SetLabel(wxEmptyString);
531 m_connection_info->SetBackgroundColor(0xFF6F00);
532 m_connection_info->SetBorderColor(0xFF6F00);
533 m_connection_info->Show();
534 m_more_button->Show();
535
536 }
537 else if ((status & (int)MonitorStatus::MONITOR_NORMAL) != 0) {
538 m_connection_info->Hide();
539 m_more_button->Hide();
540 m_side_error_panel->Hide();
541 }
542 else if ((status & (int)MonitorStatus::MONITOR_CONNECTING) != 0) {
543 m_hyperlink->Hide();
544 m_connection_info->SetLabel(_L("Connecting..."));
545 m_connection_info->SetBackgroundColor(0x009688);
546 m_connection_info->SetBorderColor(0x009688);
547 m_connection_info->Show();
548 m_more_button->Hide();
549 m_side_error_panel->Hide();
550 }
551
552 if ((status & (int)MonitorStatus::MONITOR_NO_PRINTER) != 0) {
553 m_side_tools->set_none_printer_mode();
554 m_connection_info->Hide();
555 m_side_error_panel->Hide();
556 m_more_button->Hide();
557 }
558 else if (((status & (int)MonitorStatus::MONITOR_NORMAL) != 0)
559 || ((status & (int)MonitorStatus::MONITOR_DISCONNECTED) != 0)
560 || ((status & (int)MonitorStatus::MONITOR_DISCONNECTED_SERVER) != 0)
561 || ((status & (int)MonitorStatus::MONITOR_CONNECTING) != 0)
562 ) {
563 if (((status & (int)MonitorStatus::MONITOR_DISCONNECTED) != 0)
564 || ((status & (int)MonitorStatus::MONITOR_DISCONNECTED_SERVER) != 0)
565 || ((status & (int)MonitorStatus::MONITOR_CONNECTING) != 0)) {
566 m_side_tools->set_current_printer_signal(WifiSignal::NONE);
567 }
568 }
569 Layout();
570 Fit();
571}
@ NONE
Definition SideTools.hpp:27
@ MONITOR_DISCONNECTED
Definition SideTools.hpp:38
@ MONITOR_NO_PRINTER
Definition SideTools.hpp:37
@ MONITOR_NORMAL
Definition SideTools.hpp:36
@ MONITOR_CONNECTING
Definition SideTools.hpp:40
@ MONITOR_DISCONNECTED_SERVER
Definition SideTools.hpp:39
#define BAMBU_NETWORK_ERR_CONNECTION_TO_SERVER_FAILED
Definition bambu_networking.hpp:97
#define BAMBU_NETWORK_ERR_CONNECTION_TO_PRINTER_FAILED
Definition bambu_networking.hpp:96
void update_connect_err_info(int code, wxString desc, wxString info)
Definition SideTools.cpp:457

References _L, BAMBU_NETWORK_ERR_CONNECTION_TO_PRINTER_FAILED, BAMBU_NETWORK_ERR_CONNECTION_TO_SERVER_FAILED, m_connection_info, m_hyperlink, m_more_button, m_side_error_panel, m_side_tools, MONITOR_CONNECTING, MONITOR_DISCONNECTED, MONITOR_DISCONNECTED_SERVER, MONITOR_NO_PRINTER, MONITOR_NORMAL, NONE, and update_connect_err_info().

Here is the call graph for this function:

◆ start_interval()

void Slic3r::GUI::SideTools::start_interval ( )
453{
454 m_side_tools->start_interval();
455}

References m_side_tools.

◆ update_connect_err_info()

void Slic3r::GUI::SideTools::update_connect_err_info ( int code,
wxString desc,
wxString info )
458{
459 m_st_txt_error_code->SetLabelText(wxString::Format("%d", code));
460 m_st_txt_error_desc->SetLabelText(desc);
461 m_st_txt_extra_info->SetLabelText(info);
462
464 m_link_network_state->Hide();
465 }
467 m_link_network_state->Show();
468 }
469}

References BAMBU_NETWORK_ERR_CONNECTION_TO_PRINTER_FAILED, BAMBU_NETWORK_ERR_CONNECTION_TO_SERVER_FAILED, m_link_network_state, m_st_txt_error_code, m_st_txt_error_desc, and m_st_txt_extra_info.

Referenced by show_status().

Here is the caller graph for this function:

◆ update_status()

void Slic3r::GUI::SideTools::update_status ( MachineObject * obj)
472{
473 if (!obj) return;
474
475 /* Update Device Info */
476 m_side_tools->set_current_printer_name(obj->get_dev_name());
477
478 // update wifi signal image
479 int wifi_signal_val = 0;
480 if (!obj->is_connected() || obj->is_connecting()) {
481 m_side_tools->set_current_printer_signal(WifiSignal::NONE);
482 }
483 else if (!obj->is_lan_mode_printer() && !obj->is_online()) {
484 m_side_tools->set_current_printer_signal(WifiSignal::NONE);/*STUDIO-10185*/
485 }
486 else {
487 if (obj->network_wired) {
488 m_side_tools->set_current_printer_signal(WifiSignal::WIRED);
489 }
490 else if (!obj->wifi_signal.empty() && boost::ends_with(obj->wifi_signal, "dBm")) {
491 try {
492 wifi_signal_val = std::stoi(obj->wifi_signal.substr(0, obj->wifi_signal.size() - 3));
493 }
494 catch (...) {
495 ;
496 }
497 if (wifi_signal_val > -45) {
498 m_side_tools->set_current_printer_signal(WifiSignal::STRONG);
499 }
500 else if (wifi_signal_val <= -45 && wifi_signal_val >= -60) {
501 m_side_tools->set_current_printer_signal(WifiSignal::MIDDLE);
502 }
503 else {
504 m_side_tools->set_current_printer_signal(WifiSignal::WEAK);
505 }
506 }
507 else {
508 m_side_tools->set_current_printer_signal(WifiSignal::MIDDLE);
509 }
510 }
511}
@ MIDDLE
Definition SideTools.hpp:29
@ STRONG
Definition SideTools.hpp:30
@ WIRED
Definition SideTools.hpp:31
@ WEAK
Definition SideTools.hpp:28

References Slic3r::MachineObject::get_dev_name(), Slic3r::MachineObject::is_connected(), Slic3r::MachineObject::is_connecting(), Slic3r::MachineObject::is_lan_mode_printer(), Slic3r::MachineObject::is_online(), m_side_tools, MIDDLE, Slic3r::MachineObject::network_wired, NONE, STRONG, WEAK, Slic3r::MachineObject::wifi_signal, and WIRED.

Here is the call graph for this function:

Member Data Documentation

◆ m_connection_info

Button* Slic3r::GUI::SideTools::m_connection_info { nullptr }
private
113{ nullptr };

Referenced by SideTools(), msw_rescale(), and show_status().

◆ m_hyperlink

HyperLink* Slic3r::GUI::SideTools::m_hyperlink { nullptr }
private
114{ nullptr }; // ORCA

Referenced by SideTools(), and show_status().

◆ m_link_network_state

HyperLink* Slic3r::GUI::SideTools::m_link_network_state { nullptr }
private
108{ nullptr }; // ORCA

Referenced by SideTools(), and update_connect_err_info().

◆ m_more_button

ScalableButton* Slic3r::GUI::SideTools::m_more_button { nullptr }
private
115{ nullptr };

Referenced by SideTools(), and show_status().

◆ m_more_err_close

ScalableBitmap Slic3r::GUI::SideTools::m_more_err_close
private

Referenced by SideTools().

◆ m_more_err_open

ScalableBitmap Slic3r::GUI::SideTools::m_more_err_open
private

Referenced by SideTools().

◆ m_more_err_state

bool Slic3r::GUI::SideTools::m_more_err_state { false }
private
118{ false };

Referenced by SideTools().

◆ m_side_error_panel

wxWindow* Slic3r::GUI::SideTools::m_side_error_panel { nullptr }
private
112{ nullptr };

Referenced by SideTools(), and show_status().

◆ m_side_tools

◆ m_st_txt_error_code

Label* Slic3r::GUI::SideTools::m_st_txt_error_code { nullptr }
private
109{ nullptr };

Referenced by SideTools(), and update_connect_err_info().

◆ m_st_txt_error_desc

Label* Slic3r::GUI::SideTools::m_st_txt_error_desc { nullptr }
private
110{ nullptr };

Referenced by SideTools(), and update_connect_err_info().

◆ m_st_txt_extra_info

Label* Slic3r::GUI::SideTools::m_st_txt_extra_info { nullptr }
private
111{ nullptr };

Referenced by SideTools(), and update_connect_err_info().

◆ m_tabpanel

Tabbook* Slic3r::GUI::SideTools::m_tabpanel { nullptr }
private
107{ nullptr };

Referenced by SideTools(), and set_table_panel().


The documentation for this class was generated from the following files:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/Widgets/SideTools.hpp
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/Widgets/SideTools.cpp