From de45d83276a1da1f5cfa68f7902e63f2ab3efeef Mon Sep 17 00:00:00 2001 From: tao wang Date: Wed, 28 Jun 2023 10:23:36 +0800 Subject: [PATCH] ENH:[STUDIO-3435]fixed crash after LAN mode printer connection Change-Id: I12cb917895b428176e110c893acaaa6ad6de94fe --- src/slic3r/GUI/SelectMachine.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 21a2b6633..6553610dc 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1409,8 +1409,11 @@ void SelectMachineDialog::init_bind() if (e.GetInt() == 0) { DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager(); if (!dev) return; - if (dev->get_selected_machine()->dev_id == e.GetString()) { - m_comboBox_printer->SetValue(dev->get_selected_machine()->dev_name + "(LAN)"); + MachineObject* obj = dev->get_selected_machine(); + if (!obj) return; + + if (obj->dev_id == e.GetString()) { + m_comboBox_printer->SetValue(obj->dev_name + "(LAN)"); } }else if(e.GetInt() == 1){ on_send_print(); @@ -1429,9 +1432,11 @@ void SelectMachineDialog::init_bind() if (!dev) return; ConnectPrinterDialog dlg(wxGetApp().mainframe, wxID_ANY, _L("Input access code")); dlg.go_connect_printer(false); - dlg.set_machine_object(dev->get_selected_machine()); - if (dlg.ShowModal() == wxID_OK) { - this->connect_printer_mqtt(); + if (dev->get_selected_machine()) { + dlg.set_machine_object(dev->get_selected_machine()); + if (dlg.ShowModal() == wxID_OK) { + this->connect_printer_mqtt(); + } } } });