FIX:fixed the issue of didn't selecting printer on sending print pages

jira:[none]

Change-Id: Iabafeff76b35d7e95c330a987baee6f3e0254923
This commit is contained in:
tao wang 2025-01-07 16:35:26 +08:00 committed by lane.wei
parent 2034cadb56
commit c77341acc5
1 changed files with 8 additions and 29 deletions

View File

@ -2716,10 +2716,8 @@ _compare_obj_names(MachineObject* obj1, MachineObject* obj2)
static void static void
_collect_sorted_machines(Slic3r::DeviceManager* dev_manager, _collect_sorted_machines(Slic3r::DeviceManager* dev_manager,
std::vector<MachineObject*>& sorted_machine_objs, std::vector<MachineObject*>& sorted_machine_objs,
wxArrayString& sorted_machine_names, wxArrayString& sorted_machine_names)
MachineObject*& best_one)
{ {
best_one = nullptr;
sorted_machine_objs.clear(); sorted_machine_objs.clear();
sorted_machine_names.clear(); sorted_machine_names.clear();
if (!dev_manager) if (!dev_manager)
@ -2742,10 +2740,6 @@ _collect_sorted_machines(Slic3r::DeviceManager* dev_manager,
{ {
if (obj == cur_selected_obj) if (obj == cur_selected_obj)
{ {
if (obj->printer_type == printer_type && obj->is_avaliable())
{
best_one = cur_selected_obj;;
}
return; return;
} }
@ -2789,12 +2783,6 @@ _collect_sorted_machines(Slic3r::DeviceManager* dev_manager,
} }
}; };
// make the other as best
if (!best_one && !sorted_machine_objs.empty())
{
best_one = sorted_machine_objs.front();
}
// the shown list, STUDIO-8235 // the shown list, STUDIO-8235
if (cur_selected_obj) if (cur_selected_obj)
{ {
@ -2818,26 +2806,17 @@ void SelectMachineDialog::update_user_printer()
} }
wxArrayString sorted_machine_names; wxArrayString sorted_machine_names;
MachineObject* best_one = nullptr; _collect_sorted_machines(dev, m_list, sorted_machine_names);
_collect_sorted_machines(dev, m_list, sorted_machine_names, best_one);
// update the machine list, and select a default machine // update the machine list, and select a default machine
m_comboBox_printer->Set(sorted_machine_names); m_comboBox_printer->Set(sorted_machine_names);
m_printer_last_select = best_one ? best_one->dev_id : ""; if (!m_list.empty())
if (best_one)
{ {
m_printer_last_select = best_one->dev_id; m_printer_last_select = m_list.front()->dev_id;
for (auto i = 0; i < m_list.size(); i++) m_comboBox_printer->SetSelection(0);
{
if (m_list[i] == best_one)
{
m_comboBox_printer->SetSelection(i);
wxCommandEvent event(wxEVT_COMBOBOX); wxCommandEvent event(wxEVT_COMBOBOX);
event.SetEventObject(m_comboBox_printer); event.SetEventObject(m_comboBox_printer);
wxPostEvent(m_comboBox_printer, event); wxPostEvent(m_comboBox_printer, event);
break;
}
}
} }
else else
{ {