From 7c8aa16d171de57da61b08f79651a95c79935ce8 Mon Sep 17 00:00:00 2001 From: tao wang Date: Thu, 25 Apr 2024 19:32:45 +0800 Subject: [PATCH] ENH:Added two entrances for adding devices jira:[multi device] Change-Id: Ieb6197e067d422979606f93b22b337a2399aec74 --- src/slic3r/GUI/MultiMachineManagerPage.cpp | 38 ++++++++++++++++++---- src/slic3r/GUI/MultiMachineManagerPage.hpp | 1 + src/slic3r/GUI/MultiMachinePage.cpp | 1 + src/slic3r/GUI/SendMultiMachinePage.cpp | 28 ++++++++++++++-- src/slic3r/GUI/SendMultiMachinePage.hpp | 1 + 5 files changed, 61 insertions(+), 8 deletions(-) diff --git a/src/slic3r/GUI/MultiMachineManagerPage.cpp b/src/slic3r/GUI/MultiMachineManagerPage.cpp index 59dbb1863..b24d36761 100644 --- a/src/slic3r/GUI/MultiMachineManagerPage.cpp +++ b/src/slic3r/GUI/MultiMachineManagerPage.cpp @@ -280,13 +280,19 @@ MultiMachineManagerPage::MultiMachineManagerPage(wxWindow* parent) ); //edit prints + auto m_btn_bg_enable = StateColor( + std::pair(wxColour(27, 136, 68), StateColor::Pressed), + std::pair(wxColour(61, 203, 115), StateColor::Hovered), + std::pair(wxColour(0, 174, 66), StateColor::Normal) + ); + + StateColor clean_bg(std::pair(wxColour(255, 255, 255), StateColor::Disabled), std::pair(wxColour(206, 206, 206), StateColor::Pressed), std::pair(wxColour(238, 238, 238), StateColor::Hovered), std::pair(wxColour(255, 255, 255), StateColor::Enabled), std::pair(wxColour(255, 255, 255), StateColor::Normal)); StateColor clean_bd(std::pair(wxColour(144, 144, 144), StateColor::Disabled), std::pair(wxColour(38, 46, 48), StateColor::Enabled)); StateColor clean_text(std::pair(wxColour(144, 144, 144), StateColor::Disabled), std::pair(wxColour(38, 46, 48), StateColor::Enabled)); - auto sizer_button_printer = new wxBoxSizer(wxHORIZONTAL); sizer_button_printer->SetMinSize(wxSize(FromDIP(DEVICE_ITEM_MAX_WIDTH), -1)); m_button_edit = new Button(m_main_panel, _L("Edit Printers")); @@ -295,8 +301,8 @@ MultiMachineManagerPage::MultiMachineManagerPage(wxWindow* parent) m_button_edit->SetTextColor(clean_text); m_button_edit->SetFont(Label::Body_12); m_button_edit->SetCornerRadius(6); - m_button_edit->SetMinSize(wxSize(FromDIP(90), FromDIP(40))); - m_button_edit->SetMaxSize(wxSize(FromDIP(90), FromDIP(40))); + m_button_edit->SetMinSize(wxSize(FromDIP(90), FromDIP(36))); + m_button_edit->SetMaxSize(wxSize(FromDIP(90), FromDIP(36))); m_button_edit->Bind(wxEVT_BUTTON, [this](wxCommandEvent& evt) { MultiMachinePickPage dlg; @@ -391,11 +397,27 @@ MultiMachineManagerPage::MultiMachineManagerPage(wxWindow* parent) m_tip_text = new wxStaticText(m_main_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER); m_tip_text->SetMinSize(wxSize(FromDIP(DEVICE_ITEM_MAX_WIDTH), -1)); m_tip_text->SetMaxSize(wxSize(FromDIP(DEVICE_ITEM_MAX_WIDTH), -1)); - m_tip_text->SetLabel(_L("Unconnected device")); + m_tip_text->SetLabel(_L("Please select the devices you would like to manage here (up to 6 devices)")); m_tip_text->SetForegroundColour(wxColour(50, 58, 61)); - m_tip_text->SetFont(::Label::Head_24); + m_tip_text->SetFont(::Label::Head_20); m_tip_text->Wrap(-1); + m_button_add = new Button(m_main_panel, _L("Add")); + m_button_add->SetBackgroundColor(m_btn_bg_enable); + m_button_add->SetBorderColor(m_btn_bg_enable); + m_button_add->SetTextColor(*wxWHITE); + m_button_add->SetFont(Label::Body_12); + m_button_add->SetCornerRadius(6); + m_button_add->SetMinSize(wxSize(FromDIP(90), FromDIP(36))); + m_button_add->SetMaxSize(wxSize(FromDIP(90), FromDIP(36))); + + m_button_add->Bind(wxEVT_BUTTON, [this](wxCommandEvent& evt) { + MultiMachinePickPage dlg; + dlg.ShowModal(); + refresh_user_device(); + evt.Skip(); + }); + m_machine_list = new wxScrolledWindow(m_main_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize); m_machine_list->SetBackgroundColour(*wxWHITE); m_machine_list->SetScrollRate(0, 5); @@ -484,10 +506,12 @@ MultiMachineManagerPage::MultiMachineManagerPage(wxWindow* parent) m_flipping_panel->SetSizer(m_page_sizer); m_flipping_panel->Layout(); - m_main_sizer->AddSpacer(FromDIP(50)); + m_main_sizer->AddSpacer(FromDIP(16)); m_main_sizer->Add(sizer_button_printer, 0, wxALIGN_CENTER_HORIZONTAL, 0); + m_main_sizer->AddSpacer(FromDIP(5)); 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_button_add, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, FromDIP(16)); m_main_sizer->Add(m_machine_list, 0, wxALIGN_CENTER_HORIZONTAL, 0); m_main_sizer->Add(m_flipping_panel, 0, wxALIGN_CENTER_HORIZONTAL, 0); m_main_panel->SetSizer(m_main_sizer); @@ -566,6 +590,8 @@ void MultiMachineManagerPage::refresh_user_device(bool clear) dev->subscribe_device_list(subscribe_list); m_tip_text->Show(m_device_items.empty()); + m_button_add->Show(m_device_items.empty()); + update_page_number(); m_flipping_panel->Show(m_total_page > 1); m_sizer_machine_list->Layout(); diff --git a/src/slic3r/GUI/MultiMachineManagerPage.hpp b/src/slic3r/GUI/MultiMachineManagerPage.hpp index c9ecc26a6..87d8d9866 100644 --- a/src/slic3r/GUI/MultiMachineManagerPage.hpp +++ b/src/slic3r/GUI/MultiMachineManagerPage.hpp @@ -87,6 +87,7 @@ private: // tip when no device wxStaticText* m_tip_text{ nullptr }; + Button* m_button_add{ nullptr }; // Flipping pages int m_current_page{ 0 }; diff --git a/src/slic3r/GUI/MultiMachinePage.cpp b/src/slic3r/GUI/MultiMachinePage.cpp index c28f57d22..2b029ae4e 100644 --- a/src/slic3r/GUI/MultiMachinePage.cpp +++ b/src/slic3r/GUI/MultiMachinePage.cpp @@ -465,6 +465,7 @@ bool MultiMachinePickPage::Show(bool show) { if (show) { refresh_user_device(); + update_selected_count(); //m_refresh_timer->Stop(); //m_refresh_timer->SetOwner(this); //m_refresh_timer->Start(4000); diff --git a/src/slic3r/GUI/SendMultiMachinePage.cpp b/src/slic3r/GUI/SendMultiMachinePage.cpp index 70511f4ad..7ea22f1ce 100644 --- a/src/slic3r/GUI/SendMultiMachinePage.cpp +++ b/src/slic3r/GUI/SendMultiMachinePage.cpp @@ -403,6 +403,7 @@ void SendMultiMachinePage::refresh_user_device() } } m_tip_text->Show(m_device_items.empty()); + m_button_add->Show(m_device_items.empty()); sizer_machine_list->Layout(); Layout(); Fit(); @@ -1206,11 +1207,33 @@ wxPanel* SendMultiMachinePage::create_page() m_tip_text = new wxStaticText(main_page, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER); m_tip_text->SetMinSize(wxSize(FromDIP(DEVICE_ITEM_MAX_WIDTH), -1)); m_tip_text->SetMaxSize(wxSize(FromDIP(DEVICE_ITEM_MAX_WIDTH), -1)); - m_tip_text->SetLabel(_L("Unconnected device")); + m_tip_text->SetLabel(_L("Please select the devices you would like to manage here (up to 6 devices)")); m_tip_text->SetForegroundColour(DESIGN_GRAY800_COLOR); - m_tip_text->SetFont(::Label::Head_24); + m_tip_text->SetFont(::Label::Head_20); m_tip_text->Wrap(-1); + auto m_btn_bg_enable = StateColor( + std::pair(wxColour(27, 136, 68), StateColor::Pressed), + std::pair(wxColour(61, 203, 115), StateColor::Hovered), + std::pair(wxColour(0, 174, 66), StateColor::Normal) + ); + + m_button_add = new Button(main_page, _L("Add")); + m_button_add->SetBackgroundColor(m_btn_bg_enable); + m_button_add->SetBorderColor(m_btn_bg_enable); + m_button_add->SetTextColor(*wxWHITE); + m_button_add->SetFont(Label::Body_12); + m_button_add->SetCornerRadius(6); + m_button_add->SetMinSize(wxSize(FromDIP(90), FromDIP(36))); + m_button_add->SetMaxSize(wxSize(FromDIP(90), FromDIP(36))); + + m_button_add->Bind(wxEVT_BUTTON, [this](wxCommandEvent& evt) { + MultiMachinePickPage dlg; + dlg.ShowModal(); + refresh_user_device(); + evt.Skip(); + }); + 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); @@ -1224,6 +1247,7 @@ wxPanel* SendMultiMachinePage::create_page() sizer->Add(title_select_printer, 0, wxEXPAND, 0); sizer->Add(m_table_head_panel, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(40)); sizer->Add(m_tip_text, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, FromDIP(100)); + sizer->Add(m_button_add, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, FromDIP(20)); sizer->Add(scroll_macine_list, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(40)); sizer->AddSpacer(FromDIP(10)); diff --git a/src/slic3r/GUI/SendMultiMachinePage.hpp b/src/slic3r/GUI/SendMultiMachinePage.hpp index 381190f1b..418f8cfa0 100644 --- a/src/slic3r/GUI/SendMultiMachinePage.hpp +++ b/src/slic3r/GUI/SendMultiMachinePage.hpp @@ -159,6 +159,7 @@ private: // tip when no device wxStaticText* m_tip_text{ nullptr }; + Button* m_button_add{ nullptr }; public: SendMultiMachinePage(Plater* plater = nullptr);