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

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

Inheritance diagram for Slic3r::GUI::BindMachineDialog:
Collaboration diagram for Slic3r::GUI::BindMachineDialog:

Public Member Functions

 BindMachineDialog (Plater *plater=nullptr)
 ~BindMachineDialog ()
void show_bind_failed_info (bool show, int code=0, wxString description=wxEmptyString, wxString extra=wxEmptyString)
void on_cancel (wxCommandEvent &event)
void on_bind_fail (wxCommandEvent &event)
void on_update_message (wxCommandEvent &event)
void on_bind_success (wxCommandEvent &event)
void on_bind_printer (wxCommandEvent &event)
void on_dpi_changed (const wxRect &suggested_rect) override
void update_machine_info (MachineObject *info)
void on_show (wxShowEvent &event)
void on_close (wxCloseEvent &event)
void on_destroy ()
wxString get_print_error (wxString str)
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 ()

Protected Member Functions

virtual void on_sys_color_changed ()

Private Member Functions

void update_em_unit ()
bool is_new_scale_factor () const
void rescale (const wxRect &suggested_rect)

Private Attributes

wxWindow * m_panel_agreement
wxStaticText * m_printer_name
wxStaticText * m_user_name
StaticBox * m_panel_left
StaticBox * m_panel_right
wxStaticText * m_status_text
wxStaticText * m_link_show_error
Button * m_button_bind
Button * m_button_cancel
wxSimplebook * m_simplebook
wxStaticBitmap * m_avatar
wxStaticBitmap * m_printer_img
wxStaticBitmap * m_static_bitmap_show_error
wxBitmap m_bitmap_show_error_close
wxBitmap m_bitmap_show_error_open
wxScrolledWindow * m_sw_bind_failed_info
Label * m_st_txt_error_code { nullptr }
Label * m_st_txt_error_desc { nullptr }
Label * m_st_txt_extra_info { nullptr }
HyperLink * m_link_network_state { nullptr }
wxString m_result_info
wxString m_result_extra
bool m_show_error_info_state = true
bool m_allow_privacy {false}
bool m_allow_notice {false}
int m_result_code
std::shared_ptr< int > m_tocken
MachineObject * m_machine_info {nullptr}
std::shared_ptr< BBLStatusBarBind > m_status_bar
std::unique_ptr< Worker > m_worker
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

Constructor & Destructor Documentation

◆ BindMachineDialog()

