From a8e7c63113186c385e906eb391598ab3cda8c85e Mon Sep 17 00:00:00 2001 From: Kunlong Ma Date: Thu, 18 Apr 2024 14:57:23 +0800 Subject: [PATCH] ENH: refine ui for multi machine JIRA: STUDIO-6819 STUDIO-6824 1. Shrink the Send Print dialog box 2. add input box for flipping panel Change-Id: I4174c79ecd239c374ee11478951e12be399c57ce --- src/libslic3r/AppConfig.cpp | 2 +- src/slic3r/GUI/MultiMachine.hpp | 2 +- src/slic3r/GUI/MultiMachineManagerPage.cpp | 81 +++++++++--- src/slic3r/GUI/MultiMachineManagerPage.hpp | 4 + src/slic3r/GUI/MultiTaskManagerPage.cpp | 141 +++++++++++++++------ src/slic3r/GUI/MultiTaskManagerPage.hpp | 52 ++++---- src/slic3r/GUI/SendMultiMachinePage.cpp | 38 +++--- 7 files changed, 224 insertions(+), 96 deletions(-) diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index 86662b2be..6b7242b5b 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -330,7 +330,7 @@ void AppConfig::set_defaults() } if (get("sending_interval").empty()) { - set("sending_interval", "60"); + set("sending_interval", "1"); } if (get("max_send").empty()) { diff --git a/src/slic3r/GUI/MultiMachine.hpp b/src/slic3r/GUI/MultiMachine.hpp index 0ad3fe0a1..d3141765b 100644 --- a/src/slic3r/GUI/MultiMachine.hpp +++ b/src/slic3r/GUI/MultiMachine.hpp @@ -10,7 +10,7 @@ namespace GUI { #define DEVICE_ITEM_MAX_WIDTH 900 -#define SEND_ITEM_MAX_HEIGHT 40 +#define SEND_ITEM_MAX_HEIGHT 30 #define DEVICE_ITEM_MAX_HEIGHT 50 #define TABLE_HEAR_NORMAL_COLOUR wxColour(238, 238, 238) diff --git a/src/slic3r/GUI/MultiMachineManagerPage.cpp b/src/slic3r/GUI/MultiMachineManagerPage.cpp index ce563ee37..6e63858d9 100644 --- a/src/slic3r/GUI/MultiMachineManagerPage.cpp +++ b/src/slic3r/GUI/MultiMachineManagerPage.cpp @@ -375,6 +375,11 @@ MultiMachineManagerPage::MultiMachineManagerPage(wxWindow* parent) m_machine_list->Layout(); // add flipping page + StateColor ctrl_bg( + std::pair(CTRL_BUTTON_PRESSEN_COLOUR, StateColor::Pressed), + std::pair(CTRL_BUTTON_NORMAL_COLOUR, StateColor::Normal) + ); + m_flipping_panel = new wxPanel(m_main_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize); m_flipping_panel->SetMinSize(wxSize(FromDIP(DEVICE_ITEM_MAX_WIDTH), -1)); m_flipping_panel->SetMaxSize(wxSize(FromDIP(DEVICE_ITEM_MAX_WIDTH), -1)); @@ -382,11 +387,14 @@ MultiMachineManagerPage::MultiMachineManagerPage(wxWindow* parent) m_flipping_page_sizer = new wxBoxSizer(wxHORIZONTAL); m_page_sizer = new wxBoxSizer(wxVERTICAL); - btn_last_page = new Button(m_flipping_panel, "", "go_last_plate", 0, ICON_SIZE); - btn_last_page->SetMinSize(wxSize(ICON_SIZE, ICON_SIZE)); - btn_last_page->SetMaxSize(wxSize(ICON_SIZE, ICON_SIZE)); + btn_last_page = new Button(m_flipping_panel, "", "go_last_plate", 0, FromDIP(20)); + btn_last_page->SetMinSize(wxSize(FromDIP(20), FromDIP(20))); + btn_last_page->SetMaxSize(wxSize(FromDIP(20), FromDIP(20))); btn_last_page->SetBackgroundColor(head_bg); btn_last_page->Bind(wxEVT_LEFT_DOWN, [&](wxMouseEvent& evt) { + evt.Skip(); + if (m_current_page == 0) + return; btn_last_page->Enable(false); btn_next_page->Enable(false); start_timer(); @@ -395,26 +403,51 @@ MultiMachineManagerPage::MultiMachineManagerPage(wxWindow* parent) m_current_page = 0; refresh_user_device(); update_page_number(); - }); - btn_next_page = new Button(m_flipping_panel, "", "go_next_plate", 0, ICON_SIZE); - btn_next_page->SetMinSize(wxSize(ICON_SIZE, ICON_SIZE)); - btn_next_page->SetMaxSize(wxSize(ICON_SIZE, ICON_SIZE)); + }); + st_page_number = new wxStaticText(m_flipping_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize); + btn_next_page = new Button(m_flipping_panel, "", "go_next_plate", 0, FromDIP(20)); + btn_next_page->SetMinSize(wxSize(FromDIP(20), FromDIP(20))); + btn_next_page->SetMaxSize(wxSize(FromDIP(20), FromDIP(20))); btn_next_page->SetBackgroundColor(head_bg); btn_next_page->Bind(wxEVT_LEFT_DOWN, [&](wxMouseEvent& evt) { + evt.Skip(); + if (m_current_page == m_total_page - 1) + return; btn_last_page->Enable(false); btn_next_page->Enable(false); start_timer(); m_current_page++; - if (m_current_page > m_total_count) - m_current_page = m_total_count; + if (m_current_page > m_total_page - 1) + m_current_page = m_total_page - 1; refresh_user_device(); update_page_number(); - }); - st_page_number = new wxStaticText(m_flipping_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize); + }); + + m_page_num_input = new ::TextInput(m_flipping_panel, wxEmptyString, wxEmptyString, wxEmptyString, wxDefaultPosition, wxSize(FromDIP(50), -1), wxTE_PROCESS_ENTER); + StateColor input_bg(std::pair(wxColour("#F0F0F1"), StateColor::Disabled), std::pair(*wxWHITE, StateColor::Enabled)); + m_page_num_input->SetBackgroundColor(input_bg); + m_page_num_input->GetTextCtrl()->SetValue("1"); + wxTextValidator validator(wxFILTER_DIGITS); + m_page_num_input->GetTextCtrl()->SetValidator(validator); + m_page_num_input->GetTextCtrl()->Bind(wxEVT_TEXT_ENTER, [&](wxCommandEvent& e) { + page_num_enter_evt(); + }); + + m_page_num_enter = new Button(m_flipping_panel, _("Go")); + m_page_num_enter->SetMinSize(wxSize(FromDIP(25), FromDIP(25))); + m_page_num_enter->SetMaxSize(wxSize(FromDIP(25), FromDIP(25))); + m_page_num_enter->SetBackgroundColor(ctrl_bg); + m_page_num_enter->SetCornerRadius(FromDIP(5)); + m_page_num_enter->Bind(wxEVT_LEFT_DOWN, [&](wxMouseEvent& evt) { + page_num_enter_evt(); + }); + m_flipping_page_sizer->Add(0, 0, 1, wxEXPAND, 0); m_flipping_page_sizer->Add(btn_last_page, 0, wxALIGN_CENTER, 0); - m_flipping_page_sizer->Add(st_page_number, 0, wxALIGN_CENTER, 0); - m_flipping_page_sizer->Add(btn_next_page, 0, wxALIGN_CENTER, 0); + m_flipping_page_sizer->Add(st_page_number, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(5)); + m_flipping_page_sizer->Add(btn_next_page, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(5)); + m_flipping_page_sizer->Add(m_page_num_input, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(20)); + m_flipping_page_sizer->Add(m_page_num_enter, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(5)); m_page_sizer->Add(m_flipping_page_sizer, 0, wxALIGN_CENTER_HORIZONTAL, FromDIP(5)); m_flipping_panel->SetSizer(m_page_sizer); m_flipping_panel->Layout(); @@ -582,9 +615,6 @@ void MultiMachineManagerPage::update_page_number() wxString number = wxString(std::to_string(m_current_page + 1)) + " / " + wxString(std::to_string(m_total_page)); st_page_number->SetLabel(number); - - m_current_page <= 0 ? btn_last_page->Enable(false) : btn_last_page->Enable(true); - m_current_page >= (m_total_page - 1) ? btn_next_page->Enable(false) : btn_next_page->Enable(true); } void MultiMachineManagerPage::on_timer(wxTimerEvent& event) @@ -601,5 +631,24 @@ void MultiMachineManagerPage::clear_page() } +void MultiMachineManagerPage::page_num_enter_evt() +{ + btn_last_page->Enable(false); + btn_next_page->Enable(false); + start_timer(); + auto value = m_page_num_input->GetTextCtrl()->GetValue(); + long page_num = 0; + if (value.ToLong(&page_num)) { + if (page_num > m_total_page) + m_current_page = m_total_page - 1; + else if (page_num < 1) + m_current_page = 0; + else + m_current_page = page_num - 1; + } + refresh_user_device(); + update_page_number(); +} + } // namespace GUI } // namespace Slic3r diff --git a/src/slic3r/GUI/MultiMachineManagerPage.hpp b/src/slic3r/GUI/MultiMachineManagerPage.hpp index d92b9287a..9c8798aac 100644 --- a/src/slic3r/GUI/MultiMachineManagerPage.hpp +++ b/src/slic3r/GUI/MultiMachineManagerPage.hpp @@ -58,6 +58,8 @@ public: void on_timer(wxTimerEvent& event); void clear_page(); + void page_num_enter_evt(); + private: std::vector m_state_objs; std::vector m_device_items; @@ -99,6 +101,8 @@ private: 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 }; }; } // namespace GUI diff --git a/src/slic3r/GUI/MultiTaskManagerPage.cpp b/src/slic3r/GUI/MultiTaskManagerPage.cpp index 72a00e5be..ad84451e1 100644 --- a/src/slic3r/GUI/MultiTaskManagerPage.cpp +++ b/src/slic3r/GUI/MultiTaskManagerPage.cpp @@ -862,6 +862,11 @@ CloudTaskManagerPage::CloudTaskManagerPage(wxWindow* parent) std::pair(TABLE_HEAR_NORMAL_COLOUR, StateColor::Normal) ); + StateColor ctrl_bg( + std::pair(CTRL_BUTTON_PRESSEN_COLOUR, StateColor::Pressed), + std::pair(CTRL_BUTTON_NORMAL_COLOUR, StateColor::Normal) + ); + m_table_head_panel = new wxPanel(m_main_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize); m_table_head_panel->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1)); m_table_head_panel->SetMaxSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1)); @@ -991,6 +996,15 @@ CloudTaskManagerPage::CloudTaskManagerPage(wxWindow* parent) m_tip_text->SetFont(::Label::Head_24); m_tip_text->Wrap(-1); + m_loading_text = new wxStaticText(m_main_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER); + m_loading_text->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1)); + m_loading_text->SetMaxSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1)); + m_loading_text->SetLabel(_L("Loading...")); + m_loading_text->SetForegroundColour(wxColour(50, 58, 61)); + m_loading_text->SetFont(::Label::Head_24); + m_loading_text->Wrap(-1); + m_loading_text->Show(false); + m_task_list = new wxScrolledWindow(m_main_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize); m_task_list->SetBackgroundColour(*wxWHITE); m_task_list->SetScrollRate(0, 5); @@ -1005,6 +1019,7 @@ CloudTaskManagerPage::CloudTaskManagerPage(wxWindow* parent) m_main_sizer->AddSpacer(FromDIP(50)); m_main_sizer->Add(m_table_head_panel, 0, wxALIGN_CENTER_HORIZONTAL, 0); m_main_sizer->Add(m_tip_text, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, FromDIP(50)); + m_main_sizer->Add(m_loading_text, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, FromDIP(50)); m_main_sizer->Add(m_task_list, 0, wxALIGN_CENTER_HORIZONTAL, 0); m_main_sizer->AddSpacer(FromDIP(5)); @@ -1016,50 +1031,77 @@ CloudTaskManagerPage::CloudTaskManagerPage(wxWindow* parent) m_flipping_page_sizer = new wxBoxSizer(wxHORIZONTAL); m_page_sizer = new wxBoxSizer(wxVERTICAL); - btn_last_page = new Button(m_flipping_panel, "", "go_last_plate", 0, ICON_SIZE); - btn_last_page->SetMinSize(wxSize(ICON_SIZE, ICON_SIZE)); - btn_last_page->SetMaxSize(wxSize(ICON_SIZE, ICON_SIZE)); + btn_last_page = new Button(m_flipping_panel, "", "go_last_plate", wxBORDER_NONE, FromDIP(20)); + btn_last_page->SetMinSize(wxSize(FromDIP(20), FromDIP(20))); + btn_last_page->SetMaxSize(wxSize(FromDIP(20), FromDIP(20))); btn_last_page->SetBackgroundColor(head_bg); - btn_last_page->Bind(wxEVT_LEFT_DOWN, [&](wxMouseEvent& evt) { - btn_last_page->Enable(false); - btn_next_page->Enable(false); + btn_last_page->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [&](auto& evt) { + evt.Skip(); + if (m_current_page == 0) + return; + enable_buttons(false); start_timer(); m_current_page--; if (m_current_page < 0) m_current_page = 0; refresh_user_device(); update_page_number(); - }); - btn_next_page = new Button(m_flipping_panel, "", "go_next_plate", 0, ICON_SIZE); - btn_next_page->SetMinSize(wxSize(ICON_SIZE, ICON_SIZE)); - btn_next_page->SetMaxSize(wxSize(ICON_SIZE, ICON_SIZE)); - btn_next_page->SetBackgroundColor(head_bg); - btn_next_page->Bind(wxEVT_LEFT_DOWN, [&](wxMouseEvent& evt) { - btn_last_page->Enable(false); - btn_next_page->Enable(false); - start_timer(); - m_current_page++; - if (m_current_page > m_total_count) - m_current_page = m_total_count; - refresh_user_device(); - update_page_number(); + /*m_sizer_task_list->Clear(false); + m_loading_text->Show(true); + Layout();*/ }); st_page_number = new wxStaticText(m_flipping_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize); + btn_next_page = new Button(m_flipping_panel, "", "go_next_plate", wxBORDER_NONE, FromDIP(20)); + btn_next_page->SetMinSize(wxSize(FromDIP(20), FromDIP(20))); + btn_next_page->SetMaxSize(wxSize(FromDIP(20), FromDIP(20))); + btn_next_page->SetBackgroundColor(head_bg); + btn_next_page->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [&](auto& evt) { + evt.Skip(); + if (m_current_page == m_total_page - 1) + return; + enable_buttons(false); + start_timer(); + m_current_page++; + if (m_current_page > m_total_page - 1) + m_current_page = m_total_count - 1; + refresh_user_device(); + update_page_number(); + /*m_sizer_task_list->Clear(false); + m_loading_text->Show(true); + Layout();*/ + }); + + m_page_num_input = new ::TextInput(m_flipping_panel, wxEmptyString, wxEmptyString, wxEmptyString, wxDefaultPosition, wxSize(FromDIP(50), -1), wxTE_PROCESS_ENTER); + StateColor input_bg(std::pair(wxColour("#F0F0F1"), StateColor::Disabled), std::pair(*wxWHITE, StateColor::Enabled)); + m_page_num_input->SetBackgroundColor(input_bg); + m_page_num_input->GetTextCtrl()->SetValue("1"); + wxTextValidator validator(wxFILTER_DIGITS); + m_page_num_input->GetTextCtrl()->SetValidator(validator); + m_page_num_input->GetTextCtrl()->Bind(wxEVT_TEXT_ENTER, [&](wxCommandEvent& e) { + page_num_enter_evt(); + }); + + m_page_num_enter = new Button(m_flipping_panel, _("Go")); + m_page_num_enter->SetMinSize(wxSize(FromDIP(25), FromDIP(25))); + m_page_num_enter->SetMaxSize(wxSize(FromDIP(25), FromDIP(25))); + m_page_num_enter->SetBackgroundColor(ctrl_bg); + m_page_num_enter->SetCornerRadius(FromDIP(5)); + m_page_num_enter->Bind(wxEVT_LEFT_DOWN, [&](wxMouseEvent& evt) { + page_num_enter_evt(); + }); + m_flipping_page_sizer->Add(0, 0, 1, wxEXPAND, 0); m_flipping_page_sizer->Add(btn_last_page, 0, wxALIGN_CENTER, 0); - m_flipping_page_sizer->Add(st_page_number, 0, wxALIGN_CENTER, 0); - m_flipping_page_sizer->Add(btn_next_page, 0, wxALIGN_CENTER, 0); + m_flipping_page_sizer->Add(st_page_number, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(5)); + m_flipping_page_sizer->Add(btn_next_page, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(5)); + m_flipping_page_sizer->Add(m_page_num_input, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(20)); + m_flipping_page_sizer->Add(m_page_num_enter, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(5)); m_flipping_page_sizer->Add(0, 0, 1, wxEXPAND, 0); m_page_sizer->Add(m_flipping_page_sizer, 0, wxALIGN_CENTER_HORIZONTAL, FromDIP(5)); m_flipping_panel->SetSizer(m_page_sizer); m_flipping_panel->Layout(); m_main_sizer->Add(m_flipping_panel, 0, wxALIGN_CENTER_HORIZONTAL, 0); - StateColor ctrl_bg( - std::pair(CTRL_BUTTON_PRESSEN_COLOUR, StateColor::Pressed), - std::pair(CTRL_BUTTON_NORMAL_COLOUR, StateColor::Normal) - ); - m_ctrl_btn_panel = new wxPanel(m_main_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); m_ctrl_btn_panel->SetBackgroundColour(*wxWHITE); m_ctrl_btn_panel->SetMinSize(wxSize(FromDIP(CLOUD_TASK_ITEM_MAX_WIDTH), -1)); @@ -1164,13 +1206,13 @@ void CloudTaskManagerPage::refresh_user_device(bool clear) mtitem->state_cloud_task = 2; } - if (m_task_items.find(mtitem->m_job_id) != m_task_items.end()) { - MultiTaskItem* item = m_task_items[mtitem->m_job_id]; + if (m_task_items.find(it->first) != m_task_items.end()) { + MultiTaskItem* item = m_task_items[it->first]; mtitem->state_selected = item->state_selected; item->Destroy(); } - m_task_items[mtitem->m_job_id] = mtitem; + m_task_items[it->first] = mtitem; mtitem->update_info(); task_temps.push_back(mtitem); subscribe_list.push_back(mtitem->m_dev_id); @@ -1282,9 +1324,6 @@ void CloudTaskManagerPage::update_page_number() wxString number = wxString(std::to_string(m_current_page + 1)) + " / " + wxString(std::to_string(m_total_page)); st_page_number->SetLabel(number); - - m_current_page <= 0 ? btn_last_page->Enable(false) : btn_last_page->Enable(true); - m_current_page >= (m_total_page - 1) ? btn_next_page->Enable(false) : btn_next_page->Enable(true); } void CloudTaskManagerPage::start_timer() @@ -1304,10 +1343,8 @@ void CloudTaskManagerPage::start_timer() void CloudTaskManagerPage::on_timer(wxTimerEvent& event) { m_flipping_timer->Stop(); - if (btn_last_page) - btn_last_page->Enable(true); - if (btn_next_page) - btn_next_page->Enable(true); + enable_buttons(true); + update_page_number(); } void CloudTaskManagerPage::pause_all(wxCommandEvent& evt) @@ -1337,5 +1374,35 @@ void CloudTaskManagerPage::stop_all(wxCommandEvent& evt) } } +void CloudTaskManagerPage::enable_buttons(bool enable) +{ + btn_last_page->Enable(enable); + btn_next_page->Enable(enable); + btn_pause_all->Enable(enable); + btn_continue_all->Enable(enable); + btn_stop_all->Enable(enable); +} + +void CloudTaskManagerPage::page_num_enter_evt() +{ + enable_buttons(false); + start_timer(); + auto value = m_page_num_input->GetTextCtrl()->GetValue(); + long page_num = 0; + if (value.ToLong(&page_num)) { + if (page_num > m_total_page) + m_current_page = m_total_page - 1; + else if (page_num < 1) + m_current_page = 0; + else + m_current_page = page_num - 1; + } + refresh_user_device(); + update_page_number(); + /*m_sizer_task_list->Clear(false); + m_loading_text->Show(true); + Layout();*/ +} + } // namespace GUI } // namespace Slic3r diff --git a/src/slic3r/GUI/MultiTaskManagerPage.hpp b/src/slic3r/GUI/MultiTaskManagerPage.hpp index e5285802e..b463f048e 100644 --- a/src/slic3r/GUI/MultiTaskManagerPage.hpp +++ b/src/slic3r/GUI/MultiTaskManagerPage.hpp @@ -140,6 +140,9 @@ public: void resume_all(wxCommandEvent& evt); void stop_all(wxCommandEvent& evt); + void enable_buttons(bool enable); + void page_num_enter_evt(); + private: SortItem m_sort; bool device_name_big{ true }; @@ -163,36 +166,39 @@ private: int m_count_page_item{ 10 }; bool prev{ false }; bool next{ false }; - 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 }; + 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 }; // table head - 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_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 }; // ctrl button for all int m_sel_number; - 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 }; + 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 }; // tip when no device - wxStaticText* m_tip_text{ nullptr }; + wxStaticText* m_tip_text{ nullptr }; + wxStaticText* m_loading_text{ nullptr }; }; diff --git a/src/slic3r/GUI/SendMultiMachinePage.cpp b/src/slic3r/GUI/SendMultiMachinePage.cpp index faeef886d..c7fefea12 100644 --- a/src/slic3r/GUI/SendMultiMachinePage.cpp +++ b/src/slic3r/GUI/SendMultiMachinePage.cpp @@ -272,6 +272,7 @@ SendMultiMachinePage::SendMultiMachinePage(Plater* plater) auto line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL); line_top->SetBackgroundColour(wxColour(166, 169, 170)); main_sizer->Add(line_top, 0, wxEXPAND, 0); + main_sizer->AddSpacer(FromDIP(10)); m_main_scroll = new ScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL); m_main_scroll->SetBackgroundColour(*wxWHITE); @@ -285,7 +286,7 @@ SendMultiMachinePage::SendMultiMachinePage(Plater* plater) m_main_scroll->Fit(); m_main_scroll->Centre(wxBOTH); - main_sizer->Add(m_main_scroll, 1, wxEXPAND, FromDIP(5)); + main_sizer->Add(m_main_scroll, 1, wxEXPAND); SetSizer(main_sizer); Layout(); @@ -644,7 +645,7 @@ void SendMultiMachinePage::on_send(wxCommandEvent& event) try { if (app_config->get("sending_interval").empty()) { - app_config->set("sending_interval", "60"); + app_config->set("sending_interval", "1"); app_config->save(); } @@ -757,7 +758,7 @@ wxBoxSizer* SendMultiMachinePage::create_item_input(wxString str_before, wxStrin wxTextValidator validator(wxFILTER_DIGITS); input->GetTextCtrl()->SetValidator(validator); - auto second_title = new wxStaticText(parent, wxID_ANY, str_after, wxDefaultPosition, wxDefaultSize, 0); + auto second_title = new wxStaticText(parent, wxID_ANY, str_after, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END); second_title->SetForegroundColour(DESIGN_GRAY900_COLOR); second_title->SetFont(::Label::Body_13); second_title->SetToolTip(tooltip); @@ -1079,8 +1080,8 @@ wxPanel* SendMultiMachinePage::create_page() m_printer_name->SetBackgroundColor(head_bg); m_printer_name->SetCornerRadius(0); m_printer_name->SetFont(TABLE_HEAD_FONT); - m_printer_name->SetMinSize(wxSize(FromDIP(SEND_LEFT_DEV_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT))); - m_printer_name->SetMaxSize(wxSize(FromDIP(SEND_LEFT_DEV_NAME), FromDIP(DEVICE_ITEM_MAX_HEIGHT))); + m_printer_name->SetMinSize(wxSize(FromDIP(SEND_LEFT_DEV_NAME), FromDIP(SEND_ITEM_MAX_HEIGHT))); + m_printer_name->SetMaxSize(wxSize(FromDIP(SEND_LEFT_DEV_NAME), FromDIP(SEND_ITEM_MAX_HEIGHT))); m_printer_name->SetCenter(false); m_printer_name->Bind(wxEVT_ENTER_WINDOW, [&](wxMouseEvent& evt) { SetCursor(wxCURSOR_HAND); @@ -1101,8 +1102,8 @@ wxPanel* SendMultiMachinePage::create_page() m_device_status->SetBackgroundColor(head_bg); m_device_status->SetFont(TABLE_HEAD_FONT); m_device_status->SetCornerRadius(0); - m_device_status->SetMinSize(wxSize(FromDIP(SEND_LEFT_DEV_STATUS), FromDIP(DEVICE_ITEM_MAX_HEIGHT))); - m_device_status->SetMaxSize(wxSize(FromDIP(SEND_LEFT_DEV_STATUS), FromDIP(DEVICE_ITEM_MAX_HEIGHT))); + m_device_status->SetMinSize(wxSize(FromDIP(SEND_LEFT_DEV_STATUS), FromDIP(SEND_ITEM_MAX_HEIGHT))); + m_device_status->SetMaxSize(wxSize(FromDIP(SEND_LEFT_DEV_STATUS), FromDIP(SEND_ITEM_MAX_HEIGHT))); m_device_status->SetCenter(false); m_device_status->Bind(wxEVT_ENTER_WINDOW, [&](wxMouseEvent& evt) { SetCursor(wxCURSOR_HAND); @@ -1144,8 +1145,8 @@ wxPanel* SendMultiMachinePage::create_page() m_ams->SetBackgroundColor(head_bg); m_ams->SetCornerRadius(0); m_ams->SetFont(TABLE_HEAD_FONT); - m_ams->SetMinSize(wxSize(FromDIP(TASK_LEFT_SEND_TIME), FromDIP(DEVICE_ITEM_MAX_HEIGHT))); - m_ams->SetMaxSize(wxSize(FromDIP(TASK_LEFT_SEND_TIME), FromDIP(DEVICE_ITEM_MAX_HEIGHT))); + m_ams->SetMinSize(wxSize(FromDIP(TASK_LEFT_SEND_TIME), FromDIP(SEND_ITEM_MAX_HEIGHT))); + m_ams->SetMaxSize(wxSize(FromDIP(TASK_LEFT_SEND_TIME), FromDIP(SEND_ITEM_MAX_HEIGHT))); m_ams->SetCenter(false); m_ams->Bind(wxEVT_ENTER_WINDOW, [&](wxMouseEvent& evt) { SetCursor(wxCURSOR_HAND); @@ -1165,8 +1166,8 @@ wxPanel* SendMultiMachinePage::create_page() m_refresh_button->SetBackgroundColor(head_bg); m_refresh_button->SetCornerRadius(0); m_refresh_button->SetFont(TABLE_HEAD_FONT); - m_refresh_button->SetMinSize(wxSize(FromDIP(50), FromDIP(DEVICE_ITEM_MAX_HEIGHT))); - m_refresh_button->SetMaxSize(wxSize(FromDIP(50), FromDIP(DEVICE_ITEM_MAX_HEIGHT))); + m_refresh_button->SetMinSize(wxSize(FromDIP(50), FromDIP(SEND_ITEM_MAX_HEIGHT))); + m_refresh_button->SetMaxSize(wxSize(FromDIP(50), FromDIP(SEND_ITEM_MAX_HEIGHT))); m_refresh_button->Bind(wxEVT_ENTER_WINDOW, [&](wxMouseEvent& evt) { SetCursor(wxCURSOR_HAND); }); @@ -1190,11 +1191,11 @@ wxPanel* SendMultiMachinePage::create_page() m_tip_text->SetFont(::Label::Head_24); m_tip_text->Wrap(-1); - scroll_macine_list = new wxScrolledWindow(main_page, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(800), 300), wxHSCROLL | wxVSCROLL); + scroll_macine_list = new wxScrolledWindow(main_page, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(800), FromDIP(300)), wxHSCROLL | wxVSCROLL); scroll_macine_list->SetBackgroundColour(*wxWHITE); scroll_macine_list->SetScrollRate(5, 5); - scroll_macine_list->SetMinSize(wxSize(FromDIP(DEVICE_ITEM_MAX_WIDTH), 10 * FromDIP(DEVICE_ITEM_MAX_HEIGHT))); - scroll_macine_list->SetMaxSize(wxSize(FromDIP(DEVICE_ITEM_MAX_WIDTH), 10 * FromDIP(DEVICE_ITEM_MAX_HEIGHT))); + scroll_macine_list->SetMinSize(wxSize(FromDIP(DEVICE_ITEM_MAX_WIDTH), 10 * FromDIP(SEND_ITEM_MAX_HEIGHT))); + scroll_macine_list->SetMaxSize(wxSize(FromDIP(DEVICE_ITEM_MAX_WIDTH), 10 * FromDIP(SEND_ITEM_MAX_HEIGHT))); sizer_machine_list = new wxBoxSizer(wxVERTICAL); scroll_macine_list->SetSizer(sizer_machine_list); @@ -1212,8 +1213,10 @@ wxPanel* SendMultiMachinePage::create_page() wxBoxSizer* item_timelapse = create_item_checkbox(_("Timelapse"), main_page, "", 50, "timelapse"); wxBoxSizer* item_flow_dy_ca = create_item_checkbox(_("Flow Dynamic Calibration"), main_page, "", 50, "flow_cali"); sizer->Add(title_print_option, 0, wxEXPAND, 0); - sizer->Add(item_bed_level, 0, wxLEFT, FromDIP(20)); - sizer->Add(item_timelapse, 0, wxLEFT, FromDIP(20)); + wxBoxSizer* options_sizer_v = new wxBoxSizer(wxHORIZONTAL); + options_sizer_v->Add(item_bed_level, 0, wxLEFT, 0); + options_sizer_v->Add(item_timelapse, 0, wxLEFT, FromDIP(100)); + sizer->Add(options_sizer_v, 0, wxLEFT, FromDIP(20)); sizer->Add(item_flow_dy_ca, 0, wxLEFT, FromDIP(20)); sizer->AddSpacer(FromDIP(10)); @@ -1244,11 +1247,10 @@ wxPanel* SendMultiMachinePage::create_page() //m_button_send->SetBackgroundColor(wxColour(0x90, 0x90, 0x90)); //m_button_send->SetBorderColor(wxColour(0x90, 0x90, 0x90)); sizer->Add(m_button_send, 0, wxALIGN_CENTER, 0); - sizer->Add(0, 0, 0, wxTOP, FromDIP(15)); main_page->SetSizer(sizer); main_page->Layout(); - + main_page->Fit(); return main_page; }