diff --git a/src/slic3r/GUI/DeviceCore/DevManager.cpp b/src/slic3r/GUI/DeviceCore/DevManager.cpp index 320d68f727..0b9e67adbd 100644 --- a/src/slic3r/GUI/DeviceCore/DevManager.cpp +++ b/src/slic3r/GUI/DeviceCore/DevManager.cpp @@ -558,6 +558,7 @@ namespace Slic3r } else { + Slic3r::GUI::wxGetApp().reset_unsigned_plugin_warning(); if (m_agent) { if (it->second->connection_type() != "lan" || it->second->connection_type().empty()) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 312c4f6731..9a846b1aaa 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -6127,18 +6127,23 @@ bool GUI_App::process_network_msg(std::string dev_id, std::string msg) } else if (msg == "unsigned_studio") { BOOST_LOG_TRIVIAL(info) << "process_network_msg, unsigned_studio"; - MessageDialog - msg_dlg(nullptr, - _L("To use OrcaSlicer with Bambu Lab printers, you need to enable LAN mode and Developer mode on your printer.\n\n" - "Please go to your printer's settings and:\n" - "1. Turn on LAN mode\n" - "2. Enable Developer mode\n\n" - "Developer mode allows the printer to work exclusively through local network access, " - "enabling full functionality with OrcaSlicer."), - _L("Network Plug-in Restriction"), wxAPPLY | wxOK); - m_show_error_msgdlg = true; - msg_dlg.ShowModal(); - m_show_error_msgdlg = false; + // Plugin re-emits this on every subscribe retry; latch it so it shows + // once per connection episode. + if (!m_show_error_msgdlg && !m_unsigned_plugin_warning_shown) { + m_unsigned_plugin_warning_shown = true; + MessageDialog + msg_dlg(nullptr, + _L("To use OrcaSlicer with Bambu Lab printers, you need to enable LAN mode and Developer mode on your printer.\n\n" + "Please go to your printer's settings and:\n" + "1. Turn on LAN mode\n" + "2. Enable Developer mode\n\n" + "Developer mode allows the printer to work exclusively through local network access, " + "enabling full functionality with OrcaSlicer."), + _L("Network Plug-in Restriction"), wxAPPLY | wxOK); + m_show_error_msgdlg = true; + msg_dlg.ShowModal(); + m_show_error_msgdlg = false; + } return true; } } diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index c90e58887e..bda27d40ec 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -343,6 +343,7 @@ private: public: //try again when subscription fails void on_start_subscribe_again(std::string dev_id); + void reset_unsigned_plugin_warning() { m_unsigned_plugin_warning_shown = false; } std::string get_local_models_path(); bool OnInit() override; int OnExit() override;