Slic3r::GUI::BindMachineDialog::BindMachineDialog ( Plater * plater = nullptr)
356 : DPIDialog(static_cast<wxWindow *>(wxGetApp().mainframe), wxID_ANY, _L("Log in printer"), wxDefaultPosition, wxDefaultSize, wxCAPTION)
357 {
358
359#ifdef __WINDOWS__
360 SetDoubleBuffered(true);
361#endif //__WINDOWS__
362
363 m_tocken.reset(new int(0));
364
365 SetBackgroundColour(*wxWHITE);
366 wxBoxSizer *m_sizer_main = new wxBoxSizer(wxVERTICAL);
367 auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL);
368 m_line_top->SetBackgroundColour(wxColour(166, 169, 170));
369 m_sizer_main->Add(m_line_top, 0, wxEXPAND, 0);
370 m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(38));
371
372 wxBoxSizer *m_sizer_body = new wxBoxSizer(wxHORIZONTAL);
373
374 m_panel_left = new StaticBox(this, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(201), FromDIP(212)), wxBORDER_NONE);
375 m_panel_left->SetMinSize(wxSize(FromDIP(201), FromDIP(212)));
376 m_panel_left->SetCornerRadius(FromDIP(8));
377 m_panel_left->SetBackgroundColor(BIND_DIALOG_GREY200);
378 wxBoxSizer *m_sizere_left_h = new wxBoxSizer(wxHORIZONTAL);
379 wxBoxSizer *m_sizere_left_v= new wxBoxSizer(wxVERTICAL);
380
381 m_printer_img = new wxStaticBitmap(m_panel_left, wxID_ANY, create_scaled_bitmap("printer_thumbnail", nullptr, FromDIP(100)), wxDefaultPosition, wxSize(FromDIP(120), FromDIP(120)), 0);
382 m_printer_img->SetBackgroundColour(BIND_DIALOG_GREY200);
383 m_printer_img->Hide();
384 m_printer_name = new wxStaticText(m_panel_left, wxID_ANY, wxEmptyString);
385 m_printer_name->SetForegroundColour(*wxBLACK);
386 m_printer_name->SetBackgroundColour(BIND_DIALOG_GREY200);
388 m_sizere_left_v->Add(m_printer_img, 0, wxALIGN_CENTER, 0);
389 m_sizere_left_v->Add(0, 0, 0, wxTOP, 5);
390 m_sizere_left_v->Add(m_printer_name, 0, wxALIGN_CENTER, 0);
391 m_sizere_left_h->Add(m_sizere_left_v, 1, wxALIGN_CENTER, 0);
392
393 m_panel_left->SetSizer(m_sizere_left_h);
394 m_panel_left->Layout();
395 m_sizer_body->Add(m_panel_left, 0, wxEXPAND, 0);
396
397 auto m_bind_icon = create_scaled_bitmap("bind_machine", nullptr, 14);
398 m_sizer_body->Add(new wxStaticBitmap(this, wxID_ANY, m_bind_icon, wxDefaultPosition, wxSize(FromDIP(34), FromDIP(14)), 0), 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(20));
399
400 m_panel_right = new StaticBox(this, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(201), FromDIP(212)), wxBORDER_NONE);
401 m_panel_right->SetMinSize(wxSize(FromDIP(201), FromDIP(212)));
402 m_panel_right->SetCornerRadius(FromDIP(8));
403 m_panel_right->SetBackgroundColor(BIND_DIALOG_GREY200);
404
405 m_user_name = new wxStaticText(m_panel_right, wxID_ANY, wxEmptyString);
406 m_user_name->SetBackgroundColour(BIND_DIALOG_GREY200);
408 wxBoxSizer *m_sizer_right_h = new wxBoxSizer(wxHORIZONTAL);
409 wxBoxSizer *m_sizer_right_v = new wxBoxSizer(wxVERTICAL);
410
411 m_avatar = new wxStaticBitmap(m_panel_right, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(60), FromDIP(60)), 0);
412 m_sizer_right_v->Add(m_avatar, 0, wxALIGN_CENTER, 0);
413 m_sizer_right_v->Add(0, 0, 0, wxTOP, 7);
414 m_sizer_right_v->Add(m_user_name, 0, wxALIGN_CENTER, 0);
415 m_sizer_right_h->Add(m_sizer_right_v, 1, wxALIGN_CENTER, 0);
416
417 m_panel_right->SetSizer(m_sizer_right_h);
418 m_panel_right->Layout();
419 m_sizer_body->Add(m_panel_right, 0, wxEXPAND, 0);
420
421 m_sizer_main->Add(m_sizer_body, 1, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(30));
422
423 m_sizer_main->Add(0, 0, 0, wxEXPAND | wxTOP, FromDIP(20));
424
425
426 auto m_sizer_status_text = new wxBoxSizer(wxHORIZONTAL);
427 m_status_text = new wxStaticText(this, wxID_ANY, _L("Would you like to log in to this printer with the current account?"));
428 m_status_text->SetForegroundColour(wxColour(107, 107, 107));
430 m_status_text->Wrap(-1);
431
432
433 m_link_show_error = new wxStaticText(this, wxID_ANY, _L("Check the reason"));
434 m_link_show_error->SetForegroundColour(wxColour("#6b6b6b"));
436
437 m_bitmap_show_error_close = create_scaled_bitmap("link_more_error_close",nullptr, 7);
438 m_bitmap_show_error_open = create_scaled_bitmap("link_more_error_open",nullptr, 7);
439 m_static_bitmap_show_error = new wxStaticBitmap(this, wxID_ANY, m_bitmap_show_error_open, wxDefaultPosition, wxSize(FromDIP(7), FromDIP(7)));
440
441 m_link_show_error->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_HAND); });
442 m_link_show_error->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_ARROW); });
443 m_link_show_error->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {
447 );
448 m_static_bitmap_show_error->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_HAND); });
449 m_static_bitmap_show_error->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_ARROW); });
450 m_static_bitmap_show_error->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {
454 });
455
456 m_link_show_error->Hide();
458
459 m_sizer_status_text->SetMinSize(wxSize(BIND_DIALOG_BUTTON_PANEL_SIZE.x, -1));
460 m_sizer_status_text->Add(m_status_text, 0, wxALIGN_CENTER, 0);
461 m_sizer_status_text->Add(m_link_show_error, 0, wxLEFT|wxALIGN_CENTER, FromDIP(8));
462 m_sizer_status_text->Add(m_static_bitmap_show_error, 0, wxLEFT|wxALIGN_CENTER, FromDIP(2));
463
464
465 //agreement
466 m_panel_agreement = new wxWindow(this,wxID_ANY);
467 m_panel_agreement->SetBackgroundColour(*wxWHITE);
468 m_panel_agreement->SetMinSize(wxSize(FromDIP(450), -1));
469 m_panel_agreement->SetMaxSize(wxSize(FromDIP(450), -1));
470
471
472 wxWrapSizer* sizer_privacy_agreement = new wxWrapSizer( wxHORIZONTAL, wxWRAPSIZER_DEFAULT_FLAGS );
473 wxWrapSizer* sizere_notice_agreement= new wxWrapSizer( wxHORIZONTAL, wxWRAPSIZER_DEFAULT_FLAGS );
474 wxBoxSizer* sizer_privacy_body = new wxBoxSizer(wxHORIZONTAL);
475 wxBoxSizer* sizere_notice_body = new wxBoxSizer(wxHORIZONTAL);
476
477 auto m_checkbox_privacy = new CheckBox(m_panel_agreement, wxID_ANY);
478 auto m_st_privacy_title = new Label(m_panel_agreement, _L("Read and accept"));
479 m_st_privacy_title->SetFont(Label::Body_13);
480 m_st_privacy_title->SetForegroundColour(wxColour(38, 46, 48));
481
482 // ORCA standardized HyperLink
483 auto m_link_Terms_title = new HyperLink(m_panel_agreement, _L("Terms and Conditions"));
484 m_link_Terms_title->SetFont(Label::Head_13);
485 m_link_Terms_title->SetMaxSize(wxSize(FromDIP(450), -1));
486 m_link_Terms_title->Wrap(FromDIP(450));
487 m_link_Terms_title->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {
488 wxString txt = _L("Thank you for purchasing a Bambu Lab device. Before using your Bambu Lab device, please read the terms and conditions. "
489 "By clicking to agree to use your Bambu Lab device, you agree to abide by the Privacy Policy and Terms of Use (collectively, the \"Terms\"). "
490 "If you do not comply with or agree to the Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services.");
491 ConfirmBeforeSendDialog confirm_dlg(this, wxID_ANY, _L("Terms and Conditions"), ConfirmBeforeSendDialog::VisibleButtons::ONLY_CONFIRM); // ORCA VisibleButtons instead ButtonStyle
492 confirm_dlg.update_text(txt);
493 confirm_dlg.CenterOnParent();
494 confirm_dlg.on_show();
495 });
496
497 auto m_st_and_title = new Label(m_panel_agreement, _L("and"));
498 m_st_and_title->SetFont(Label::Body_13);
499 m_st_and_title->SetForegroundColour(wxColour(38, 46, 48));
500
501 // ORCA standardized HyperLink
502 auto m_link_privacy_title = new HyperLink(m_panel_agreement, _L("Privacy Policy"));
503 m_link_privacy_title->SetFont(Label::Head_13);
504 m_link_privacy_title->SetMaxSize(wxSize(FromDIP(450), -1));
505 m_link_privacy_title->Wrap(FromDIP(450));
506 m_link_privacy_title->Bind(wxEVT_LEFT_DOWN, [](auto& e) {
507 std::string url;
508 std::string country_code = Slic3r::GUI::wxGetApp().app_config->get_country_code();
509
510 if (country_code == "CN") {
511 url = "https://www.bambulab.cn/policies/privacy";
512 }
513 else{
514 url = "https://www.bambulab.com/policies/privacy";
515 }
516 wxLaunchDefaultBrowser(url);
517 });
518
519 sizere_notice_agreement->Add(0, 0, 0, wxTOP, FromDIP(4));
520 sizer_privacy_agreement->Add(m_st_privacy_title, 0, wxALIGN_CENTER, 0);
521 sizer_privacy_agreement->Add(0, 0, 0, wxLEFT, FromDIP(5));
522 sizer_privacy_agreement->Add(m_link_Terms_title, 0, wxALIGN_CENTER, 0);
523 sizer_privacy_agreement->Add(m_st_and_title, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT, FromDIP(5));
524 sizer_privacy_agreement->Add(m_link_privacy_title, 0, wxALIGN_CENTER, 0);
525
526 sizer_privacy_body->Add(m_checkbox_privacy, 0, wxALL, 0);
527 sizer_privacy_body->Add(0, 0, 0, wxLEFT, FromDIP(8));
528 sizer_privacy_body->Add(sizer_privacy_agreement, 1, wxEXPAND, 0);
529
530
531 wxString notice_title = _L("We ask for your help to improve everyone's printer");
532 wxString notice_link_title = _L("Statement about User Experience Improvement Program");
533
534 auto m_checkbox_notice = new CheckBox(m_panel_agreement, wxID_ANY);
535 auto m_st_notice_title = new Label(m_panel_agreement, notice_title);
536 m_st_notice_title->SetFont(Label::Body_13);
537 m_st_notice_title->SetForegroundColour(wxColour(38, 46, 48));
538
539 // ORCA standardized HyperLink
540 auto m_link_notice_title = new HyperLink(m_panel_agreement, notice_link_title);
541 m_link_notice_title->SetFont(Label::Head_13);
542 m_link_notice_title->SetMaxSize(wxSize(FromDIP(450), -1));
543 m_link_notice_title->Wrap(FromDIP(450));
544 m_link_notice_title->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {
545 wxString txt = _L("In the 3D Printing community, we learn from each other's successes and failures to adjust "
546 "our own slicing parameters and settings. %s follows the same principle and uses machine "
547 "learning to improve its performance from the successes and failures of the vast number of "
548 "prints by our users. We are training %s to be smarter by feeding them the real-world data. "
549 "If you are willing, this service will access information from your error logs and usage "
550 "logs, which may include information described in Privacy Policy. We will not collect any "
551 "Personal Data by which an individual can be identified directly or indirectly, including "
552 "without limitation names, addresses, payment information, or phone numbers. By enabling "
553 "this service, you agree to these terms and the statement about Privacy Policy.");
554 ConfirmBeforeSendDialog confirm_dlg(this, wxID_ANY, _L("Statement on User Experience Improvement Plan"), ConfirmBeforeSendDialog::VisibleButtons::ONLY_CONFIRM); // ORCA VisibleButtons instead ButtonStyle
555
556 wxString model_id_text;
557
558 if (m_machine_info) {
559 model_id_text = m_machine_info->get_printer_type_display_str();
560 }
561 confirm_dlg.update_text(wxString::Format(txt, model_id_text, model_id_text));
562 confirm_dlg.CenterOnParent();
563 confirm_dlg.on_show();
564 });
565
566 sizere_notice_agreement->Add(0, 0, 0, wxTOP, FromDIP(4));
567 sizere_notice_agreement->Add(m_st_notice_title, 0, 0, wxALIGN_CENTER, 0);
568 sizere_notice_agreement->Add(0, 0, 0, wxLEFT, FromDIP(2));
569 sizere_notice_agreement->Add(m_link_notice_title, 0, 0, wxALIGN_CENTER, 0);
570
571 sizere_notice_body->Add(m_checkbox_notice, 0, wxALL, 0);
572 sizere_notice_body->Add(0, 0, 0, wxLEFT, FromDIP(8));
573 sizere_notice_body->Add(sizere_notice_agreement, 1, wxEXPAND, 0);
574
575 wxBoxSizer* sizer_agreement = new wxBoxSizer(wxVERTICAL);
576 sizer_agreement->Add(sizer_privacy_body, 1, wxEXPAND, 0);
577 sizer_agreement->Add(sizere_notice_body, 1, wxEXPAND, 0);
578
579
580 m_checkbox_privacy->Bind(wxEVT_TOGGLEBUTTON, [this, m_checkbox_privacy](auto& e) {
581 m_allow_privacy = m_checkbox_privacy->GetValue();
583 e.Skip();
584 });
585 m_checkbox_notice->Bind(wxEVT_TOGGLEBUTTON, [this, m_checkbox_notice](auto& e) {
586 m_allow_notice = m_checkbox_notice->GetValue();
587 e.Skip();
588 });
589
590 m_panel_agreement->SetSizer(sizer_agreement);
591 m_panel_agreement->Layout();
592
593 //show bind failed info
594 m_sw_bind_failed_info = new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(450), FromDIP(300)), wxVSCROLL);
595 m_sw_bind_failed_info->SetBackgroundColour(*wxWHITE);
596 m_sw_bind_failed_info->SetScrollRate(5, FromDIP(20));
597 m_sw_bind_failed_info->SetMinSize(wxSize(FromDIP(450), FromDIP(90)));
598 m_sw_bind_failed_info->SetMaxSize(wxSize(FromDIP(450), FromDIP(90)));
599
600 wxBoxSizer* m_sizer_bind_failed_info = new wxBoxSizer(wxVERTICAL);
601 m_sw_bind_failed_info->SetSizer( m_sizer_bind_failed_info );
602
603 // ORCA standardized HyperLink
604 m_link_network_state = new HyperLink(m_sw_bind_failed_info, _L("Check the status of current system services"), wxGetApp().link_to_network_check());
605
606 wxBoxSizer* sizer_error_code = new wxBoxSizer(wxHORIZONTAL);
607 wxBoxSizer* sizer_error_desc = new wxBoxSizer(wxHORIZONTAL);
608 wxBoxSizer* sizer_extra_info = new wxBoxSizer(wxHORIZONTAL);
609
610 auto st_title_error_code = new wxStaticText(m_sw_bind_failed_info, wxID_ANY, _L("Error code"));
611 auto st_title_error_code_doc = new wxStaticText(m_sw_bind_failed_info, wxID_ANY, ": ");
612 m_st_txt_error_code = new Label(m_sw_bind_failed_info, wxEmptyString);
613 st_title_error_code->SetForegroundColour(0x909090);
614 st_title_error_code_doc->SetForegroundColour(0x909090);
615 m_st_txt_error_code->SetForegroundColour(0x909090);
616 st_title_error_code->SetFont(::Label::Body_13);
617 st_title_error_code_doc->SetFont(::Label::Body_13);
619 st_title_error_code->SetMinSize(wxSize(FromDIP(80), -1));
620 st_title_error_code->SetMaxSize(wxSize(FromDIP(80), -1));
621 m_st_txt_error_code->SetMinSize(wxSize(FromDIP(340), -1));
622 m_st_txt_error_code->SetMaxSize(wxSize(FromDIP(340), -1));
623 sizer_error_code->Add(st_title_error_code, 0, wxALL, 0);
624 sizer_error_code->Add(st_title_error_code_doc, 0, wxALL, 0);
625 sizer_error_code->Add(m_st_txt_error_code, 0, wxALL, 0);
626
627
628 auto st_title_error_desc = new wxStaticText(m_sw_bind_failed_info, wxID_ANY, _L("Error desc"));
629 auto st_title_error_desc_doc = new wxStaticText(m_sw_bind_failed_info, wxID_ANY, ": ");
630 m_st_txt_error_desc = new Label(m_sw_bind_failed_info, wxEmptyString);
631 st_title_error_desc->SetForegroundColour(0x909090);
632 st_title_error_desc_doc->SetForegroundColour(0x909090);
633 m_st_txt_error_desc->SetForegroundColour(0x909090);
634 st_title_error_desc->SetFont(::Label::Body_13);
635 st_title_error_desc_doc->SetFont(::Label::Body_13);
637 st_title_error_desc->SetMinSize(wxSize(FromDIP(80), -1));
638 st_title_error_desc->SetMaxSize(wxSize(FromDIP(80), -1));
639 m_st_txt_error_desc->SetMinSize(wxSize(FromDIP(340), -1));
640 m_st_txt_error_desc->SetMaxSize(wxSize(FromDIP(340), -1));
641 sizer_error_desc->Add(st_title_error_desc, 0, wxALL, 0);
642 sizer_error_desc->Add(st_title_error_desc_doc, 0, wxALL, 0);
643 sizer_error_desc->Add(m_st_txt_error_desc, 0, wxALL, 0);
644
645 auto st_title_extra_info = new wxStaticText(m_sw_bind_failed_info, wxID_ANY, _L("Extra info"));
646 auto st_title_extra_info_doc = new wxStaticText(m_sw_bind_failed_info, wxID_ANY, ": ");
647 m_st_txt_extra_info = new Label(m_sw_bind_failed_info, wxEmptyString);
648 st_title_extra_info->SetForegroundColour(0x909090);
649 st_title_extra_info_doc->SetForegroundColour(0x909090);
650 m_st_txt_extra_info->SetForegroundColour(0x909090);
651 st_title_extra_info->SetFont(::Label::Body_13);
652 st_title_extra_info_doc->SetFont(::Label::Body_13);
654 st_title_extra_info->SetMinSize(wxSize(FromDIP(80), -1));
655 st_title_extra_info->SetMaxSize(wxSize(FromDIP(80), -1));
656 m_st_txt_extra_info->SetMinSize(wxSize(FromDIP(340), -1));
657 m_st_txt_extra_info->SetMaxSize(wxSize(FromDIP(340), -1));
658 sizer_extra_info->Add(st_title_extra_info, 0, wxALL, 0);
659 sizer_extra_info->Add(st_title_extra_info_doc, 0, wxALL, 0);
660 sizer_extra_info->Add(m_st_txt_extra_info, 0, wxALL, 0);
661
662 m_sizer_bind_failed_info->Add(m_link_network_state, 0, wxLEFT, 0);
663 m_sizer_bind_failed_info->Add(sizer_error_code, 0, wxLEFT, 0);
664 m_sizer_bind_failed_info->Add(0, 0, 0, wxTOP, FromDIP(3));
665 m_sizer_bind_failed_info->Add(sizer_error_desc, 0, wxLEFT, 0);
666 m_sizer_bind_failed_info->Add(0, 0, 0, wxTOP, FromDIP(3));
667 m_sizer_bind_failed_info->Add(sizer_extra_info, 0, wxLEFT, 0);
668
669 m_simplebook = new wxSimplebook(this, wxID_ANY, wxDefaultPosition,BIND_DIALOG_BUTTON_PANEL_SIZE, 0);
670 m_simplebook->SetBackgroundColour(*wxWHITE);
671
672 m_status_bar = std::make_shared<BBLStatusBarBind>(m_simplebook);
673
674 m_worker = std::make_unique<PlaterWorker<BoostThreadWorker>>(this, m_status_bar, "bind_worker");
675
676 auto button_panel = new wxPanel(m_simplebook, wxID_ANY, wxDefaultPosition, BIND_DIALOG_BUTTON_PANEL_SIZE);
677 button_panel->SetBackgroundColour(*wxWHITE);
678 wxBoxSizer *m_sizer_button = new wxBoxSizer(wxHORIZONTAL);
679 m_button_bind = new Button(button_panel, _L("Confirm"));
681 m_button_bind->Enable(false);
682
683 m_button_cancel = new Button(button_panel, _L("Cancel"));
685
686 m_sizer_button->Add(m_button_bind, 0, wxALIGN_CENTER, 0);
687 m_sizer_button->AddSpacer(ButtonProps::ChoiceButtonGap());
688 m_sizer_button->Add(m_button_cancel, 0, wxALIGN_CENTER, 0);
689 button_panel->SetSizer(m_sizer_button);
690 button_panel->Layout();
691 m_sizer_button->Fit(button_panel);
692
693 m_simplebook->AddPage(m_status_bar->get_panel(), wxEmptyString, false);
694 m_simplebook->AddPage(button_panel, wxEmptyString, false);
695
696 //m_sizer_main->Add(m_sizer_button, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(30));
697
699
700
701 m_sizer_main->Add(m_sizer_status_text, 0, wxALIGN_CENTER, FromDIP(40));
702 m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(10));
703 m_sizer_main->Add(m_panel_agreement, 0, wxALIGN_CENTER, 0);
704 m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(10));
705 m_sizer_main->Add(m_sw_bind_failed_info, 0, wxALIGN_CENTER, 0);
706 m_sizer_main->Add(m_simplebook, 0, wxALIGN_RIGHT | wxRIGHT | wxBOTTOM, ButtonProps::ChoiceButtonGap());
707
708 SetSizerAndFit(m_sizer_main);
709 Layout();
710 Fit();
711 Centre(wxBOTH);
712
713 Bind(wxEVT_SHOW, &BindMachineDialog::on_show, this);
714 Bind(wxEVT_CLOSE_WINDOW, &BindMachineDialog::on_close, this);
715
716 m_button_bind->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BindMachineDialog::on_bind_printer), NULL, this);
717 m_button_cancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BindMachineDialog::on_cancel), NULL, this);
718 this->Connect(EVT_BIND_MACHINE_FAIL, wxCommandEventHandler(BindMachineDialog::on_bind_fail), NULL, this);
719 this->Connect(EVT_BIND_MACHINE_SUCCESS, wxCommandEventHandler(BindMachineDialog::on_bind_success), NULL, this);
720 this->Connect(EVT_BIND_UPDATE_MESSAGE, wxCommandEventHandler(BindMachineDialog::on_update_message), NULL, this);
721 m_simplebook->SetSelection(1);
722
723 wxGetApp().UpdateDlgDarkUI(this);
724 }
#define BIND_DIALOG_GREY200
Definition BindDialog.hpp:44
#define BIND_DIALOG_BUTTON_PANEL_SIZE
Definition BindDialog.hpp:48
@ Confirm
Definition Button.hpp:25
@ Regular
Definition Button.hpp:24
@ Choice
Definition Button.hpp:33
#define _L(s)
Definition OBJ.cpp:34
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
static int ChoiceButtonGap()
Definition Button.hpp:19
static wxFont Body_13
Definition Label.hpp:54
static wxFont Head_13
Definition Label.hpp:46
static wxFont Head_14
Definition Label.hpp:45
wxBitmap m_bitmap_show_error_close
Definition BindDialog.hpp:109
Label * m_st_txt_error_code
Definition BindDialog.hpp:112
bool m_allow_privacy
Definition BindDialog.hpp:119
void on_close(wxCloseEvent &event)
Definition BindDialog.cpp:797
Button * m_button_cancel
Definition BindDialog.hpp:104
MachineObject * m_machine_info
Definition BindDialog.hpp:124
wxSimplebook * m_simplebook
Definition BindDialog.hpp:105
wxStaticText * m_status_text
Definition BindDialog.hpp:101
std::shared_ptr< BBLStatusBarBind > m_status_bar
Definition BindDialog.hpp:125
void on_show(wxShowEvent &event)
Definition BindDialog.cpp:885
Label * m_st_txt_error_desc
Definition BindDialog.hpp:113
bool m_show_error_info_state
Definition BindDialog.hpp:118
wxBitmap m_bitmap_show_error_open
Definition BindDialog.hpp:110
void on_bind_success(wxCommandEvent &event)
Definition BindDialog.cpp:821
wxStaticBitmap * m_printer_img
Definition BindDialog.hpp:107
void on_update_message(wxCommandEvent &event)
Definition BindDialog.cpp:816
wxStaticBitmap * m_avatar
Definition BindDialog.hpp:106
wxStaticText * m_link_show_error
Definition BindDialog.hpp:102
void on_cancel(wxCommandEvent &event)
Definition BindDialog.cpp:786
StaticBox * m_panel_left
Definition BindDialog.hpp:99
wxStaticText * m_user_name
Definition BindDialog.hpp:98
HyperLink * m_link_network_state
Definition BindDialog.hpp:115
bool m_allow_notice
Definition BindDialog.hpp:120
void on_bind_printer(wxCommandEvent &event)
Definition BindDialog.cpp:829
wxStaticBitmap * m_static_bitmap_show_error
Definition BindDialog.hpp:108
void show_bind_failed_info(bool show, int code=0, wxString description=wxEmptyString, wxString extra=wxEmptyString)
Definition BindDialog.cpp:755
std::unique_ptr< Worker > m_worker
Definition BindDialog.hpp:126
StaticBox * m_panel_right
Definition BindDialog.hpp:100
Button * m_button_bind
Definition BindDialog.hpp:103
wxStaticText * m_printer_name
Definition BindDialog.hpp:97
Label * m_st_txt_extra_info
Definition BindDialog.hpp:114
void on_bind_fail(wxCommandEvent &event)
Definition BindDialog.cpp:803
std::shared_ptr< int > m_tocken
Definition BindDialog.hpp:122
wxScrolledWindow * m_sw_bind_failed_info
Definition BindDialog.hpp:111
wxWindow * m_panel_agreement
Definition BindDialog.hpp:96
@ ONLY_CONFIRM
Definition ReleaseNote.hpp:257
wxBitmap create_scaled_bitmap(const std::string &bmp_name_in, wxWindow *win, const int px_cnt, const bool grayscale, const std::string &new_color, const bool menu_bitmap, const bool resize, const bool bitmap2, const std::vector< std::string > &array_new_color)
Definition wxExtensions.cpp:448

