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

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

Inheritance diagram for Slic3r::GUI::CloudTaskManagerPage:
Collaboration diagram for Slic3r::GUI::CloudTaskManagerPage:

Public Member Functions

 CloudTaskManagerPage (wxWindow *parent)
 ~CloudTaskManagerPage ()
void update_page ()
void refresh_user_device (bool clear=false)
std::string utc_time_to_date (std::string utc_time)
bool Show (bool show)
void update_page_number ()
void start_timer ()
void on_timer (wxTimerEvent &event)
void pause_all (wxCommandEvent &evt)
void resume_all (wxCommandEvent &evt)
void stop_all (wxCommandEvent &evt)
void enable_buttons (bool enable)
void page_num_enter_evt ()
void msw_rescale ()

Private Attributes

SortItem m_sort
bool device_name_big { true }
bool device_state_big { true }
bool device_send_time { true }
std::map< std::string, MultiTaskItem * > m_task_items
wxPanel * m_main_panel { nullptr }
wxBoxSizer * page_sizer { nullptr }
wxBoxSizer * m_sizer_task_list { nullptr }
wxBoxSizer * m_main_sizer { nullptr }
wxScrolledWindow * m_task_list { nullptr }
int m_current_page { 0 }
int m_total_page {0}
int m_total_count { 0 }
int m_count_page_item { 10 }
Button * btn_last_page { nullptr }
Button * btn_next_page { nullptr }
wxStaticText * st_page_number { nullptr }
wxBoxSizer * m_flipping_page_sizer { nullptr }
wxBoxSizer * m_page_sizer { nullptr }
wxPanel * m_flipping_panel { nullptr }
wxTimer * m_flipping_timer { nullptr }
TextInput * m_page_num_input { nullptr }
Button * m_page_num_enter { 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_pause_all { nullptr }
Button * btn_continue_all { nullptr }
Button * btn_stop_all { nullptr }
wxStaticText * m_sel_text { nullptr }
wxStaticText * m_tip_text { nullptr }
wxStaticText * m_loading_text { nullptr }

Detailed Description

Constructor & Destructor Documentation

◆ CloudTaskManagerPage()

Slic3r::GUI::CloudTaskManagerPage::CloudTaskManagerPage ( wxWindow * parent)
933 : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL)
934{
935#ifdef __WINDOWS__
936 SetDoubleBuffered(true);
937#endif //__WINDOWS__
938 SetBackgroundColour(wxColour(0xEEEEEE));
939 m_sort.set_role(SortItem::SR_SEND_TIME, true);
940
941 SetBackgroundColour(wxColour(0xEEEEEE));
942 m_main_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
943 m_main_panel->SetBackgroundColour(*wxWHITE);
944 m_main_sizer = new wxBoxSizer(wxVERTICAL);
945
946 StateColor head_bg(
947 std::pair<wxColour, int>(TABLE_HEAD_PRESSED_COLOUR, StateColor::Pressed),
948 std::pair<wxColour, int>(TABLE_HEAR_NORMAL_COLOUR, StateColor::Normal)
949 );
950
951 StateColor ctrl_bg(
952 std::pair<wxColour, int>(CTRL_BUTTON_PRESSEN_COLOUR, StateColor::Pressed),
953 std::pair<wxColour, int>(CTRL_BUTTON_NORMAL_COLOUR, StateColor::Normal)
954 );
955
956 m_table_head_panel = new wxPanel(m_main_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize);
957 m_table_head_panel->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
958 m_table_head_panel->SetMaxSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
959 m_table_head_panel->SetBackgroundColour(TABLE_HEAR_NORMAL_COLOUR);
960 m_table_head_sizer = new wxBoxSizer(wxHORIZONTAL);
961
962 m_select_checkbox = new CheckBox(m_table_head_panel, wxID_ANY);
963 m_select_checkbox->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
964 m_select_checkbox->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
965 //m_table_head_sizer->AddSpacer(FromDIP(TASK_LEFT_PADDING_LEFT));
966 m_table_head_sizer->Add(m_select_checkbox, 0, wxALIGN_CENTER_VERTICAL, 0);
967
968 m_select_checkbox->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) {
969 if (m_select_checkbox->GetValue()) {
970 for (auto it = m_task_items.begin(); it != m_task_items.end(); it++) {
971
972 if (it->second->state_cloud_task == 0) {
973 it->second->selected();
974 }
975 }
976 }
977 else {
978 for (auto it = m_task_items.begin(); it != m_task_items.end(); it++) {
979 it->second->unselected();
980 }
981 }
982 Refresh(false);
983 e.Skip();
984 });
985
986
987
988 m_task_name = new Button(m_table_head_panel, _L("Task Name"), "", wxNO_BORDER, ICON_SINGLE_SIZE);
989 m_task_name->SetBackgroundColor(TABLE_HEAR_NORMAL_COLOUR);
991 m_task_name->SetCornerRadius(0);
992 m_task_name->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
993 m_task_name->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
994 m_task_name->SetCenter(false);
995 m_table_head_sizer->Add(m_task_name, 0, wxALIGN_CENTER_VERTICAL, 0);
996
997 m_printer_name = new Button(m_table_head_panel, _L("Device Name"), "toolbar_double_directional_arrow", wxNO_BORDER, ICON_SINGLE_SIZE);
998 m_printer_name->SetBackgroundColor(head_bg);
1000 m_printer_name->SetCornerRadius(0);
1001 m_printer_name->SetMinSize(wxSize(FromDIP(TASK_LEFT_DEV_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1002 m_printer_name->SetMaxSize(wxSize(FromDIP(TASK_LEFT_DEV_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1003 m_printer_name->SetCenter(false);
1004 m_printer_name->Bind(wxEVT_ENTER_WINDOW, [&](wxMouseEvent& evt) {
1005 SetCursor(wxCURSOR_HAND);
1006 });
1007 m_printer_name->Bind(wxEVT_LEAVE_WINDOW, [&](wxMouseEvent& evt) {
1008 SetCursor(wxCURSOR_ARROW);
1009 });
1010 m_printer_name->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& evt) {
1013 this->refresh_user_device();
1014 });
1015 m_table_head_sizer->Add(m_printer_name, 0, wxALIGN_CENTER_VERTICAL, 0);
1016
1017 m_status = new Button(m_table_head_panel, _L("Task Status"), "toolbar_double_directional_arrow", wxNO_BORDER, ICON_SINGLE_SIZE);
1018 m_status->SetBackgroundColor(head_bg);
1019 m_status->SetFont(TABLE_HEAD_FONT);
1020 m_status->SetCornerRadius(0);
1021 m_status->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_STATE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1022 m_status->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_STATE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1023 m_status->SetCenter(false);
1024 m_status->Bind(wxEVT_ENTER_WINDOW, [&](wxMouseEvent& evt) {
1025 SetCursor(wxCURSOR_HAND);
1026 });
1027 m_status->Bind(wxEVT_LEAVE_WINDOW, [&](wxMouseEvent& evt) {
1028 SetCursor(wxCURSOR_ARROW);
1029 });
1030 m_status->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& evt) {
1033 this->refresh_user_device();
1034 });
1035 m_table_head_sizer->Add(m_status, 0, wxALIGN_CENTER_VERTICAL, 0);
1036
1037 m_info = new Button(m_table_head_panel, _L("Info"), "", wxNO_BORDER, ICON_SINGLE_SIZE);
1038 m_info->SetBackgroundColor(TABLE_HEAR_NORMAL_COLOUR);
1039 m_info->SetFont(TABLE_HEAD_FONT);
1040 m_info->SetCornerRadius(0);
1041 m_info->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1042 m_info->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1043 m_info->SetCenter(false);
1044 m_table_head_sizer->Add(m_info, 0, wxALIGN_CENTER_VERTICAL, 0);
1045
1046 m_send_time = new Button(m_table_head_panel, _L("Sent Time"), "toolbar_double_directional_arrow", wxNO_BORDER, ICON_SINGLE_SIZE, false);
1047 m_send_time->SetBackgroundColor(head_bg);
1048 m_send_time->SetFont(TABLE_HEAD_FONT);
1049 m_send_time->SetCornerRadius(0);
1050 m_send_time->SetMinSize(wxSize(FromDIP(TASK_LEFT_SEND_TIME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1051 m_send_time->SetMaxSize(wxSize(FromDIP(TASK_LEFT_SEND_TIME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1052 m_send_time->SetCenter(false);
1053 m_send_time->Bind(wxEVT_ENTER_WINDOW, [&](wxMouseEvent& evt) {
1054 SetCursor(wxCURSOR_HAND);
1055 });
1056 m_send_time->Bind(wxEVT_LEAVE_WINDOW, [&](wxMouseEvent& evt) {
1057 SetCursor(wxCURSOR_ARROW);
1058 });
1059 m_send_time->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& evt) {
1062 this->refresh_user_device();
1063 });
1064 m_table_head_sizer->Add(m_send_time, 0, wxALIGN_CENTER_VERTICAL, 0);
1065
1066 m_action = new Button(m_table_head_panel, _L("Actions"), "", wxNO_BORDER, ICON_SINGLE_SIZE, false);
1067 m_action->SetBackgroundColor(TABLE_HEAR_NORMAL_COLOUR);
1068 m_action->SetFont(TABLE_HEAD_FONT);
1069 m_action->SetCornerRadius(0);
1070 m_action->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1071 m_action->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1072 m_action->SetCenter(false);
1073 m_table_head_sizer->Add(m_action, 0, wxALIGN_CENTER_VERTICAL, 0);
1075 m_table_head_panel->Layout();
1076
1077 m_tip_text = new wxStaticText(m_main_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER);
1078 m_tip_text->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
1079 m_tip_text->SetMaxSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
1080 m_tip_text->SetLabel(_L("No historical tasks!"));
1081 m_tip_text->SetForegroundColour(wxColour(50, 58, 61));
1082 m_tip_text->SetFont(::Label::Head_24);
1083 m_tip_text->Wrap(-1);
1084
1085 m_loading_text = new wxStaticText(m_main_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER);
1086 m_loading_text->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
1087 m_loading_text->SetMaxSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
1088 m_loading_text->SetLabel(_L("Loading..."));
1089 m_loading_text->SetForegroundColour(wxColour(50, 58, 61));
1091 m_loading_text->Wrap(-1);
1092 m_loading_text->Show(false);
1093
1094 m_task_list = new wxScrolledWindow(m_main_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize);
1095 m_task_list->SetBackgroundColour(*wxWHITE);
1096 m_task_list->SetScrollRate(0, FromDIP(DEVICE_ITEM_MAX_HEIGHT));
1097 m_task_list->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1098 m_task_list->SetMaxSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), 10 * FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1099
1100 m_sizer_task_list = new wxBoxSizer(wxVERTICAL);
1101 m_task_list->SetSizer(m_sizer_task_list);
1102 m_task_list->Layout();
1103 m_task_list->Fit();
1104
1105 m_main_sizer->AddSpacer(FromDIP(50));
1106 m_main_sizer->Add(m_table_head_panel, 0, wxALIGN_CENTER_HORIZONTAL, 0);
1107 m_main_sizer->Add(m_tip_text, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, FromDIP(50));
1108 m_main_sizer->Add(m_loading_text, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, FromDIP(50));
1109 m_main_sizer->Add(m_task_list, 0, wxALIGN_CENTER_HORIZONTAL, 0);
1110 m_main_sizer->AddSpacer(FromDIP(5));
1111
1112 // add flipping page
1113 m_flipping_panel = new wxPanel(m_main_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize);
1114 m_flipping_panel->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
1115 m_flipping_panel->SetMaxSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
1116 m_flipping_panel->SetBackgroundColour(*wxWHITE);
1117
1118 m_flipping_page_sizer = new wxBoxSizer(wxHORIZONTAL);
1119 m_page_sizer = new wxBoxSizer(wxVERTICAL);
1120 btn_last_page = new Button(m_flipping_panel, "", "go_last_plate", wxBORDER_NONE, FromDIP(20));
1121 btn_last_page->SetMinSize(wxSize(FromDIP(20), FromDIP(20)));
1122 btn_last_page->SetMaxSize(wxSize(FromDIP(20), FromDIP(20)));
1123 btn_last_page->SetBackgroundColor(head_bg);
1124 btn_last_page->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [&](auto& evt) {
1125 evt.Skip();
1126 if (m_current_page == 0)
1127 return;
1128 enable_buttons(false);
1129 start_timer();
1131 if (m_current_page < 0)
1132 m_current_page = 0;
1135 /*m_sizer_task_list->Clear(false);
1136 m_loading_text->Show(true);
1137 Layout();*/
1138 });
1139 st_page_number = new wxStaticText(m_flipping_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize);
1140 btn_next_page = new Button(m_flipping_panel, "", "go_next_plate", wxBORDER_NONE, FromDIP(20));
1141 btn_next_page->SetMinSize(wxSize(FromDIP(20), FromDIP(20)));
1142 btn_next_page->SetMaxSize(wxSize(FromDIP(20), FromDIP(20)));
1143 btn_next_page->SetBackgroundColor(head_bg);
1144 btn_next_page->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [&](auto& evt) {
1145 evt.Skip();
1146 if (m_current_page == m_total_page - 1)
1147 return;
1148 enable_buttons(false);
1149 start_timer();
1151 if (m_current_page > m_total_page - 1)
1155 /*m_sizer_task_list->Clear(false);
1156 m_loading_text->Show(true);
1157 Layout();*/
1158 });
1159
1160 m_page_num_input = new ::TextInput(m_flipping_panel, wxEmptyString, wxEmptyString, wxEmptyString, wxDefaultPosition, wxSize(FromDIP(50), -1), wxTE_PROCESS_ENTER);
1161 StateColor input_bg(std::pair<wxColour, int>(wxColour("#F0F0F1"), StateColor::Disabled), std::pair<wxColour, int>(*wxWHITE, StateColor::Enabled));
1162 m_page_num_input->SetBackgroundColor(input_bg);
1163 m_page_num_input->GetTextCtrl()->SetValue("1");
1164 wxTextValidator validator(wxFILTER_DIGITS);
1165 m_page_num_input->GetTextCtrl()->SetValidator(validator);
1166 m_page_num_input->GetTextCtrl()->Bind(wxEVT_TEXT_ENTER, [&](wxCommandEvent& e) {
1168 });
1169
1170 m_page_num_enter = new Button(m_flipping_panel, _L("Go"));
1171 m_page_num_enter->SetMinSize(wxSize(FromDIP(25), FromDIP(25)));
1172 m_page_num_enter->SetMaxSize(wxSize(FromDIP(25), FromDIP(25)));
1173 m_page_num_enter->SetBackgroundColor(ctrl_bg);
1174 m_page_num_enter->SetCornerRadius(FromDIP(5));
1175 m_page_num_enter->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [&](auto& evt) {
1177 });
1178
1179 m_flipping_page_sizer->Add(0, 0, 1, wxEXPAND, 0);
1180 m_flipping_page_sizer->Add(btn_last_page, 0, wxALIGN_CENTER, 0);
1181 m_flipping_page_sizer->Add(st_page_number, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1182 m_flipping_page_sizer->Add(btn_next_page, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1183 m_flipping_page_sizer->Add(m_page_num_input, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(20));
1184 m_flipping_page_sizer->Add(m_page_num_enter, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(5));
1185 m_flipping_page_sizer->Add(0, 0, 1, wxEXPAND, 0);
1186 m_page_sizer->Add(m_flipping_page_sizer, 0, wxALIGN_CENTER_HORIZONTAL, FromDIP(5));
1187 m_flipping_panel->SetSizer(m_page_sizer);
1188 m_flipping_panel->Layout();
1189 m_main_sizer->Add(m_flipping_panel, 0, wxALIGN_CENTER_HORIZONTAL, 0);
1190
1191 m_ctrl_btn_panel = new wxPanel(m_main_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
1192 m_ctrl_btn_panel->SetBackgroundColour(*wxWHITE);
1193 m_ctrl_btn_panel->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
1194 m_ctrl_btn_panel->SetMaxSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1));
1195 m_btn_sizer = new wxBoxSizer(wxHORIZONTAL);
1196 btn_pause_all = new Button(m_ctrl_btn_panel, _L_CONTEXT("Pause", "Verb"));
1197 btn_pause_all->SetBackgroundColor(ctrl_bg);
1198 btn_pause_all->SetCornerRadius(FromDIP(5));
1199 btn_continue_all = new Button(m_ctrl_btn_panel, _L("Resume"));
1200 btn_continue_all->SetBackgroundColor(ctrl_bg);
1201 btn_continue_all->SetCornerRadius(FromDIP(5));
1202 btn_stop_all = new Button(m_ctrl_btn_panel, _L("Stop"));
1203 btn_stop_all->SetBackgroundColor(ctrl_bg);
1204 btn_stop_all->SetCornerRadius(FromDIP(5));
1205 m_sel_text = new wxStaticText(m_ctrl_btn_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize);
1206
1207 btn_pause_all->Bind(wxEVT_BUTTON, &CloudTaskManagerPage::pause_all, this);
1208 btn_continue_all->Bind(wxEVT_BUTTON, &CloudTaskManagerPage::resume_all, this);
1209 btn_stop_all->Bind(wxEVT_BUTTON, &CloudTaskManagerPage::stop_all, this);
1210
1211 m_btn_sizer->Add(m_sel_text, 0, wxLEFT, FromDIP(15));
1212 m_btn_sizer->Add(btn_pause_all, 0, wxLEFT, FromDIP(10));
1213 m_btn_sizer->Add(btn_continue_all, 0, wxLEFT, FromDIP(10));
1214 m_btn_sizer->Add(btn_stop_all, 0, wxLEFT, FromDIP(10));
1215 m_ctrl_btn_panel->SetSizer(m_btn_sizer);
1216 m_ctrl_btn_panel->Layout();
1217
1218 m_main_sizer->AddSpacer(FromDIP(10));
1219 m_main_sizer->Add(m_ctrl_btn_panel, 0, wxALIGN_CENTER_HORIZONTAL, 0);
1220 m_main_panel->SetSizer(m_main_sizer);
1221 m_main_panel->Layout();
1222
1223 page_sizer = new wxBoxSizer(wxVERTICAL);
1224 page_sizer->Add(m_main_panel, 1, wxALL | wxEXPAND, FromDIP(10)); // ORCA match margin with other tabs
1225 Bind(wxEVT_TIMER, &CloudTaskManagerPage::on_timer, this);
1226
1227 wxGetApp().UpdateDarkUIWin(this);
1228
1229 SetSizer(page_sizer);
1230 Layout();
1231 Fit();
1232}
#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
wxPanel * m_table_head_panel
Definition MultiTaskManagerPage.hpp:188
Button * m_send_time
Definition MultiTaskManagerPage.hpp:195
void page_num_enter_evt()
Definition MultiTaskManagerPage.cpp:1488
CheckBox * m_select_checkbox
Definition MultiTaskManagerPage.hpp:190
wxStaticText * m_tip_text
Definition MultiTaskManagerPage.hpp:207
Button * m_printer_name
Definition MultiTaskManagerPage.hpp:192
bool device_name_big
Definition MultiTaskManagerPage.hpp:159
TextInput * m_page_num_input
Definition MultiTaskManagerPage.hpp:184
Button * btn_stop_all
Definition MultiTaskManagerPage.hpp:203
wxStaticText * m_loading_text
Definition MultiTaskManagerPage.hpp:208
int m_current_page
Definition MultiTaskManagerPage.hpp:173
Button * m_page_num_enter
Definition MultiTaskManagerPage.hpp:185
wxScrolledWindow * m_task_list
Definition MultiTaskManagerPage.hpp:170
Button * m_info
Definition MultiTaskManagerPage.hpp:194
wxBoxSizer * m_main_sizer
Definition MultiTaskManagerPage.hpp:169
Button * btn_continue_all
Definition MultiTaskManagerPage.hpp:202
Button * btn_last_page
Definition MultiTaskManagerPage.hpp:177
wxBoxSizer * m_btn_sizer
Definition MultiTaskManagerPage.hpp:200
void update_page_number()
Definition MultiTaskManagerPage.cpp:1422
bool device_state_big
Definition MultiTaskManagerPage.hpp:160
Button * btn_next_page
Definition MultiTaskManagerPage.hpp:178
Button * m_task_name
Definition MultiTaskManagerPage.hpp:191
void start_timer()
Definition MultiTaskManagerPage.cpp:1431
wxStaticText * st_page_number
Definition MultiTaskManagerPage.hpp:179
wxPanel * m_ctrl_btn_panel
Definition MultiTaskManagerPage.hpp:199
wxBoxSizer * m_page_sizer
Definition MultiTaskManagerPage.hpp:181
wxBoxSizer * m_table_head_sizer
Definition MultiTaskManagerPage.hpp:189
void stop_all(wxCommandEvent &evt)
Definition MultiTaskManagerPage.cpp:1470
void refresh_user_device(bool clear=false)
Definition MultiTaskManagerPage.cpp:1242
wxBoxSizer * m_sizer_task_list
Definition MultiTaskManagerPage.hpp:168
Button * m_status
Definition MultiTaskManagerPage.hpp:193
void pause_all(wxCommandEvent &evt)
Definition MultiTaskManagerPage.cpp:1452
void on_timer(wxTimerEvent &event)
Definition MultiTaskManagerPage.cpp:1445
bool device_send_time
Definition MultiTaskManagerPage.hpp:161
wxPanel * m_flipping_panel
Definition MultiTaskManagerPage.hpp:182
wxStaticText * m_sel_text
Definition MultiTaskManagerPage.hpp:204
void resume_all(wxCommandEvent &evt)
Definition MultiTaskManagerPage.cpp:1461
wxPanel * m_main_panel
Definition MultiTaskManagerPage.hpp:166
SortItem m_sort
Definition MultiTaskManagerPage.hpp:158
wxBoxSizer * page_sizer
Definition MultiTaskManagerPage.hpp:167
wxBoxSizer * m_flipping_page_sizer
Definition MultiTaskManagerPage.hpp:180
void enable_buttons(bool enable)
Definition MultiTaskManagerPage.cpp:1479
std::map< std::string, MultiTaskItem * > m_task_items
Definition MultiTaskManagerPage.hpp:164
Button * btn_pause_all
Definition MultiTaskManagerPage.hpp:201
int m_total_page
Definition MultiTaskManagerPage.hpp:174
Button * m_action
Definition MultiTaskManagerPage.hpp:196
@ Normal
Definition StateColor.hpp:16
@ Disabled
Definition StateColor.hpp:22
@ Pressed
Definition StateColor.hpp:21
@ Enabled
Definition StateColor.hpp:17
wxMouseEvent
Definition CameraPopup.cpp:47
#define _L_CONTEXT(s, ctx)
Definition I18N.hpp:15
@ SR_DEV_NAME
Definition MultiMachine.hpp:88
@ SR_CLOUD_TASK_STATE
Definition MultiMachine.hpp:94
@ SR_SEND_TIME
Definition MultiMachine.hpp:95

References _L, _L_CONTEXT, btn_continue_all, btn_last_page, btn_next_page, btn_pause_all, btn_stop_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, StateColor::Disabled, enable_buttons(), StateColor::Enabled, Label::Head_24, ICON_SINGLE_SIZE, m_action, m_btn_sizer, m_ctrl_btn_panel, m_current_page, m_flipping_page_sizer, m_flipping_panel, m_info, m_loading_text, m_main_panel, m_main_sizer, m_page_num_enter, m_page_num_input, m_page_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, m_total_page, StateColor::Normal, on_timer(), page_num_enter_evt(), page_sizer, pause_all(), StateColor::Pressed, refresh_user_device(), resume_all(), Slic3r::GUI::SortItem::SR_CLOUD_TASK_STATE, Slic3r::GUI::SortItem::SR_DEV_NAME, Slic3r::GUI::SortItem::SR_SEND_TIME, st_page_number, start_timer(), stop_all(), 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, update_page_number(), Slic3r::GUI::wxMouseEvent, and wxStaticText.

Here is the call graph for this function:

◆ ~CloudTaskManagerPage()

Slic3r::GUI::CloudTaskManagerPage::~CloudTaskManagerPage ( )
1235{
1236 if (m_flipping_timer)
1237 m_flipping_timer->Stop();
1238 delete m_flipping_timer;
1239}
wxTimer * m_flipping_timer
Definition MultiTaskManagerPage.hpp:183

References m_flipping_timer.

Member Function Documentation

◆ enable_buttons()

void Slic3r::GUI::CloudTaskManagerPage::enable_buttons ( bool enable)
1480{
1481 btn_last_page->Enable(enable);
1482 btn_next_page->Enable(enable);
1483 btn_pause_all->Enable(enable);
1484 btn_continue_all->Enable(enable);
1485 btn_stop_all->Enable(enable);
1486}

References btn_continue_all, btn_last_page, btn_next_page, btn_pause_all, and btn_stop_all.

Referenced by CloudTaskManagerPage(), on_timer(), and page_num_enter_evt().

Here is the caller graph for this function:

◆ msw_rescale()

void Slic3r::GUI::CloudTaskManagerPage::msw_rescale ( )
1510{
1511 btn_last_page->Rescale();
1512 btn_last_page->SetMinSize(wxSize(FromDIP(20), FromDIP(20)));
1513 btn_last_page->SetMaxSize(wxSize(FromDIP(20), FromDIP(20)));
1514 btn_next_page->Rescale();
1515 btn_next_page->SetMinSize(wxSize(FromDIP(20), FromDIP(20)));
1516 btn_next_page->SetMaxSize(wxSize(FromDIP(20), FromDIP(20)));
1517 m_page_num_enter->Rescale();
1518 m_page_num_enter->SetMinSize(wxSize(FromDIP(25), FromDIP(25)));
1519 m_page_num_enter->SetMaxSize(wxSize(FromDIP(25), FromDIP(25)));
1520
1521 m_select_checkbox->Rescale();
1522 m_select_checkbox->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1523 m_select_checkbox->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1524 m_task_name->Rescale();
1525 m_task_name->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1526 m_task_name->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1527 m_printer_name->Rescale();
1528 m_printer_name->SetMinSize(wxSize(FromDIP(TASK_LEFT_DEV_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1529 m_printer_name->SetMaxSize(wxSize(FromDIP(TASK_LEFT_DEV_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1530 m_status->Rescale();
1531 m_status->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_STATE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1532 m_status->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_STATE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1533 m_info->Rescale();
1534 m_info->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1535 m_info->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1536 m_send_time->Rescale();
1537 m_send_time->SetMinSize(wxSize(FromDIP(TASK_LEFT_SEND_TIME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1538 m_send_time->SetMaxSize(wxSize(FromDIP(TASK_LEFT_SEND_TIME), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1539 m_action->Rescale();
1540 m_action->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1541 m_action->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRO_INFO), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1542
1543 btn_pause_all->Rescale();
1544 btn_continue_all->Rescale();
1545 btn_stop_all->Rescale();
1546
1547 for (auto it = m_task_items.begin(); it != m_task_items.end(); ++it) {
1548 it->second->Refresh();
1549 }
1550
1551 Fit();
1552 Layout();
1553 Refresh();
1554}

References btn_continue_all, btn_last_page, btn_next_page, btn_pause_all, btn_stop_all, DEVICE_ITEM_MAX_HEIGHT, m_action, m_info, m_page_num_enter, 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.

◆ on_timer()

void Slic3r::GUI::CloudTaskManagerPage::on_timer ( wxTimerEvent & event)
1446{
1447 m_flipping_timer->Stop();
1448 enable_buttons(true);
1450}

References enable_buttons(), m_flipping_timer, and update_page_number().

Referenced by CloudTaskManagerPage().

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

◆ page_num_enter_evt()

void Slic3r::GUI::CloudTaskManagerPage::page_num_enter_evt ( )
1489{
1490 enable_buttons(false);
1491 start_timer();
1492 auto value = m_page_num_input->GetTextCtrl()->GetValue();
1493 long page_num = 0;
1494 if (value.ToLong(&page_num)) {
1495 if (page_num > m_total_page)
1497 else if (page_num < 1)
1498 m_current_page = 0;
1499 else
1500 m_current_page = page_num - 1;
1501 }
1504 /*m_sizer_task_list->Clear(false);
1505 m_loading_text->Show(true);
1506 Layout();*/
1507}

References enable_buttons(), m_current_page, m_page_num_input, m_total_page, refresh_user_device(), start_timer(), and update_page_number().

Referenced by CloudTaskManagerPage().

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

◆ pause_all()

void Slic3r::GUI::CloudTaskManagerPage::pause_all ( wxCommandEvent & evt)
1453{
1454 for (auto it = m_task_items.begin(); it != m_task_items.end(); it++) {
1455 if (it->second->m_button_pause->IsShown() && (it->second->get_state_selected() == 1) && it->second->state_cloud_task == 0) {
1456 it->second->onPause();
1457 }
1458 }
1459}

References m_task_items.

Referenced by CloudTaskManagerPage().

Here is the caller graph for this function:

◆ refresh_user_device()

void Slic3r::GUI::CloudTaskManagerPage::refresh_user_device ( bool clear = false)
1243{
1244 m_sizer_task_list->Clear(false);
1245
1246 Slic3r::DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
1247 if (!dev) {
1248 for (auto it = m_task_items.begin(); it != m_task_items.end(); it++) {
1249 wxWindow* child = it->second;
1250 child->Destroy();
1251 }
1252 m_flipping_panel->Show(false);
1253 m_ctrl_btn_panel->Show(false);
1254 return;
1255 }
1256
1257 if (clear) return;
1258
1259 std::vector<MultiTaskItem*> task_temps;
1260 std::vector<std::string> subscribe_list;
1261
1262 auto all_machine = dev->get_my_cloud_machine_list();
1263 auto user_machine = std::map<std::string, MachineObject*>();
1264
1265 //selected machine
1266 for (int i = 0; i < PICK_DEVICE_MAX; i++) {
1267 auto dev_id = wxGetApp().app_config->get("multi_devices", std::to_string(i));
1268
1269 if (all_machine.count(dev_id) > 0) {
1270 user_machine[dev_id] = all_machine[dev_id];
1271 }
1272 }
1273
1274 auto task_manager = wxGetApp().getTaskManager();
1275 if (task_manager) {
1276 auto m_task_obj_list = task_manager->get_task_list(m_current_page, m_count_page_item, m_total_count);
1277
1278 for (auto it = m_task_obj_list.begin(); it != m_task_obj_list.end(); it++) {
1279
1280 TaskStateInfo task_state_info = it->second;
1281 MachineObject* machine_obj = nullptr;
1282
1283 if (user_machine.count(task_state_info.params().dev_id)) {
1284 machine_obj = user_machine[task_state_info.params().dev_id];
1285 }
1286
1287 MultiTaskItem* mtitem = new MultiTaskItem(m_task_list, machine_obj, 1);
1288 //mtitem->task_obj = task_state_info;
1289 mtitem->m_job_id = task_state_info.get_job_id();
1290 mtitem->m_project_name = wxString::FromUTF8(task_state_info.get_task_name());
1291 mtitem->m_dev_name = wxString::FromUTF8(task_state_info.get_device_name());
1292 mtitem->m_dev_id = task_state_info.params().dev_id;
1293
1294 mtitem->m_send_time = utc_time_to_date(task_state_info.start_time);
1295
1296 if (task_state_info.state() == TS_PRINTING) {
1297 mtitem->state_cloud_task = 0;
1298 }
1299 else if (task_state_info.state() == TS_PRINT_SUCCESS) {
1300 mtitem->state_cloud_task = 1;
1301 }
1302 else if (task_state_info.state() == TS_PRINT_FAILED) {
1303 mtitem->state_cloud_task = 2;
1304 }
1305
1306 if (m_task_items.find(it->first) != m_task_items.end()) {
1307 MultiTaskItem* item = m_task_items[it->first];
1308 if (item->state_selected == 1 && mtitem->state_cloud_task == 0)
1309 mtitem->state_selected = item->state_selected;
1310 item->Destroy();
1311 }
1312
1313 m_task_items[it->first] = mtitem;
1314 mtitem->update_info();
1315 task_temps.push_back(mtitem);
1316
1317 auto find_it = std::find(subscribe_list.begin(), subscribe_list.end(), mtitem->m_dev_id);
1318 if (find_it == subscribe_list.end()) {
1319 subscribe_list.push_back(mtitem->m_dev_id);
1320 }
1321 }
1322
1323 dev->subscribe_device_list(subscribe_list);
1324
1325 if (m_sort.rule == SortItem::SortRule::SR_None) {
1326 this->device_send_time = true;
1328 }
1329 std::sort(task_temps.begin(), task_temps.end(), m_sort.get_call_back());
1330
1331 for (const auto& item : task_temps)
1332 m_sizer_task_list->Add(item, 0, wxALL | wxEXPAND, 0);
1333
1334 // maintenance
1335 auto it = m_task_items.begin();
1336 while (it != m_task_items.end()) {
1337 if (m_task_obj_list.find(it->first) != m_task_obj_list.end()) {
1338 ++it;
1339 }
1340 else {
1341 it->second->Destroy();
1342 it = m_task_items.erase(it);
1343 }
1344 }
1345 m_sizer_task_list->Layout();
1346 int num = m_task_items.size() > 10 ? 10 : m_task_items.size();
1347 m_task_list->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), num * FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
1348 m_task_list->Layout();
1349 }
1350
1352
1353 m_tip_text->Show(m_task_items.empty());
1354 m_flipping_panel->Show(m_total_page > 1);
1355 m_ctrl_btn_panel->Show(!m_task_items.empty());
1356 Layout();
1357}
#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
int m_total_count
Definition MultiTaskManagerPage.hpp:175
std::string utc_time_to_date(std::string utc_time)
Definition MultiTaskManagerPage.cpp:1359
int m_count_page_item
Definition MultiTaskManagerPage.hpp:176
@ TS_PRINT_FAILED
Definition TaskManager.hpp:35
@ TS_PRINT_SUCCESS
Definition TaskManager.hpp:34
@ TS_PRINTING
Definition TaskManager.hpp:32
@ SR_None
Definition MultiMachine.hpp:87

References CLOUD_TASK_ITEM_MAX_WIDTH, Slic3r::PrintParams::dev_id, DEVICE_ITEM_MAX_HEIGHT, device_send_time, Slic3r::TaskStateInfo::get_device_name(), Slic3r::TaskStateInfo::get_job_id(), Slic3r::DeviceManager::get_my_cloud_machine_list(), Slic3r::TaskStateInfo::get_task_name(), m_count_page_item, m_ctrl_btn_panel, m_current_page, Slic3r::GUI::MultiTaskItem::m_dev_id, Slic3r::GUI::MultiTaskItem::m_dev_name, m_flipping_panel, Slic3r::GUI::MultiTaskItem::m_job_id, Slic3r::GUI::MultiTaskItem::m_project_name, Slic3r::GUI::DeviceItem::m_send_time, m_sizer_task_list, m_sort, m_task_items, m_task_list, m_tip_text, m_total_count, m_total_page, Slic3r::TaskStateInfo::params(), PICK_DEVICE_MAX, Slic3r::GUI::SortItem::SR_None, Slic3r::GUI::SortItem::SR_SEND_TIME, Slic3r::TaskStateInfo::start_time, Slic3r::TaskStateInfo::state(), Slic3r::GUI::DeviceItem::state_cloud_task, Slic3r::GUI::DeviceItem::state_selected, Slic3r::DeviceManager::subscribe_device_list(), Slic3r::TS_PRINT_FAILED, Slic3r::TS_PRINT_SUCCESS, Slic3r::TS_PRINTING, Slic3r::GUI::MultiTaskItem::update_info(), update_page_number(), and utc_time_to_date().

Referenced by CloudTaskManagerPage(), page_num_enter_evt(), and Show().

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

◆ resume_all()

void Slic3r::GUI::CloudTaskManagerPage::resume_all ( wxCommandEvent & evt)
1462{
1463 for (auto it = m_task_items.begin(); it != m_task_items.end(); it++) {
1464 if (it->second->m_button_resume->IsShown() && (it->second->get_state_selected() == 1) && it->second->state_cloud_task == 0) {
1465 it->second->onResume();
1466 }
1467 }
1468}

References m_task_items.

Referenced by CloudTaskManagerPage().

Here is the caller graph for this function:

◆ Show()

bool Slic3r::GUI::CloudTaskManagerPage::Show ( bool show)
1400{
1401 if (show) {
1403 }
1404 else {
1405 Slic3r::DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
1406 if (dev) {
1407 dev->subscribe_device_list(std::vector<std::string>());
1408 }
1409 }
1410
1411 return wxPanel::Show(show);
1412}

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

Here is the call graph for this function:

◆ start_timer()

void Slic3r::GUI::CloudTaskManagerPage::start_timer ( )
1432{
1433 if (m_flipping_timer) {
1434 m_flipping_timer->Stop();
1435 }
1436 else {
1437 m_flipping_timer = new wxTimer();
1438 }
1439
1440 m_flipping_timer->SetOwner(this);
1441 m_flipping_timer->Start(1000);
1442 wxPostEvent(this, wxTimerEvent(*m_flipping_timer));
1443}

References m_flipping_timer.

Referenced by CloudTaskManagerPage(), and page_num_enter_evt().

Here is the caller graph for this function:

◆ stop_all()

void Slic3r::GUI::CloudTaskManagerPage::stop_all ( wxCommandEvent & evt)
1471{
1472 for (auto it = m_task_items.begin(); it != m_task_items.end(); it++) {
1473 if (it->second->m_button_stop->IsShown() && (it->second->get_state_selected() == 1) && it->second->state_cloud_task == 0) {
1474 it->second->onStop();
1475 }
1476 }
1477}

References m_task_items.

Referenced by CloudTaskManagerPage().

Here is the caller graph for this function:

◆ update_page()

void Slic3r::GUI::CloudTaskManagerPage::update_page ( )
1415{
1416 for (auto it = m_task_items.begin(); it != m_task_items.end(); it++) {
1417 it->second->sync_state();
1418 it->second->update_info();
1419 }
1420}

References m_task_items.

◆ update_page_number()

void Slic3r::GUI::CloudTaskManagerPage::update_page_number ( )
1423{
1424 double result = static_cast<double>(m_total_count) / m_count_page_item;
1425 m_total_page = std::ceil(result);
1426
1427 wxString number = wxString(std::to_string(m_current_page + 1)) + " / " + wxString(std::to_string(m_total_page));
1428 st_page_number->SetLabel(number);
1429}

References m_count_page_item, m_current_page, m_total_count, m_total_page, and st_page_number.

Referenced by CloudTaskManagerPage(), on_timer(), page_num_enter_evt(), and refresh_user_device().

Here is the caller graph for this function:

◆ utc_time_to_date()

std::string Slic3r::GUI::CloudTaskManagerPage::utc_time_to_date ( std::string utc_time)
1360{
1361 /*std::tm timeInfo = {};
1362 std::istringstream iss(utc_time);
1363 iss >> std::get_time(&timeInfo, "%Y-%m-%dT%H:%M:%SZ");
1364
1365 std::chrono::system_clock::time_point tp = std::chrono::system_clock::from_time_t(std::mktime(&timeInfo));
1366 std::time_t localTime = std::chrono::system_clock::to_time_t(tp);
1367 std::tm* localTimeInfo = std::localtime(&localTime);
1368
1369 std::stringstream ss;
1370 ss << std::put_time(localTimeInfo, "%Y-%m-%d %H:%M:%S");
1371 return ss.str();*/
1372 std::string send_time;
1373
1374
1375 std::tm timeInfo = {};
1376 std::istringstream iss(utc_time);
1377 iss >> std::get_time(&timeInfo, "%Y-%m-%dT%H:%M:%SZ");
1378
1379 std::chrono::system_clock::time_point tp = std::chrono::system_clock::from_time_t(std::mktime(&timeInfo));
1380 std::time_t utcTime = std::chrono::system_clock::to_time_t(tp);
1381
1382
1383 wxDateTime::TimeZone tz(wxDateTime::Local);
1384 long offset = tz.GetOffset();
1385
1386
1387 std::time_t localTime = utcTime + offset;
1388
1389 std::tm* localTimeInfo = std::localtime(&localTime);
1390 std::stringstream ss;
1391 ss << std::put_time(localTimeInfo, "%Y-%m-%d %H:%M:%S");
1392 send_time = ss.str();
1393
1394
1395 return send_time;
1396}
Slic3r::Polygons offset(const Slic3r::Polygon &polygon, const float delta, JoinType joinType, double miterLimit)
Definition ClipperUtils.cpp:582

References Slic3r::offset().

Referenced by refresh_user_device().

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

Member Data Documentation

◆ btn_continue_all

Button* Slic3r::GUI::CloudTaskManagerPage::btn_continue_all { nullptr }
private
202{ nullptr };

Referenced by CloudTaskManagerPage(), enable_buttons(), and msw_rescale().

◆ btn_last_page

Button* Slic3r::GUI::CloudTaskManagerPage::btn_last_page { nullptr }
private
177{ nullptr };

Referenced by CloudTaskManagerPage(), enable_buttons(), and msw_rescale().

◆ btn_next_page

Button* Slic3r::GUI::CloudTaskManagerPage::btn_next_page { nullptr }
private
178{ nullptr };

Referenced by CloudTaskManagerPage(), enable_buttons(), and msw_rescale().

◆ btn_pause_all

Button* Slic3r::GUI::CloudTaskManagerPage::btn_pause_all { nullptr }
private
201{ nullptr };

Referenced by CloudTaskManagerPage(), enable_buttons(), and msw_rescale().

◆ btn_stop_all

Button* Slic3r::GUI::CloudTaskManagerPage::btn_stop_all { nullptr }
private
203{ nullptr };

Referenced by CloudTaskManagerPage(), enable_buttons(), and msw_rescale().

◆ device_name_big

bool Slic3r::GUI::CloudTaskManagerPage::device_name_big { true }
private
159{ true };

Referenced by CloudTaskManagerPage().

◆ device_send_time

bool Slic3r::GUI::CloudTaskManagerPage::device_send_time { true }
private
161{ true };

Referenced by CloudTaskManagerPage(), and refresh_user_device().

◆ device_state_big

bool Slic3r::GUI::CloudTaskManagerPage::device_state_big { true }
private
160{ true };

Referenced by CloudTaskManagerPage().

◆ m_action

Button* Slic3r::GUI::CloudTaskManagerPage::m_action { nullptr }
private
196{ nullptr };

Referenced by CloudTaskManagerPage(), and msw_rescale().

◆ m_btn_sizer

wxBoxSizer* Slic3r::GUI::CloudTaskManagerPage::m_btn_sizer { nullptr }
private
200{ nullptr };

Referenced by CloudTaskManagerPage().

◆ m_count_page_item

int Slic3r::GUI::CloudTaskManagerPage::m_count_page_item { 10 }
private
176{ 10 };

Referenced by refresh_user_device(), and update_page_number().

◆ m_ctrl_btn_panel

wxPanel* Slic3r::GUI::CloudTaskManagerPage::m_ctrl_btn_panel { nullptr }
private
199{ nullptr };

Referenced by CloudTaskManagerPage(), and refresh_user_device().

◆ m_current_page

int Slic3r::GUI::CloudTaskManagerPage::m_current_page { 0 }
private

◆ m_flipping_page_sizer

wxBoxSizer* Slic3r::GUI::CloudTaskManagerPage::m_flipping_page_sizer { nullptr }
private
180{ nullptr };

Referenced by CloudTaskManagerPage().

◆ m_flipping_panel

wxPanel* Slic3r::GUI::CloudTaskManagerPage::m_flipping_panel { nullptr }
private
182{ nullptr };

Referenced by CloudTaskManagerPage(), and refresh_user_device().

◆ m_flipping_timer

wxTimer* Slic3r::GUI::CloudTaskManagerPage::m_flipping_timer { nullptr }
private
183{ nullptr };

Referenced by ~CloudTaskManagerPage(), on_timer(), and start_timer().

◆ m_info

Button* Slic3r::GUI::CloudTaskManagerPage::m_info { nullptr }
private
194{ nullptr };

Referenced by CloudTaskManagerPage(), and msw_rescale().

◆ m_loading_text

wxStaticText* Slic3r::GUI::CloudTaskManagerPage::m_loading_text { nullptr }
private
208{ nullptr };

Referenced by CloudTaskManagerPage().

◆ m_main_panel

wxPanel* Slic3r::GUI::CloudTaskManagerPage::m_main_panel { nullptr }
private
166{ nullptr };

Referenced by CloudTaskManagerPage().

◆ m_main_sizer

wxBoxSizer* Slic3r::GUI::CloudTaskManagerPage::m_main_sizer { nullptr }
private
169{ nullptr };

Referenced by CloudTaskManagerPage().

◆ m_page_num_enter

Button* Slic3r::GUI::CloudTaskManagerPage::m_page_num_enter { nullptr }
private
185{ nullptr };

Referenced by CloudTaskManagerPage(), and msw_rescale().

◆ m_page_num_input

TextInput* Slic3r::GUI::CloudTaskManagerPage::m_page_num_input { nullptr }
private
184{ nullptr };

Referenced by CloudTaskManagerPage(), and page_num_enter_evt().

◆ m_page_sizer

wxBoxSizer* Slic3r::GUI::CloudTaskManagerPage::m_page_sizer { nullptr }
private
181{ nullptr };

Referenced by CloudTaskManagerPage().

◆ m_printer_name

Button* Slic3r::GUI::CloudTaskManagerPage::m_printer_name { nullptr }
private
192{ nullptr };

Referenced by CloudTaskManagerPage(), and msw_rescale().

◆ m_sel_text

wxStaticText* Slic3r::GUI::CloudTaskManagerPage::m_sel_text { nullptr }
private
204{ nullptr };

Referenced by CloudTaskManagerPage().

◆ m_select_checkbox

CheckBox* Slic3r::GUI::CloudTaskManagerPage::m_select_checkbox { nullptr }
private
190{ nullptr };

Referenced by CloudTaskManagerPage(), and msw_rescale().

◆ m_send_time

Button* Slic3r::GUI::CloudTaskManagerPage::m_send_time { nullptr }
private
195{ nullptr };

Referenced by CloudTaskManagerPage(), and msw_rescale().

◆ m_sizer_task_list

wxBoxSizer* Slic3r::GUI::CloudTaskManagerPage::m_sizer_task_list { nullptr }
private
168{ nullptr };

Referenced by CloudTaskManagerPage(), and refresh_user_device().

◆ m_sort

SortItem Slic3r::GUI::CloudTaskManagerPage::m_sort
private

◆ m_status

Button* Slic3r::GUI::CloudTaskManagerPage::m_status { nullptr }
private
193{ nullptr };

Referenced by CloudTaskManagerPage(), and msw_rescale().

◆ m_table_head_panel

wxPanel* Slic3r::GUI::CloudTaskManagerPage::m_table_head_panel { nullptr }
private
188{ nullptr };

Referenced by CloudTaskManagerPage().

◆ m_table_head_sizer

wxBoxSizer* Slic3r::GUI::CloudTaskManagerPage::m_table_head_sizer { nullptr }
private
189{ nullptr };

Referenced by CloudTaskManagerPage().

◆ m_task_items

std::map<std::string, MultiTaskItem*> Slic3r::GUI::CloudTaskManagerPage::m_task_items
private

◆ m_task_list

wxScrolledWindow* Slic3r::GUI::CloudTaskManagerPage::m_task_list { nullptr }
private
170{ nullptr };

Referenced by CloudTaskManagerPage(), and refresh_user_device().

◆ m_task_name

Button* Slic3r::GUI::CloudTaskManagerPage::m_task_name { nullptr }
private
191{ nullptr };

Referenced by CloudTaskManagerPage(), and msw_rescale().

◆ m_tip_text

wxStaticText* Slic3r::GUI::CloudTaskManagerPage::m_tip_text { nullptr }
private
207{ nullptr };

Referenced by CloudTaskManagerPage(), and refresh_user_device().

◆ m_total_count

int Slic3r::GUI::CloudTaskManagerPage::m_total_count { 0 }
private
175{ 0 };

Referenced by refresh_user_device(), and update_page_number().

◆ m_total_page

int Slic3r::GUI::CloudTaskManagerPage::m_total_page {0}
private

◆ page_sizer

wxBoxSizer* Slic3r::GUI::CloudTaskManagerPage::page_sizer { nullptr }
private
167{ nullptr };

Referenced by CloudTaskManagerPage().

◆ st_page_number

wxStaticText* Slic3r::GUI::CloudTaskManagerPage::st_page_number { nullptr }
private
179{ nullptr };

Referenced by CloudTaskManagerPage(), and update_page_number().


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