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

Reviewed-on: #77
pull/92/head
Dmitry Razumov 3 years ago
commit 7e5f601ca4

@ -74,8 +74,8 @@ uninstall:
$(RM) "/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \ $(RM) "/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
done done
@for SIZE in 16x16 32x32 48x48 scalable; do \ @for SIZE in 16x16 32x32 48x48 scalable; do \
$(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/${pkgname}.svg"; \ $(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/ru.ublinux.${pkgname}.svg"; \
$(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/${pkgname}.png"; \ $(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/ru.ublinux.${pkgname}.png"; \
done done
@for FILE_SVG in $(wildcard *.svg); do \ @for FILE_SVG in $(wildcard *.svg); do \
for SIZE in 16x16 32x32 48x48 scalable; do \ for SIZE in 16x16 32x32 48x48 scalable; do \
@ -85,7 +85,6 @@ uninstall:
@$(RM) "/usr/bin/${pkgname}" @$(RM) "/usr/bin/${pkgname}"
@$(RM) "/usr/share/applications/${pkgname}.desktop" @$(RM) "/usr/share/applications/${pkgname}.desktop"
@$(RM) "/usr/share/polkit-1/actions/ru.ublinux.pkexec.${pkgname}.exec.policy" @$(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 @gtk-update-icon-cache -fiq /usr/share/icons/hicolor/ &>/dev/null
@update-desktop-database --quiet 2>/dev/null @update-desktop-database --quiet 2>/dev/null
@touch /usr/share/applications @touch /usr/share/applications
@ -103,22 +102,22 @@ install: check uninstall
done done
@for SIZE in 16 32 48; do \ @for SIZE in 16 32 48; do \
install -dm755 "${pkgdir}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \ 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 done
@install -dm755 "${pkgdir}/usr/share/icons/hicolor/scalable/apps" @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 -Dm755 -t "${pkgdir}/usr/bin/" "${CMAKE_BUILD_DIR}/${pkgname}"
@install -Dm644 -t "${pkgdir}/usr/share/applications/" "${pkgname}.desktop" @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 -Dm644 -t "${pkgdir}/usr/share/polkit-1/actions/" "ru.ublinux.pkexec.${pkgname}.exec.policy"
@install -dm755 "${pkgdir}/usr/share/${pkgname}"/{ui,images,css} @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}/ui/" "${pkgname}.glade"
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/css/" style.css @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/" "ru.ublinux.${pkgname}.svg"
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" "${pkgname}.png" @install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" "ru.ublinux.${pkgname}.png"
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" bg_top.png @install -Dm644 -t "${pkgdir}/usr/share/icons/hicolor/scalable/emblems/" "bg_top.png"
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" checked.svg @install -Dm644 -t "${pkgdir}/usr/share/icons/hicolor/scalable/status/" "ru.ublinux.ubl-settings-datetime.checked.svg"
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" warning.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/ @gtk-update-icon-cache -fiq /usr/share/icons/hicolor/ &>/dev/null
@update-desktop-database --quiet 2>/dev/null @update-desktop-database --quiet 2>/dev/null
@touch /usr/share/applications @touch /usr/share/applications
@echo "Install: OK" @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_local = false;
bool flag_save_global = false; bool flag_save_global = false;
bool flag_load_global = false; bool flag_load_global = false;
int socket_ext_id_I= 0; int socket_ext_id_I = 0;
int socket_trd_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) 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} { : 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_long_name("socket-id");
socketIDArg.set_flags(Glib::OptionEntry::FLAG_IN_MAIN); socketIDArg.set_flags(Glib::OptionEntry::FLAG_IN_MAIN);
socketIDArg.set_description("Settings manager socket"); socketIDArg.set_description("Settings manager socket");
Glib::OptionEntry socketExtId; Glib::OptionEntry socketExtId;
socketExtId.set_long_name("socket-ext-id"); socketExtId.set_long_name("socket-ext-id");
socketExtId.set_flags(Glib::OptionEntry::FLAG_IN_MAIN); socketExtId.set_flags(Glib::OptionEntry::FLAG_IN_MAIN);
socketExtId.set_description("Settings manager secondary socket"); socketExtId.set_description("Settings manager secondary socket");
Glib::OptionEntry socketTrdId; Glib::OptionEntry socketTrdId;
socketTrdId.set_long_name("socket-trd-id"); socketTrdId.set_long_name("socket-trd-id");
socketTrdId.set_flags(Glib::OptionEntry::FLAG_IN_MAIN); socketTrdId.set_flags(Glib::OptionEntry::FLAG_IN_MAIN);
socketTrdId.set_description("Settings manager secondary socket"); socketTrdId.set_description("Settings manager secondary socket");
add_entry(socketIDArg, m_socketID); add_entry(socketIDArg, m_socketID);
add_entry(socketExtId, socket_ext_id_I); add_entry(socketExtId, socket_ext_id_I);
add_entry(socketTrdId, socket_trd_id_I); add_entry(socketTrdId, socket_trd_id_I);
@ -55,6 +52,33 @@ MainWindow::MainWindow(Glib::RefPtr<Gtk::Builder> const& builder) {
} }
void MainWindow::settings() { 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->get_builder();
this->add_CSS(); this->add_CSS();
ubl_make_plugs(boxSave,boxButton, socket_ext_id_I, socket_trd_id_I); ubl_make_plugs(boxSave,boxButton, socket_ext_id_I, socket_trd_id_I);
@ -72,10 +96,14 @@ void MainWindow::settings() {
btnBoxAboutDialog->set_visible(false); btnBoxAboutDialog->set_visible(false);
this->event(); this->event();
this->parse_text_date(); this->parse_text_date();
this->download_local_cfg(); this->load_local_cfg();
} }
else { 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); numTimeHrs->set_sensitive(false);
numTimeMin->set_sensitive(false); numTimeMin->set_sensitive(false);
lblTime->set_sensitive(false); lblTime->set_sensitive(false);
@ -95,28 +123,34 @@ void MainWindow::settings() {
lblDateTimeSetting->set_sensitive(false); lblDateTimeSetting->set_sensitive(false);
btnBoxAboutDialog->set_visible(false); btnBoxAboutDialog->set_visible(false);
this->event(); 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() { int MainWindow::check_root() {
if (geteuid() != 0) { if (geteuid() != 0) {
lblMessageSudo->set_text(_("The program must be run with \nsuperuser privileges!")); lblMessageSudo->set_text(_("The program must be run as root"));
mess_sudo->show(); windowMessSudo->show();
return 1; return 1;
} }
return 0; return 0;
} }
void MainWindow::lacalization() { 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_website(_("https://wiki.ublinux.com"));
aboutWindows->set_version(_(version_application.c_str())); aboutWindows->set_version(_(version_application.c_str()));
aboutWindows->set_website_label(_("Project Home Page")); aboutWindows->set_website_label(_("Project Home Page"));
lblSave->set_label(_("Save")); lblSave->set_label(_("Save"));
lblDownload->set_label(_("Download")); lblLoad->set_label(_("Load"));
txtDate->set_tooltip_text(_("Date of\nFormat: DD.MM.YYYY")); 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.")); 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:"));
@ -133,13 +167,12 @@ void MainWindow::lacalization() {
lblZone->set_text(_("Zone")); lblZone->set_text(_("Zone"));
lblSynchronizeBtn->set_text(_("Sync by")); lblSynchronizeBtn->set_text(_("Sync by"));
lblHeader->set_text(_("ubl-settings-datetime")); lblHeader->set_text(_("ubl-settings-datetime"));
mess_sudo->set_title(_("Warning!")); windowMessSudo->set_title(_("Warning!"));
mess_dchp->set_title(_("Warning!")); windowMessDchp->set_title(_("Warning!"));
lblTimeBios->set_text(_("Synchronize hardware time")); lblTimeBios->set_text(_("Synchronize hardware time"));
lblHW->set_text(_("Synchronize hardware time:")); lblHW->set_text(_("Synchronize hardware time:"));
cbHw->append(_("Local time")); cbHw->append(_("Local time"));
cbHw->append(_("UTC time")); cbHw->append(_("UTC time"));
} }
void MainWindow::flag_block_gui() { void MainWindow::flag_block_gui() {
@ -167,7 +200,7 @@ void MainWindow::flag_block_gui() {
txtNtpServer->set_sensitive(false); txtNtpServer->set_sensitive(false);
} }
if (flag_load_global == true) { if (flag_load_global == true) {
btnDonwlolGlob->set_sensitive(false); btnLoadGlob->set_sensitive(false);
} }
if (flag_save == true) { if (flag_save == true) {
btnSave->set_sensitive(false); btnSave->set_sensitive(false);
@ -178,7 +211,6 @@ void MainWindow::flag_block_gui() {
if (flag_save_global == true) { if (flag_save_global == true) {
btnSaveGlob->set_sensitive(false); btnSaveGlob->set_sensitive(false);
} }
} }
void MainWindow::add_CSS() { void MainWindow::add_CSS() {
@ -187,37 +219,16 @@ void MainWindow::add_CSS() {
Glib::RefPtr<Gtk::StyleContext> styleContext = Gtk::StyleContext::create(); Glib::RefPtr<Gtk::StyleContext> styleContext = Gtk::StyleContext::create();
Glib::RefPtr<Gdk::Screen> screen = Gdk::Screen::get_default();//get default screen 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 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> boxColor_css = boxColor->get_style_context();
Glib::RefPtr<Gtk::StyleContext> context_lbl_head = lblHead->get_style_context(); boxColor_css->add_class("cssboxColor1");
context->add_class("cssboxColor1"); Glib::RefPtr<Gtk::StyleContext> lblHead_css = lblHead->get_style_context();
context_lbl_head->add_class("textHead");
/*
Glib::RefPtr<Gtk::StyleContext> boxButton_css = boxButton->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> 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(); Glib::RefPtr<Gtk::StyleContext> headerBar_css = headerBar->get_style_context();
headerBar_css->add_class("bkim"); lblHead_css->add_class("textHead");
imgDonwload_css->add_class("bkim"); boxButton_css->add_class("bkimButton");
lblDownload_css->add_class("bkim"); boxSave_css->add_class("bkimButton");
btnDownload_css->add_class("bkim"); headerBar_css->add_class("bkimHeadBar");
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);
*/
} }
@ -242,24 +253,24 @@ void MainWindow::get_builder() {
builder->get_widget("cbZone", cbZone); builder->get_widget("cbZone", cbZone);
builder->get_widget("txtNtpServer", txtNtpServer); builder->get_widget("txtNtpServer", txtNtpServer);
builder->get_widget("cldrDate", cldrDate); 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("lblMessage", lblMessage);
builder->get_widget("lblDateTimeSetting",lblDateTimeSetting); builder->get_widget("lblDateTimeSetting", lblDateTimeSetting);
builder->get_widget("lblHead",lblHead); builder->get_widget("lblHead", lblHead);
builder->get_widget("lblTime",lblTime); builder->get_widget("lblTime", lblTime);
builder->get_widget("lblData",lblData); builder->get_widget("lblData", lblData);
builder->get_widget("lblTimeZone",lblTimeZone); builder->get_widget("lblTimeZone", lblTimeZone);
builder->get_widget("lblReg",lblReg); builder->get_widget("lblReg", lblReg);
builder->get_widget("lblZone",lblZone); builder->get_widget("lblZone", lblZone);
builder->get_widget("lblSynchronizebChkGLob",lblSynchronizebChkGLob); builder->get_widget("lblSynchronizebChkGLob", lblSynchronizebChkGLob);
builder->get_widget("lblSynchronizeBtn",lblSynchronizeBtn); builder->get_widget("lblSynchronizeBtn", lblSynchronizeBtn);
builder->get_widget("lblTimeBios",lblTimeBios); builder->get_widget("lblTimeBios", lblTimeBios);
builder->get_widget("btnHardwareTime",btnHardwareTime); builder->get_widget("btnHardwareTime",btnHardwareTime);
builder->get_widget("mess_sudo",mess_sudo); builder->get_widget("windowMessSudo",windowMessSudo);
builder->get_widget("lblMessageSudo",lblMessageSudo); builder->get_widget("lblMessageSudo", lblMessageSudo);
builder->get_widget("btnMessCloseSudo",btnMessCloseSudo); builder->get_widget("btnMessCloseSudo",btnMessCloseSudo);
builder->get_widget("lblSave",lblSave); builder->get_widget("lblSave", lblSave);
builder->get_widget("lblDownload",lblDownload); builder->get_widget("lblLoad", lblLoad);
builder->get_widget("aboutWindows", aboutWindows); builder->get_widget("aboutWindows", aboutWindows);
builder->get_widget("btnBoxAboutDialog", btnBoxAboutDialog); builder->get_widget("btnBoxAboutDialog", btnBoxAboutDialog);
builder->get_widget("boxInfoError", boxInfoError); builder->get_widget("boxInfoError", boxInfoError);
@ -267,11 +278,11 @@ void MainWindow::get_builder() {
builder->get_widget("imgInfo", imgInfo); builder->get_widget("imgInfo", imgInfo);
builder->get_widget("btnSave", btnSave); builder->get_widget("btnSave", btnSave);
builder->get_widget("btnSettings", btnSettings); builder->get_widget("btnSettings", btnSettings);
builder->get_widget("btnDownload", btnDownload); builder->get_widget("btnLoad", btnLoad);
builder->get_widget("btnSynopsis", btnSynopsis); builder->get_widget("btnSynopsis", btnSynopsis);
builder->get_widget("btnAbout", btnAbout); builder->get_widget("btnAbout", btnAbout);
builder->get_widget("btnDonwlodLocal", btnDonwlodLocal); builder->get_widget("btnLoadLocal", btnLoadLocal);
builder->get_widget("btnDonwlolGlob", btnDonwlolGlob); builder->get_widget("btnLoadGlob", btnLoadGlob);
builder->get_widget("btnSaveLocalGlob", btnSaveLocalGlob); builder->get_widget("btnSaveLocalGlob", btnSaveLocalGlob);
builder->get_widget("btnSaveLocal", btnSaveLocal); builder->get_widget("btnSaveLocal", btnSaveLocal);
builder->get_widget("btnSaveGlob", btnSaveGlob); builder->get_widget("btnSaveGlob", btnSaveGlob);
@ -286,11 +297,9 @@ void MainWindow::get_builder() {
builder->get_widget("standartHead", standartHead); builder->get_widget("standartHead", standartHead);
builder->get_widget("plugBox", plugBox); builder->get_widget("plugBox", plugBox);
builder->get_widget("window" ,window); builder->get_widget("window" ,window);
builder->get_widget("imgDonwload", imgDonwload); builder->get_widget("imgLoad", imgLoad);
builder->get_widget("imgDonwload", imgDonwload);
builder->get_widget("imgSettings", imgSettings); builder->get_widget("imgSettings", imgSettings);
builder->get_widget("imgSave", imgSave); builder->get_widget("imgSave", imgSave);
} }
void MainWindow::gui_exit() { void MainWindow::gui_exit() {
@ -314,15 +323,14 @@ void MainWindow::event() {
cbDhcp->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::event_entry_cbDhcp)); cbDhcp->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::event_entry_cbDhcp));
cbRegion->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::append_zone)); 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)); 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();}); btnAbout->signal_activate().connect([&]() {aboutWindows->show();});
btnSynopsis->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::synopsis_show)); btnSynopsis->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::synopsis_show));
btnDonwlodLocal->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::download_local_cfg)); btnLoadLocal->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::load_local_cfg));
btnDonwlolGlob->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::download_globl_cfg)); btnLoadGlob->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::load_globl_cfg));
btnSaveLocalGlob->signal_activate().connect([&]() {save_global_local_cfg();}); btnSaveLocalGlob->signal_activate().connect([&]() {save_global_local_cfg();});
btnSaveLocal->signal_activate().connect([&]() {save_local_cfg();}); btnSaveLocal->signal_activate().connect([&]() {save_local_cfg();});
btnSaveGlob->signal_activate().connect([&]() {save_global_cfg();}); btnSaveGlob->signal_activate().connect([&]() {save_global_cfg();});
} }
void MainWindow::synopsis_show() { 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"; string cmd = "/usr/bin/ubconfig --default --source system get clock ZONE";
this->fill_in_reg_zone(cmd); this->fill_in_reg_zone(cmd);
this->update_hour_minute(); 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"; string cmd_default_get_dhcp = "/usr/bin/ubconfig --source=default get NTPSERVERS_DEFAULT";
this->entry_dhcp_mess(cmd_get_dhcp, cmd_default_get_dhcp); 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 = "/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);
this->entry_hardware_clock(hw, hw_default);
info_warning_error(0); 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_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_default_get_dhcp = "/usr/bin/ubconfig --source=default get NTPSERVERS_DEFAULT";
this->entry_dhcp_mess(cmd_get_dhcp, cmd_default_get_dhcp); 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 = "/usr/bin/ubconfig --default --source global get clock ZONE";
this->fill_in_reg_zone(cmd_zone); this->fill_in_reg_zone(cmd_zone);
string hw = "/usr/bin/ubconfig --default --source global get clock HWCLOCK_SYNC"; string hw = "/usr/bin/ubconfig --source global get clock HWCLOCK_SYNC";
string hw_default = "/usr/bin/ubconfig --default --source global get clock HWCLOCK_SYNC"; this->entry_hardware_clock(hw);
this->entry_hardware_clock(hw, hw_default);
info_warning_error(1); 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_default = "/usr/bin/ubconfig --target system set network NTPSERVERS=default";
string cmd_dhcp = "/usr/bin/ubconfig --target system set network NTPSERVERS=dhcp"; 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 cmd_set_ntp = "/usr/bin/ubconfig --target system set network NTPSERVERS=\"";
string remove = "/usr/bin/ubconfig --target system remove network NTPSERVERS"; string remove_ntp = "/usr/bin/ubconfig --target system remove network NTPSERVERS";
this->save_Dhcp(cmd_default, cmd_dhcp, remove, cmd_set_ntp); 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 local = "/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=localtime";
string hw = "/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=utc"; string hw = "/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=utc";
this->hardware_clock_global(local, hw); this->entry_hardware_clock(hw);
info_warning_error(2); 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_default = "/usr/bin/ubconfig --target global set network NTPSERVERS=default";
string cmd_dhcp = "/usr/bin/ubconfig --target global set network NTPSERVERS=dhcp"; 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 cmd_set_ntp = "/usr/bin/ubconfig --target global set network NTPSERVERS=\"";
string remove = "/usr/bin/ubconfig --target global remove network NTPSERVERS"; string remove_ntp = "/usr/bin/ubconfig --target global remove network NTPSERVERS";
this->save_Dhcp(cmd_default, cmd_dhcp, remove, cmd_set_ntp); 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 local = "/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=localtime";
string hw = "/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=utc"; string hw = "/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=utc";
this->hardware_clock_global(local, hw); this->hardware_clock_global(local, hw);
@ -406,28 +412,35 @@ void MainWindow::save_global_local_cfg() {
void MainWindow::info_warning_error(int mess) { void MainWindow::info_warning_error(int mess) {
if (error_info > 0 || warning_info > 0) { if (error_info > 0 || warning_info > 0) {
info_status_app("boxInfoMessError"); 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; error_info = 0;
warning_info = 0; warning_info = 0;
string mess_error = "";
if (mess == 0) { 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) { 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) { 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) { 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) { 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 { else {
info_status_app("boxInfoMessOK"); 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) { if (mess == 0) {
lblWarning->set_text(_("Local configuration downloaded successfully")); 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 = "") { void MainWindow::wrapper_system(string cmd, string thread_str = "") {
cmd=cmd + " " + thread_str; string cmd_new = cmd + " " + thread_str;
int response_cmd = system(cmd.c_str()); int response_cmd = system(cmd_new.c_str());
if (response_cmd!= 0) { if (response_cmd != 0) {
error_info+= 1; 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) { 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) { void MainWindow::entry_hardware_clock(string &cmd) {
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) {
int error = warning_info; int error = warning_info;
struct Result<string> obj_result = this->wrapper_call(cmd); struct Result<string> obj_result = this->wrapper_call(cmd);
if (obj_result.error == 0) { 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); 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); cbHw->set_active(1);
} }
else { 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); cbHw->set_active(-1);
this->entry_hardware_clock_default(cmd_default);
} }
else { if (error != warning_info){
this->entry_hardware_clock_default(cmd_default); warning_info = error;
} }
} }
@ -521,13 +524,13 @@ void MainWindow::hardware_clock() {
} }
void MainWindow::gui_mess_close() { void MainWindow::gui_mess_close() {
mess_dchp->hide(); windowMessDchp->hide();
} }
bool MainWindow::focus_ntp(string &cmd_set_ntp) { bool MainWindow::focus_ntp(string &cmd_set_ntp) {
if (txtNtpServer->get_text() == "" || txtNtpServer->get_text() == " ") { if (txtNtpServer->get_text() == "" || txtNtpServer->get_text() == " ") {
lblMessage->set_text(_("Enter DHCP!")); lblMessage->set_text(_("Enter DHCP!"));
mess_dchp->show(); windowMessDchp->show();
} }
else { else {
string cmd = ""; string cmd = "";
@ -553,14 +556,13 @@ bool MainWindow::focus_ntp(string &cmd_set_ntp) {
else { else {
if (flag_error == true) { if (flag_error == true) {
lblMessage->set_text(_("An invalid character is entered")); lblMessage->set_text(_("An invalid character is entered"));
mess_dchp->show(); windowMessDchp->show();
} }
else if (flag_error_check_ntp == true) { else if (flag_error_check_ntp == true) {
lblMessage->set_text(_("Error in the ntp name")); lblMessage->set_text(_("Error in the ntp name"));
mess_dchp->show(); windowMessDchp->show();
} }
} }
} }
return true; return true;
} }
@ -636,7 +638,7 @@ bool MainWindow::check_ntp(string &str_ntp) {
struct MainWindow::Result<string> MainWindow::wrapper_call(string cmd) { struct MainWindow::Result<string> MainWindow::wrapper_call(string cmd) {
struct Result<string> obj_result; 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("(null)") == std::string::npos) && (response.length() != 0 )) {
if (response.find("=") != std::string::npos) { if (response.find("=") != std::string::npos) {
if (response.find("\n") != std::string::npos) { if (response.find("\n") != std::string::npos) {
@ -648,23 +650,30 @@ struct MainWindow::Result<string> MainWindow::wrapper_call(string cmd) {
else { else {
obj_result.response = response; obj_result.response = response;
obj_result.error = 1; obj_result.error = 1;
warning_info+= 1; warning_info += 1;
this->log_mess_error(cmd);
} }
} }
else { else {
obj_result.response = response; obj_result.response = response;
obj_result.error = 2; obj_result.error = 2;
warning_info+= 1; warning_info += 1;
cmd_error = cmd;
this->log_mess_error(cmd);
} }
} }
else { else {
obj_result.response = response; obj_result.response = response;
obj_result.error = 3; obj_result.error = 3;
warning_info+= 1; warning_info += 1;
cmd_error = cmd;
this->log_mess_error(cmd);
} }
return obj_result; return obj_result;
} }
void MainWindow::event_entry_cbDhcp() { void MainWindow::event_entry_cbDhcp() {
string str_dhcp = cbDhcp->get_active_text(); string str_dhcp = cbDhcp->get_active_text();
string cmd = ""; string cmd = "";
@ -676,8 +685,6 @@ void MainWindow::event_entry_cbDhcp() {
txtNtpServer->set_text(""); txtNtpServer->set_text("");
btnUpdateDateTime->set_sensitive(false); btnUpdateDateTime->set_sensitive(false);
txtNtpServer->set_sensitive(false); txtNtpServer->set_sensitive(false);
} }
else if (activ_index == 1) { else if (activ_index == 1) {
btnUpdateDateTime->set_sensitive(false); btnUpdateDateTime->set_sensitive(false);
@ -685,7 +692,7 @@ void MainWindow::event_entry_cbDhcp() {
txtNtpServer->set_text(""); txtNtpServer->set_text("");
} }
else if (activ_index == 2) { else if (activ_index == 2) {
if (flag_ntp_edit==false) { if (flag_ntp_edit == false) {
txtNtpServer->set_sensitive(true); 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) { else if (activ_index == 0) {
wrapper_system(cmd_default, "&"); wrapper_system(cmd_default, "&");
} }
else if (activ_index == 1) { else if (activ_index == 1) {
wrapper_system(cmd_dhcp, "&"); 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); btnUpdateDateTime->set_sensitive(false);
if (str_dhcp == "") { if (str_dhcp == "") {
lblMessage->set_text(_("Enter DHCP!")); lblMessage->set_text(_("Enter DHCP!"));
mess_dchp->show(); windowMessDchp->show();
} }
else if (str_dhcp == "(null)") { else if (str_dhcp == "(null)") {
cbDhcp->set_active(0); cbDhcp->set_active(0);
@ -761,7 +767,7 @@ void MainWindow::entry_dhcp_mess(string cmd_get_dhcp, string cmd_default_get_dhc
else { else {
cbDhcp->set_active(2); cbDhcp->set_active(2);
txtNtpServer->set_text(str_dhcp); txtNtpServer->set_text(str_dhcp);
if (flag_ntp_edit==false) { if (flag_ntp_edit ==false) {
txtNtpServer->set_sensitive(true); 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_text("");
txtNtpServer->set_sensitive(false); txtNtpServer->set_sensitive(false);
btnUpdateDateTime->set_sensitive(true); 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() { void MainWindow::get_config() {
this->read_file(); this->read_file();
this->update_hour_minute(); this->update_hour_minute();
@ -872,19 +876,18 @@ array<string, 2> MainWindow::split_region_zone(string &read_reg_zon_cfg) {
arr[1] = ""; arr[1] = "";
} }
return arr; return arr;
} }
void MainWindow::enter_zone(string &cmd) { void MainWindow::enter_zone(string &cmd) {
int activ_index_reg = cbRegion->get_active_row_number(); 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(); int activ_index = cbZone->get_active_row_number();
string zone_text = ""; string zone_text = "";
if(!(reg_text.empty())) { if(!(reg_text.empty())) {
int index= 0; int index= 0;
for (const auto &zone: time_reg_map.at(reg_text)) { for (const auto &zone: time_reg_map.at(reg_text)) {
if (index==activ_index) { if (index == activ_index) {
zone_text=zone; zone_text=zone;
} }
index+= 1; index+= 1;
@ -957,7 +960,7 @@ void MainWindow::append_region_zone(string region, string zone, Gtk::ComboBoxTex
string zone_mixing = ""; string zone_mixing = "";
string path_reg_zone = ""; string path_reg_zone = "";
string zone_offest = ""; 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()); zone_offest = this->zone_file_read(path_reg_zone) + _(zone.c_str());
if (region == "") { if (region == "") {
tmpCbZone->append(" "); tmpCbZone->append(" ");
@ -994,6 +997,7 @@ void MainWindow::append_region_zone(string region, string zone, Gtk::ComboBoxTex
} }
} }
string MainWindow::call(string cmd) { string MainWindow::call(string cmd) {
FILE *fp; FILE *fp;
int status; int status;
@ -1009,7 +1013,6 @@ string MainWindow::call(string cmd) {
if (status == -1) { if (status == -1) {
exit(1); exit(1);
} }
return path; return path;
} }
@ -1018,8 +1021,8 @@ void MainWindow::append_zone() {
int index = cbRegion->get_active_row_number(); int index = cbRegion->get_active_row_number();
if (index!=-1) { if (index!=-1) {
string str_region = array_region[index]; string str_region = array_region[index];
string zone_mixing= ""; string zone_mixing = "";
string path_dir= ""; string path_dir = "";
if(str_region.length() != 0) { if(str_region.length() != 0) {
for (const auto &_str_zone : time_reg_map_local.at(str_region)) { for (const auto &_str_zone : time_reg_map_local.at(str_region)) {
cbZone->append(Glib::ustring(_str_zone)); cbZone->append(Glib::ustring(_str_zone));
@ -1031,6 +1034,7 @@ void MainWindow::append_zone() {
void MainWindow::update_time_date() { void MainWindow::update_time_date() {
string cmd = ""; string cmd = "";
string response = "";
if ((year != 0) && (month != 0) && (day != 0)) { if ((year != 0) && (month != 0) && (day != 0)) {
string str_month = ""; string str_month = "";
string str_day = ""; string str_day = "";
@ -1086,13 +1090,15 @@ void MainWindow::post_entry_data() {
cmd = "date +%Y%m%d -s \"" + str_year+ cmd = "date +%Y%m%d -s \"" + str_year+
str_month+str_day+"\""; str_month+str_day+"\"";
string str_error_clock = this->call(cmd); string str_error_clock = this->call(cmd);
size_t index = str_error_clock.find("date: "); size_t index = str_error_clock.find("date:");
if (index == std::string::npos) { if (index != std::string::npos) {
lblMessage->set_text(_("Incorrect date format"));
windowMessDchp->show();
} }
} }
else { else {
lblMessage->set_text(_("Incorrect date format")); lblMessage->set_text(_("Incorrect date format"));
mess_dchp->show(); windowMessDchp->show();
} }
} }
@ -1227,7 +1233,8 @@ void MainWindow::sort_zone(vector<string> *time_reg_map_local,vector<string> *ti
b = (*time_reg_map)[j]; b = (*time_reg_map)[j];
(*time_reg_map)[j] = (*time_reg_map)[j + 1]; (*time_reg_map)[j] = (*time_reg_map)[j + 1];
(*time_reg_map)[j + 1] = b; (*time_reg_map)[j + 1] = b;
} } }
}
} }
} }
} }

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

@ -52,6 +52,12 @@ inline void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, in
} else } else
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug)); gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
gtk_widget_show(GTK_WIDGET(plug)); 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){ if (right_plug_id>0&&RightWidget){
GtkWidget *plug=gtk_plug_new(right_plug_id); 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 } else
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug)); gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
gtk_widget_show(GTK_WIDGET(plug)); 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 #endif

@ -2,7 +2,7 @@
background-color: #ea9999; background-color: #ea9999;
} }
.cssboxColor1{ .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{ .boxInfoMessOK{
background-color: #f3f0ac; background-color: #f3f0ac;
@ -71,7 +71,29 @@
margin-bottom:0px; margin-bottom:0px;
} }
.bkim{ .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, background-image: -gtk-gradient(linear,
left top, left bottom, left top, left bottom,
from(@entry_background_a), from(@entry_background_a),

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

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

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

Loading…
Cancel
Save