References _L, BIND_DIALOG_BUTTON_PANEL_SIZE, BIND_DIALOG_GREY200, Label::Body_13, Choice, ButtonProps::ChoiceButtonGap(), Confirm, create_scaled_bitmap(), Label::Head_13, Label::Head_14, m_allow_notice, m_allow_privacy, m_avatar, m_bitmap_show_error_close, m_bitmap_show_error_open, m_button_bind, m_button_cancel, m_link_network_state, m_link_show_error, m_machine_info, m_panel_agreement, m_panel_left, m_panel_right, m_printer_img, m_printer_name, m_show_error_info_state, m_simplebook, m_st_txt_error_code, m_st_txt_error_desc, m_st_txt_extra_info, m_static_bitmap_show_error, m_status_bar, m_status_text, m_sw_bind_failed_info, m_tocken, m_user_name, m_worker, on_bind_fail(), on_bind_printer(), on_bind_success(), on_cancel(), on_close(), on_show(), Slic3r::GUI::ConfirmBeforeSendDialog::on_show(), on_update_message(), Slic3r::GUI::ConfirmBeforeSendDialog::ONLY_CONFIRM, Slic3r::GUI::plater(), Regular, show_bind_failed_info(), Slic3r::GUI::ConfirmBeforeSendDialog::update_text(), and wxStaticText.

