diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index c8757a340..b1f59e970 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -318,6 +318,15 @@ std::string MachineObject::get_access_code() return get_user_access_code(); } +void MachineObject::set_access_code(std::string code) +{ + this->access_code = code; + AppConfig* config = GUI::wxGetApp().app_config; + if (config && !code.empty()) { + GUI::wxGetApp().app_config->set_str("access_code", dev_id, code); + } +} + void MachineObject::set_user_access_code(std::string code) { this->user_access_code = code; @@ -3637,6 +3646,7 @@ void DeviceManager::on_machine_alive(std::string json_str) AppConfig* config = Slic3r::GUI::wxGetApp().app_config; if (config) { obj->set_access_code(Slic3r::GUI::wxGetApp().app_config->get("access_code", dev_id)); + obj->set_user_access_code(Slic3r::GUI::wxGetApp().app_config->get("user_access_code", dev_id)); } localMachineList.insert(std::make_pair(dev_id, obj)); diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index ace39e087..8409a7d6c 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -405,11 +405,14 @@ public: std::string connection_type() { return dev_connection_type; } void set_dev_ip(std::string ip) {dev_ip = ip;}; bool has_access_right() { return !get_access_code().empty(); } - void set_access_code(std::string code); std::string get_access_code(); + + void set_access_code(std::string code); void set_user_access_code(std::string code); + std::string get_user_access_code(); bool is_lan_mode_printer(); + //PRINTER_TYPE printer_type = PRINTER_3DPrinter_UKNOWN; std::string printer_type; /* model_id */ diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 52a68f657..ac914190d 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1724,6 +1724,7 @@ void GUI_App::init_networking_callbacks() event.SetInt(1); event.SetString(obj->dev_id); } else if (state == ConnectStatus::ConnectStatusFailed) { + obj->set_access_code(""); obj->set_user_access_code(""); m_device_manager->set_selected_machine(""); wxString text;