diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 0f521458b..485b57cd4 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -337,14 +337,6 @@ std::string MachineObject::get_ftp_folder() return DeviceManager::get_ftp_folder(printer_type); } -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); - } -} std::string MachineObject::get_access_code() { @@ -353,12 +345,35 @@ std::string MachineObject::get_access_code() return get_user_access_code(); } -void MachineObject::set_user_access_code(std::string code) +void MachineObject::set_access_code(std::string code, bool only_refresh) { - this->user_access_code = code; + this->access_code = code; + if (only_refresh) { + AppConfig* config = GUI::wxGetApp().app_config; + if (config && !code.empty()) { + GUI::wxGetApp().app_config->set_str("access_code", dev_id, code); + } + } +} + +void MachineObject::erase_user_access_code() +{ + this->user_access_code = ""; AppConfig* config = GUI::wxGetApp().app_config; if (config) { - GUI::wxGetApp().app_config->set_str("user_access_code", dev_id, code); + GUI::wxGetApp().app_config->erase("user_access_code", dev_id); + GUI::wxGetApp().app_config->save(); + } +} + +void MachineObject::set_user_access_code(std::string code, bool only_refresh) +{ + this->user_access_code = code; + if (only_refresh && !code.empty()) { + AppConfig* config = GUI::wxGetApp().app_config; + if (config) { + GUI::wxGetApp().app_config->set_str("user_access_code", dev_id, code); + } } } diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 780473bf7..d5a7e69a6 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -418,11 +418,11 @@ public: void set_dev_ip(std::string ip) {dev_ip = ip;}; bool has_access_right() { return !get_access_code().empty(); } std::string get_ftp_folder(); - void set_access_code(std::string code); std::string get_access_code(); - void set_user_access_code(std::string code); - + void set_access_code(std::string code, bool only_refresh = true); + void set_user_access_code(std::string code, bool only_refresh = true); + void erase_user_access_code(); std::string get_user_access_code(); bool is_lan_mode_printer(); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 39182f66b..b1510337c 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1888,7 +1888,7 @@ void GUI_App::init_networking_callbacks() event.SetString(obj->dev_id); } else if (state == ConnectStatus::ConnectStatusFailed) { obj->set_access_code(""); - obj->set_user_access_code(""); + obj->erase_user_access_code(); m_device_manager->set_selected_machine("", true); wxString text; if (msg == "5") { diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index d5fe44cf7..cdb69a459 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -753,7 +753,7 @@ void SelectMachinePopup::update_user_devices() dev->set_selected_machine(""); if (mobj) { mobj->set_access_code(""); - mobj->set_user_access_code(""); + mobj->erase_user_access_code(); } MessageDialog msg_wingow(nullptr, _L("Log out successful."), "", wxAPPLY | wxOK);