Here is the call graph for this function:

◆ ~BindMachineDialog()

Slic3r::GUI::BindMachineDialog::~BindMachineDialog ( )
727 {
728 m_button_bind->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BindMachineDialog::on_bind_printer), NULL, this);
729 m_button_cancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BindMachineDialog::on_cancel), NULL, this);
730 this->Disconnect(EVT_BIND_MACHINE_FAIL, wxCommandEventHandler(BindMachineDialog::on_bind_fail), NULL, this);
731 this->Disconnect(EVT_BIND_MACHINE_SUCCESS, wxCommandEventHandler(BindMachineDialog::on_bind_success), NULL, this);
732 this->Disconnect(EVT_BIND_UPDATE_MESSAGE, wxCommandEventHandler(BindMachineDialog::on_update_message), NULL, this);
733 }

References m_button_bind, m_button_cancel, on_bind_fail(), on_bind_printer(), on_bind_success(), on_cancel(), and on_update_message().

Here is the call graph for this function:

Member Function Documentation

◆ 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; }

◆ get_print_error()

wxString Slic3r::GUI::BindMachineDialog::get_print_error ( wxString str)
736 {
737 wxString extra;
738 try {
739 json j = json::parse(str.utf8_string());
740 if (j.contains("err_code")) {
741 int error_code = j["err_code"].get<int>();
742 extra = wxGetApp().get_hms_query()->query_print_error_msg(m_machine_info, error_code);
743 }
744 }
745 catch (...) {
746 ;
747 }
748
749 if (extra.empty())
750 extra = str;
751
752 return extra;
753 }
nlohmann::json json
Definition AssembleList.cpp:42

