From 0ce939ec53dcbfc7b82e9f0db3789823532ee355 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Tue, 21 Mar 2023 16:42:47 +0600 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=B1=D0=B0=D0=B3=D0=B8=20=D1=81=20=D1=81?= =?UTF-8?q?=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/ubl-settings-datetime.cc | 74 +++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 22 deletions(-) diff --git a/source/ubl-settings-datetime.cc b/source/ubl-settings-datetime.cc index a0fa546..db95cfe 100755 --- a/source/ubl-settings-datetime.cc +++ b/source/ubl-settings-datetime.cc @@ -454,6 +454,9 @@ void MainWindow::save_local_cfg() { info_warning_error(2); map_config_data_local_old = map_config_data_local; flag_local = true; + if (flag_global and flag_local){ + map_config_data_global_local_old = map_config_data_global_local; + } } } @@ -482,6 +485,9 @@ void MainWindow::save_global_cfg() { info_warning_error(3); map_config_data_global_old = map_config_data_global; flag_global = true; + if (flag_global and flag_local){ + map_config_data_global_local_old = map_config_data_global_local; + } } } void MainWindow::save_global_local_cfg() { @@ -500,34 +506,49 @@ void MainWindow::save_global_local_cfg() { string remove_ntp = ""; string cmd_zone = ""; if ((this->check_config("region", 2) == false || this->check_config("zone", 2) == false)) { - cmd_zone = "ubconfig --target system set clock ZONE="; - this->enter_zone(cmd_zone); - cmd_zone = "ubconfig --target global set clock ZONE="; - this->enter_zone(cmd_zone); + if (flag_local == false) { + cmd_zone = "ubconfig --target system set clock ZONE="; + this->enter_zone(cmd_zone); + } + if (flag_global == false) { + cmd_zone = "ubconfig --target global set clock ZONE="; + this->enter_zone(cmd_zone); + } } if (this->check_config("dhcp", 2) == false) { - cmd_default = "ubconfig --target system set network NTPSERVERS=default"; - cmd_dhcp = "ubconfig --target system set network NTPSERVERS=dhcp"; - cmd_set_ntp = "ubconfig --target system set network NTPSERVERS=\""; - remove_ntp = "ubconfig --target system remove network NTPSERVERS"; - this->save_Dhcp(cmd_default, cmd_dhcp, remove_ntp, cmd_set_ntp); - cmd_default = "ubconfig --target global set network NTPSERVERS=default"; - cmd_dhcp = "ubconfig --target global set network NTPSERVERS=dhcp"; - cmd_set_ntp = "ubconfig --target global set network NTPSERVERS=\""; - remove_ntp = "ubconfig --target global remove network NTPSERVERS"; - this->save_Dhcp(cmd_default, cmd_dhcp, remove_ntp, cmd_set_ntp); + if (flag_local == false) { + cmd_default = "ubconfig --target system set network NTPSERVERS=default"; + cmd_dhcp = "ubconfig --target system set network NTPSERVERS=dhcp"; + cmd_set_ntp = "ubconfig --target system set network NTPSERVERS=\""; + remove_ntp = "ubconfig --target system remove network NTPSERVERS"; + this->save_Dhcp(cmd_default, cmd_dhcp, remove_ntp, cmd_set_ntp); + } + if (flag_global == false) { + cmd_default = "ubconfig --target global set network NTPSERVERS=default"; + cmd_dhcp = "ubconfig --target global set network NTPSERVERS=dhcp"; + cmd_set_ntp = "ubconfig --target global set network NTPSERVERS=\""; + remove_ntp = "ubconfig --target global remove network NTPSERVERS"; + this->save_Dhcp(cmd_default, cmd_dhcp, remove_ntp, cmd_set_ntp); + } } if (this->check_config("hw", 2) == false) { - local = "ubconfig --target system set clock HWCLOCK_SYNC=localtime"; - hw = "ubconfig --target system set clock HWCLOCK_SYNC=utc"; - this->set_hardware_clock(local, hw); - local = "ubconfig --target global set clock HWCLOCK_SYNC=localtime"; - hw = "ubconfig --target global set clock HWCLOCK_SYNC=utc"; - this->set_hardware_clock(local, hw); + if (flag_local == false) { + local = "ubconfig --target system set clock HWCLOCK_SYNC=localtime"; + hw = "ubconfig --target system set clock HWCLOCK_SYNC=utc"; + this->set_hardware_clock(local, hw); + } + if (flag_global == false) { + local = "ubconfig --target global set clock HWCLOCK_SYNC=localtime"; + hw = "ubconfig --target global set clock HWCLOCK_SYNC=utc"; + this->set_hardware_clock(local, hw); + } } map_config_data_global_local_old = map_config_data_global_local; + map_config_data_global_old = map_config_data_global; + map_config_data_local_old = map_config_data_local; info_warning_error(4); flag_global_local = true; + } } @@ -562,12 +583,21 @@ bool MainWindow::check_config(string key, int key_save) { std::map :: iterator iter_map_config_data_old; std::map map_config_data; std::map map_config_data_old; - if (key_save == 0 && flag_local == true) { + if ((key_save == 0 || key_save == 1) && flag_global_local == true) { + map_config_data_global_local_old = map_config_data_global_local; + map_config_data_global_old = map_config_data_global; + map_config_data_local_old = map_config_data_local; + return true; + } + else if (key_save == 0 && flag_local == true) { return true; } else if (key_save == 1 && flag_global == true) { return true; } + else if (key_save == 2 && flag_global == true && flag_local == true) { + return true; + } else if (key_save == 2 && flag_global_local == true) { return true; } @@ -598,7 +628,7 @@ bool MainWindow::check_config(string key, int key_save) { return false; } else if (iter_map_config_data->second.length() == 0 || iter_map_config_data_old->second.length() == 0) { - return false; + return true; } else if (iter_map_config_data->second == iter_map_config_data_old->second) { return true;