From ed59f93456ef90c4d961e64a1ff30f957b89f040 Mon Sep 17 00:00:00 2001 From: Ian Chua Date: Wed, 16 Sep 2026 19:48:59 +0800 Subject: [PATCH] fix: scope get_my_machine_list to printers listed under the current printer agent --- src/slic3r/GUI/CalibrationPanel.cpp | 2 +- src/slic3r/GUI/DeviceCore/DevManager.cpp | 5 +++-- src/slic3r/GUI/MainFrame.cpp | 2 +- src/slic3r/GUI/SendToPrinter.cpp | 2 +- src/slic3r/GUI/SyncAmsInfoDialog.cpp | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/slic3r/GUI/CalibrationPanel.cpp b/src/slic3r/GUI/CalibrationPanel.cpp index bdc79c1c8e..be4ddd16c9 100644 --- a/src/slic3r/GUI/CalibrationPanel.cpp +++ b/src/slic3r/GUI/CalibrationPanel.cpp @@ -328,7 +328,7 @@ void SelectMObjectPopup::update_user_devices() } m_bind_machine_list.clear(); - m_bind_machine_list = dev->get_my_machine_list(); + m_bind_machine_list = dev->get_my_machine_list(dev->get_current_printer_agent_id()); //sort list std::vector> user_machine_list; diff --git a/src/slic3r/GUI/DeviceCore/DevManager.cpp b/src/slic3r/GUI/DeviceCore/DevManager.cpp index 6b06c56427..c697c39a46 100644 --- a/src/slic3r/GUI/DeviceCore/DevManager.cpp +++ b/src/slic3r/GUI/DeviceCore/DevManager.cpp @@ -510,7 +510,7 @@ namespace Slic3r MachineObject* DeviceManager::get_my_machine(std::string dev_id) { - auto list = get_my_machine_list(); + auto list = get_my_machine_list(get_current_printer_agent_id()); auto it = list.find(dev_id); if (it != list.end()) { @@ -571,7 +571,7 @@ namespace Slic3r { BOOST_LOG_TRIVIAL(info) << "set_selected_machine=" << dev_id << " cur_selected=" << selected_machine; - auto my_machine_list = get_my_machine_list(); + auto my_machine_list = get_my_machine_list(get_current_printer_agent_id()); auto it = my_machine_list.find(dev_id); BOOST_LOG_TRIVIAL(info) << "Orca diagnostic: set_selected_machine lookup dev_id=" << dev_id << " found=" << (it != my_machine_list.end()) @@ -585,6 +585,7 @@ namespace Slic3r << " dev_connection_type=" << it->second->dev_connection_type; } else { BOOST_LOG_TRIVIAL(warning) << "Orca diagnostic: target machine was not found in the current agent's machine list"; + return false; } // disconnect last if dev_id difference from previous one diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 5f36323d6e..4664c31d01 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -4311,7 +4311,7 @@ void MainFrame::load_printer_url() if (auto *device_manager = wxGetApp().getDeviceManager()) { auto *machine = device_manager->get_selected_machine(); if (!machine) { - auto machines = device_manager->get_my_machine_list(); + auto machines = device_manager->get_my_machine_list(device_manager->get_current_printer_agent_id()); if (machines.size() == 1) machine = machines.begin()->second; } diff --git a/src/slic3r/GUI/SendToPrinter.cpp b/src/slic3r/GUI/SendToPrinter.cpp index 2efcc23049..977b7ddfec 100644 --- a/src/slic3r/GUI/SendToPrinter.cpp +++ b/src/slic3r/GUI/SendToPrinter.cpp @@ -1119,7 +1119,7 @@ void SendToPrinterDialog::update_user_printer() wxArrayString machine_list_name; std::map option_list; - option_list = dev->get_my_machine_list(); + option_list = dev->get_my_machine_list(dev->get_current_printer_agent_id()); // same machine only appear once for (auto it = option_list.begin(); it != option_list.end(); it++) { diff --git a/src/slic3r/GUI/SyncAmsInfoDialog.cpp b/src/slic3r/GUI/SyncAmsInfoDialog.cpp index 73a04b2e15..11a7176af0 100644 --- a/src/slic3r/GUI/SyncAmsInfoDialog.cpp +++ b/src/slic3r/GUI/SyncAmsInfoDialog.cpp @@ -2130,7 +2130,7 @@ void SyncAmsInfoDialog::update_user_printer() std::map option_list; // user machine list - option_list = dev->get_my_machine_list(); + option_list = dev->get_my_machine_list(dev->get_current_printer_agent_id()); // same machine only appear once for (auto it = option_list.begin(); it != option_list.end(); it++) {