References m_machine_info.

Referenced by show_bind_failed_info().

Here is the caller graph for this function:

◆ 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_bind_fail()

void Slic3r::GUI::BindMachineDialog::on_bind_fail ( wxCommandEvent & event)
804 {
805 m_simplebook->SetSelection(1);
806 m_link_show_error->Show(true);
807 m_static_bitmap_show_error->Show(true);
808
809 m_result_code = event.GetInt();
810 m_result_info = get_fail_reason(event.GetInt());
811 m_result_extra = event.GetString();
812
813 show_bind_failed_info(true, event.GetInt(), get_fail_reason(event.GetInt()), event.GetString());
814 }
wxString m_result_extra
Definition BindDialog.hpp:117
wxString m_result_info
Definition BindDialog.hpp:116
int m_result_code
Definition BindDialog.hpp:121
wxString get_fail_reason(int code)
Definition BindDialog.cpp:61

References Slic3r::GUI::get_fail_reason(), m_link_show_error, m_result_code, m_result_extra, m_result_info, m_simplebook, m_static_bitmap_show_error, and show_bind_failed_info().

Referenced by BindMachineDialog(), and ~BindMachineDialog().

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

◆ on_bind_printer()

void Slic3r::GUI::BindMachineDialog::on_bind_printer ( wxCommandEvent & event)
830 {
831 m_result_code = 0;
832 m_result_extra = wxEmptyString;
833 m_result_info = wxEmptyString;
834 m_link_show_error->Hide();
837
838 //check isset info
839 if (m_machine_info == nullptr || m_machine_info == NULL) return;
840
841 //check dev_id
842 if (m_machine_info->get_dev_id().empty()) return;
843
844 // update ota version
845 NetworkAgent* agent = wxGetApp().getAgent();
846 if (agent)
847 agent->track_update_property("dev_ota_version", m_machine_info->get_ota_version());
848
849 m_simplebook->SetSelection(0);
850 auto m_bind_job = std::make_unique<BindJob>(
851 m_machine_info->get_dev_id(), m_machine_info->get_dev_ip(), m_machine_info->get_show_printer_type(), m_machine_info->bind_sec_link, m_machine_info->bind_ssdp_version);
852
853 if (m_machine_info && (m_machine_info->get_printer_series() == PrinterSeries::SERIES_X1)) {
854 m_bind_job->set_improved(false);
855 }
856 else {
857 m_bind_job->set_improved(m_allow_notice);
858 }
859
860 m_bind_job->set_event_handle(this);
861 replace_job(*m_worker, std::move(m_bind_job));
862 }
@ SERIES_X1
Definition DevDefs.h:35
bool replace_job(Worker &w, Args &&...args)
Definition Worker.hpp:99

