From 84faac2dd474895ebe1ea276dea1f05c73f5169e Mon Sep 17 00:00:00 2001 From: SoftFever Date: Mon, 2 Feb 2026 23:48:22 +0800 Subject: [PATCH] fix an issue the bbl printer not working --- src/slic3r/GUI/GUI_App.cpp | 14 +++++++++----- src/slic3r/GUI/Plater.cpp | 2 +- src/slic3r/GUI/WebViewDialog.cpp | 28 ++++++++++++++-------------- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index a7a0d49fa0..1a3db613f9 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -3482,12 +3482,16 @@ void GUI_App::switch_printer_agent() } // Read printer_agent from config, falling back to default - const DynamicPrintConfig& config = preset_bundle->printers.get_edited_preset().config; std::string effective_agent_id = ORCA_PRINTER_AGENT_ID; - if (config.has("printer_agent")) { - const std::string& value = config.option("printer_agent")->value; - if (!value.empty()) - effective_agent_id = value; + if (preset_bundle->is_bbl_vendor()) { + effective_agent_id = BBL_PRINTER_AGENT_ID; + } else { + const DynamicPrintConfig& config = preset_bundle->printers.get_edited_preset().config; + if (config.has("printer_agent")) { + const std::string& value = config.option("printer_agent")->value; + if (!value.empty()) + effective_agent_id = value; + } } // Check if agent is registered diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index c1691296dc..7b944f414c 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -9826,7 +9826,7 @@ void Plater::priv::on_tab_selection_changing(wxBookCtrlEvent& e) update_sidebar(); int old_sel = e.GetOldSelection(); if (wxGetApp().preset_bundle && wxGetApp().preset_bundle->use_bbl_device_tab() && new_sel == MainFrame::tpMonitor) { - if (!wxGetApp().getAgent()) { + if (!Slic3r::NetworkAgent::is_network_module_loaded()) { e.Veto(); BOOST_LOG_TRIVIAL(info) << boost::format("skipped tab switch from %1% to %2%, lack of network plugins") % old_sel % new_sel; if (q) { diff --git a/src/slic3r/GUI/WebViewDialog.cpp b/src/slic3r/GUI/WebViewDialog.cpp index 5d9301b7ca..46dddf3812 100644 --- a/src/slic3r/GUI/WebViewDialog.cpp +++ b/src/slic3r/GUI/WebViewDialog.cpp @@ -487,24 +487,24 @@ void WebViewPanel::SendLoginInfo() void WebViewPanel::ShowNetpluginTip() { - // Install Network Plugin - const auto bblnetwork_enabled =wxGetApp().app_config->get_bool("installed_networking"); - if(!bblnetwork_enabled) { - return; + const auto bblnetwork_enabled = wxGetApp().app_config->get_bool("installed_networking"); + + // Show tip if: plugin is enabled but incompatible, OR BBL printer selected but plugin not loaded + bool need_show = false; + if (bblnetwork_enabled) { + need_show = !wxGetApp().is_compatibility_version(); + } else if (wxGetApp().preset_bundle && wxGetApp().preset_bundle->is_bbl_vendor()) { + need_show = true; } - bool bValid = wxGetApp().is_compatibility_version(); - int nShow = 0; - if (!bValid) nShow = 1; + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": need_show=%1%") % need_show; - BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< boost::format(": bValid=%1%, nShow=%2%")%bValid %nShow; + json res = json::object(); + res["command"] = "network_plugin_installtip"; + res["sequence_id"] = "10001"; + res["show"] = need_show ? 1 : 0; - json m_Res = json::object(); - m_Res["command"] = "network_plugin_installtip"; - m_Res["sequence_id"] = "10001"; - m_Res["show"] = nShow; - - wxString strJS = wxString::Format("window.postMessage(%s)", m_Res.dump(-1, ' ', false, json::error_handler_t::ignore)); + wxString strJS = wxString::Format("window.postMessage(%s)", res.dump(-1, ' ', false, json::error_handler_t::ignore)); RunScript(strJS); }