From c351ac54aa29e6d64d34fb5a1caa082fc272a311 Mon Sep 17 00:00:00 2001 From: tao wang Date: Thu, 18 May 2023 15:24:30 +0800 Subject: [PATCH] ENH:do not write to config file when user access code is empty Change-Id: I180e20b7d26fd337eef09ff4267cd4c2c61b6518 --- src/slic3r/GUI/DeviceManager.cpp | 37 ++++++++++++++++++++++---------- src/slic3r/GUI/DeviceManager.hpp | 6 +++--- src/slic3r/GUI/GUI_App.cpp | 2 +- src/slic3r/GUI/SelectMachine.cpp | 2 +- 4 files changed, 31 insertions(+), 16 deletions(-) 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);