References m_allow_notice, m_link_show_error, m_machine_info, m_result_code, m_result_extra, m_result_info, m_simplebook, m_static_bitmap_show_error, m_worker, Slic3r::GUI::replace_job(), SERIES_X1, show_bind_failed_info(), and Slic3r::NetworkAgent::track_update_property().

Referenced by BindMachineDialog(), and ~BindMachineDialog().

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

◆ on_bind_success()

void Slic3r::GUI::BindMachineDialog::on_bind_success ( wxCommandEvent & event)
822 {
823 EndModal(wxID_OK);
824 MessageDialog msg_wingow(nullptr, _L("Log in successful."), "", wxAPPLY | wxOK);
825 msg_wingow.ShowModal();
826 if(m_machine_info) wxGetApp().on_start_subscribe_again(m_machine_info->get_dev_id());
827 }
void EndModal(int retCode) override
Definition GUI_Utils.hpp:305

References _L, Slic3r::GUI::DPIDialog::EndModal(), m_machine_info, and Slic3r::GUI::DPIAware< P >::ShowModal().

Referenced by BindMachineDialog(), and ~BindMachineDialog().

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

◆ on_cancel()

void Slic3r::GUI::BindMachineDialog::on_cancel ( wxCommandEvent & event)
787 {
788 on_destroy();
789 EndModal(wxID_CANCEL);
790 }
void on_destroy()
Definition BindDialog.cpp:792

