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

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

Inheritance diagram for Slic3r::GUI::LocalTaskManagerPage:
Collaboration diagram for Slic3r::GUI::LocalTaskManagerPage:

Public Member Functions

 LocalTaskManagerPage (wxWindow *parent)
 ~LocalTaskManagerPage ()
void update_page ()
void refresh_user_device (bool clear=false)
bool Show (bool show)
void cancel_all (wxCommandEvent &evt)
void msw_rescale ()

Private Attributes

SortItem m_sort
std::map< int, MultiTaskItem * > m_task_items
bool device_name_big { true }
bool device_state_big { true }
bool device_send_time { true }
wxPanel * m_main_panel { nullptr }
wxBoxSizer * m_main_sizer { nullptr }
wxBoxSizer * page_sizer { nullptr }
wxBoxSizer * m_sizer_task_list { nullptr }
wxScrolledWindow * m_task_list { nullptr }
wxPanel * m_table_head_panel { nullptr }
wxBoxSizer * m_table_head_sizer { nullptr }
CheckBox * m_select_checkbox { nullptr }
Button * m_task_name { nullptr }
Button * m_printer_name { nullptr }
Button * m_status { nullptr }
Button * m_info { nullptr }
Button * m_send_time { nullptr }
Button * m_action { nullptr }
wxPanel * m_ctrl_btn_panel { nullptr }
wxBoxSizer * m_btn_sizer { nullptr }
Button * btn_stop_all { nullptr }
wxStaticText * m_sel_text { nullptr }
wxStaticText * m_tip_text { nullptr }

Detailed Description

Constructor & Destructor Documentation

◆ LocalTaskManagerPage()

