From 7a22989e89ce01b0cf19a70cdfcac109b252260a Mon Sep 17 00:00:00 2001 From: milk Date: Tue, 20 May 2025 17:01:47 +0800 Subject: [PATCH] ENH:Fix incomplete display of the printer block prompt when entering the print submission screen for the first time jira:[STUDIO-12254] Change-Id: I642e6a39f063c65fb9d61e8d589d2a326917d370 (cherry picked from commit c0ac52cb58cffcb80db94e8985da94ff1c7add2d) --- src/slic3r/GUI/PrePrintChecker.cpp | 13 ++++++++--- src/slic3r/GUI/PrePrintChecker.hpp | 2 +- src/slic3r/GUI/SelectMachine.cpp | 35 ++++++++++++++++++++---------- 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/src/slic3r/GUI/PrePrintChecker.cpp b/src/slic3r/GUI/PrePrintChecker.cpp index 3a21d6c27a..cbf011c6d4 100644 --- a/src/slic3r/GUI/PrePrintChecker.cpp +++ b/src/slic3r/GUI/PrePrintChecker.cpp @@ -177,11 +177,9 @@ void PrinterMsgPanel::SetLabelList(const std::vector &texts, const wxC return; m_last_texts = texts; - m_labels.clear(); m_sizer->Clear(true); - - std::set unique_texts; + std::set unique_texts; for (const wxString &text : texts) { if (text.empty()) { @@ -226,6 +224,15 @@ wxString PrinterMsgPanel::GetLabel() { return wxEmptyString; } + +std::vector PrinterMsgPanel::GetLabelList() { + if (m_last_texts.empty()) + wxLogDebug(_L("No labels are currently stored.")); + return m_last_texts; +} + + + } }; diff --git a/src/slic3r/GUI/PrePrintChecker.hpp b/src/slic3r/GUI/PrePrintChecker.hpp index 30c464d383..aa50348de0 100644 --- a/src/slic3r/GUI/PrePrintChecker.hpp +++ b/src/slic3r/GUI/PrePrintChecker.hpp @@ -169,7 +169,7 @@ public: // void SetLabelSingle(const wxString &texts,const wxColour& colour); wxString GetLabel(); - + std::vector GetLabelList(); private: wxBoxSizer * m_sizer = nullptr; diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 32553b4b0f..342becf213 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1433,13 +1433,19 @@ void SelectMachineDialog::update_ams_status_msg(vector msg, bool is_er } } else { - if (is_single) - m_statictext_ams_msg->SetLabelList({ msg[0] }, colour); - else { - m_statictext_ams_msg->SetLabelList(msg, colour); - m_statictext_ams_msg->Show(); - } + if (m_statictext_ams_msg->GetLabelList() != msg) { + vector TempMsg = {}; + if (is_single) + TempMsg = {msg[0]}; + else + TempMsg = msg; + + m_statictext_ams_msg->SetLabelList(TempMsg, colour); + m_statictext_ams_msg->Show(); + Layout(); + Fit(); + } } } @@ -1457,12 +1463,19 @@ void SelectMachineDialog::update_priner_status_msg(vector msg, bool is } } else { - if (is_single) - m_text_printer_msg->SetLabelList({msg[0]}, colour); - else { - m_text_printer_msg->SetLabelList(msg, colour); + if (m_text_printer_msg->GetLabelList() != msg) { + vector TempMsg = {}; + + if (is_single) + TempMsg = {msg[0]}; + else + TempMsg = msg; + + m_text_printer_msg->SetLabelList(TempMsg, colour); m_text_printer_msg->Show(); - } + Layout(); + Fit(); + } } }