References Slic3r::GUI::DPIDialog::EndModal(), and on_destroy().

Referenced by BindMachineDialog(), and ~BindMachineDialog().

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

◆ on_close()

void Slic3r::GUI::BindMachineDialog::on_close ( wxCloseEvent & event)
798 {
799 on_destroy();
800 event.Skip();
801 }

References on_destroy().

Referenced by BindMachineDialog().

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

◆ on_destroy()

void Slic3r::GUI::BindMachineDialog::on_destroy ( )
793 {
794 m_worker.get()->cancel_all();
795 }

References m_worker.

Referenced by on_cancel(), and on_close().

Here is the caller graph for this function:

◆ on_dpi_changed()

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

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

865{
866 m_button_bind->Rescale(); // ORCA
867 m_button_cancel->Rescale(); // ORCA
868}

References m_button_bind, and m_button_cancel.

◆ on_show()

void Slic3r::GUI::BindMachineDialog::on_show ( wxShowEvent & event)
886{
887 m_allow_privacy = false;
888 m_allow_notice = false;
889 m_result_code = 0;
890 m_result_extra = wxEmptyString;
891 m_result_info = wxEmptyString;
892
893 if (event.IsShown()) {
894 auto img = m_machine_info->get_printer_thumbnail_img_str();
895 if (wxGetApp().dark_mode()) { img += "_dark"; }
896 try {
897 auto bitmap = create_scaled_bitmap(img, this, FromDIP(80));
898 m_printer_img->SetBitmap(bitmap);
899 }
900 catch (...){}
901
902 m_printer_img->Refresh();
903 m_printer_img->Show();
904
905 m_printer_name->SetLabelText(from_u8(m_machine_info->get_dev_name()));
906
907 const std::string provider = wxGetApp().get_printer_cloud_provider();
908 if (wxGetApp().is_user_login(provider)) {
909 wxString username_text = from_u8(wxGetApp().getAgent()->get_user_nickname(provider));
910 m_user_name->SetLabelText(username_text);
911
912 std::string avatar_url = wxGetApp().getAgent()->get_user_avatar(provider);
913 Slic3r::Http http = Slic3r::Http::get(avatar_url);
914 std::string suffix = avatar_url.substr(avatar_url.find_last_of(".") + 1);
915 http.header("accept", "image/" + suffix)
916 .on_complete([this, time = std::weak_ptr<int>(m_tocken)](std::string body, unsigned int status) {
917 if (time.expired()) return;
918 wxMemoryInputStream stream(body.data(), body.size());
919 wxImage avatar_image;
920 if (avatar_image.LoadFile(stream, wxBITMAP_TYPE_ANY)) {
921 if (avatar_image.IsOk() && m_avatar) {
922 avatar_image.Rescale(this->FromDIP(60), this->FromDIP(60));
923 CallAfter([this, avatar_image]() {
924 auto bitmap = new wxBitmap(avatar_image);
925 m_avatar->SetBitmap(*bitmap);
926 Layout();
927 });
928 }
929 }
930 })
931 .on_error([](std::string body, std::string error, unsigned status) {
932 //BOOST_LOG_TRIVIAL(info) << "load oss picture failed, oss path: " << oss_path << " status:" << status << " error:" << error;
933 }).perform();
934 }
935 Layout();
936 event.Skip();
937 }
938}
static Http get(std::string url)
Definition Http.cpp:886
wxString from_u8(const std::string &str)
Definition GUI.cpp:544
@ http
Definition IPrinterAgent.hpp:64
@ Http
Definition PluginAuditManager.hpp:49

References create_scaled_bitmap(), Slic3r::GUI::from_u8(), Slic3r::Http::get(), Slic3r::http, m_allow_notice, m_allow_privacy, m_avatar, m_machine_info, m_printer_img, m_printer_name, m_result_code, m_result_extra, m_result_info, m_tocken, and m_user_name.

Referenced by BindMachineDialog().

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

◆ on_sys_color_changed()

◆ on_update_message()

void Slic3r::GUI::BindMachineDialog::on_update_message ( wxCommandEvent & event)
817 {
818 m_status_text->SetLabelText(event.GetString());
819 }

References m_status_text.

Referenced by BindMachineDialog(), and ~BindMachineDialog().

Here is the caller graph for this function:

◆ 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; }

◆ set_em_unit()

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

◆ set_prev_scale_factor()

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

◆ set_scale_factor()

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

◆ show_bind_failed_info()

void Slic3r::GUI::BindMachineDialog::show_bind_failed_info ( bool show,
int code = 0,
wxString description = wxEmptyString,
wxString extra = wxEmptyString )
756 {
757 if (show) {
758 if (!m_sw_bind_failed_info->IsShown()) {
759 m_sw_bind_failed_info->Show(true);
761 m_st_txt_error_code->SetLabelText(wxString::Format("%d", m_result_code));
762 m_st_txt_error_desc->SetLabelText( wxGetApp().filter_string(m_result_info));
763 m_st_txt_extra_info->SetLabelText( wxGetApp().filter_string(m_result_extra));
764
765 m_st_txt_error_code->Wrap(FromDIP(330));
766 m_st_txt_error_desc->Wrap(FromDIP(330));
767 m_st_txt_extra_info->Wrap(FromDIP(330));
768 }
769 else {
770 m_sw_bind_failed_info->Show(false);
771 }
772 Layout();
773 Fit();
774 }
775 else {
776 if (!m_sw_bind_failed_info->IsShown()) { return; }
777 m_sw_bind_failed_info->Show(false);
778 m_st_txt_error_code->SetLabelText(wxEmptyString);
779 m_st_txt_error_desc->SetLabelText(wxEmptyString);
780 m_st_txt_extra_info->SetLabelText(wxEmptyString);
781 Layout();
782 Fit();
783 }
784 }
wxString get_print_error(wxString str)
Definition BindDialog.cpp:735

