Merge pull request 'develop' (#94) from develop into master

Reviewed-on: #94
pull/98/head
Dmitry Razumov 3 years ago
commit ff0fe5fd4a

@ -21,7 +21,7 @@ all: init build
init:
@echo "Initialize ..."; \
sed -r "s/(version_application = ).*/\1\"$$(grep 'VERSION' VERSION.md | cut -d" " -f2)\";/" -i source/ubl-settings-datetime.h; \
sed -r "s/(version_application = ).*/\1\"$$(grep 'VERSION' VERSION.md | cut -d" " -f2)\";/" -i source/ubl-settings-datetime.cc; \
echo "-- Build path: ${CMAKE_BUILD_DIR}"
depend:

@ -32,10 +32,21 @@ $ sudo make uninstall
# Usage
```sh
$ ubl-settings-datetime --help
Usage: ubl-settings-datetime [--lock-timezone] [--lock-ntp] [--lock-datetime] [--lock-update]
GTK settings datetime for UBLinux
Usage: ubl-settings-datetime [OPTIONS...]
Options:
--lock-timezone Disable timezone field editing
--lock-ntp Disable ntp field editing
--lock-datetime Disable datetime field editing
--lock-update Disable save changes
-h, --help Show this help
-V, --version Show package version
--lock-datetime Locking date and time changes
--lock-timezone Locking time zone change
--lock-ntp-mode Locking the NTP mode selection
--lock-ntp-edit Blocking the list of NTP servers
--lock-save Locking of local and global configuration saving
--lock-save-local Locking the local configuration save
--lock-save-global Locking the global configuration save
--lock-load-global Lock load global configuration
$ ubl-settings-datetime --version
ubl-settings-datetime version: x.xx
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 59 KiB

@ -46,9 +46,9 @@ int main(int argc, char* argv[]) {
}
else if (str_argv.find("-") != std::string::npos || argc == 1){
int len_argv = 1;
pars_flag(1, argc, argv);
auto app = Gtk::Application::create(len_argv, argv, "org.gtkmm.example.plug");
auto builder = Gtk::Builder::create_from_file(path_glade + "ubl-settings-datetime.glade");
pars_flag(1, argc, argv);
MainWindow* wnd = nullptr;
builder->get_widget_derived("window", wnd);
auto r = app->run(*wnd);
@ -67,7 +67,12 @@ void pars_flag(int index_start, int argc, char* argv[]){
str_argv = argv[i];
if (str_argv == "--help" || str_argv == "-h"){
help();
exit (1);
exit(1);
}
else if (str_argv == "--version" || str_argv == "-v"){
string version = string(gettext("ubl-settings-datetime version: ")) + version_application + "\n";
cout << version.c_str();
exit(1);
}
else if (str_argv == "--lock-datetime"){
flag_datetime = true;
@ -83,6 +88,8 @@ void pars_flag(int index_start, int argc, char* argv[]){
}
else if (str_argv == "--lock-save"){
flag_save = true;
flag_save_local = true;
flag_save_global = true;
}
else if (str_argv == "--lock-save-local"){
flag_save_local = true;

@ -17,6 +17,7 @@ bool flag_save_global = false;
bool flag_load_global = false;
int socket_ext_id_I = 0;
int socket_trd_id_I = 0;
string version_application = "1.4";
CmdArgParser::CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help)
: Glib::OptionGroup{p_name, p_description, p_help} {
@ -53,32 +54,33 @@ MainWindow::MainWindow(Glib::RefPtr<Gtk::Builder> const& builder) {
void MainWindow::settings() {
map_error["xdg-open https://wiki.ublinux.ru/ru/home"] = string(_(": \"xdg-open\""));
map_error["/usr/bin/ubconfig --default --source system get clock ZONE"] = string(_(": \"Time Zone\""));
map_error["ubconfig --default --source system get clock ZONE"] = string(_(": \"Time Zone\""));
map_error["hwclock --systohc"] = string(_(": \"Hardware time\""));
map_error["/usr/bin/ubconfig --default --source system get network NTPSERVERS"] = string(_(": \"NTP\""));
map_error["/usr/bin/ubconfig --source=default get NTPSERVERS_DEFAULT"] = string(_(": \"NTP\""));
map_error["/usr/bin/ubconfig --default --source system get clock HWCLOCK_SYNC"] = string(_(": \"Hardware time\""));
map_error["/usr/bin/ubconfig --default --source global get network NTPSERVERS"] = string(_(": \"NTP\""));
map_error["/usr/bin/ubconfig --default --source global get clock ZONE"] = string(_(": \"Time Zone\""));
map_error["/usr/bin/ubconfig --default --source global get clock HWCLOCK_SYNC"] = string(_(": \"Hardware time\""));
map_error["/usr/bin/ubconfig --source global get clock HWCLOCK_SYNC"] = string(_(": \"Hardware time\""));
map_error["/usr/bin/ubconfig --target system set clock ZONE="] = string(_(": \"Time Zone\""));
map_error["/usr/bin/ubconfig --target system set network NTPSERVERS=default"] = string(_(": \"NTP\""));
map_error["/usr/bin/ubconfig --target system set network NTPSERVERS=dhcp"] = string(_(": \"NTP\""));
map_error["/usr/bin/ubconfig --target system set network NTPSERVERS=\""] = string(_(": \"NTP\""));
map_error["/usr/bin/ubconfig --target system remove network NTPSERVERS"] = string(_(": \"NTP\""));
map_error["/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=localtime"] = string(_(": \"Hardware time\""));
map_error["/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=utc"] = string(_(": \"Hardware time\""));
map_error["/usr/bin/ubconfig --target global set clock ZONE="] = string(_(": \"Time Zone\""));
map_error["/usr/bin/ubconfig --target global set network NTPSERVERS=default"] = string(_(": \"NTP\""));
map_error["/usr/bin/ubconfig --target global set network NTPSERVERS=dhcp"] = string(_(": \"NTP\""));
map_error["/usr/bin/ubconfig --target global set network NTPSERVERS=\""] = string(_(": \"NTP\""));
map_error["/usr/bin/ubconfig --target global remove network NTPSERVERS"] = string(_(": \"NTP\""));
map_error["/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=localtime"] = string(_(": \"Hardware time\""));
map_error["/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=utc"] = string(_(": \"Hardware time\""));
map_error["ubconfig --default --source system get network NTPSERVERS"] = string(_(": \"NTP\""));
map_error["ubconfig --source=default get NTPSERVERS_DEFAULT"] = string(_(": \"NTP\""));
map_error["ubconfig --default --source system get clock HWCLOCK_SYNC"] = string(_(": \"Hardware time\""));
map_error["ubconfig --default --source global get network NTPSERVERS"] = string(_(": \"NTP\""));
map_error["ubconfig --default --source global get clock ZONE"] = string(_(": \"Time Zone\""));
map_error["ubconfig --default --source global get clock HWCLOCK_SYNC"] = string(_(": \"Hardware time\""));
map_error["ubconfig --source global get clock HWCLOCK_SYNC"] = string(_(": \"Hardware time\""));
map_error["ubconfig --target system set clock ZONE="] = string(_(": \"Time Zone\""));
map_error["ubconfig --target system set network NTPSERVERS=default"] = string(_(": \"NTP\""));
map_error["ubconfig --target system set network NTPSERVERS=dhcp"] = string(_(": \"NTP\""));
map_error["ubconfig --target system set network NTPSERVERS=\""] = string(_(": \"NTP\""));
map_error["ubconfig --target system remove network NTPSERVERS"] = string(_(": \"NTP\""));
map_error["ubconfig --target system set clock HWCLOCK_SYNC=localtime"] = string(_(": \"Hardware time\""));
map_error["ubconfig --target system set clock HWCLOCK_SYNC=utc"] = string(_(": \"Hardware time\""));
map_error["ubconfig --target global set clock ZONE="] = string(_(": \"Time Zone\""));
map_error["ubconfig --target global set network NTPSERVERS=default"] = string(_(": \"NTP\""));
map_error["ubconfig --target global set network NTPSERVERS=dhcp"] = string(_(": \"NTP\""));
map_error["ubconfig --target global set network NTPSERVERS=\""] = string(_(": \"NTP\""));
map_error["ubconfig --target global remove network NTPSERVERS"] = string(_(": \"NTP\""));
map_error["ubconfig --target global set clock HWCLOCK_SYNC=localtime"] = string(_(": \"Hardware time\""));
map_error["ubconfig --target global set clock HWCLOCK_SYNC=utc"] = string(_(": \"Hardware time\""));
map_error["ubconfig --source default get [] NTPSERVERS_DEFAULT"] = string(_(": \"NTP\""));
map_error["date +%Y%m%d -s \""] = string(_(": \"Date\""));
map_error["date +%T -s \""] = string(_(": \"Date\""));
map_error["/usr/bin/ubconfig --source default get clock HWCLOCK_SYNC"] = string(_(": \"Hardware time\""));
map_error["ubconfig --source default get clock HWCLOCK_SYNC"] = string(_(": \"Hardware time\""));
this->get_builder();
this->add_CSS();
ubl_make_plugs(boxSave,boxButton, socket_ext_id_I, socket_trd_id_I);
@ -86,7 +88,7 @@ void MainWindow::settings() {
month = 0;
day = 0;
this->lacalization();
if (this->check_root() == 0) {
if (geteuid() == 0) {
numTimeHrs->set_range(0, 23);
numTimeMin->set_range(0, 59);
numTimeHrs->set_increments(1.0, 1.0);
@ -97,31 +99,15 @@ void MainWindow::settings() {
this->event();
this->parse_text_date();
this->load_local_cfg();
string cmd = "ubconfig --source default get [] NTPSERVERS_DEFAULT";
default_get_dhcp = this->get_ubconfig_value(cmd);
this->str_remove(default_get_dhcp, "\"");
}
else {
lblHW->set_sensitive(false);
cbHw->set_sensitive(false);
boxWidgetFunc->set_sensitive(false);
boxButton->set_sensitive(false);
boxSave->set_sensitive(false);
btnLoad->set_sensitive(false);
numTimeHrs->set_sensitive(false);
numTimeMin->set_sensitive(false);
lblTime->set_sensitive(false);
lblData->set_sensitive(false);
txtDate->set_sensitive(false);
btnChooseDate->set_sensitive(false);
btnUpdateDateTime->set_sensitive(false);
btnHardwareTime->set_sensitive(false);
cbRegion->set_sensitive(false);
cbZone->set_sensitive(false);
lblReg->set_sensitive(false);
lblZone->set_sensitive(false);
lblTimeZone->set_sensitive(false);
lblSynchronizebChkGLob->set_sensitive(false);
cbDhcp->set_sensitive(false);
txtNtpServer->set_sensitive(false);
lblDateTimeSetting->set_sensitive(false);
btnBoxAboutDialog->set_visible(false);
btnSave->set_sensitive(false);
this->event();
imgInfo->set_from_icon_name("ru.ublinux.ubl-settings-datetime.warning", Gtk::ICON_SIZE_MENU);
info_status_app("boxInfoMessError");
@ -129,16 +115,6 @@ void MainWindow::settings() {
}
}
int MainWindow::check_root() {
if (geteuid() != 0) {
lblMessageSudo->set_text(_("The program must be run as root"));
windowMessSudo->show();
return 1;
}
return 0;
}
void MainWindow::lacalization() {
time_t now = time(0);
tm *ltm = localtime(&now);
@ -153,26 +129,45 @@ void MainWindow::lacalization() {
lblLoad->set_label(_("Load"));
txtDate->set_tooltip_text(_("Date of\nFormat: DD.MM.YYYY"));
txtNtpServer->set_tooltip_text(_("Enter the name of the ntp-server or its ip-address.\nWhen entering multiple addresses, separate them with commas."));
lblSynchronizebChkGLob->set_text(_("Synchronize via NTP:"));
lblSynchronizebChkGLob->set_text(_("Synchronize via NTP"));
cbDhcp->append(_("Default"));
cbDhcp->append(_("DHCP"));
cbDhcp->append(_("Manual"));
cbDhcp->append(_("Disabled"));
lblDateTimeSetting->set_text(_("Current date and time"));
lblHead->set_text(_("Setting the date and time"));
lblTime->set_text(_("Time"));
lblData->set_text(_("Date"));
lblTime->set_text(_("Time:"));
lblData->set_text(_("Date:"));
lblTimeZone->set_text(_("Time zone"));
lblReg->set_text(_("Region"));
lblZone->set_text(_("Zone"));
lblReg->set_text(_("Region:"));
lblZone->set_text(_("Zone:"));
lblSynchronizeBtn->set_text(_("Sync by"));
lblHeader->set_text(_("ubl-settings-datetime"));
windowMessSudo->set_title(_("Warning!"));
windowMessDchp->set_title(_("Warning!"));
lblTimeBios->set_text(_("Synchronize hardware time"));
lblHW->set_text(_("Synchronize hardware time:"));
cbHw->append(_("Local time"));
cbHw->append(_("UTC time"));
array_hw_local[0] = _("UTC time");
array_hw_local[1] = _("Local time");
array_hw[0] = "utc";
array_hw[1] = "localtime";
this->bubble_sort(array_hw, array_hw_local, 2);
cbHw->append(array_hw_local[0]);
cbHw->append(array_hw_local[1]);
}
void MainWindow::bubble_sort(string arr[],string arr_local[], int len_arr) {
while(len_arr--) {
bool swapped = false;
for(int i = 0; i < len_arr; i++) {
if(arr_local[i] > arr_local[i + 1]) {
swap(arr[i], arr[i + 1]);
swap(arr_local[i], arr_local[i + 1]);
swapped = true;
}
}
if(swapped == false)
break;
}
}
void MainWindow::flag_block_gui() {
@ -202,14 +197,19 @@ void MainWindow::flag_block_gui() {
if (flag_load_global == true) {
btnLoadGlob->set_sensitive(false);
}
if (flag_save_local == true && flag_save_global == true) {
btnSave->set_sensitive(false);
}
if (flag_save == true) {
btnSave->set_sensitive(false);
}
if (flag_save_local == true) {
btnSaveLocal->set_sensitive(false);
btnSaveLocalGlob->set_sensitive(false);
}
if (flag_save_global == true) {
btnSaveGlob->set_sensitive(false);
btnSaveLocalGlob->set_sensitive(false);
}
}
@ -225,10 +225,12 @@ void MainWindow::add_CSS() {
Glib::RefPtr<Gtk::StyleContext> boxButton_css = boxButton->get_style_context();
Glib::RefPtr<Gtk::StyleContext> boxSave_css = boxSave->get_style_context();
Glib::RefPtr<Gtk::StyleContext> headerBar_css = headerBar->get_style_context();
if (socket_trd_id_I == 0 && socket_ext_id_I == 0){
boxButton_css->add_class("bkim_no_plug");
boxSave_css->add_class("bkim_no_plug");
}
lblHead_css->add_class("textHead");
boxButton_css->add_class("bkimButton");
boxSave_css->add_class("bkimButton");
headerBar_css->add_class("bkimHeadBar");
}
@ -266,7 +268,6 @@ void MainWindow::get_builder() {
builder->get_widget("lblSynchronizeBtn", lblSynchronizeBtn);
builder->get_widget("lblTimeBios", lblTimeBios);
builder->get_widget("btnHardwareTime",btnHardwareTime);
builder->get_widget("windowMessSudo",windowMessSudo);
builder->get_widget("lblMessageSudo", lblMessageSudo);
builder->get_widget("btnMessCloseSudo",btnMessCloseSudo);
builder->get_widget("lblSave", lblSave);
@ -300,17 +301,12 @@ void MainWindow::get_builder() {
builder->get_widget("imgLoad", imgLoad);
builder->get_widget("imgSettings", imgSettings);
builder->get_widget("imgSave", imgSave);
}
builder->get_widget("boxWidgetFunc", boxWidgetFunc);
void MainWindow::gui_exit() {
exit(1);
}
bool MainWindow::gui_exit_2(GdkEventAny* event) {
if (event != NULL) {
}
void MainWindow::gui_exit() {
exit(1);
return true;
}
void MainWindow::event() {
@ -323,7 +319,6 @@ void MainWindow::event() {
cbDhcp->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::event_entry_cbDhcp));
cbRegion->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::append_zone));
cldrDate->signal_day_selected_double_click().connect(sigc::mem_fun(*this, &MainWindow::get_calendar));
windowMessSudo->signal_delete_event().connect(sigc::mem_fun(*this, &MainWindow::gui_exit_2));
btnAbout->signal_activate().connect([&]() {aboutWindows->show();});
btnSynopsis->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::synopsis_show));
btnLoadLocal->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::load_local_cfg));
@ -335,65 +330,81 @@ void MainWindow::event() {
void MainWindow::synopsis_show() {
int start_error = error_info;
wrapper_system("xdg-open https://wiki.ublinux.ru/ru/home", "&");
//gtk_show_uri_on_window(NULL, "https://wiki.ublinux.ru/ru/home", 0, 0);
string cmd = "xdg-open " + string(_("https://wiki.ublinux.com/ru/Программное_обеспечениерограммы_и_утилиты/Все/")) + app_name;
wrapper_system(cmd, "&");
if (start_error != error_info) {
error_info = start_error;
}
}
void MainWindow::load_local_cfg() {
string cmd = "/usr/bin/ubconfig --default --source system get clock ZONE";
string cmd = "ubconfig --default --source system get clock ZONE";
this->fill_in_reg_zone(cmd);
this->update_hour_minute();
this->update_calendar();
string cmd_get_dhcp = "/usr/bin/ubconfig --default --source system get network NTPSERVERS";
string cmd_default_get_dhcp = "/usr/bin/ubconfig --source=default get NTPSERVERS_DEFAULT";
string cmd_get_dhcp = "ubconfig --default --source system get network NTPSERVERS";
string cmd_default_get_dhcp = "ubconfig --source default get [] NTPSERVERS_DEFAULT";
this->entry_dhcp_mess(cmd_get_dhcp, cmd_default_get_dhcp);
string hw = "/usr/bin/ubconfig --default --source system get clock HWCLOCK_SYNC";
this->entry_hardware_clock(hw);
string hw = "ubconfig --default --source system get clock HWCLOCK_SYNC";
this->get_hardware_clock(hw);
flag_load = false;
info_warning_error(0);
}
void MainWindow::load_globl_cfg() {
string cmd_get_dhcp = "/usr/bin/ubconfig --default --source global get network NTPSERVERS";
string cmd_default_get_dhcp = "/usr/bin/ubconfig --source=default get NTPSERVERS_DEFAULT";
string cmd_get_dhcp = "ubconfig --default --source global get network NTPSERVERS";
string cmd_default_get_dhcp = "ubconfig --source default get [] NTPSERVERS_DEFAULT";
this->entry_dhcp_mess(cmd_get_dhcp, cmd_default_get_dhcp);
string cmd_zone = "/usr/bin/ubconfig --default --source global get clock ZONE";
string cmd_zone = "ubconfig --default --source global get clock ZONE";
this->fill_in_reg_zone(cmd_zone);
string hw = "/usr/bin/ubconfig --source global get clock HWCLOCK_SYNC";
this->entry_hardware_clock(hw);
string hw = "ubconfig --source global get clock HWCLOCK_SYNC";
this->get_hardware_clock(hw);
flag_load = true;
info_warning_error(1);
}
void MainWindow::save_local_cfg() {
string cmd_zone = "/usr/bin/ubconfig --target system set clock ZONE=";
string cmd_zone = "ubconfig --target system set clock ZONE=";
this->enter_zone(cmd_zone);
string cmd_default = "/usr/bin/ubconfig --target system set network NTPSERVERS=default";
string cmd_dhcp = "/usr/bin/ubconfig --target system set network NTPSERVERS=dhcp";
string cmd_set_ntp = "/usr/bin/ubconfig --target system set network NTPSERVERS=\"";
string remove_ntp = "/usr/bin/ubconfig --target system remove network NTPSERVERS";
string cmd_default = "ubconfig --target system set network NTPSERVERS=default";
string cmd_dhcp = "ubconfig --target system set network NTPSERVERS=dhcp";
string cmd_set_ntp = "ubconfig --target system set network NTPSERVERS=\"";
string remove_ntp = "ubconfig --target system remove network NTPSERVERS";
this->save_Dhcp(cmd_default, cmd_dhcp, remove_ntp, cmd_set_ntp);
string local = "/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=localtime";
string hw = "/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=utc";
this->entry_hardware_clock(hw);
string local = "ubconfig --target system set clock HWCLOCK_SYNC=localtime";
string hw = "ubconfig --target system set clock HWCLOCK_SYNC=utc";
this->set_hardware_clock(local, hw);
info_warning_error(2);
}
void MainWindow::save_global_cfg() {
string cmd = "/usr/bin/ubconfig --target global set clock ZONE=";
string cmd = "ubconfig --target global set clock ZONE=";
this->enter_zone(cmd);
string cmd_default = "/usr/bin/ubconfig --target global set network NTPSERVERS=default";
string cmd_dhcp = "/usr/bin/ubconfig --target global set network NTPSERVERS=dhcp";
string cmd_set_ntp = "/usr/bin/ubconfig --target global set network NTPSERVERS=\"";
string remove_ntp = "/usr/bin/ubconfig --target global remove network NTPSERVERS";
string cmd_default = "ubconfig --target global set network NTPSERVERS=default";
string cmd_dhcp = "ubconfig --target global set network NTPSERVERS=dhcp";
string cmd_set_ntp = "ubconfig --target global set network NTPSERVERS=\"";
string remove_ntp = "ubconfig --target global remove network NTPSERVERS";
this->save_Dhcp(cmd_default, cmd_dhcp, remove_ntp, cmd_set_ntp);
string local = "/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=localtime";
string hw = "/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=utc";
this->hardware_clock_global(local, hw);
string local = "ubconfig --target global set clock HWCLOCK_SYNC=localtime";
string hw = "ubconfig --target global set clock HWCLOCK_SYNC=utc";
this->set_hardware_clock(local, hw);
info_warning_error(3);
}
string MainWindow::get_ubconfig_value(string &cmd){
struct Result<string> obj_result = this->wrapper_call(cmd);
if (obj_result.error == 0) {
return obj_result.response;
}
else {
if (obj_result.error != 0) {
warning_info-= 1;
}
return "";
}
}
void MainWindow::save_global_local_cfg() {
string cmd = "";
string cmd_default = "";
@ -485,25 +496,40 @@ void MainWindow::log_mess_error(string &cmd){
}
}
void MainWindow::hardware_clock_global(string &local, string &etc) {
int index = cbHw->get_active_row_number();
if (index == 0) {
wrapper_system(local, "&");
}
else if (index == 1) {
wrapper_system(etc, "&");
void MainWindow::set_hardware_clock(string &local, string &etc) {
string str_hw = cbHw->get_active_text();
for (int index = 0; index < 2; index++) {
if (array_hw_local[index] == str_hw){
if (array_hw[index] == "utc"){
wrapper_system(etc, "&");
}
else{
wrapper_system(local, "&");
}
}
}
}
void MainWindow::entry_hardware_clock(string &cmd) {
void MainWindow::get_hardware_clock(string &cmd) {
int error = warning_info;
struct Result<string> obj_result = this->wrapper_call(cmd);
if (obj_result.error == 0) {
if (obj_result.response.find("localtime") != string::npos) {
cbHw->set_active(0);
if (array_hw[0] == "localtime"){
cbHw->set_active(0);
}
else{
cbHw->set_active(1);
}
}
else if (obj_result.response.find("utc") != string::npos) {
cbHw->set_active(1);
if (array_hw[0] == "utc"){
cbHw->set_active(0);
}
else{
cbHw->set_active(1);
}
}
else {
cbHw->set_active(-1);
@ -682,24 +708,36 @@ void MainWindow::event_entry_cbDhcp() {
cbDhcp->set_active(0);
}
else if (activ_index == 0) {
txtNtpServer->set_text("");
btnUpdateDateTime->set_sensitive(false);
txtNtpServer->set_text(default_get_dhcp);
txtNtpServer->set_sensitive(false);
}
else if (activ_index == 1) {
btnUpdateDateTime->set_sensitive(false);
// btnUpdateDateTime->set_sensitive(false);
txtNtpServer->set_sensitive(false);
txtNtpServer->set_text("");
}
else if (activ_index == 2) {
txtNtpServer->set_text("");
if (flag_ntp_edit == false) {
string cmd = "";
if (flag_load == false) {
cmd = "ubconfig --default --source system get network NTPSERVERS";
}
else{
cmd = "ubconfig --default --source global get network NTPSERVERS";
}
string response = this->get_ubconfig_value(cmd);
if (response != "dhcp" && response != "default"){
txtNtpServer->set_text(response);
}
txtNtpServer->set_sensitive(true);
}
}
else if (activ_index == 3) {
txtNtpServer->set_text("");
txtNtpServer->set_sensitive(false);
btnUpdateDateTime->set_sensitive(true);
// btnUpdateDateTime->set_sensitive(true);
}
}
@ -731,7 +769,7 @@ void MainWindow::entry_dhcp_mess(string cmd_get_dhcp, string cmd_default_get_dhc
struct Result<string> obj_result = this->wrapper_call(cmd);
if (obj_result.error== 0) {
string str_dhcp = obj_result.response;
btnUpdateDateTime->set_sensitive(false);
// btnUpdateDateTime->set_sensitive(false);
str_dhcp = str_dhcp.substr(str_dhcp.find("=")+1,str_dhcp.length());
str_dhcp = str_dhcp.substr(0,str_dhcp.find("\n"));
if (str_dhcp == "dhcp") {
@ -740,7 +778,7 @@ void MainWindow::entry_dhcp_mess(string cmd_get_dhcp, string cmd_default_get_dhc
txtNtpServer->set_sensitive(false);
}
else if (str_dhcp == "default") {
btnUpdateDateTime->set_sensitive(false);
// btnUpdateDateTime->set_sensitive(false);
cbDhcp->set_active(0);
cmd = cmd_default_get_dhcp;
struct Result<string> obj_result = this->wrapper_call(cmd);
@ -755,7 +793,7 @@ void MainWindow::entry_dhcp_mess(string cmd_get_dhcp, string cmd_default_get_dhc
}
}
else {
btnUpdateDateTime->set_sensitive(false);
// btnUpdateDateTime->set_sensitive(false);
if (str_dhcp == "") {
lblMessage->set_text(_("Enter DHCP!"));
windowMessDchp->show();
@ -777,7 +815,7 @@ void MainWindow::entry_dhcp_mess(string cmd_get_dhcp, string cmd_default_get_dhc
cbDhcp->set_active(3);
txtNtpServer->set_text("");
txtNtpServer->set_sensitive(false);
btnUpdateDateTime->set_sensitive(true);
// btnUpdateDateTime->set_sensitive(true);
warning_info -= 1;
}
}
@ -1056,7 +1094,7 @@ void MainWindow::update_time_date() {
string str_data_entry = txtDate->get_text();
if (str_data == str_data_entry) {
cmd = "date +%Y%m%d -s \"" + to_string(year)+
str_month+str_day + "\"";
str_month + str_day + "\"";
wrapper_system(cmd);
txtDate->set_text(str_data);
year = 0;
@ -1296,11 +1334,23 @@ SettingsPlug::SettingsPlug(::Window p_socketID, Glib::RefPtr<Gtk::Builder> build
}
void help() {
g_print(gettext("Usage: ubl-settings-datetime [--lock-timezone] [--lock-ntp] [--lock-datetime] [--lock-update]\n"));
g_print(gettext("Options:\n"));
g_print(gettext(" --lock-timezone Disable timezone field editing\n"));
g_print(gettext(" --lock-ntp Disable ntp field editing\n"));
g_print(gettext(" --lock-datetime Disable datetime field editing\n"));
g_print(gettext(" --lock-update Disable save changes\n"));
string version = string(gettext("ubl-settings-datetime version: ")) + version_application + "\n";
cout << version.c_str();
string help;
help = "GTK settings datetime for UBLinux\n\n"
"Usage: ubl-settings-datetime [OPTIONS...]\n"
"Options:\n"
" -h, --help Show this help\n"
" -V, --version Show package version\n"
" --lock-datetime Lock date and time changes\n"
" --lock-timezone Lock time zone changes\n"
" --lock-ntp-mode Lock NTP mode selection\n"
" --lock-ntp-edit Lock editing NTP servers\n"
" --lock-save Lock saving local and global configuration\n"
" --lock-save-local Lock save global configuration\n"
" --lock-save-global Lock load global configuration\n"
" --lock-load-global Lock load global configuration\n";
cout << gettext(help.c_str());
}

@ -36,8 +36,8 @@ extern bool flag_save_global;
extern bool flag_load_global;
extern int socket_ext_id_I;
extern int socket_trd_id_I;
class CmdArgParser : public Glib::OptionGroup
{
extern string version_application;
class CmdArgParser : public Glib::OptionGroup {
public:
CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help);
::Window GetSocketID() const;
@ -56,12 +56,10 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::ComboBoxText *cbDhcp;
Gtk::SpinButton *numTimeHrs;
Gtk::SpinButton *numTimeMin;
Gtk::CheckButton *cbxSynchronizeNtpGlob;
Gtk::Box *boxColor;
Gtk::ComboBoxText *cbRegion;
Gtk::ComboBoxText *cbZone;
Gtk::Window *windowMessDchp;
Gtk::Window *windowMessSudo;
Gtk::Popover *popCalendar;
Gtk::Calendar *cldrDate;
Gtk::Label *lblMessage;
@ -88,7 +86,7 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Button *btnSettings;
Gtk::AboutDialog *aboutWindows;
Gtk::ButtonBox *btnBoxAboutDialog;
Gtk::Box *boxWidgetFunc;
Gtk::Box *boxInfoError;
Gtk::Label *lblWarning;
Gtk::Image *imgInfo;
@ -114,11 +112,13 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Image *imgLoad;
Gtk::Image *imgSave;
Gtk::Image *imgSettings;
string array_hw[2];
string array_hw_local[2];
bool flag_load = false;
unsigned int year = 0;
unsigned int month = 0;
unsigned int day = 0;
string version_application = "1.4";
string default_get_dhcp = "";
int error_info = 0;
int warning_info = 0;
string cmd_error = "";
@ -140,14 +140,15 @@ class MainWindow : public Gtk::ApplicationWindow {
MainWindow(Glib::RefPtr<Gtk::Builder> const& builder);
virtual ~MainWindow() = default;
void log_mess_error(string &cmd);
void hardware_clock_global(string &local, string &etc);
void set_hardware_clock(string &local, string &etc);
void info_warning_error(int mess);
void synopsis_show();
void entry_hardware_clock(string &cmd);
void get_hardware_clock(string &cmd);
void save_global_local_cfg();
void fill_in_reg_zone(string &cmd);
void load_globl_cfg();
void save_local_cfg();
string get_ubconfig_value(string &cmd);
void save_global_cfg();
void save_Dhcp(string &cmd_default, string &cmd_dhcp, string &remove, string &cmd_set_ntp);
void load_local_cfg();
@ -172,15 +173,14 @@ class MainWindow : public Gtk::ApplicationWindow {
void append_zone();
void append_zone_glob();
void update_time_date();
void bubble_sort(string arr[],string arr_local[], int len_arr);
void update_hour_minute();
void update_calendar();
void read_file();
void parse_text_date();
void hardware_clock();
void set_ntp_toggle_glob();
int check_root();
void gui_exit();
bool gui_exit_2(GdkEventAny* event);
void wind_close_ntp();
void wrapper_system(string cmd, string thread_str);
void info_status_app(string stule);

@ -44,6 +44,14 @@ inline void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, in
if (left_plug_id>0&&LeftWidget){
GtkWidget *plug=gtk_plug_new(left_plug_id);
GtkWidget *toplug=GTK_WIDGET(LeftWidget->gobj());
{GdkScreen *screen = gtk_widget_get_screen(plug);
gtk_widget_set_app_paintable(plug,TRUE);
GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
gtk_widget_set_visual(plug, colormap);}
{GdkScreen *screen = gtk_widget_get_screen(toplug);
gtk_widget_set_app_paintable(toplug,TRUE);
GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
gtk_widget_set_visual(toplug, colormap);}
if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
g_object_ref(G_OBJECT(toplug));
GtkWidget *parent=gtk_widget_get_parent(toplug);
@ -52,16 +60,21 @@ inline void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, in
} else
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
gtk_widget_show(GTK_WIDGET(plug));
gtk_style_context_remove_class(gtk_widget_get_style_context(plug),"bkimButton");
gtk_style_context_remove_class(gtk_widget_get_style_context(toplug),"bkimButton");
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"noborder");
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"button");
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"button");
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"bkim");
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"bkim");
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"primary-toolbar");
}
if (right_plug_id>0&&RightWidget){
GtkWidget *plug=gtk_plug_new(right_plug_id);
GtkWidget *toplug=GTK_WIDGET(RightWidget->gobj());
{GdkScreen *screen = gtk_widget_get_screen(plug);
gtk_widget_set_app_paintable(plug,TRUE);
GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
gtk_widget_set_visual(plug, colormap);}
{GdkScreen *screen = gtk_widget_get_screen(toplug);
gtk_widget_set_app_paintable(toplug,TRUE);
GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
gtk_widget_set_visual(toplug, colormap);}
if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
g_object_ref(G_OBJECT(toplug));
GtkWidget *parent=gtk_widget_get_parent(toplug);
@ -70,13 +83,9 @@ inline void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, in
} else
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
gtk_widget_show(GTK_WIDGET(plug));
gtk_style_context_remove_class(gtk_widget_get_style_context(plug),"bkimButton");
gtk_style_context_remove_class(gtk_widget_get_style_context(toplug),"bkimButton");
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"noborder");
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"button");
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"button");
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"bkim");
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"bkim");
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"primary-toolbar");
}
}
#endif

@ -13,91 +13,68 @@
.textHeaderBar{
font-weight: bold;
}
.menu:hover {
border-color:alpha(@theme_text_color, 0.01);
}
.menu:hover >* {
border-color:alpha(@theme_text_color, 0.01);
}
.menuitemtop{
margin-bottom:0px;
}
.menuitemtop *{
margin:2px 2px 0 2px;
padding: 5px 10px 3px 5px;
margin:2px 2px 0 2px;
padding: 5px 10px 3px 5px;
}
.menuitemmiddle *{
margin:0 2px 0 2px;
padding: 3px 10px 3px 5px;
margin:0 2px 0 2px;
padding: 3px 10px 3px 5px;
}
.menuitembottom *{
margin:0 2px 2px 2px;
padding: 3px 10px 5px 5px;
margin:0 2px 2px 2px;
padding: 3px 10px 5px 5px;
}
.menuitemtop:hover {
border-radius:3px;
background:@theme_bg_color;
background:@theme_bg_color;
}
.menuitemmiddle:hover {
border-radius:3px;
background:@theme_bg_color;
background:@theme_bg_color;
}
.menuitembottom:hover {
border-radius:3px;
background:@theme_bg_color;
background:@theme_bg_color;
}
.menuitemtop:hover* {
border-radius:3px;
margin:2px 2px 0 2px;
padding: 5px 10px 3px 5px;
background:@theme_selected_bg_color;
border-color:transparent;
margin:2px 2px 0 2px;
padding: 5px 10px 3px 5px;
background:@theme_selected_bg_color;
border-radius:2px;
}
.menuitemmiddle:hover* {
border-radius:3px;
margin:0 2px 0 2px;
padding: 3px 10px 3px 5px;
background:@theme_selected_bg_color;
border-color:transparent;
margin:0 2px 0 2px;
padding: 3px 10px 3px 5px;
background:@theme_selected_bg_color;
border-radius:2px;
}
.menuitembottom:hover* {
border-radius:3px;
margin:0 2px 2px 2px;
padding: 3px 10px 5px 5px;
background:@theme_selected_bg_color;
border-color:transparent;
}
.menuitembottom{
margin-top:0px;
}
.menuitemmiddle{
margin-top:0px;
margin-bottom:0px;
}
.menuitemtop{
margin-bottom:0px;
margin:0 2px 2px 2px;
padding: 3px 10px 5px 5px;
background:@theme_selected_bg_color;
border-radius:2px;
}
.bkimHeadBar{
opacity:1.0;
}
.bkimButton{
background-color: transparent;
opacity:1.0;
}
.bkimButtonPlug{
background-color: transparent;
opacity:1.0;
}
.noborder{
border:none;
}
.buttonPlug {
background-color: transparent;
background-repeat: no-repeat;
border: none;
outline: none;
.bkim{
opacity:0.99;
border:none;
}
.button {
background-image: -gtk-gradient(linear,
left top, left bottom,
from(@entry_background_a),
color-stop(0.20, @entry_background_b),
color-stop(0.85, @entry_background_c),
to(@entry_background_d));
.bkim_no_plug{
background-color: transparent;
opacity:0.99;
}

@ -143,6 +143,7 @@
</child>
</object>
<object class="GtkWindow" id="window">
<property name="width-request">659</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox" id="plugBox">
@ -314,7 +315,7 @@
</packing>
</child>
<child>
<object class="GtkBox">
<object class="GtkBox" id="boxWidgetFunc">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
@ -356,7 +357,7 @@
<property name="margin-end">5</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="label" translatable="yes" context="Time" comments="Time">Time</property>
<property name="label" translatable="yes" context="Time" comments="Time">Time:</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
</object>
@ -428,7 +429,7 @@
<property name="margin-end">5</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="label" translatable="yes" context="Date" comments="Date">Date</property>
<property name="label" translatable="yes" context="Date" comments="Date">Date:</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
</object>
@ -453,7 +454,7 @@ Format: DD.MM.YYYY</property>
<property name="margin-bottom">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
@ -706,7 +707,7 @@ Format: DD.MM.YYYY</property>
<object class="GtkLabel" id="lblSynchronizebChkGLob">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes" context="Setting date and time in global configuration" comments="Setting date and time in global configuration">Synchronize via NTP:</property>
<property name="label" translatable="yes" context="Setting date and time in global configuration" comments="Setting date and time in global configuration">Synchronize via NTP</property>
</object>
</child>
</object>
@ -756,22 +757,10 @@ Format: DD.MM.YYYY</property>
<property name="margin-bottom">13</property>
<property name="label" translatable="yes">Synchronize hardware time:</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-end">55</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="position">0</property>
</packing>
</child>
<child>
@ -825,7 +814,7 @@ Format: DD.MM.YYYY</property>
<property name="margin-end">5</property>
<property name="margin-top">6</property>
<property name="margin-bottom">13</property>
<property name="label" translatable="yes" context="Region" comments="Region">Region</property>
<property name="label" translatable="yes" context="Region" comments="Region">Region:</property>
<property name="xalign">0</property>
</object>
<packing>
@ -863,7 +852,7 @@ Format: DD.MM.YYYY</property>
<property name="margin-end">5</property>
<property name="margin-top">6</property>
<property name="margin-bottom">13</property>
<property name="label" translatable="yes" context="Zone" comments="Zone">Area</property>
<property name="label" translatable="yes" context="Zone" comments="Zone">Area:</property>
<property name="xalign">0</property>
</object>
<packing>
@ -1041,6 +1030,9 @@ Format: DD.MM.YYYY</property>
<property name="position">0</property>
</packing>
</child>
<style>
<class name="primary-toolbar"/>
</style>
</object>
<packing>
<property name="position">1</property>
@ -1126,6 +1118,9 @@ Format: DD.MM.YYYY</property>
<property name="position">1</property>
</packing>
</child>
<style>
<class name="primary-toolbar"/>
</style>
</object>
<packing>
<property name="pack-type">end</property>
@ -1144,19 +1139,9 @@ Format: DD.MM.YYYY</property>
</widgets>
</object>
<object class="GtkSizeGroup">
<property name="mode">both</property>
<property name="ignore-hidden">True</property>
<widgets>
<widget name="btnUpdateDateTime"/>
<widget name="lblHW"/>
</widgets>
</object>
<object class="GtkSizeGroup">
<property name="mode">both</property>
<property name="ignore-hidden">True</property>
<widgets>
<widget name="cbHw"/>
<widget name="cbZone"/>
<widget name="btnHardwareTime"/>
</widgets>
</object>
<object class="GtkPopover" id="popCalendar">

@ -16,6 +16,9 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "https://wiki.ublinux.com/ru/Программное_обеспечениерограммы_и_утилиты/Все/"
msgstr "https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/"
msgid "Copyright © UBSoft LLC, 2022 - "
msgstr "Авторские права © ООО \"Юбисофт\", 2022 - "
@ -94,8 +97,8 @@ msgstr "Изменить параметр NTPSERVERS"
msgid "ubl-settings-datetime"
msgstr "Настройка даты и времени"
msgid "Time"
msgstr "Время"
msgid "Time:"
msgstr "Время:"
msgid "Clock"
msgstr "Часы"
@ -106,8 +109,8 @@ msgstr ":"
msgid "Minutes"
msgstr "Минуты"
msgid "Date"
msgstr "Дата"
msgid "Date:"
msgstr "Дата:"
msgid "Date of\nFormat: DD.MM.YYYY"
msgstr "Дата\nФормат: ДД.ММ.ГГГГ"
@ -118,11 +121,11 @@ msgstr "Интерактивный выбор даты"
msgid "Change zone setting"
msgstr "Изменить параметр зоны"
msgid "Region"
msgstr "Регион"
msgid "Region:"
msgstr "Регион:"
msgid "Zone"
msgstr "Зона"
msgid "Zone:"
msgstr "Зона:"
msgid "Sync by"
msgstr "Синхронизировать"
@ -130,8 +133,8 @@ msgstr "Синхронизировать"
msgid "Automatic time synchronization"
msgstr "Автоматическая синхронизация времени"
msgid "Synchronize via NTP:"
msgstr "Синхронизировать через NTP:"
msgid "Synchronize via NTP"
msgstr "Синхронизировать через NTP"
msgid "Time zone"
msgstr "Часовой пояс"
@ -1648,24 +1651,6 @@ msgstr "Введите имя ntp-сервера или его ip-адрес.\n
msgid "Cape_Verde"
msgstr "Кабо-Верде"
msgid "Usage: ubl-settings-datetime [--lock-timezone] [--lock-ntp] [--lock-datetime] [--lock-update]\n"
msgstr "Использование: ubl-settings-datetime [--lock-timezone] [--lock-ntp] [--lock-datetime] [--lock-update]\n"
msgid " --lock-timezone Disable timezone field editing\n"
msgstr " --lock-timezone Отключить редактирование поля часового пояса\n"
msgid " --lock-ntp Disable ntp field editing\n"
msgstr " --lock-ntp Отключить редактирование полей ntp\n"
msgid " --lock-datetime Disable datetime field editing\n"
msgstr " --lock-datetime Отключить редактирование полей даты и времени\n"
msgid " --lock-update Disable save changes\n"
msgstr " --lock-update Отключить сохранение изменений\n"
msgid "Options:\n"
msgstr "Опции:\n"
msgid "Save"
msgstr "Сохранить"
@ -1807,3 +1792,34 @@ msgstr "Успешно записана глобальная конфигура
msgid "Local configuration successfully written"
msgstr "Успешно записана локальная конфигурация"
msgid ""
"GTK settings datetime for UBLinux\n\n"
"Usage: ubl-settings-datetime [OPTIONS...]\n"
"Options:\n"
" -h, --help Show this help\n"
" -V, --version Show package version\n"
" --lock-datetime Lock date and time changes\n"
" --lock-timezone Lock time zone changes\n"
" --lock-ntp-mode Lock NTP mode selection\n"
" --lock-ntp-edit Lock editing NTP servers\n"
" --lock-save Lock saving local and global configuration\n"
" --lock-save-local Lock save global configuration\n"
" --lock-save-global Lock load global configuration\n"
" --lock-load-global Lock load global configuration\n"
msgstr ""
"GTK-утилита настройки даты и времени для UBLinux\n\n"
"Использование: ubl-settings-datetime [Параметры приложения...]\n"
"Параметры приложения:\n"
" -h, --help Показать параметры справки\n"
" -V, --version Показать версию пакета\n"
" --lock-datetime Блокировка изменения даты и времени\n"
" --lock-timezone Блокировка изменения часового пояса\n"
" --lock-ntp-mode Блокировка выбора режима NTP\n"
" --lock-ntp-edit Блокировка перечня NTP серверов\n"
" --lock-save Блокировка сохранения локальной и глобальной конфигурации\n"
" --lock-save-local Блокировка сохранения локальной конфигурации\n"
" --lock-save-global Блокировка сохранения глобальной конфигурации\n"
" --lock-load-global Блокировка загрузки глобальной конфигурации\n"
msgid "ubl-settings-datetime version: "
msgstr "ubl-settings-datetime версия: "

Loading…
Cancel
Save