Slic3r::GUI::LocalTaskManagerPage::LocalTaskManagerPage ( wxWindow * parent)
571 : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL)
572{
573#ifdef __WINDOWS__
574 SetDoubleBuffered(true);
575#endif //__WINDOWS__
576 SetBackgroundColour(wxColour(0xEEEEEE));
577 m_main_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
578 m_main_panel->SetBackgroundColour(*wxWHITE);
579 m_main_sizer = new wxBoxSizer(wxVERTICAL);
580
581 StateColor head_bg(
582 std::pair<wxColour, int>(TABLE_HEAD_PRESSED_COLOUR, StateColor::Pressed),
583 std::pair<wxColour, int>(TABLE_HEAR_NORMAL_COLOUR, StateColor::Normal)
584 );
585
586 m_table_head_panel = new wxPanel(m_main_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize);
587 m_table_head_panel->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
588 m_table_head_panel->SetMaxSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
589 m_table_head_panel->SetBackgroundColour(TABLE_HEAR_NORMAL_COLOUR);
590 m_table_head_sizer = new wxBoxSizer(wxHORIZONTAL);
591
592 m_select_checkbox = new CheckBox(m_table_head_panel, wxID_ANY);
593 m_select_checkbox->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
594 m_select_checkbox->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
595 m_table_head_sizer->Add(m_select_checkbox, 0, wxALIGN_CENTER_VERTICAL, 0);
596
597 m_select_checkbox->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) {
598 if (m_select_checkbox->GetValue()) {
599 for (auto it = m_task_items.begin(); it != m_task_items.end(); it++) {
600
601 if (it->second->state_local_task <= 1) {
602 it->second->selected();
603 }
604 }
605 }
606 else {
607 for (auto it = m_task_items.begin(); it != m_task_items.end(); it++) {
608 it->second->unselected();
609 }
610 }
611 Refresh(false);
612 e.Skip();
613 });
614
615
616 m_task_name = new Button(m_table_head_panel, _L("Task Name"), "", wxNO_BORDER, ICON_SINGLE_SIZE);
617 m_task_name->SetBackgroundColor(TABLE_HEAR_NORMAL_COLOUR);
619 m_task_name->SetCornerRadius(0);
620 m_task_name->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
621 m_task_name->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
622 m_task_name->SetCenter(false);
623 m_table_head_sizer->Add(m_task_name, 0, wxALIGN_CENTER_VERTICAL, 0);
624
625 m_printer_name = new Button(m_table_head_panel, _L("Device Name"), "toolbar_double_directional_arrow", wxNO_BORDER, ICON_SINGLE_SIZE);
626 m_printer_name->SetBackgroundColor(head_bg);
628 m_printer_name->SetCornerRadius(0);
629 m_printer_name->SetMinSize(wxSize(FromDIP(TASK_LEFT_DEV_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
630 m_printer_name->SetMaxSize(wxSize(FromDIP(TASK_LEFT_DEV_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
631 m_printer_name->SetCenter(false);
632 m_printer_name->Bind(wxEVT_ENTER_WINDOW, [&](wxMouseEvent& evt) {
633 SetCursor(wxCURSOR_HAND);
634 });
635 m_printer_name->Bind(wxEVT_LEAVE_WINDOW, [&](wxMouseEvent& evt) {
636 SetCursor(wxCURSOR_ARROW);
637 });
638 m_printer_name->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& evt) {
641 this->refresh_user_device();
642 });
643 m_table_head_sizer->Add(m_printer_name, 0, wxALIGN_CENTER_VERTICAL, 0);
644
645 m_status = new Button(m_table_head_panel, _L("Task Status"), "toolbar_double_directional_arrow", wxNO_BORDER, ICON_SINGLE_SIZE);
646 m_status->SetBackgroundColor(head_bg);
647 m_status->SetFont(TABLE_HEAD_FONT);
648 m_status->SetCornerRadius(0);
649 m_status->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_STATE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
650 m_status->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_STATE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
651 m_status->SetCenter(false);
652 m_status->Bind(wxEVT_ENTER_WINDOW, [&](wxMouseEvent& evt) {
653 SetCursor(wxCURSOR_HAND);
654 });
655 m_status->Bind(wxEVT_LEAVE_WINDOW, [&](wxMouseEvent& evt) {
656 SetCursor(wxCURSOR_ARROW);
657 });
658 m_status->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& evt) {
661 this->refresh_user_device();
662 });
663 m_table_head_sizer->Add(m_status, 0, wxALIGN_CENTER_VERTICAL, 0);
664
665 m_info = new Button(m_table_head_panel, _L("Info"), "", wxNO_BORDER, ICON_SINGLE_SIZE);
666 m_info->SetBackgroundColor(TABLE_HEAR_NORMAL_COLOUR);
667 m_info->SetFont(TABLE_HEAD_FONT);
668 m_info->SetCornerRadius(0);
669 m_info->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
670 m_info->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
671 m_info->SetCenter(false);
672 m_table_head_sizer->Add(m_info, 0, wxALIGN_CENTER_VERTICAL, 0);
673
674 m_send_time = new Button(m_table_head_panel, _L("Sent Time"), "toolbar_double_directional_arrow", wxNO_BORDER, ICON_SINGLE_SIZE, false);
675 m_send_time->SetBackgroundColor(head_bg);
677 m_send_time->SetCornerRadius(0);
678 m_send_time->SetMinSize(wxSize(FromDIP(TASK_LEFT_SEND_TIME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
679 m_send_time->SetMaxSize(wxSize(FromDIP(TASK_LEFT_SEND_TIME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
680 m_send_time->SetCenter(false);
681 m_send_time->Bind(wxEVT_ENTER_WINDOW, [&](wxMouseEvent& evt) {
682 SetCursor(wxCURSOR_HAND);
683 });
684 m_send_time->Bind(wxEVT_LEAVE_WINDOW, [&](wxMouseEvent& evt) {
685 SetCursor(wxCURSOR_ARROW);
686 });
687 m_send_time->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& evt) {
690 this->refresh_user_device();
691 });
692 m_table_head_sizer->Add(m_send_time, 0, wxALIGN_CENTER_VERTICAL, 0);
693
694 m_action = new Button(m_table_head_panel, _L("Actions"), "", wxNO_BORDER, ICON_SINGLE_SIZE, false);
695 m_action->SetBackgroundColor(TABLE_HEAR_NORMAL_COLOUR);
696 m_action->SetFont(TABLE_HEAD_FONT);
697 m_action->SetCornerRadius(0);
698 /* m_action->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
699 m_action->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));*/
700 m_action->SetCenter(false);
701 m_table_head_sizer->Add(m_action, 0, wxALIGN_CENTER_VERTICAL, 0);
703 m_table_head_panel->Layout();
704
705 m_tip_text = new wxStaticText(m_main_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER);
706 m_tip_text->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
707 m_tip_text->SetMaxSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
708 m_tip_text->SetLabel(_L("There are no tasks to be sent!"));
709 m_tip_text->SetForegroundColour(wxColour(50, 58, 61));
711 m_tip_text->Wrap(-1);
712
713 m_task_list = new wxScrolledWindow(m_main_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize);
714 m_task_list->SetBackgroundColour(*wxWHITE);
715 m_task_list->SetScrollRate(0, FromDIP(DEVICE_ITEM_MAX_HEIGHT));
716 m_task_list->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
717 m_task_list->SetMaxSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), 10 * FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
718
719 m_sizer_task_list = new wxBoxSizer(wxVERTICAL);
721 m_task_list->Layout();
722
723 m_main_sizer->AddSpacer(FromDIP(50));
724 m_main_sizer->Add(m_table_head_panel, 0, wxALIGN_CENTER_HORIZONTAL, 0);
725 m_main_sizer->Add(m_tip_text, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, FromDIP(50));
726 m_main_sizer->Add(m_task_list, 0, wxALIGN_CENTER_HORIZONTAL, 0);
727 m_main_sizer->AddSpacer(FromDIP(5));
728
729 // ctrl panel
730 StateColor ctrl_bg(
731 std::pair<wxColour, int>(CTRL_BUTTON_PRESSEN_COLOUR, StateColor::Pressed),
732 std::pair<wxColour, int>(CTRL_BUTTON_NORMAL_COLOUR, StateColor::Normal)
733 );
734
735 m_ctrl_btn_panel = new wxPanel(m_main_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
736 m_ctrl_btn_panel->SetBackgroundColour(*wxWHITE);
737 m_ctrl_btn_panel->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
738 m_ctrl_btn_panel->SetMaxSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
739 m_btn_sizer = new wxBoxSizer(wxHORIZONTAL);
740 btn_stop_all = new Button(m_ctrl_btn_panel, _L("Stop"));
741 btn_stop_all->SetBackgroundColor(ctrl_bg);
742 btn_stop_all->SetCornerRadius(FromDIP(5));
743 m_sel_text = new wxStaticText(m_ctrl_btn_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize);
744
745 m_btn_sizer->Add(m_sel_text, 0, wxLEFT, FromDIP(15));;
746 m_btn_sizer->Add(btn_stop_all, 0, wxLEFT, FromDIP(10));
747 m_ctrl_btn_panel->SetSizer(m_btn_sizer);
748 m_ctrl_btn_panel->Layout();
749
750 m_main_sizer->AddSpacer(FromDIP(10));
751 m_main_sizer->Add(m_ctrl_btn_panel, 0, wxALIGN_CENTER_HORIZONTAL, 0);
752
753 btn_stop_all->Bind(wxEVT_BUTTON, &LocalTaskManagerPage::cancel_all, this);
754 m_main_panel->SetSizer(m_main_sizer);
755 m_main_panel->Layout();
756
757 page_sizer = new wxBoxSizer(wxVERTICAL);
758 page_sizer->Add(m_main_panel, 1, wxALL | wxEXPAND, FromDIP(10)); // ORCA match margin with other tabs
759
760 wxGetApp().UpdateDarkUIWin(this);
761
762 SetSizer(page_sizer);
763 Layout();
764 Fit();
765}
#define ICON_SINGLE_SIZE
Definition GUI_Utils.hpp:50
#define TABLE_HEAR_NORMAL_COLOUR
Definition MultiMachine.hpp:22
#define TABLE_HEAD_PRESSED_COLOUR
Definition MultiMachine.hpp:23
#define TABLE_HEAD_FONT
Definition MultiMachine.hpp:26
#define CTRL_BUTTON_PRESSEN_COLOUR
Definition MultiMachine.hpp:25
#define CTRL_BUTTON_NORMAL_COLOUR
Definition MultiMachine.hpp:24
#define DEVICE_ITEM_MAX_HEIGHT
Definition MultiMachine.hpp:20
#define TASK_LEFT_PRINTABLE
Definition MultiTaskManagerPage.hpp:33
#define TASK_LEFT_DEV_NAME
Definition MultiTaskManagerPage.hpp:35
#define TASK_LEFT_PRO_NAME
Definition MultiTaskManagerPage.hpp:34
#define TASK_LEFT_PRO_STATE
Definition MultiTaskManagerPage.hpp:36
#define TASK_LEFT_SEND_TIME
Definition MultiTaskManagerPage.hpp:38
#define CLOUD_TASK_ITEM_MAX_WIDTH
Definition MultiTaskManagerPage.hpp:30
#define TASK_LEFT_PRO_INFO
Definition MultiTaskManagerPage.hpp:37
#define _L(s)
Definition OBJ.cpp:34
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
static wxFont Head_24
Definition Label.hpp:40
Button * m_printer_name
Definition MultiTaskManagerPage.hpp:118
wxScrolledWindow * m_task_list
Definition MultiTaskManagerPage.hpp:111
bool device_send_time
Definition MultiTaskManagerPage.hpp:105
void refresh_user_device(bool clear=false)
Definition MultiTaskManagerPage.cpp:774
wxPanel * m_main_panel
Definition MultiTaskManagerPage.hpp:107
bool device_name_big
Definition MultiTaskManagerPage.hpp:103
wxBoxSizer * page_sizer
Definition MultiTaskManagerPage.hpp:109
wxBoxSizer * m_table_head_sizer
Definition MultiTaskManagerPage.hpp:115
wxBoxSizer * m_btn_sizer
Definition MultiTaskManagerPage.hpp:126
std::map< int, MultiTaskItem * > m_task_items
Definition MultiTaskManagerPage.hpp:102
CheckBox * m_select_checkbox
Definition MultiTaskManagerPage.hpp:116
Button * m_task_name
Definition MultiTaskManagerPage.hpp:117
wxBoxSizer * m_sizer_task_list
Definition MultiTaskManagerPage.hpp:110
Button * m_status
Definition MultiTaskManagerPage.hpp:119
wxStaticText * m_sel_text
Definition MultiTaskManagerPage.hpp:128
wxPanel * m_table_head_panel
Definition MultiTaskManagerPage.hpp:114
Button * m_send_time
Definition MultiTaskManagerPage.hpp:121
Button * m_info
Definition MultiTaskManagerPage.hpp:120
Button * m_action
Definition MultiTaskManagerPage.hpp:122
void cancel_all(wxCommandEvent &evt)
Definition MultiTaskManagerPage.cpp:888
wxBoxSizer * m_main_sizer
Definition MultiTaskManagerPage.hpp:108
wxPanel * m_ctrl_btn_panel
Definition MultiTaskManagerPage.hpp:125
SortItem m_sort
Definition MultiTaskManagerPage.hpp:101
Button * btn_stop_all
Definition MultiTaskManagerPage.hpp:127
bool device_state_big
Definition MultiTaskManagerPage.hpp:104
wxStaticText * m_tip_text
Definition MultiTaskManagerPage.hpp:131
@ Normal
Definition StateColor.hpp:16
@ Pressed
Definition StateColor.hpp:21
wxMouseEvent
Definition CameraPopup.cpp:47
@ SR_DEV_NAME
Definition MultiMachine.hpp:88
@ SR_SEND_TIME
Definition MultiMachine.hpp:95
@ SR_LOCAL_TASK_STATE
Definition MultiMachine.hpp:93

References _L, btn_stop_all, cancel_all(), CLOUD_TASK_ITEM_MAX_WIDTH, CTRL_BUTTON_NORMAL_COLOUR, CTRL_BUTTON_PRESSEN_COLOUR, DEVICE_ITEM_MAX_HEIGHT, device_name_big, device_send_time, device_state_big, Label::Head_24, ICON_SINGLE_SIZE, m_action, m_btn_sizer, m_ctrl_btn_panel, m_info, m_main_panel, m_main_sizer, m_printer_name, m_sel_text, m_select_checkbox, m_send_time, m_sizer_task_list, m_sort, m_status, m_table_head_panel, m_table_head_sizer, m_task_items, m_task_list, m_task_name, m_tip_text, StateColor::Normal, page_sizer, StateColor::Pressed, refresh_user_device(), Slic3r::GUI::SortItem::SR_DEV_NAME, Slic3r::GUI::SortItem::SR_LOCAL_TASK_STATE, Slic3r::GUI::SortItem::SR_SEND_TIME, TABLE_HEAD_FONT, TABLE_HEAD_PRESSED_COLOUR, TABLE_HEAR_NORMAL_COLOUR, TASK_LEFT_DEV_NAME, TASK_LEFT_PRINTABLE, TASK_LEFT_PRO_INFO, TASK_LEFT_PRO_NAME, TASK_LEFT_PRO_STATE, TASK_LEFT_SEND_TIME, Slic3r::GUI::wxMouseEvent, and wxStaticText.

Here is the call graph for this function:

◆ ~LocalTaskManagerPage()

Slic3r::GUI::LocalTaskManagerPage::~LocalTaskManagerPage ( )
inline
92{};

Member Function Documentation

◆ cancel_all()

void Slic3r::GUI::LocalTaskManagerPage::cancel_all ( wxCommandEvent & evt)
889{
890 for (auto it = m_task_items.begin(); it != m_task_items.end(); it++) {
891 if (it->second->m_button_cancel->IsShown() && (it->second->get_state_selected() == 1) && it->second->state_local_task < 2) {
892 it->second->onCancel();
893 }
894 }
895}

References m_task_items.

Referenced by LocalTaskManagerPage().

Here is the caller graph for this function:

◆ msw_rescale()

void Slic3r::GUI::LocalTaskManagerPage::msw_rescale ( )
898{
899 m_select_checkbox->Rescale();
900 m_select_checkbox->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
901 m_select_checkbox->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
902 m_task_name->Rescale();
903 m_task_name->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
904 m_task_name->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
905 m_printer_name->Rescale();
906 m_printer_name->SetMinSize(wxSize(FromDIP(TASK_LEFT_DEV_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
907 m_printer_name->SetMaxSize(wxSize(FromDIP(TASK_LEFT_DEV_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
908 m_status->Rescale();
909 m_status->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_STATE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
910 m_status->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_STATE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
911 m_info->Rescale();
912 m_info->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
913 m_info->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
914 m_send_time->Rescale();
915 m_send_time->SetMinSize(wxSize(FromDIP(TASK_LEFT_SEND_TIME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
916 m_send_time->SetMaxSize(wxSize(FromDIP(TASK_LEFT_SEND_TIME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
917 m_action->Rescale();
918 m_action->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
919 m_action->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
920
921 btn_stop_all->Rescale();
922
923 for (auto it = m_task_items.begin(); it != m_task_items.end(); ++it) {
924 it->second->Refresh();
925 }
926
927 Fit();
928 Layout();
929 Refresh();
930}

References btn_stop_all, DEVICE_ITEM_MAX_HEIGHT, m_action, m_info, m_printer_name, m_select_checkbox, m_send_time, m_status, m_task_items, m_task_name, TASK_LEFT_DEV_NAME, TASK_LEFT_PRINTABLE, TASK_LEFT_PRO_INFO, TASK_LEFT_PRO_NAME, TASK_LEFT_PRO_STATE, and TASK_LEFT_SEND_TIME.

◆ refresh_user_device()

void Slic3r::GUI::LocalTaskManagerPage::refresh_user_device ( bool clear = false)
775{
776 m_sizer_task_list->Clear(false);
777
778 Slic3r::DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
779 if (!dev) {
780 for (auto it = m_task_items.begin(); it != m_task_items.end(); it++) {
781 wxWindow* child = it->second;
782 child->Destroy();
783 }
784 m_ctrl_btn_panel->Show(false);
785 return;
786 }
787
788 if(clear)return;
789
790 std::vector<std::string> subscribe_list;
791 std::vector<MultiTaskItem*> task_temps;
792
793 auto all_machine = dev->get_my_cloud_machine_list();
794 auto user_machine = std::map<std::string, MachineObject*>();
795
796 //selected machine
797 for (int i = 0; i < PICK_DEVICE_MAX; i++) {
798 auto dev_id = wxGetApp().app_config->get("multi_devices", std::to_string(i));
799
800 if (all_machine.count(dev_id) > 0) {
801 user_machine[dev_id] = all_machine[dev_id];
802 }
803 }
804
805 auto task_manager = wxGetApp().getTaskManager();
806 if (task_manager) {
807 auto m_task_obj_list = task_manager->get_local_task_list();
808
809 for (auto it = m_task_obj_list.rbegin(); it != m_task_obj_list.rend(); ++it) {
810
811 TaskStateInfo* task_state_info = it->second;
812
813 if(!task_state_info) continue;
814
815 MultiTaskItem* mtitem = new MultiTaskItem(m_task_list, nullptr, 0);
816 mtitem->task_obj = task_state_info;
817 mtitem->m_project_name = wxString::FromUTF8(task_state_info->get_task_name());
818 mtitem->m_dev_name = wxString::FromUTF8(task_state_info->get_device_name());
819 mtitem->m_dev_id = task_state_info->params().dev_id;
820 mtitem->m_send_time = task_state_info->get_sent_time();
821 mtitem->state_local_task = task_state_info->state();
822
823 task_state_info->set_state_changed_fn([mtitem](TaskState state, int percent) {
824 mtitem->state_local_task = state;
825 if (state == TaskState::TS_SEND_COMPLETED) {
826
827 mtitem->m_send_time = mtitem->task_obj->get_sent_time();
828 wxCommandEvent event(EVT_MULTI_REFRESH);
829 event.SetEventObject(mtitem);
830 wxPostEvent(mtitem, event);
831 }
832 mtitem->m_sending_percent = percent;
833 });
834
835 if (m_task_items.find(it->first) != m_task_items.end()) {
836 MultiTaskItem* item = m_task_items[it->first];
837 if (item->state_selected == 1 && mtitem->state_local_task < 2)
838 mtitem->state_selected = item->state_selected;
839 item->Destroy();
840 }
841
842 m_task_items[it->first] = mtitem;
843 task_temps.push_back(mtitem);
844 }
845
847 std::sort(task_temps.begin(), task_temps.end(), m_sort.get_call_back());
848 }
849
850 for (const auto& item : task_temps)
851 m_sizer_task_list->Add(item, 0, wxALL | wxEXPAND, 0);
852
853 // maintenance
854 auto it = m_task_items.begin();
855 while (it != m_task_items.end()) {
856 if (m_task_obj_list.find(it->first) != m_task_obj_list.end())
857 ++it;
858 else {
859 it->second->Destroy();
860 it = m_task_items.erase(it);
861 }
862 }
863
864 dev->subscribe_device_list(subscribe_list);
865 int num = m_task_items.size() > 10 ? 10 : m_task_items.size();
866 m_task_list->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), num * FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
867 m_task_list->Layout();
868 }
869 m_tip_text->Show(m_task_items.empty());
870 m_ctrl_btn_panel->Show(!m_task_items.empty());
871 Layout();
872}
#define PICK_DEVICE_MAX
Definition MultiMachinePage.hpp:34
void subscribe_device_list(std::vector< std::string > dev_list)
Definition DevManager.cpp:794
std::map< std::string, MachineObject * > get_my_cloud_machine_list(const std::string &agent_id="")
Definition DevManager.cpp:856
TaskState
Definition TaskManager.hpp:26
@ TS_SEND_COMPLETED
Definition TaskManager.hpp:29
@ SR_None
Definition MultiMachine.hpp:87

References CLOUD_TASK_ITEM_MAX_WIDTH, Slic3r::PrintParams::dev_id, DEVICE_ITEM_MAX_HEIGHT, Slic3r::TaskStateInfo::get_device_name(), Slic3r::DeviceManager::get_my_cloud_machine_list(), Slic3r::TaskStateInfo::get_sent_time(), Slic3r::TaskStateInfo::get_task_name(), m_ctrl_btn_panel, Slic3r::GUI::MultiTaskItem::m_dev_id, Slic3r::GUI::MultiTaskItem::m_dev_name, Slic3r::GUI::MultiTaskItem::m_project_name, Slic3r::GUI::DeviceItem::m_send_time, Slic3r::GUI::MultiTaskItem::m_sending_percent, m_sizer_task_list, m_sort, m_task_items, m_task_list, m_tip_text, Slic3r::TaskStateInfo::params(), PICK_DEVICE_MAX, Slic3r::TaskStateInfo::set_state_changed_fn(), Slic3r::GUI::SortItem::SR_None, Slic3r::GUI::SortItem::SR_SEND_TIME, Slic3r::TaskStateInfo::state(), Slic3r::GUI::DeviceItem::state_local_task, Slic3r::GUI::DeviceItem::state_selected, Slic3r::DeviceManager::subscribe_device_list(), Slic3r::GUI::MultiTaskItem::task_obj, and Slic3r::TS_SEND_COMPLETED.

Referenced by LocalTaskManagerPage(), and Show().

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

◆ Show()

bool Slic3r::GUI::LocalTaskManagerPage::Show ( bool show)
875{
876 if (show) {
878 }
879 else {
880 Slic3r::DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
881 if (dev) {
882 dev->subscribe_device_list(std::vector<std::string>());
883 }
884 }
885 return wxPanel::Show(show);
886}

References refresh_user_device(), and Slic3r::DeviceManager::subscribe_device_list().

Here is the call graph for this function:

◆ update_page()

void Slic3r::GUI::LocalTaskManagerPage::update_page ( )
768{
769 for (auto it = m_task_items.begin(); it != m_task_items.end(); it++) {
770 it->second->update_info();
771 }
772}

References m_task_items.

Member Data Documentation

◆ btn_stop_all

Button* Slic3r::GUI::LocalTaskManagerPage::btn_stop_all { nullptr }
private
127{ nullptr };

Referenced by LocalTaskManagerPage(), and msw_rescale().

◆ device_name_big

bool Slic3r::GUI::LocalTaskManagerPage::device_name_big { true }
private
103{ true };

Referenced by LocalTaskManagerPage().

◆ device_send_time

bool Slic3r::GUI::LocalTaskManagerPage::device_send_time { true }
private
105{ true };

Referenced by LocalTaskManagerPage().

◆ device_state_big

bool Slic3r::GUI::LocalTaskManagerPage::device_state_big { true }
private
104{ true };

Referenced by LocalTaskManagerPage().

◆ m_action

Button* Slic3r::GUI::LocalTaskManagerPage::m_action { nullptr }
private
122{ nullptr };

Referenced by LocalTaskManagerPage(), and msw_rescale().

◆ m_btn_sizer

wxBoxSizer* Slic3r::GUI::LocalTaskManagerPage::m_btn_sizer { nullptr }
private
126{ nullptr };

Referenced by LocalTaskManagerPage().

◆ m_ctrl_btn_panel

wxPanel* Slic3r::GUI::LocalTaskManagerPage::m_ctrl_btn_panel { nullptr }
private
125{ nullptr };

Referenced by LocalTaskManagerPage(), and refresh_user_device().

◆ m_info

Button* Slic3r::GUI::LocalTaskManagerPage::m_info { nullptr }
private
120{ nullptr };

Referenced by LocalTaskManagerPage(), and msw_rescale().

◆ m_main_panel

wxPanel* Slic3r::GUI::LocalTaskManagerPage::m_main_panel { nullptr }
private
107{ nullptr };

Referenced by LocalTaskManagerPage().

◆ m_main_sizer

wxBoxSizer* Slic3r::GUI::LocalTaskManagerPage::m_main_sizer { nullptr }
private
108{ nullptr };

Referenced by LocalTaskManagerPage().

◆ m_printer_name

Button* Slic3r::GUI::LocalTaskManagerPage::m_printer_name { nullptr }
private
118{ nullptr };

Referenced by LocalTaskManagerPage(), and msw_rescale().

◆ m_sel_text

wxStaticText* Slic3r::GUI::LocalTaskManagerPage::m_sel_text { nullptr }
private
128{ nullptr };

Referenced by LocalTaskManagerPage().

◆ m_select_checkbox

CheckBox* Slic3r::GUI::LocalTaskManagerPage::m_select_checkbox { nullptr }
private
116{ nullptr };

Referenced by LocalTaskManagerPage(), and msw_rescale().

◆ m_send_time

Button* Slic3r::GUI::LocalTaskManagerPage::m_send_time { nullptr }
private
121{ nullptr };

Referenced by LocalTaskManagerPage(), and msw_rescale().

◆ m_sizer_task_list

wxBoxSizer* Slic3r::GUI::LocalTaskManagerPage::m_sizer_task_list { nullptr }
private
110{ nullptr };

Referenced by LocalTaskManagerPage(), and refresh_user_device().

◆ m_sort

SortItem Slic3r::GUI::LocalTaskManagerPage::m_sort
private

◆ m_status

Button* Slic3r::GUI::LocalTaskManagerPage::m_status { nullptr }
private
119{ nullptr };

Referenced by LocalTaskManagerPage(), and msw_rescale().

◆ m_table_head_panel

wxPanel* Slic3r::GUI::LocalTaskManagerPage::m_table_head_panel { nullptr }
private
114{ nullptr };

Referenced by LocalTaskManagerPage().

◆ m_table_head_sizer

wxBoxSizer* Slic3r::GUI::LocalTaskManagerPage::m_table_head_sizer { nullptr }
private
115{ nullptr };

Referenced by LocalTaskManagerPage().

◆ m_task_items

std::map<int, MultiTaskItem*> Slic3r::GUI::LocalTaskManagerPage::m_task_items
private

◆ m_task_list

wxScrolledWindow* Slic3r::GUI::LocalTaskManagerPage::m_task_list { nullptr }
private
111{ nullptr };

Referenced by LocalTaskManagerPage(), and refresh_user_device().

◆ m_task_name

Button* Slic3r::GUI::LocalTaskManagerPage::m_task_name { nullptr }
private
117{ nullptr };

Referenced by LocalTaskManagerPage(), and msw_rescale().

◆ m_tip_text

wxStaticText* Slic3r::GUI::LocalTaskManagerPage::m_tip_text { nullptr }
private
131{ nullptr };

Referenced by LocalTaskManagerPage(), and refresh_user_device().

◆ page_sizer

wxBoxSizer* Slic3r::GUI::LocalTaskManagerPage::page_sizer { nullptr }
private
109{ nullptr };

Referenced by LocalTaskManagerPage().


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