References get_print_error(), m_result_code, m_result_extra, m_result_info, m_st_txt_error_code, m_st_txt_error_desc, m_st_txt_extra_info, and m_sw_bind_failed_info.

Referenced by BindMachineDialog(), on_bind_fail(), and on_bind_printer().

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

◆ ShowModal()

◆ 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_info()

void Slic3r::GUI::BindMachineDialog::update_machine_info ( MachineObject * info)
871{
872 m_machine_info = info;
873 if (m_machine_info && (m_machine_info->get_printer_series() == PrinterSeries::SERIES_X1)) {
874 m_button_bind->Enable(true);
875 m_panel_agreement->Hide();
876 }
877 else {
878 m_button_bind->Enable(false);
879 m_panel_agreement->Show();
880 }
881 Layout();
882 Fit();
883}

References m_button_bind, m_machine_info, m_panel_agreement, and SERIES_X1.

Referenced by Slic3r::GUI::MachineObjectPanel::show_bind_dialog(), and Slic3r::GUI::SelectMachinePopup::update_other_devices().

Here is the caller graph for this function:

Member Data Documentation

◆ m_allow_notice

bool Slic3r::GUI::BindMachineDialog::m_allow_notice {false}
private
120{false};

Referenced by BindMachineDialog(), on_bind_printer(), and on_show().

◆ m_allow_privacy

bool Slic3r::GUI::BindMachineDialog::m_allow_privacy {false}
private
119{false};

Referenced by BindMachineDialog(), and on_show().

◆ m_avatar

wxStaticBitmap* Slic3r::GUI::BindMachineDialog::m_avatar
private

Referenced by BindMachineDialog(), and on_show().

◆ m_bitmap_show_error_close

wxBitmap Slic3r::GUI::BindMachineDialog::m_bitmap_show_error_close
private

Referenced by BindMachineDialog().

◆ m_bitmap_show_error_open

wxBitmap Slic3r::GUI::BindMachineDialog::m_bitmap_show_error_open
private

Referenced by BindMachineDialog().

◆ m_button_bind

Button* Slic3r::GUI::BindMachineDialog::m_button_bind
private

◆ m_button_cancel

Button* Slic3r::GUI::BindMachineDialog::m_button_cancel
private

◆ m_can_rescale

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

◆ 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_link_network_state

HyperLink* Slic3r::GUI::BindMachineDialog::m_link_network_state { nullptr }
private
115{ nullptr };

Referenced by BindMachineDialog().

◆ m_link_show_error

wxStaticText* Slic3r::GUI::BindMachineDialog::m_link_show_error
private

◆ m_machine_info

MachineObject* Slic3r::GUI::BindMachineDialog::m_machine_info {nullptr}
private

◆ 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_panel_agreement

wxWindow* Slic3r::GUI::BindMachineDialog::m_panel_agreement
private

◆ m_panel_left

StaticBox* Slic3r::GUI::BindMachineDialog::m_panel_left
private

Referenced by BindMachineDialog().

◆ m_panel_right

StaticBox* Slic3r::GUI::BindMachineDialog::m_panel_right
private

Referenced by BindMachineDialog().

◆ m_prev_scale_factor

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

◆ m_printer_img

wxStaticBitmap* Slic3r::GUI::BindMachineDialog::m_printer_img
private

Referenced by BindMachineDialog(), and on_show().

◆ m_printer_name

wxStaticText* Slic3r::GUI::BindMachineDialog::m_printer_name
private

Referenced by BindMachineDialog(), and on_show().

◆ m_result_code

int Slic3r::GUI::BindMachineDialog::m_result_code
private

◆ m_result_extra

wxString Slic3r::GUI::BindMachineDialog::m_result_extra
private

◆ m_result_info

wxString Slic3r::GUI::BindMachineDialog::m_result_info
private

◆ m_scale_factor

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

◆ m_show_error_info_state

bool Slic3r::GUI::BindMachineDialog::m_show_error_info_state = true
private

Referenced by BindMachineDialog().

◆ m_simplebook

wxSimplebook* Slic3r::GUI::BindMachineDialog::m_simplebook
private

◆ m_st_txt_error_code

Label* Slic3r::GUI::BindMachineDialog::m_st_txt_error_code { nullptr }
private
112{ nullptr };

Referenced by BindMachineDialog(), and show_bind_failed_info().

◆ m_st_txt_error_desc

Label* Slic3r::GUI::BindMachineDialog::m_st_txt_error_desc { nullptr }
private
113{ nullptr };

Referenced by BindMachineDialog(), and show_bind_failed_info().

◆ m_st_txt_extra_info

Label* Slic3r::GUI::BindMachineDialog::m_st_txt_extra_info { nullptr }
private
114{ nullptr };

Referenced by BindMachineDialog(), and show_bind_failed_info().

◆ m_static_bitmap_show_error

wxStaticBitmap* Slic3r::GUI::BindMachineDialog::m_static_bitmap_show_error
private

◆ m_status_bar

std::shared_ptr<BBLStatusBarBind> Slic3r::GUI::BindMachineDialog::m_status_bar
private

Referenced by BindMachineDialog().

◆ m_status_text

wxStaticText* Slic3r::GUI::BindMachineDialog::m_status_text
private

◆ m_sw_bind_failed_info

wxScrolledWindow* Slic3r::GUI::BindMachineDialog::m_sw_bind_failed_info
private

◆ m_tocken

std::shared_ptr<int> Slic3r::GUI::BindMachineDialog::m_tocken
private

Referenced by BindMachineDialog(), and on_show().

◆ m_user_name

wxStaticText* Slic3r::GUI::BindMachineDialog::m_user_name
private

Referenced by BindMachineDialog(), and on_show().

◆ m_worker

std::unique_ptr<Worker> Slic3r::GUI::BindMachineDialog::m_worker
private

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