Merge pull request 'master' (#76) from Igor1/ubl-settings-datetime:master into develop

Reviewed-on: #76
pull/77/head
Dmitry Razumov 3 years ago
commit e7e27ec2ae

@ -74,8 +74,8 @@ uninstall:
$(RM) "/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
done
@for SIZE in 16x16 32x32 48x48 scalable; do \
$(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/${pkgname}.svg"; \
$(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/${pkgname}.png"; \
$(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/ru.ublinux.${pkgname}.svg"; \
$(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/ru.ublinux.${pkgname}.png"; \
done
@for FILE_SVG in $(wildcard *.svg); do \
for SIZE in 16x16 32x32 48x48 scalable; do \
@ -85,7 +85,6 @@ uninstall:
@$(RM) "/usr/bin/${pkgname}"
@$(RM) "/usr/share/applications/${pkgname}.desktop"
@$(RM) "/usr/share/polkit-1/actions/ru.ublinux.pkexec.${pkgname}.exec.policy"
@$(RM) -rd "/usr/share/${pkgname}"
@gtk-update-icon-cache -fiq /usr/share/icons/hicolor/ &>/dev/null
@update-desktop-database --quiet 2>/dev/null
@touch /usr/share/applications
@ -103,22 +102,22 @@ install: check uninstall
done
@for SIZE in 16 32 48; do \
install -dm755 "${pkgdir}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
rsvg-convert -w $${SIZE} -h $${SIZE} -f png --keep-image-data ${pkgname}.svg -o "${pkgdir}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/${pkgname}.png"; \
rsvg-convert -w $${SIZE} -h $${SIZE} -f png --keep-image-data "ru.ublinux.${pkgname}.svg" -o "${pkgdir}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/ru.ublinux.${pkgname}.png"; \
done
@install -dm755 "${pkgdir}/usr/share/icons/hicolor/scalable/apps"
@install -Dm644 -t "${pkgdir}/usr/share/icons/hicolor/scalable/apps/" "${pkgname}.svg"
@install -Dm644 -t "${pkgdir}/usr/share/icons/hicolor/scalable/apps/" "ru.ublinux.${pkgname}.svg"
@install -Dm755 -t "${pkgdir}/usr/bin/" "${CMAKE_BUILD_DIR}/${pkgname}"
@install -Dm644 -t "${pkgdir}/usr/share/applications/" "${pkgname}.desktop"
@install -Dm644 -t "${pkgdir}/usr/share/polkit-1/actions/" "ru.ublinux.pkexec.${pkgname}.exec.policy"
@install -dm755 "${pkgdir}/usr/share/${pkgname}"/{ui,images,css}
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/ui/" "${pkgname}.glade"
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/css/" style.css
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" "${pkgname}.svg"
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" "${pkgname}.png"
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" bg_top.png
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" checked.svg
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" warning.svg
@gtk-update-icon-cache -fiq /usr/share/icons/hicolor/
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" "ru.ublinux.${pkgname}.svg"
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" "ru.ublinux.${pkgname}.png"
@install -Dm644 -t "${pkgdir}/usr/share/icons/hicolor/scalable/emblems/" "bg_top.png"
@install -Dm644 -t "${pkgdir}/usr/share/icons/hicolor/scalable/status/" "ru.ublinux.ubl-settings-datetime.checked.svg"
@install -Dm644 -t "${pkgdir}/usr/share/icons/hicolor/scalable/status/" "ru.ublinux.ubl-settings-datetime.warning.svg"
@gtk-update-icon-cache -fiq /usr/share/icons/hicolor/ &>/dev/null
@update-desktop-database --quiet 2>/dev/null
@touch /usr/share/applications
@echo "Install: OK"

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 24 24"
id="svg2"
version="1.1"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
sodipodi:docname="close.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1027"
id="namedview8"
showgrid="false"
inkscape:zoom="8"
inkscape:cx="6.875"
inkscape:cy="11.0625"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
inkscape:pagecheckerboard="0" />
<path
d="M 3.8312451,0.00270105 C 6.6165637,2.6335365 9.2800785,5.3919927 12.002108,8.0876398 14.724116,5.3918531 17.387684,2.6337829 20.172977,0.00270105 l 3.827655,3.82765225 c -2.630952,2.7854245 -5.389244,5.4487758 -8.084944,8.1708607 2.695781,2.722007 5.453855,5.385575 8.084944,8.170866 l -3.827655,3.827648 c -2.78543,-2.630944 -5.448781,-5.389235 -8.170869,-8.084934 -2.7220013,2.695782 -5.3855699,5.453852 -8.1708629,8.084934 L 0.0035959,20.17208 C 2.634542,17.386651 5.3928334,14.723302 8.0885352,12.001214 5.3927504,9.2792119 2.6346777,6.6156425 0.0035959,3.8303533 Z"
style="fill:#ffffff;stroke-width:2.18155"
id="path6"
inkscape:connector-curvature="0" />
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Before

Width:  |  Height:  |  Size: 210 KiB

After

Width:  |  Height:  |  Size: 210 KiB

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -15,8 +15,8 @@ bool flag_save = false;
bool flag_save_local = false;
bool flag_save_global = false;
bool flag_load_global = false;
int socket_ext_id_I= 0;
int socket_trd_id_I= 0;
int socket_ext_id_I = 0;
int socket_trd_id_I = 0;
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} {
@ -24,17 +24,14 @@ CmdArgParser::CmdArgParser(const std::string& p_name, const std::string& p_descr
socketIDArg.set_long_name("socket-id");
socketIDArg.set_flags(Glib::OptionEntry::FLAG_IN_MAIN);
socketIDArg.set_description("Settings manager socket");
Glib::OptionEntry socketExtId;
socketExtId.set_long_name("socket-ext-id");
socketExtId.set_flags(Glib::OptionEntry::FLAG_IN_MAIN);
socketExtId.set_description("Settings manager secondary socket");
Glib::OptionEntry socketTrdId;
socketTrdId.set_long_name("socket-trd-id");
socketTrdId.set_flags(Glib::OptionEntry::FLAG_IN_MAIN);
socketTrdId.set_description("Settings manager secondary socket");
add_entry(socketIDArg, m_socketID);
add_entry(socketExtId, socket_ext_id_I);
add_entry(socketTrdId, socket_trd_id_I);
@ -55,6 +52,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["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["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\""));
this->get_builder();
this->add_CSS();
ubl_make_plugs(boxSave,boxButton, socket_ext_id_I, socket_trd_id_I);
@ -72,10 +96,14 @@ void MainWindow::settings() {
btnBoxAboutDialog->set_visible(false);
this->event();
this->parse_text_date();
this->download_local_cfg();
this->load_local_cfg();
}
else {
btnDownload->set_sensitive(false);
lblHW->set_sensitive(false);
cbHw->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);
@ -95,28 +123,34 @@ void MainWindow::settings() {
lblDateTimeSetting->set_sensitive(false);
btnBoxAboutDialog->set_visible(false);
this->event();
imgInfo->set("/usr/share/ubl-settings-datetime/images/checked.svg");
imgInfo->set_from_icon_name("ru.ublinux.ubl-settings-datetime.warning", Gtk::ICON_SIZE_MENU);
info_status_app("boxInfoMessError");
lblWarning->set_text(_("The program must be run as root"));
}
}
int MainWindow::check_root() {
if (geteuid() != 0) {
lblMessageSudo->set_text(_("The program must be run with \nsuperuser privileges!"));
mess_sudo->show();
lblMessageSudo->set_text(_("The program must be run as root"));
windowMessSudo->show();
return 1;
}
return 0;
}
void MainWindow::lacalization() {
aboutWindows->set_comments(_("Setting the date and time"));
time_t now = time(0);
tm *ltm = localtime(&now);
unsigned int year = 1900+ ltm->tm_year;
string str_authors = string(_("Copyright © UBSoft LLC, 2022 - ")) + to_string(year);
aboutWindows->set_copyright(str_authors);
aboutWindows->set_comments(_("Date and Time"));
aboutWindows->set_website(_("https://wiki.ublinux.com"));
aboutWindows->set_version(_(version_application.c_str()));
aboutWindows->set_website_label(_("Project Home Page"));
lblSave->set_label(_("Save"));
lblDownload->set_label(_("Download"));
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:"));
@ -133,13 +167,12 @@ void MainWindow::lacalization() {
lblZone->set_text(_("Zone"));
lblSynchronizeBtn->set_text(_("Sync by"));
lblHeader->set_text(_("ubl-settings-datetime"));
mess_sudo->set_title(_("Warning!"));
mess_dchp->set_title(_("Warning!"));
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"));
}
void MainWindow::flag_block_gui() {
@ -167,7 +200,7 @@ void MainWindow::flag_block_gui() {
txtNtpServer->set_sensitive(false);
}
if (flag_load_global == true) {
btnDonwlolGlob->set_sensitive(false);
btnLoadGlob->set_sensitive(false);
}
if (flag_save == true) {
btnSave->set_sensitive(false);
@ -178,7 +211,6 @@ void MainWindow::flag_block_gui() {
if (flag_save_global == true) {
btnSaveGlob->set_sensitive(false);
}
}
void MainWindow::add_CSS() {
@ -187,37 +219,16 @@ void MainWindow::add_CSS() {
Glib::RefPtr<Gtk::StyleContext> styleContext = Gtk::StyleContext::create();
Glib::RefPtr<Gdk::Screen> screen = Gdk::Screen::get_default();//get default screen
styleContext->add_provider_for_screen(screen, cssProvider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);//add provider for screen in all application
Glib::RefPtr<Gtk::StyleContext> context = boxColor->get_style_context();
Glib::RefPtr<Gtk::StyleContext> context_lbl_head = lblHead->get_style_context();
context->add_class("cssboxColor1");
context_lbl_head->add_class("textHead");
/*
Glib::RefPtr<Gtk::StyleContext> boxColor_css = boxColor->get_style_context();
boxColor_css->add_class("cssboxColor1");
Glib::RefPtr<Gtk::StyleContext> lblHead_css = lblHead->get_style_context();
Glib::RefPtr<Gtk::StyleContext> boxButton_css = boxButton->get_style_context();
Glib::RefPtr<Gtk::StyleContext> boxSave_css = boxSave->get_style_context();
Glib::RefPtr<Gtk::StyleContext> btnDownload_css = btnDownload->get_style_context();
Glib::RefPtr<Gtk::StyleContext> lblDownload_css = lblDownload->get_style_context();
Glib::RefPtr<Gtk::StyleContext> imgDonwload_css = imgDonwload->get_style_context();
Glib::RefPtr<Gtk::StyleContext> headerBar_css = headerBar->get_style_context();
headerBar_css->add_class("bkim");
imgDonwload_css->add_class("bkim");
lblDownload_css->add_class("bkim");
btnDownload_css->add_class("bkim");
boxButton_css->add_class("bkim");
boxSave_css->add_class("bkim");
double opacity= 1.0;
headerBar->set_opacity(opacity);
boxButton->set_opacity(opacity);
boxSave->set_opacity(opacity);
btnDownload->set_opacity(opacity);
lblDownload->set_opacity(opacity);
imgDonwload->set_opacity(opacity);
btnSave->set_opacity(opacity);
lblSave->set_opacity(opacity);
btnSettings->set_opacity(opacity);
imgSave->set_opacity(opacity);
imgSettings->set_opacity(opacity);
*/
lblHead_css->add_class("textHead");
boxButton_css->add_class("bkimButton");
boxSave_css->add_class("bkimButton");
headerBar_css->add_class("bkimHeadBar");
}
@ -242,24 +253,24 @@ void MainWindow::get_builder() {
builder->get_widget("cbZone", cbZone);
builder->get_widget("txtNtpServer", txtNtpServer);
builder->get_widget("cldrDate", cldrDate);
builder->get_widget("mess_dchp", mess_dchp);
builder->get_widget("windowMessDchp", windowMessDchp);
builder->get_widget("lblMessage", lblMessage);
builder->get_widget("lblDateTimeSetting",lblDateTimeSetting);
builder->get_widget("lblHead",lblHead);
builder->get_widget("lblTime",lblTime);
builder->get_widget("lblData",lblData);
builder->get_widget("lblTimeZone",lblTimeZone);
builder->get_widget("lblReg",lblReg);
builder->get_widget("lblZone",lblZone);
builder->get_widget("lblSynchronizebChkGLob",lblSynchronizebChkGLob);
builder->get_widget("lblSynchronizeBtn",lblSynchronizeBtn);
builder->get_widget("lblTimeBios",lblTimeBios);
builder->get_widget("lblDateTimeSetting", lblDateTimeSetting);
builder->get_widget("lblHead", lblHead);
builder->get_widget("lblTime", lblTime);
builder->get_widget("lblData", lblData);
builder->get_widget("lblTimeZone", lblTimeZone);
builder->get_widget("lblReg", lblReg);
builder->get_widget("lblZone", lblZone);
builder->get_widget("lblSynchronizebChkGLob", lblSynchronizebChkGLob);
builder->get_widget("lblSynchronizeBtn", lblSynchronizeBtn);
builder->get_widget("lblTimeBios", lblTimeBios);
builder->get_widget("btnHardwareTime",btnHardwareTime);
builder->get_widget("mess_sudo",mess_sudo);
builder->get_widget("lblMessageSudo",lblMessageSudo);
builder->get_widget("windowMessSudo",windowMessSudo);
builder->get_widget("lblMessageSudo", lblMessageSudo);
builder->get_widget("btnMessCloseSudo",btnMessCloseSudo);
builder->get_widget("lblSave",lblSave);
builder->get_widget("lblDownload",lblDownload);
builder->get_widget("lblSave", lblSave);
builder->get_widget("lblLoad", lblLoad);
builder->get_widget("aboutWindows", aboutWindows);
builder->get_widget("btnBoxAboutDialog", btnBoxAboutDialog);
builder->get_widget("boxInfoError", boxInfoError);
@ -267,11 +278,11 @@ void MainWindow::get_builder() {
builder->get_widget("imgInfo", imgInfo);
builder->get_widget("btnSave", btnSave);
builder->get_widget("btnSettings", btnSettings);
builder->get_widget("btnDownload", btnDownload);
builder->get_widget("btnLoad", btnLoad);
builder->get_widget("btnSynopsis", btnSynopsis);
builder->get_widget("btnAbout", btnAbout);
builder->get_widget("btnDonwlodLocal", btnDonwlodLocal);
builder->get_widget("btnDonwlolGlob", btnDonwlolGlob);
builder->get_widget("btnLoadLocal", btnLoadLocal);
builder->get_widget("btnLoadGlob", btnLoadGlob);
builder->get_widget("btnSaveLocalGlob", btnSaveLocalGlob);
builder->get_widget("btnSaveLocal", btnSaveLocal);
builder->get_widget("btnSaveGlob", btnSaveGlob);
@ -286,11 +297,9 @@ void MainWindow::get_builder() {
builder->get_widget("standartHead", standartHead);
builder->get_widget("plugBox", plugBox);
builder->get_widget("window" ,window);
builder->get_widget("imgDonwload", imgDonwload);
builder->get_widget("imgDonwload", imgDonwload);
builder->get_widget("imgLoad", imgLoad);
builder->get_widget("imgSettings", imgSettings);
builder->get_widget("imgSave", imgSave);
}
void MainWindow::gui_exit() {
@ -314,15 +323,14 @@ 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));
mess_sudo->signal_delete_event().connect(sigc::mem_fun(*this, &MainWindow::gui_exit_2));
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));
btnDonwlodLocal->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::download_local_cfg));
btnDonwlolGlob->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::download_globl_cfg));
btnLoadLocal->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::load_local_cfg));
btnLoadGlob->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::load_globl_cfg));
btnSaveLocalGlob->signal_activate().connect([&]() {save_global_local_cfg();});
btnSaveLocal->signal_activate().connect([&]() {save_local_cfg();});
btnSaveGlob->signal_activate().connect([&]() {save_global_cfg();});
}
void MainWindow::synopsis_show() {
@ -334,7 +342,7 @@ void MainWindow::synopsis_show() {
}
}
void MainWindow::download_local_cfg() {
void MainWindow::load_local_cfg() {
string cmd = "/usr/bin/ubconfig --default --source system get clock ZONE";
this->fill_in_reg_zone(cmd);
this->update_hour_minute();
@ -343,20 +351,18 @@ void MainWindow::download_local_cfg() {
string cmd_default_get_dhcp = "/usr/bin/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";
string hw_default = "/usr/bin/ubconfig --default --source system get clock HWCLOCK_SYNC";
this->entry_hardware_clock(hw, hw_default);
this->entry_hardware_clock(hw);
info_warning_error(0);
}
void MainWindow::download_globl_cfg() {
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";
this->entry_dhcp_mess(cmd_get_dhcp, cmd_default_get_dhcp);
string cmd_zone = "/usr/bin/ubconfig --default --source global get clock ZONE";
this->fill_in_reg_zone(cmd_zone);
string hw = "/usr/bin/ubconfig --default --source global get clock HWCLOCK_SYNC";
string hw_default = "/usr/bin/ubconfig --default --source global get clock HWCLOCK_SYNC";
this->entry_hardware_clock(hw, hw_default);
string hw = "/usr/bin/ubconfig --source global get clock HWCLOCK_SYNC";
this->entry_hardware_clock(hw);
info_warning_error(1);
}
@ -366,11 +372,11 @@ void MainWindow::save_local_cfg() {
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 = "/usr/bin/ubconfig --target system remove network NTPSERVERS";
this->save_Dhcp(cmd_default, cmd_dhcp, remove, cmd_set_ntp);
string remove_ntp = "/usr/bin/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->hardware_clock_global(local, hw);
string hw = "/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=utc";
this->entry_hardware_clock(hw);
info_warning_error(2);
}
@ -380,8 +386,8 @@ void MainWindow::save_global_cfg() {
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 = "/usr/bin/ubconfig --target global remove network NTPSERVERS";
this->save_Dhcp(cmd_default, cmd_dhcp, remove, cmd_set_ntp);
string remove_ntp = "/usr/bin/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);
@ -406,28 +412,35 @@ void MainWindow::save_global_local_cfg() {
void MainWindow::info_warning_error(int mess) {
if (error_info > 0 || warning_info > 0) {
info_status_app("boxInfoMessError");
imgInfo->set("/usr/share/ubl-settings-datetime/images/warning.svg");
imgInfo->set_from_icon_name("ru.ublinux.ubl-settings-datetime.warning", Gtk::ICON_SIZE_MENU);
error_info = 0;
warning_info = 0;
string mess_error = "";
if (mess == 0) {
lblWarning->set_text(_("Local configuration reading error"));
mess_error = string(_("Local configuration reading error")) + cmd_error;
lblWarning->set_text(mess_error);
}
else if (mess == 1) {
lblWarning->set_text(_("Global configuration read error"));
mess_error = string(_("Global configuration read error")) + cmd_error;
lblWarning->set_text(mess_error);
}
else if (mess == 2) {
lblWarning->set_text(_("Local configuration write error"));
mess_error = string(_("Local configuration write error")) + cmd_error;
lblWarning->set_text(mess_error);
}
else if (mess == 3) {
lblWarning->set_text(_("Global configuration write error"));
mess_error = string(_("Global configuration write error")) + cmd_error;
lblWarning->set_text(mess_error);
}
else if (mess == 4) {
lblWarning->set_text(_("Error saved local and global configuration"));
mess_error = string(_("Error saved local and global configuration")) + cmd_error;
lblWarning->set_text(mess_error);
}
cmd_error = "";
}
else {
info_status_app("boxInfoMessOK");
imgInfo->set("/usr/share/ubl-settings-datetime/images/checked.svg");
imgInfo->set_from_icon_name("ru.ublinux.ubl-settings-datetime.checked", Gtk::ICON_SIZE_MENU);//Gtk::IconSize::INHERIT);
if (mess == 0) {
lblWarning->set_text(_("Local configuration downloaded successfully"));
}
@ -448,12 +461,28 @@ void MainWindow::info_warning_error(int mess) {
void MainWindow::wrapper_system(string cmd, string thread_str = "") {
cmd=cmd + " " + thread_str;
int response_cmd = system(cmd.c_str());
if (response_cmd!= 0) {
error_info+= 1;
string cmd_new = cmd + " " + thread_str;
int response_cmd = system(cmd_new.c_str());
if (response_cmd != 0) {
error_info += 1;
this->log_mess_error(cmd);
}
}
void MainWindow::log_mess_error(string &cmd){
string key = "";
if (map_error.find(cmd) != map_error.end()){
cmd_error = map_error[cmd];
}
else {
for ( const auto &map_iter: map_error ) {
key = map_iter.first;
if (cmd.find(key) != std::string::npos){
cmd_error = map_iter.second;
break;
}
}
}
}
void MainWindow::hardware_clock_global(string &local, string &etc) {
@ -466,51 +495,25 @@ void MainWindow::hardware_clock_global(string &local, string &etc) {
}
}
void MainWindow::entry_hardware_clock_default(string &cmd_default) {
int error = warning_info;
struct Result<string> obj_result_default = this->wrapper_call(cmd_default);
if (obj_result_default.error == 0) {
if (obj_result_default.response.find("localtime") !=string::npos) {
cbHw->set_active(0);
}
else if (obj_result_default.response.find("utc") !=string::npos) {
cbHw->set_active(1);
}
}
else if (obj_result_default.error == 3) {
if (error != warning_info) {
warning_info = error;
}
cbHw->set_active(-1);
}
}
void MainWindow::entry_hardware_clock(string &cmd, string &cmd_default) {
void MainWindow::entry_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) {
if (obj_result.response.find("localtime") != string::npos) {
cbHw->set_active(0);
}
else if (obj_result.response.find("utc") !=string::npos) {
else if (obj_result.response.find("utc") != string::npos) {
cbHw->set_active(1);
}
else {
this->entry_hardware_clock_default(cmd_default);
cbHw->set_active(-1);
}
}
else if (obj_result.error == 3) {
if (error != warning_info) {
warning_info = error;
}
else {
cbHw->set_active(-1);
this->entry_hardware_clock_default(cmd_default);
}
else {
this->entry_hardware_clock_default(cmd_default);
if (error != warning_info){
warning_info = error;
}
}
@ -521,13 +524,13 @@ void MainWindow::hardware_clock() {
}
void MainWindow::gui_mess_close() {
mess_dchp->hide();
windowMessDchp->hide();
}
bool MainWindow::focus_ntp(string &cmd_set_ntp) {
if (txtNtpServer->get_text() == "" || txtNtpServer->get_text() == " ") {
lblMessage->set_text(_("Enter DHCP!"));
mess_dchp->show();
windowMessDchp->show();
}
else {
string cmd = "";
@ -553,14 +556,13 @@ bool MainWindow::focus_ntp(string &cmd_set_ntp) {
else {
if (flag_error == true) {
lblMessage->set_text(_("An invalid character is entered"));
mess_dchp->show();
windowMessDchp->show();
}
else if (flag_error_check_ntp == true) {
lblMessage->set_text(_("Error in the ntp name"));
mess_dchp->show();
windowMessDchp->show();
}
}
}
return true;
}
@ -636,7 +638,7 @@ bool MainWindow::check_ntp(string &str_ntp) {
struct MainWindow::Result<string> MainWindow::wrapper_call(string cmd) {
struct Result<string> obj_result;
string response=this->call(cmd);
string response = this->call(cmd);
if ((response.find("(null)") == std::string::npos) && (response.length() != 0 )) {
if (response.find("=") != std::string::npos) {
if (response.find("\n") != std::string::npos) {
@ -648,23 +650,30 @@ struct MainWindow::Result<string> MainWindow::wrapper_call(string cmd) {
else {
obj_result.response = response;
obj_result.error = 1;
warning_info+= 1;
warning_info += 1;
this->log_mess_error(cmd);
}
}
else {
obj_result.response = response;
obj_result.error = 2;
warning_info+= 1;
warning_info += 1;
cmd_error = cmd;
this->log_mess_error(cmd);
}
}
else {
obj_result.response = response;
obj_result.error = 3;
warning_info+= 1;
warning_info += 1;
cmd_error = cmd;
this->log_mess_error(cmd);
}
return obj_result;
}
void MainWindow::event_entry_cbDhcp() {
string str_dhcp = cbDhcp->get_active_text();
string cmd = "";
@ -676,8 +685,6 @@ void MainWindow::event_entry_cbDhcp() {
txtNtpServer->set_text("");
btnUpdateDateTime->set_sensitive(false);
txtNtpServer->set_sensitive(false);
}
else if (activ_index == 1) {
btnUpdateDateTime->set_sensitive(false);
@ -685,7 +692,7 @@ void MainWindow::event_entry_cbDhcp() {
txtNtpServer->set_text("");
}
else if (activ_index == 2) {
if (flag_ntp_edit==false) {
if (flag_ntp_edit == false) {
txtNtpServer->set_sensitive(true);
}
}
@ -703,7 +710,6 @@ void MainWindow::save_Dhcp(string &cmd_default, string &cmd_dhcp, string &remove
}
else if (activ_index == 0) {
wrapper_system(cmd_default, "&");
}
else if (activ_index == 1) {
wrapper_system(cmd_dhcp, "&");
@ -752,7 +758,7 @@ void MainWindow::entry_dhcp_mess(string cmd_get_dhcp, string cmd_default_get_dhc
btnUpdateDateTime->set_sensitive(false);
if (str_dhcp == "") {
lblMessage->set_text(_("Enter DHCP!"));
mess_dchp->show();
windowMessDchp->show();
}
else if (str_dhcp == "(null)") {
cbDhcp->set_active(0);
@ -761,7 +767,7 @@ void MainWindow::entry_dhcp_mess(string cmd_get_dhcp, string cmd_default_get_dhc
else {
cbDhcp->set_active(2);
txtNtpServer->set_text(str_dhcp);
if (flag_ntp_edit==false) {
if (flag_ntp_edit ==false) {
txtNtpServer->set_sensitive(true);
}
}
@ -772,7 +778,7 @@ void MainWindow::entry_dhcp_mess(string cmd_get_dhcp, string cmd_default_get_dhc
txtNtpServer->set_text("");
txtNtpServer->set_sensitive(false);
btnUpdateDateTime->set_sensitive(true);
warning_info-= 1;
warning_info -= 1;
}
}
@ -846,8 +852,6 @@ void MainWindow::fill_in_reg_zone(string &cmd) {
}
}
void MainWindow::get_config() {
this->read_file();
this->update_hour_minute();
@ -872,19 +876,18 @@ array<string, 2> MainWindow::split_region_zone(string &read_reg_zon_cfg) {
arr[1] = "";
}
return arr;
}
void MainWindow::enter_zone(string &cmd) {
int activ_index_reg = cbRegion->get_active_row_number();
string reg_text=array_region[activ_index_reg];
string reg_text = array_region[activ_index_reg];
int activ_index = cbZone->get_active_row_number();
string zone_text = "";
if(!(reg_text.empty())) {
int index= 0;
for (const auto &zone: time_reg_map.at(reg_text)) {
if (index==activ_index) {
if (index == activ_index) {
zone_text=zone;
}
index+= 1;
@ -957,7 +960,7 @@ void MainWindow::append_region_zone(string region, string zone, Gtk::ComboBoxTex
string zone_mixing = "";
string path_reg_zone = "";
string zone_offest = "";
path_reg_zone=region + "/" + zone;
path_reg_zone = region + "/" + zone;
zone_offest = this->zone_file_read(path_reg_zone) + _(zone.c_str());
if (region == "") {
tmpCbZone->append(" ");
@ -994,6 +997,7 @@ void MainWindow::append_region_zone(string region, string zone, Gtk::ComboBoxTex
}
}
string MainWindow::call(string cmd) {
FILE *fp;
int status;
@ -1008,8 +1012,7 @@ string MainWindow::call(string cmd) {
status = pclose(fp);
if (status == -1) {
exit(1);
}
}
return path;
}
@ -1018,8 +1021,8 @@ void MainWindow::append_zone() {
int index = cbRegion->get_active_row_number();
if (index!=-1) {
string str_region = array_region[index];
string zone_mixing= "";
string path_dir= "";
string zone_mixing = "";
string path_dir = "";
if(str_region.length() != 0) {
for (const auto &_str_zone : time_reg_map_local.at(str_region)) {
cbZone->append(Glib::ustring(_str_zone));
@ -1031,6 +1034,7 @@ void MainWindow::append_zone() {
void MainWindow::update_time_date() {
string cmd = "";
string response = "";
if ((year != 0) && (month != 0) && (day != 0)) {
string str_month = "";
string str_day = "";
@ -1078,22 +1082,24 @@ void MainWindow::update_time_date() {
void MainWindow::post_entry_data() {
string cmd = "";
string data = txtDate->get_text();
if (data.length() == 10) {
string str_day = data.substr(0,2);
string str_month = data.substr(3,2);
string str_year = data.substr(6,data.length());
cmd = "date +%Y%m%d -s \"" + str_year+
str_month+str_day+"\"";
string str_error_clock = this->call(cmd);
size_t index = str_error_clock.find("date: ");
if (index == std::string::npos) {
}
}
else {
string data = txtDate->get_text();
if (data.length() == 10) {
string str_day = data.substr(0,2);
string str_month = data.substr(3,2);
string str_year = data.substr(6,data.length());
cmd = "date +%Y%m%d -s \"" + str_year+
str_month+str_day+"\"";
string str_error_clock = this->call(cmd);
size_t index = str_error_clock.find("date:");
if (index != std::string::npos) {
lblMessage->set_text(_("Incorrect date format"));
mess_dchp->show();
windowMessDchp->show();
}
}
else {
lblMessage->set_text(_("Incorrect date format"));
windowMessDchp->show();
}
}
void MainWindow::update_hour_minute() {
@ -1227,8 +1233,9 @@ void MainWindow::sort_zone(vector<string> *time_reg_map_local,vector<string> *ti
b = (*time_reg_map)[j];
(*time_reg_map)[j] = (*time_reg_map)[j + 1];
(*time_reg_map)[j + 1] = b;
} }
}
}
}
}
}
}

@ -15,6 +15,7 @@
#include <stdio.h>
#include <unicode/timezone.h>
#include <unicode/calendar.h>
#include <map>
#include "ubl-util-standard.c"
@ -59,8 +60,8 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Box *boxColor;
Gtk::ComboBoxText *cbRegion;
Gtk::ComboBoxText *cbZone;
Gtk::Window *mess_dchp;
Gtk::Window *mess_sudo;
Gtk::Window *windowMessDchp;
Gtk::Window *windowMessSudo;
Gtk::Popover *popCalendar;
Gtk::Calendar *cldrDate;
Gtk::Label *lblMessage;
@ -77,12 +78,12 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Label *lblSynchronizeBtn;
Gtk::Label *lblTimeBios;
Gtk::Label *lblSave;
Gtk::Label *lblDownload;
Gtk::Label *lblLoad;
Gtk::Button *btnHardwareTime;
Gtk::CheckButton *cbxSynchronizeNtp;
Gtk::Entry *txtNtpServer;
Gtk::Entry *txtDate;
Gtk::Button *btnDownload;
Gtk::Button *btnLoad;
Gtk::Button *btnSave;
Gtk::Button *btnSettings;
Gtk::AboutDialog *aboutWindows;
@ -96,8 +97,8 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::MenuItem *btnSaveLocalGlob;
Gtk::MenuItem *btnSaveLocal;
Gtk::MenuItem *btnSaveGlob;
Gtk::MenuItem *btnDonwlolGlob;
Gtk::MenuItem *btnDonwlodLocal;
Gtk::MenuItem *btnLoadGlob;
Gtk::MenuItem *btnLoadLocal;
Gtk::MenuItem *btnAbout;
Gtk::MenuItem *btnSynopsis;
Gtk::HeaderBar *headerBar;
@ -110,7 +111,7 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Widget *standartHead;
Gtk::Widget *plugBox;
Gtk::Window *window;
Gtk::Image *imgDonwload;
Gtk::Image *imgLoad;
Gtk::Image *imgSave;
Gtk::Image *imgSettings;
@ -120,11 +121,11 @@ class MainWindow : public Gtk::ApplicationWindow {
string version_application = "1.3";
int error_info = 0;
int warning_info = 0;
string cmd_error = "";
int hour;
int minute;
string str_region = "";
string str_zone = "";
bool bool_close_banner_info = true;
template<typename Type>
struct Result{
Type response;
@ -132,23 +133,24 @@ class MainWindow : public Gtk::ApplicationWindow {
};
vector<string> array_region_local;
vector<string> array_region;
std::map <string, string> map_error;
public:
MainWindow(BaseObjectType* obj, Glib::RefPtr<Gtk::Builder> const& builder);
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 info_warning_error(int mess);
void synopsis_show();
void entry_hardware_clock(string &cmd, string &cmd_default);
void entry_hardware_clock_default(string &cmd_default);
void entry_hardware_clock(string &cmd);
void save_global_local_cfg();
void fill_in_reg_zone(string &cmd);
void download_globl_cfg();
void load_globl_cfg();
void save_local_cfg();
void save_global_cfg();
void save_Dhcp(string &cmd_default, string &cmd_dhcp, string &remove, string &cmd_set_ntp);
void download_local_cfg();
void load_local_cfg();
void post_entry_data();
void lacalization();
void settings();

@ -52,6 +52,12 @@ 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),"primary-toolbar");
}
if (right_plug_id>0&&RightWidget){
GtkWidget *plug=gtk_plug_new(right_plug_id);
@ -64,6 +70,13 @@ 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),"primary-toolbar");
}
}
#endif

@ -2,7 +2,7 @@
background-color: #ea9999;
}
.cssboxColor1{
background: url("/usr/share/ubl-settings-datetime/images/bg_top.png") no-repeat;
background: url("/usr/share/icons/hicolor/scalable/emblems/bg_top.png") no-repeat;
}
.boxInfoMessOK{
background-color: #f3f0ac;
@ -71,8 +71,30 @@
margin-bottom:0px;
}
.bkim{
background-image: -gtk-gradient(linear,
.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;
}
.button {
background-image: -gtk-gradient(linear,
left top, left bottom,
from(@entry_background_a),
color-stop(0.20, @entry_background_b),

@ -8,7 +8,7 @@ Comment=Date time settings
Comment[ru]=Приложение для настройки даты и времени
Type=Application
Exec=pkexec ubl-settings-datetime
Icon=ubl-settings-datetime
Icon=ru.ublinux.ubl-settings-datetime
Terminal=false
X-XfcePluggable=true
X-UBLPluggable=true

@ -11,6 +11,8 @@
<property name="icon-name">ubl-settings-datetime</property>
<property name="type-hint">dialog</property>
<property name="urgency-hint">True</property>
<property name="accept-focus">False</property>
<property name="focus-on-map">False</property>
<property name="program-name">ubl-settings-datetime</property>
<property name="version">1.2</property>
<property name="copyright" translatable="yes">Copyright © 2023 - UBSoft Software LLC</property>
@ -21,7 +23,7 @@
Подробнее в &lt;a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"&gt;GNU General Public License, версии 2 или позднее&lt;/a&gt;.</property>
<property name="authors">UBGroup</property>
<property name="artists">UBGroup</property>
<property name="logo-icon-name">ubl-settings-datetime</property>
<property name="logo-icon-name">ru.ublinux.ubl-settings-datetime</property>
<property name="wrap-license">True</property>
<property name="license-type">gpl-2-0</property>
<child internal-child="vbox">
@ -56,22 +58,20 @@
<property name="reserve-toggle-size">False</property>
<property name="rect-anchor-dy">4</property>
<child>
<object class="GtkMenuItem" id="btnDonwlodLocal">
<object class="GtkMenuItem" id="btnLoadGlob">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Download local</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">Load global configuration</property>
<style>
<class name="menuitemtop"/>
</style>
</object>
</child>
<child>
<object class="GtkMenuItem" id="btnDonwlolGlob">
<object class="GtkMenuItem" id="btnLoadLocal">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Download global</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">Load local configuration</property>
<style>
<class name="menuitembottom"/>
</style>
@ -89,7 +89,6 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Help</property>
<property name="use-underline">True</property>
<style>
<class name="menuitemtop"/>
</style>
@ -99,8 +98,7 @@
<object class="GtkMenuItem" id="btnAbout">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">About the program</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">About</property>
<style>
<class name="menuitembottom"/>
</style>
@ -118,29 +116,26 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Save to global and local configuration</property>
<property name="use-underline">True</property>
<style>
<class name="menuitemtop"/>
</style>
</object>
</child>
<child>
<object class="GtkMenuItem" id="btnSaveLocal">
<object class="GtkMenuItem" id="btnSaveGlob">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Save to local configuration</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">Save global configuration</property>
<style>
<class name="menuitemmiddle"/>
</style>
</object>
</child>
<child>
<object class="GtkMenuItem" id="btnSaveGlob">
<object class="GtkMenuItem" id="btnSaveLocal">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Save to Global configuration</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">Save local configuration</property>
<style>
<class name="menuitembottom"/>
</style>
@ -173,7 +168,8 @@
<property name="margin-end">5</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="stock">gtk-missing-image</property>
<property name="pixel-size">25</property>
<property name="icon_size">1</property>
</object>
<packing>
<property name="expand">False</property>
@ -231,7 +227,7 @@
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="pixel-size">69</property>
<property name="icon-name">ubl-settings-datetime</property>
<property name="icon-name">ru.ublinux.ubl-settings-datetime</property>
</object>
<packing>
<property name="expand">False</property>
@ -971,6 +967,7 @@ Format: DD.MM.YYYY</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">1</property>
<property name="hexpand">False</property>
<property name="label" translatable="yes">ubl-settings-datetime</property>
<attributes>
@ -987,7 +984,7 @@ Format: DD.MM.YYYY</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="pixel-size">32</property>
<property name="icon-name">ubl-settings-datetime</property>
<property name="icon-name">ru.ublinux.ubl-settings-datetime</property>
</object>
</child>
<child>
@ -995,7 +992,7 @@ Format: DD.MM.YYYY</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkMenuButton" id="btnDownload">
<object class="GtkMenuButton" id="btnLoad">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
@ -1008,14 +1005,14 @@ Format: DD.MM.YYYY</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkLabel" id="lblDownload">
<object class="GtkLabel" id="lblLoad">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="label" translatable="yes">Download</property>
<property name="label" translatable="yes">Load</property>
</object>
<packing>
<property name="expand">False</property>
@ -1024,7 +1021,7 @@ Format: DD.MM.YYYY</property>
</packing>
</child>
<child>
<object class="GtkImage" id="imgDonwload">
<object class="GtkImage" id="imgLoad">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">pan-down-symbolic</property>
@ -1044,9 +1041,6 @@ 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>
@ -1132,9 +1126,6 @@ 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>
@ -1191,9 +1182,10 @@ Format: DD.MM.YYYY</property>
</object>
</child>
</object>
<object class="GtkWindow" id="mess_dchp">
<object class="GtkWindow" id="windowMessDchp">
<property name="can-focus">False</property>
<property name="title" translatable="yes">Внимание!</property>
<property name="icon-name">ru.ublinux.ubl-settings-datetime</property>
<property name="type-hint">dialog</property>
<child>
<object class="GtkBox">
@ -1272,10 +1264,12 @@ Format: DD.MM.YYYY</property>
</object>
</child>
</object>
<object class="GtkWindow" id="mess_sudo">
<object class="GtkWindow" id="windowMessSudo">
<property name="can-focus">False</property>
<property name="type">popup</property>
<property name="title" translatable="yes">Внимание!</property>
<property name="window-position">center</property>
<property name="icon-name">ru.ublinux.ubl-settings-datetime</property>
<property name="type-hint">dialog</property>
<child>
<object class="GtkBox">

@ -16,6 +16,9 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Copyright © UBSoft LLC, 2022 - "
msgstr "Авторские права © ООО \"Юбисофт\", 2022 - "
msgid "Select the method of hardware time synchronization"
msgstr "Выберите способ синхронизации аппаратного времени"
@ -55,6 +58,9 @@ msgstr "По умолчанию"
msgid "The program must be run with \nsuperuser privileges!"
msgstr "Программа должна быть запущена с правами \nсуперпользователя!"
msgid "The program must be run as root"
msgstr "Программа должна быть запущена с правами суперпользователя!"
msgid "Manual"
msgstr "Вручную"
@ -71,7 +77,7 @@ msgid "Successfully saved local and global configuration"
msgstr "Успешно сохранена локальная и глобальная конфигурация"
msgid "Error saved local and global configuration"
msgstr "Ошибка сохранена локальной и глобальной конфигурации"
msgstr "Ошибка сохранения локальной и глобальной конфигурации"
msgid "Settings the date and time"
msgstr "Настройки даты и времени"
@ -1664,24 +1670,24 @@ msgid "Save"
msgstr "Сохранить"
msgid "Save to global and local configuration"
msgstr "Сохранить в глобальную и локальную конфигурацию"
msgstr "Сохранить глобальную и локальную конфигурацию"
msgid "Save to Global configuration"
msgstr "Сохранить в глобальную конфигурацию"
msgid "Save global configuration"
msgstr "Сохранить глобальную конфигурацию"
msgid "Save to local configuration"
msgstr "Сохранить в локальную конфигурацию"
msgid "Save local configuration"
msgstr "Сохранить локальную конфигурацию"
msgid "Download global"
msgstr "Загрузить глобально"
msgid "Load global configuration"
msgstr "Загрузить глобальную конфигурацию"
msgid "Download local"
msgstr "Загрузить локально"
msgid "Load local configuration"
msgstr "Загрузить локальную конфигурацию"
msgid "Disabled"
msgstr "Отключено"
msgid "Download"
msgid "Load"
msgstr "Загрузить"
msgid "Argument not recognized\n"
@ -1759,12 +1765,24 @@ msgstr "Остров Пасхи"
msgid "Andorra"
msgstr "Андорра"
msgid "About the program"
msgid "About"
msgstr "О программе"
msgid "Help"
msgstr "Справка"
msgid "Date and Time"
msgstr "Дата и Время"
msgid ": \"Hardware time\""
msgstr ": \"Аппаратное время\""
msgid ": \"Time Zone\""
msgstr ": \"Временная зона\""
msgid ": \"Date\""
msgstr ": \"Дата\""
msgid "Local configuration reading error"
msgstr "Ошибка чтения локальной конфигурации"

Loading…
Cancel
Save