From 1d16e98e066d8c4e5c7e983c7e5243138143ad68 Mon Sep 17 00:00:00 2001 From: tao wang Date: Mon, 5 Jun 2023 19:57:52 +0800 Subject: [PATCH] FIX:fixed multiple prompt windows popping up Change-Id: I7cfc6d1ce08d356dc9c2f7125b46d4e12b95f4e7 --- src/slic3r/GUI/StatusPanel.cpp | 18 ++++++++++++++---- src/slic3r/GUI/StatusPanel.hpp | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 2c7bb2dc4..08027b72f 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -1620,8 +1620,13 @@ void StatusPanel::update(MachineObject *obj) if (iter_connect_type->second == "lan" && obj->dev_connection_type == "cloud") { wxString txt = _L("Disconnected from printer [%s] due to LAN mode disabled.Please reconnect the printer by logging in with your user account."); wxString msg = wxString::Format(txt,obj->dev_name); - MessageDialog msg_wingow(nullptr, msg, wxEmptyString, wxICON_WARNING | wxOK); - msg_wingow.ShowModal(); + if (!m_show_mode_changed) { + m_show_mode_changed = true; + MessageDialog msg_wingow(nullptr, msg, wxEmptyString, wxICON_WARNING | wxOK); + if (msg_wingow.ShowModal() == wxID_OK || msg_wingow.ShowModal() == wxID_CLOSE) { + m_show_mode_changed = false; + } + } m_print_connect_types[obj->dev_id] = obj->dev_connection_type; } @@ -1629,8 +1634,13 @@ void StatusPanel::update(MachineObject *obj) if (iter_connect_type->second == "cloud" && obj->dev_connection_type == "lan") { wxString txt = _L("Disconnected from printer [%s] due to LAN mode enabled.Please reconnect the printer by inputting Access Code which can be gotten from printer screen."); wxString msg = wxString::Format(txt, obj->dev_name); - MessageDialog msg_wingow(nullptr, msg, wxEmptyString, wxICON_WARNING | wxOK); - msg_wingow.ShowModal(); + if (!m_show_mode_changed) { + m_show_mode_changed = true; + MessageDialog msg_wingow(nullptr, msg, wxEmptyString, wxICON_WARNING | wxOK); + if (msg_wingow.ShowModal() == wxID_OK || msg_wingow.ShowModal() == wxID_CLOSE) { + m_show_mode_changed = false; + } + } m_print_connect_types[obj->dev_id] = obj->dev_connection_type; } } diff --git a/src/slic3r/GUI/StatusPanel.hpp b/src/slic3r/GUI/StatusPanel.hpp index 51cefac32..9ec8d21ee 100644 --- a/src/slic3r/GUI/StatusPanel.hpp +++ b/src/slic3r/GUI/StatusPanel.hpp @@ -303,7 +303,7 @@ protected: int speed_lvl_timeout {0}; boost::posix_time::ptime speed_dismiss_time; bool m_showing_speed_popup = false; - + bool m_show_mode_changed = false; std::map img_list; // key: url, value: wxBitmap png Image std::map m_print_connect_types; std::vector