From 170687352efa3e87605a2bc37eafbed3679417f9 Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Mon, 20 Jan 2025 15:52:39 +0800 Subject: [PATCH] ENH:add "pop_sync_nozzle_and_ams_ialog" api jira: STUDIO-10016 Change-Id: I000fa5719cf631ff0c63b6379850e1915f78ddaa --- src/slic3r/GUI/Plater.cpp | 38 +++++++++++++++++++++----------------- src/slic3r/GUI/Plater.hpp | 1 + 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index e5d589e9d..0bfb1fb28 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -3113,25 +3113,26 @@ void Sidebar::deal_btn_sync() { bool only_external_material; auto ok = p->sync_extruder_list(only_external_material); if (ok) { - SyncNozzleAndAmsDialog::InputInfo temp_na_info; - wxPoint big_btn_pt; - wxSize big_btn_size; - wxGetApp().plater()->sidebar().get_big_btn_sync_pos_size(big_btn_pt, big_btn_size); - temp_na_info.dialog_pos = big_btn_pt + wxPoint(big_btn_size.x, big_btn_size.y) + wxPoint(FromDIP(big_btn_size.x / 10.f - 5), FromDIP(big_btn_size.y / 10.f)); - - int same_dialog_pos_x = get_sidebar_pos_right_x()+ FromDIP(5); - temp_na_info.dialog_pos.x = same_dialog_pos_x; - temp_na_info.dialog_pos.y += FromDIP(2); - temp_na_info.only_external_material = only_external_material; - if (m_sna_dialog) { - m_sna_dialog.reset(); - } - m_sna_dialog = std::make_shared(this, temp_na_info); - m_sna_dialog->Show(); - m_sna_dialog->Raise(); + pop_sync_nozzle_and_ams_ialog(); } } +void Sidebar::pop_sync_nozzle_and_ams_ialog() { + SyncNozzleAndAmsDialog::InputInfo temp_na_info; + wxPoint big_btn_pt; + wxSize big_btn_size; + wxGetApp().plater()->sidebar().get_big_btn_sync_pos_size(big_btn_pt, big_btn_size); + temp_na_info.dialog_pos = big_btn_pt + wxPoint(big_btn_size.x, big_btn_size.y) + wxPoint(FromDIP(big_btn_size.x / 10.f - 5), FromDIP(big_btn_size.y / 10.f)); + + int same_dialog_pos_x = get_sidebar_pos_right_x() + FromDIP(5); + temp_na_info.dialog_pos.x = same_dialog_pos_x; + temp_na_info.dialog_pos.y += FromDIP(2); + if (m_sna_dialog) { m_sna_dialog.reset(); } + m_sna_dialog = std::make_shared(this, temp_na_info); + m_sna_dialog->Show(); + m_sna_dialog->Raise(); +} + static std::vector get_search_inputs(ConfigOptionMode mode) { std::vector ret {}; @@ -10734,7 +10735,10 @@ int Plater::load_project(wxString const &filename2, // only pop up in 3mf if (!this->m_exported_file && !this->m_only_gcode){ - try_sync_preset_with_connected_printer(); + auto ok = try_sync_preset_with_connected_printer(); + if (ok) { + sidebar().pop_sync_nozzle_and_ams_ialog(); + } } return wx_dlg_id; } diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 1946dc158..5a366fd17 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -191,6 +191,7 @@ public: bool get_eject_shown() const; bool is_multifilament(); void deal_btn_sync(); + void pop_sync_nozzle_and_ams_ialog(); void update_mode(); bool is_collapsed(); void collapse(bool collapse);