diff --git a/resources/images/ip_address_step.svg b/resources/images/ip_address_step.svg
new file mode 100644
index 0000000000..4ff7028b94
--- /dev/null
+++ b/resources/images/ip_address_step.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/slic3r/GUI/ReleaseNote.cpp b/src/slic3r/GUI/ReleaseNote.cpp
index d87e4fbf0b..c191dfce89 100644
--- a/src/slic3r/GUI/ReleaseNote.cpp
+++ b/src/slic3r/GUI/ReleaseNote.cpp
@@ -882,50 +882,52 @@ InputIpAddressDialog::InputIpAddressDialog(wxWindow* parent)
SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO));
SetBackgroundColour(*wxWHITE);
- wxBoxSizer* m_sizer_main = new wxBoxSizer(wxVERTICAL);
+ wxBoxSizer* m_sizer_body = new wxBoxSizer(wxVERTICAL);
+ wxBoxSizer* m_sizer_main = new wxBoxSizer(wxHORIZONTAL);
+ wxBoxSizer* m_sizer_main_left = new wxBoxSizer(wxVERTICAL);
+ wxBoxSizer* m_sizer_main_right = new wxBoxSizer(wxVERTICAL);
auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1));
m_line_top->SetBackgroundColour(wxColour(166, 169, 170));
- m_sizer_main->Add(m_line_top, 0, wxEXPAND, 0);
- comfirm_before_enter_text = _L("Step 1. please confirm Bambu Studio and your printer are in same LAN.");
- comfirm_after_enter_text = _L("Step 2. if the IP and Access Code below are different from the actual values on your printer,please correct them.");
+ comfirm_before_enter_text = _L("Step 1, please confirm Bambu Studio and your printer are in the same LAN.");
+ comfirm_after_enter_text = _L("Step 2, if the IP and Access Code below are different from the actual values on your printer, please correct them.");
m_tip1 = new Label(this, comfirm_before_enter_text);
- m_tip1->SetFont(::Label::Body_12);
- m_tip1->SetMinSize(wxSize(FromDIP(380), -1));
- m_tip1->SetMaxSize(wxSize(FromDIP(380), -1));
- m_tip1->Wrap(FromDIP(380));
+ m_tip1->SetFont(::Label::Body_13);
+ m_tip1->SetMinSize(wxSize(FromDIP(352), -1));
+ m_tip1->SetMaxSize(wxSize(FromDIP(352), -1));
+ m_tip1->Wrap(FromDIP(352));
auto m_line_tips = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1));
m_line_tips->SetBackgroundColour(wxColour(0xEEEEEE));
m_tip2 = new Label(this, comfirm_after_enter_text);
- m_tip2->SetFont(::Label::Body_12);
- m_tip2->SetMinSize(wxSize(FromDIP(380), -1));
- m_tip2->SetMaxSize(wxSize(FromDIP(380), -1));
- m_tip2->Wrap(FromDIP(380));
+ m_tip2->SetFont(::Label::Body_13);
+ m_tip2->SetMinSize(wxSize(FromDIP(352), -1));
+ m_tip2->SetMaxSize(wxSize(FromDIP(352), -1));
+ m_tip2->Wrap(FromDIP(352));
auto m_input_tip_area = new wxBoxSizer(wxHORIZONTAL);
auto m_input_area = new wxBoxSizer(wxHORIZONTAL);
m_tips_ip = new Label(this, _L("IP"));
- m_tips_ip->SetMinSize(wxSize(FromDIP(180), FromDIP(28)));
- m_tips_ip->SetMaxSize(wxSize(FromDIP(180), FromDIP(28)));
+ m_tips_ip->SetMinSize(wxSize(FromDIP(168), -1));
+ m_tips_ip->SetMaxSize(wxSize(FromDIP(168), -1));
m_input_ip = new TextInput(this, wxEmptyString, wxEmptyString);
m_input_ip->Bind(wxEVT_TEXT, &InputIpAddressDialog::on_text, this);
- m_input_ip->SetMinSize(wxSize(FromDIP(180), FromDIP(28)));
- m_input_ip->SetMaxSize(wxSize(FromDIP(180), FromDIP(28)));
+ m_input_ip->SetMinSize(wxSize(FromDIP(168), FromDIP(28)));
+ m_input_ip->SetMaxSize(wxSize(FromDIP(168), FromDIP(28)));
m_tips_access_code = new Label(this, _L("Access Code"));
- m_tips_access_code->SetMinSize(wxSize(FromDIP(180), FromDIP(28)));
- m_tips_access_code->SetMaxSize(wxSize(FromDIP(180), FromDIP(28)));
+ m_tips_access_code->SetMinSize(wxSize(FromDIP(168),-1));
+ m_tips_access_code->SetMaxSize(wxSize(FromDIP(168),-1));
m_input_access_code = new TextInput(this, wxEmptyString, wxEmptyString);
m_input_access_code->Bind(wxEVT_TEXT, &InputIpAddressDialog::on_text, this);
- m_input_access_code->SetMinSize(wxSize(FromDIP(180), FromDIP(28)));
- m_input_access_code->SetMaxSize(wxSize(FromDIP(180), FromDIP(28)));
+ m_input_access_code->SetMinSize(wxSize(FromDIP(168), FromDIP(28)));
+ m_input_access_code->SetMaxSize(wxSize(FromDIP(168), FromDIP(28)));
m_input_tip_area->Add(m_tips_ip, 0, wxALIGN_CENTER, 0);
m_input_tip_area->Add(0, 0, 0, wxLEFT, FromDIP(16));
@@ -942,14 +944,14 @@ InputIpAddressDialog::InputIpAddressDialog(wxWindow* parent)
m_tip3 = new Label(this, _L("Where to find your printer's IP and Access Code?"));
m_tip3->SetFont(::Label::Body_12);
- m_tip3->SetMinSize(wxSize(FromDIP(380), -1));
- m_tip3->SetMaxSize(wxSize(FromDIP(380), -1));
- m_tip3->Wrap(FromDIP(380));
+ m_tip3->SetMinSize(wxSize(FromDIP(352), -1));
+ m_tip3->SetMaxSize(wxSize(FromDIP(352), -1));
+ m_tip3->Wrap(FromDIP(352));
m_img_help1 = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("input_accesscode_help1", this, 198), wxDefaultPosition, wxSize(FromDIP(352), FromDIP(198)), 0);
m_img_help2 = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("input_accesscode_help2", this, 118), wxDefaultPosition, wxSize(FromDIP(352), FromDIP(118)), 0);
-
+
m_img_help1->Hide();
m_img_help2->Hide();
@@ -993,28 +995,69 @@ InputIpAddressDialog::InputIpAddressDialog(wxWindow* parent)
m_status_bar = std::make_shared(this);
m_status_bar->get_panel()->Hide();
- m_sizer_main->Add(m_line_top, 0, wxEXPAND, 0);
- m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(18));
- m_sizer_main->Add(m_tip1, 0, wxLEFT|wxRIGHT|wxEXPAND, FromDIP(18));
- m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(10));
- m_sizer_main->Add(m_line_tips, 0, wxLEFT|wxRIGHT|wxEXPAND, FromDIP(18));
- m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(10));
- m_sizer_main->Add(m_tip2, 0, wxLEFT|wxRIGHT|wxEXPAND, FromDIP(18));
- m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(18));
- m_sizer_main->Add(m_input_tip_area, 1, wxLEFT|wxRIGHT|wxEXPAND, FromDIP(18));
- m_sizer_main->Add(m_input_area, 1, wxLEFT|wxRIGHT|wxEXPAND, FromDIP(18));
- m_sizer_main->Add(m_error_msg, 0, wxLEFT|wxRIGHT|wxEXPAND, FromDIP(18));
- m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(10));
- m_sizer_main->Add(m_tip3, 0, wxLEFT|wxRIGHT|wxEXPAND, FromDIP(18));
+
+ auto m_step_icon_panel1 = new wxWindow(this, wxID_ANY);
+ auto m_step_icon_panel2 = new wxWindow(this, wxID_ANY);
+
+ m_step_icon_panel1->SetBackgroundColour(*wxWHITE);
+ m_step_icon_panel2->SetBackgroundColour(*wxWHITE);
+
+ auto m_sizer_step_icon_panel1 = new wxBoxSizer(wxVERTICAL);
+ auto m_sizer_step_icon_panel2 = new wxBoxSizer(wxVERTICAL);
+
+
+ m_img_step1 = new wxStaticBitmap(m_step_icon_panel1, wxID_ANY, create_scaled_bitmap("ip_address_step", this, 6), wxDefaultPosition, wxSize(FromDIP(6), FromDIP(6)), 0);
+
+ auto m_line_tips_left = new wxPanel(m_step_icon_panel1, wxID_ANY, wxDefaultPosition, wxSize(-1, 1));
+ m_line_tips_left->SetBackgroundColour(wxColour(0xEEEEEE));
+ m_img_step2 = new wxStaticBitmap(m_step_icon_panel2, wxID_ANY, create_scaled_bitmap("ip_address_step", this, 6), wxDefaultPosition, wxSize(FromDIP(6), FromDIP(6)), 0);
+
+ m_sizer_step_icon_panel1->Add(m_img_step1, 0, wxALIGN_CENTER|wxALL, FromDIP(5));
+
+
+ m_step_icon_panel1->SetSizer(m_sizer_step_icon_panel1);
+ m_step_icon_panel1->Layout();
+ m_step_icon_panel1->Fit();
+
+ m_step_icon_panel2->SetSizer(m_sizer_step_icon_panel2);
+ m_step_icon_panel2->Layout();
+ m_step_icon_panel2->Fit();
+
+
+ m_sizer_step_icon_panel2->Add(m_img_step2, 0, wxALIGN_CENTER|wxALL, FromDIP(5));
+
+ m_step_icon_panel1->SetMinSize(wxSize(-1, m_tip1->GetSize().y));
+ m_step_icon_panel1->SetMaxSize(wxSize(-1, m_tip1->GetSize().y));
+
+ m_sizer_main_left->Add(m_step_icon_panel1, 0, wxEXPAND, 0);
+ m_sizer_main_left->Add(0, 0, 0, wxTOP, FromDIP(20));
+ m_sizer_main_left->Add(m_line_tips_left, 1, wxEXPAND, 0);
+ m_sizer_main_left->Add(0, 0, 0, wxTOP, FromDIP(20));
+ m_sizer_main_left->Add(m_step_icon_panel2, 0, wxEXPAND, 0);
+
+
+ m_sizer_main_right->Add(m_tip1, 0, wxRIGHT|wxEXPAND, FromDIP(18));
+ m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(20));
+ m_sizer_main_right->Add(m_line_tips, 0, wxRIGHT|wxEXPAND, FromDIP(18));
+ m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(20));
+ m_sizer_main_right->Add(m_tip2, 0, wxRIGHT|wxEXPAND, FromDIP(18));
+ m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(12));
+ m_sizer_main_right->Add(m_input_tip_area, 0, wxRIGHT|wxEXPAND, FromDIP(18));
+ m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(4));
+ m_sizer_main_right->Add(m_input_area, 0, wxRIGHT|wxEXPAND, FromDIP(18));
+ m_sizer_main_right->Add(m_error_msg, 0, wxRIGHT|wxEXPAND, FromDIP(18));
+ m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(16));
+ m_sizer_main_right->Add(m_tip3, 0, wxRIGHT|wxEXPAND, FromDIP(18));
- m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(4));
- m_sizer_main->Add(m_img_help1, 0, wxLEFT, FromDIP(18));
- m_sizer_main->Add(m_img_help2, 0, wxLEFT, FromDIP(18));
+ m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(4));
+ m_sizer_main_right->Add(m_img_help1, 0, 0, 0);
+ m_sizer_main_right->Add(m_img_help2, 0, 0, 0);
- m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(12));
- m_sizer_main->Add(sizer_button, 1, wxLEFT|wxRIGHT|wxEXPAND, FromDIP(18));
- m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(12));
- m_sizer_main->Add(m_status_bar->get_panel(), 0, wxLEFT|wxRIGHT|wxEXPAND, FromDIP(18));
+ m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(30));
+ m_sizer_main_right->Add(sizer_button, 1, wxRIGHT|wxEXPAND, FromDIP(18));
+ m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(16));
+ m_sizer_main_right->Add(m_status_bar->get_panel(), 0,wxRIGHT|wxEXPAND, FromDIP(18));
+ m_sizer_main_right->Layout();
auto str_ip = m_input_ip->GetTextCtrl()->GetValue();
auto str_access_code = m_input_access_code->GetTextCtrl()->GetValue();
@@ -1031,8 +1074,15 @@ InputIpAddressDialog::InputIpAddressDialog(wxWindow* parent)
m_button_ok->SetBorderColor(wxColour(0x90, 0x90, 0x90));
}
+ m_sizer_main->Add(m_sizer_main_left, 0, wxLEFT, FromDIP(18));
+ m_sizer_main->Add(m_sizer_main_right, 0, wxLEFT|wxEXPAND, FromDIP(4));
+ m_sizer_main->Layout();
- SetSizer(m_sizer_main);
+ m_sizer_body->Add(m_line_top, 0, wxEXPAND, 0);
+ m_sizer_body->Add(0, 0, 0, wxTOP, FromDIP(20));
+ m_sizer_body->Add(m_sizer_main, 0, wxEXPAND, 0);
+
+ SetSizer(m_sizer_body);
Layout();
Fit();
@@ -1092,9 +1142,9 @@ void InputIpAddressDialog::update_error_msg(wxString msg)
else {
m_error_msg->Show();
m_error_msg->SetLabelText(msg);
- m_error_msg->SetMinSize(wxSize(FromDIP(380), -1));
- m_error_msg->SetMaxSize(wxSize(FromDIP(380), -1));
- m_error_msg->Wrap(FromDIP(380));
+ m_error_msg->SetMinSize(wxSize(FromDIP(352), -1));
+ m_error_msg->SetMaxSize(wxSize(FromDIP(352), -1));
+ m_error_msg->Wrap(FromDIP(352));
}
Layout();
diff --git a/src/slic3r/GUI/ReleaseNote.hpp b/src/slic3r/GUI/ReleaseNote.hpp
index b9b0ee2206..ea2051a813 100644
--- a/src/slic3r/GUI/ReleaseNote.hpp
+++ b/src/slic3r/GUI/ReleaseNote.hpp
@@ -191,6 +191,8 @@ public:
TextInput* m_input_access_code{ nullptr };
wxStaticBitmap* m_img_help1{ nullptr };
wxStaticBitmap* m_img_help2{ nullptr };
+ wxStaticBitmap* m_img_step1{ nullptr };
+ wxStaticBitmap* m_img_step2{ nullptr };
bool m_show_access_code{ false };
std::shared_ptr m_send_job{nullptr};