From 0786348b6394f64a5874bf784169a7af36145bdb Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Fri, 27 Jan 2023 17:55:42 +0600 Subject: [PATCH 01/12] fix and reload project in repo --- .gitignore | 7 +- Makefile | 17 +- README.md | 6 +- bg_top.png | Bin 0 -> 45513 bytes messages.pot | 123 ++ reg/Africa | 54 - reg/America | 147 -- reg/Antarctica | 12 - reg/Arctic | 1 - reg/Asia | 99 -- reg/Atlantic | 12 - reg/Australia | 23 - reg/Brazil | 4 - reg/Chile | 2 - reg/Europe | 64 - reg/Indian | 11 - reg/Mexico | 3 - reg/US | 12 - ...x.pkexec.ubl-settings-datetime.exec.policy | 2 +- source/CMakeLists.txt | 7 +- source/main.cc | 90 + source/ubl-settings-datetime.cc | 677 +++++++ source/ubl-settings-datetime.cpp | 684 ------- source/ubl-settings-datetime.h | 141 ++ style.css | 6 + ubl-settings-datetime.glade | 775 ++++---- ubl-settings-datetime_ru.po | 1565 +---------------- 27 files changed, 1555 insertions(+), 2989 deletions(-) create mode 100644 bg_top.png create mode 100644 messages.pot delete mode 100644 reg/Africa delete mode 100644 reg/America delete mode 100644 reg/Antarctica delete mode 100644 reg/Arctic delete mode 100644 reg/Asia delete mode 100644 reg/Atlantic delete mode 100644 reg/Australia delete mode 100644 reg/Brazil delete mode 100644 reg/Chile delete mode 100644 reg/Europe delete mode 100644 reg/Indian delete mode 100644 reg/Mexico delete mode 100644 reg/US create mode 100644 source/main.cc create mode 100644 source/ubl-settings-datetime.cc delete mode 100644 source/ubl-settings-datetime.cpp create mode 100644 source/ubl-settings-datetime.h create mode 100644 style.css diff --git a/.gitignore b/.gitignore index 33f5078..45460e9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,9 @@ main.cpp ubl-settings-datetime.glade~ test.cpp ubl-settings-datetime -a.out \ No newline at end of file +a.out +compile/ +source/**/ubl_settings_datetime +source/**/main.o +source/**/ubl_settings_datetime.o +reg/ \ No newline at end of file diff --git a/Makefile b/Makefile index 1c75de6..e1f25a0 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,19 @@ #!/usr/bin/make -f +#!/usr/bin/make -f +#SHELL := /bin/bash MAKEFILE_FILEPATH := $(abspath $(lastword $(MAKEFILE_LIST))) MAKEFILE_DIR := $(notdir $(patsubst %/,%,$(dir $(MAKEFILE_FILEPATH)))) MAKEFILE_PATH := $(dir $(MAKEFILE_FILEPATH)) CMAKE_COMMAND = cmake +#CMAKE_SOURCE_DIR = $(MAKEFILE_PATH)source +#CMAKE_BUILD_DIR = $(MAKEFILE_PATH)compile CMAKE_SOURCE_DIR = ./source CMAKE_BUILD_DIR = ./compile DEPENDS = cmake - -PKGNAME = $(MAKEFILE_DIR) -#PKGNAME = ubl-settings-datetime +#PKGNAME = $(MAKEFILE_DIR) +PKGNAME = ubl-settings-datetime default_target: all all: init build @@ -55,7 +58,6 @@ build: depend prepare @echo "Build ..."; \ make --directory=${CMAKE_BUILD_DIR}; \ echo "Build: OK" -# g++ -O2 -std=c++20 -lstdc++ -o ubl-settings-datetime ubl-settings-datetime.cpp `pkg-config --cflags --libs gtkmm-3.0` -Wl,-export-dynamic -g uninstall: @echo "Uninstall ..." @@ -102,11 +104,12 @@ install: check uninstall @install -Dm755 -t /usr/bin/ ${CMAKE_BUILD_DIR}/${PKGNAME} @install -Dm644 -t /usr/share/applications/ ${PKGNAME}.desktop @install -Dm644 -t /usr/share/polkit-1/actions/ ru.ublinux.pkexec.${PKGNAME}.exec.policy - @install -dm755 /usr/share/${PKGNAME}/{ui,images,reg} + @install -dm755 /usr/share/${PKGNAME}/{ui,images,css} @install -Dm644 -t /usr/share/${PKGNAME}/ui/ ${PKGNAME}.glade + @install -Dm644 -t /usr/share/${PKGNAME}/css/ style.css @install -Dm644 -t /usr/share/${PKGNAME}/images/ ${PKGNAME}.svg @install -Dm644 -t /usr/share/${PKGNAME}/images/ ${PKGNAME}.png - @cp -afr reg/* /usr/share/${PKGNAME}/reg/ + @install -Dm644 -t /usr/share/${PKGNAME}/images/ bg_top.png @gtk-update-icon-cache -fiq /usr/share/icons/hicolor/ @update-desktop-database --quiet 2>/dev/null @touch /usr/share/applications @@ -130,4 +133,4 @@ help: @echo "... compile" @echo "... install" @echo "... uninstall" - @echo "... clean" + @echo "... clean" \ No newline at end of file diff --git a/README.md b/README.md index 145e396..b5c8c4d 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,4 @@ # ubl-settings-datetime - +# Настройки даты и времени ![alt text](screenshot/screenshot.png) -- [ ] Локализация -- [x] Makefile -- [ ] Парсинг TimeZone C++ - diff --git a/bg_top.png b/bg_top.png new file mode 100644 index 0000000000000000000000000000000000000000..d673a36f2602b94f7541bf9d6b9b846fb3cbeccd GIT binary patch literal 45513 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 T)U!vG00000NkvXXu0mjfBYct@ literal 0 HcmV?d00001 diff --git a/messages.pot b/messages.pot new file mode 100644 index 0000000..df07366 --- /dev/null +++ b/messages.pot @@ -0,0 +1,123 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-01-25 12:51+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ubl-settings-datetime.glade:7 +msgid "Внимание!" +msgstr "" + +#: ubl-settings-datetime.glade:45 +msgid "Введите DHCP !" +msgstr "" + +#: ubl-settings-datetime.glade:62 +msgid "OK" +msgstr "" + +#. Date and Time Settings +#: ubl-settings-datetime.glade:84 +msgctxt "Settings the date and time" +msgid "Настройки даты и времени" +msgstr "" + +#. Setting the date and time +#: ubl-settings-datetime.glade:125 ubl-settings-datetime.glade:531 +msgctxt "Setting the date and time" +msgid "Настройка даты и времени" +msgstr "" + +#. Time +#: ubl-settings-datetime.glade:204 +msgctxt "Time" +msgid "Время" +msgstr "" + +#: ubl-settings-datetime.glade:238 +msgid ":" +msgstr "" + +#. Date +#: ubl-settings-datetime.glade:287 +msgctxt "Date" +msgid "Дата" +msgstr "" + +#. Date of +#. Format: DD.MM.YYYY +#: ubl-settings-datetime.glade:302 +msgctxt "" +"Date of\n" +"Format: DD.MM.YYYY" +msgid "" +"Дата\n" +"Формат: ДД.ММ.ГГГГ" +msgstr "" + +#. Interactive date picker +#: ubl-settings-datetime.glade:321 +msgctxt "Interactive date picker" +msgid "Интерактивный выбор даты" +msgstr "" + +#. time zone +#: ubl-settings-datetime.glade:364 +msgctxt "time zone" +msgid "Часовой пояс" +msgstr "" + +#. Region +#: ubl-settings-datetime.glade:389 ubl-settings-datetime.glade:396 +#: ubl-settings-datetime.glade:687 +msgctxt "Region" +msgid "Регион" +msgstr "" + +#. Zone +#: ubl-settings-datetime.glade:426 ubl-settings-datetime.glade:433 +#: ubl-settings-datetime.glade:721 +msgctxt "Zone" +msgid "Зона" +msgstr "" + +#: ubl-settings-datetime.glade:501 +msgid "Синхронизировать" +msgstr "" + +#. Automatic time synchronization +#: ubl-settings-datetime.glade:580 +msgctxt "Automatic time synchronization" +msgid "Автоматическая синхронизация времени" +msgstr "" + +#. Synchronize via NTP +#: ubl-settings-datetime.glade:591 +msgctxt "Synchronize via NTP" +msgid "Синхронизировать через NTP" +msgstr "" + +#. Time zone +#: ubl-settings-datetime.glade:655 +msgctxt "Time zone" +msgid "Часовой пояс" +msgstr "" + +#. Setting date and time in global configuration +#: ubl-settings-datetime.glade:776 +msgctxt "Setting date and time in global configuration" +msgid "Настройка даты и времени в глобальной конфигурации" +msgstr "" diff --git a/reg/Africa b/reg/Africa deleted file mode 100644 index 6afdb1c..0000000 --- a/reg/Africa +++ /dev/null @@ -1,54 +0,0 @@ -(UTC +00) Lome -(UTC +00) Bissau -(UTC +00) Sao_Tome -(UTC +00) Abidjan -(UTC +00) Accra -(UTC +00) Banjul -(UTC +00) Conakry -(UTC +00) Ouagadougou -(UTC +00) Nouakchott -(UTC +00) Timbuktu -(UTC +00) Dakar -(UTC +00) Monrovia -(UTC +00) Freetown -(UTC +00) Bamako -(UTC +01) El_Aaiun -(UTC +01) Lagos -(UTC +01) Porto-Novo -(UTC +01) Algiers -(UTC +01) Douala -(UTC +01) Brazzaville -(UTC +01) Libreville -(UTC +01) Casablanca -(UTC +01) Niamey -(UTC +01) Tunis -(UTC +01) Luanda -(UTC +01) Malabo -(UTC +01) Ceuta -(UTC +01) Kinshasa -(UTC +01) Bangui -(UTC +01) Ndjamena -(UTC +02) Juba -(UTC +02) Maseru -(UTC +02) Khartoum -(UTC +02) Lubumbashi -(UTC +02) Tripoli -(UTC +02) Mbabane -(UTC +02) Kigali -(UTC +02) Gaborone -(UTC +02) Windhoek -(UTC +02) Maputo -(UTC +02) Cairo -(UTC +02) Johannesburg -(UTC +02) Bujumbura -(UTC +02) Lusaka -(UTC +02) Harare -(UTC +02) Blantyre -(UTC +03) Djibouti -(UTC +03) Dar_es_Salaam -(UTC +03) Kampala -(UTC +03) Addis_Ababa -(UTC +03) Mogadishu -(UTC +03) Asmera -(UTC +03) Asmara -(UTC +03) Nairobi diff --git a/reg/America b/reg/America deleted file mode 100644 index 4eac7b5..0000000 --- a/reg/America +++ /dev/null @@ -1,147 +0,0 @@ -(UTC -10) Atka -(UTC -10) Adak -(UTC -09) Anchorage -(UTC -09) Metlakatla -(UTC -09) Juneau -(UTC -09) Sitka -(UTC -09) Nome -(UTC -09) Yakutat -(UTC -08) Tijuana -(UTC -08) Santa_Isabel -(UTC -08) Vancouver -(UTC -08) Ensenada -(UTC -08) Los_Angeles -(UTC -07) Ciudad_Juarez -(UTC -07) Dawson -(UTC -07) Hermosillo -(UTC -07) Phoenix -(UTC -07) Whitehorse -(UTC -07) Edmonton -(UTC -07) Creston -(UTC -07) Inuvik -(UTC -07) Mazatlan -(UTC -07) Shiprock -(UTC -07) Yellowknife -(UTC -07) Fort_Nelson -(UTC -07) Denver -(UTC -07) Boise -(UTC -07) Dawson_Creek -(UTC -07) Cambridge_Bay -(UTC -06) North_Dakota -(UTC -06) Knox_IN -(UTC -06) Costa_Rica -(UTC -06) Menominee -(UTC -06) El_Salvador -(UTC -06) Regina -(UTC -06) Guatemala -(UTC -06) Resolute -(UTC -06) Monterrey -(UTC -06) Chicago -(UTC -06) Winnipeg -(UTC -06) Indiana -(UTC -06) Rankin_Inlet -(UTC -06) Merida -(UTC -06) Tegucigalpa -(UTC -06) Managua -(UTC -06) Belize -(UTC -06) Rainy_River -(UTC -06) Bahia_Banderas -(UTC -06) Ojinaga -(UTC -06) Chihuahua -(UTC -06) Swift_Current -(UTC -06) Mexico_City -(UTC -06) Matamoros -(UTC -05) Jamaica -(UTC -05) Montreal -(UTC -05) Havana -(UTC -05) Grand_Turk -(UTC -05) Iqaluit -(UTC -05) Louisville -(UTC -05) Guayaquil -(UTC -05) Lima -(UTC -05) Coral_Harbour -(UTC -05) Detroit -(UTC -05) Port-au-Prince -(UTC -05) Fort_Wayne -(UTC -05) Eirunepe -(UTC -05) Indianapolis -(UTC -05) Rio_Branco -(UTC -05) Cancun -(UTC -05) Nipigon -(UTC -05) Toronto -(UTC -05) Panama -(UTC -05) Indiana -(UTC -05) New_York -(UTC -05) Kentucky -(UTC -05) Pangnirtung -(UTC -05) Thunder_Bay -(UTC -05) Bogota -(UTC -05) Cayman -(UTC -05) Atikokan -(UTC -05) Porto_Acre -(UTC -05) Nassau -(UTC -04) Anguilla -(UTC -04) Guadeloupe -(UTC -04) Puerto_Rico -(UTC -04) Porto_Velho -(UTC -04) Guyana -(UTC -04) Lower_Princes -(UTC -04) St_Lucia -(UTC -04) Port_of_Spain -(UTC -04) Dominica -(UTC -04) Manaus -(UTC -04) Thule -(UTC -04) St_Vincent -(UTC -04) St_Barthelemy -(UTC -04) Grenada -(UTC -04) Marigot -(UTC -04) Goose_Bay -(UTC -04) Martinique -(UTC -04) La_Paz -(UTC -04) Cuiaba -(UTC -04) Tortola -(UTC -04) Virgin -(UTC -04) Santo_Domingo -(UTC -04) Antigua -(UTC -04) Curacao -(UTC -04) Barbados -(UTC -04) Blanc-Sablon -(UTC -04) Aruba -(UTC -04) Kralendijk -(UTC -04) Montserrat -(UTC -04) Campo_Grande -(UTC -04) Caracas -(UTC -04) St_Thomas -(UTC -04) Glace_Bay -(UTC -04) St_Kitts -(UTC -04) Moncton -(UTC -04) Boa_Vista -(UTC -04) Halifax -(UTC -03) Buenos_Aires -(UTC -03) Santarem -(UTC -03) Araguaina -(UTC -03) Belem -(UTC -03) St_Johns -(UTC -03) Nuuk -(UTC -03) Cordoba -(UTC -03) Catamarca -(UTC -03) Rosario -(UTC -03) Jujuy -(UTC -03) Montevideo -(UTC -03) Punta_Arenas -(UTC -03) Cayenne -(UTC -03) Sao_Paulo -(UTC -03) Santiago -(UTC -03) Paramaribo -(UTC -03) Miquelon -(UTC -03) Godthab -(UTC -03) Maceio -(UTC -03) Fortaleza -(UTC -03) Argentina -(UTC -03) Mendoza -(UTC -03) Recife -(UTC -03) Bahia -(UTC -03) Asuncion -(UTC -02) Noronha -(UTC -01) Scoresbysund -(UTC +00) Danmarkshavn diff --git a/reg/Antarctica b/reg/Antarctica deleted file mode 100644 index 2f99849..0000000 --- a/reg/Antarctica +++ /dev/null @@ -1,12 +0,0 @@ -(UTC -03) Rothera -(UTC -03) Palmer -(UTC +00) Troll -(UTC +03) Syowa -(UTC +05) Mawson -(UTC +06) Vostok -(UTC +07) Davis -(UTC +10) DumontDUrville -(UTC +11) Casey -(UTC +11) Macquarie -(UTC +13) McMurdo -(UTC +13) South_Pole diff --git a/reg/Arctic b/reg/Arctic deleted file mode 100644 index feba77b..0000000 --- a/reg/Arctic +++ /dev/null @@ -1 +0,0 @@ -(UTC +01) Longyearbyen diff --git a/reg/Asia b/reg/Asia deleted file mode 100644 index 57ce91b..0000000 --- a/reg/Asia +++ /dev/null @@ -1,99 +0,0 @@ -(UTC +02) Beirut -(UTC +02) Famagusta -(UTC +02) Nicosia -(UTC +02) Hebron -(UTC +02) Tel_Aviv -(UTC +02) Jerusalem -(UTC +02) Gaza -(UTC +03) Amman -(UTC +03) Bahrain -(UTC +03) Tehran -(UTC +03) Baghdad -(UTC +03) Istanbul -(UTC +03) Kuwait -(UTC +03) Riyadh -(UTC +03) Qatar -(UTC +03) Damascus -(UTC +03) Aden -(UTC +04) Yerevan -(UTC +04) Baku -(UTC +04) Dubai -(UTC +04) Kabul -(UTC +04) Muscat -(UTC +04) Tbilisi -(UTC +05) Kathmandu -(UTC +05) Samarkand -(UTC +05) Ashgabat -(UTC +05) Karachi -(UTC +05) Katmandu -(UTC +05) Calcutta -(UTC +05) Tashkent -(UTC +05) Yekaterinburg -(UTC +05) Oral -(UTC +05) Dushanbe -(UTC +05) Atyrau -(UTC +05) Aqtobe -(UTC +05) Aqtau -(UTC +05) Qyzylorda -(UTC +05) Ashkhabad -(UTC +05) Colombo -(UTC +05) Kolkata -(UTC +06) Dhaka -(UTC +06) Thimphu -(UTC +06) Rangoon -(UTC +06) Kashgar -(UTC +06) Qostanay -(UTC +06) Almaty -(UTC +06) Urumqi -(UTC +06) Yangon -(UTC +06) Dacca -(UTC +06) Thimbu -(UTC +06) Omsk -(UTC +06) Bishkek -(UTC +07) Ho_Chi_Minh -(UTC +07) Phnom_Penh -(UTC +07) Vientiane -(UTC +07) Bangkok -(UTC +07) Krasnoyarsk -(UTC +07) Novokuznetsk -(UTC +07) Barnaul -(UTC +07) Jakarta -(UTC +07) Saigon -(UTC +07) Hovd -(UTC +07) Novosibirsk -(UTC +07) Tomsk -(UTC +07) Pontianak -(UTC +08) Harbin -(UTC +08) Chungking -(UTC +08) Ulan_Bator -(UTC +08) Brunei -(UTC +08) Singapore -(UTC +08) Choibalsan -(UTC +08) Chongqing -(UTC +08) Macau -(UTC +08) Ujung_Pandang -(UTC +08) Manila -(UTC +08) Kuala_Lumpur -(UTC +08) Makassar -(UTC +08) Kuching -(UTC +08) Macao -(UTC +08) Shanghai -(UTC +08) Taipei -(UTC +08) Ulaanbaatar -(UTC +08) Irkutsk -(UTC +08) Hong_Kong -(UTC +09) Khandyga -(UTC +09) Seoul -(UTC +09) Jayapura -(UTC +09) Chita -(UTC +09) Pyongyang -(UTC +09) Yakutsk -(UTC +09) Tokyo -(UTC +09) Dili -(UTC +10) Vladivostok -(UTC +10) Ust-Nera -(UTC +11) Srednekolymsk -(UTC +11) Sakhalin -(UTC +11) Magadan -(UTC +12) Anadyr -(UTC +12) Kamchatka diff --git a/reg/Atlantic b/reg/Atlantic deleted file mode 100644 index 57a99bf..0000000 --- a/reg/Atlantic +++ /dev/null @@ -1,12 +0,0 @@ -(UTC -04) Bermuda -(UTC -03) Stanley -(UTC -02) South_Georgia -(UTC -01) Cape_Verde -(UTC -01) Azores -(UTC +00) Faeroe -(UTC +00) Faroe -(UTC +00) St_Helena -(UTC +00) Reykjavik -(UTC +00) Canary -(UTC +00) Madeira -(UTC +01) Jan_Mayen diff --git a/reg/Australia b/reg/Australia deleted file mode 100644 index d762891..0000000 --- a/reg/Australia +++ /dev/null @@ -1,23 +0,0 @@ -(UTC +08) Perth -(UTC +08) Eucla -(UTC +08) West -(UTC +09) Darwin -(UTC +09) North -(UTC +10) Yancowinna -(UTC +10) South -(UTC +10) Lindeman -(UTC +10) Broken_Hill -(UTC +10) Adelaide -(UTC +10) Queensland -(UTC +10) Brisbane -(UTC +11) Victoria -(UTC +11) Hobart -(UTC +11) ACT -(UTC +11) Tasmania -(UTC +11) LHI -(UTC +11) Currie -(UTC +11) Canberra -(UTC +11) Sydney -(UTC +11) Melbourne -(UTC +11) Lord_Howe -(UTC +11) NSW diff --git a/reg/Brazil b/reg/Brazil deleted file mode 100644 index 79213f9..0000000 --- a/reg/Brazil +++ /dev/null @@ -1,4 +0,0 @@ -(UTC -05) Acre -(UTC -04) West -(UTC -03) East -(UTC -02) DeNoronha diff --git a/reg/Chile b/reg/Chile deleted file mode 100644 index c72cae0..0000000 --- a/reg/Chile +++ /dev/null @@ -1,2 +0,0 @@ -(UTC -05) EasterIsland -(UTC -03) Continental diff --git a/reg/Europe b/reg/Europe deleted file mode 100644 index a6a7a52..0000000 --- a/reg/Europe +++ /dev/null @@ -1,64 +0,0 @@ -(UTC +00) Jersey -(UTC +00) Dublin -(UTC +00) Belfast -(UTC +00) Guernsey -(UTC +00) London -(UTC +00) Lisbon -(UTC +00) Isle_of_Man -(UTC +01) Ljubljana -(UTC +01) Stockholm -(UTC +01) Skopje -(UTC +01) Oslo -(UTC +01) Sarajevo -(UTC +01) Tirane -(UTC +01) Zagreb -(UTC +01) Vienna -(UTC +01) Andorra -(UTC +01) Madrid -(UTC +01) Podgorica -(UTC +01) Copenhagen -(UTC +01) Monaco -(UTC +01) Belgrade -(UTC +01) Budapest -(UTC +01) Brussels -(UTC +01) Amsterdam -(UTC +01) Berlin -(UTC +01) Zurich -(UTC +01) Bratislava -(UTC +01) Prague -(UTC +01) Malta -(UTC +01) Rome -(UTC +01) Luxembourg -(UTC +01) Vaduz -(UTC +01) Paris -(UTC +01) Warsaw -(UTC +01) Vatican -(UTC +01) Busingen -(UTC +01) Gibraltar -(UTC +01) San_Marino -(UTC +02) Sofia -(UTC +02) Vilnius -(UTC +02) Helsinki -(UTC +02) Mariehamn -(UTC +02) Riga -(UTC +02) Bucharest -(UTC +02) Kyiv -(UTC +02) Kiev -(UTC +02) Athens -(UTC +02) Zaporozhye -(UTC +02) Tallinn -(UTC +02) Kaliningrad -(UTC +02) Uzhgorod -(UTC +02) Chisinau -(UTC +02) Nicosia -(UTC +02) Tiraspol -(UTC +03) Simferopol -(UTC +03) Istanbul -(UTC +03) Moscow -(UTC +03) Kirov -(UTC +03) Minsk -(UTC +03) Volgograd -(UTC +04) Ulyanovsk -(UTC +04) Samara -(UTC +04) Astrakhan -(UTC +04) Saratov diff --git a/reg/Indian b/reg/Indian deleted file mode 100644 index cbb5827..0000000 --- a/reg/Indian +++ /dev/null @@ -1,11 +0,0 @@ -(UTC +03) Comoro -(UTC +03) Antananarivo -(UTC +03) Mayotte -(UTC +04) Mauritius -(UTC +04) Reunion -(UTC +04) Mahe -(UTC +05) Maldives -(UTC +05) Kerguelen -(UTC +06) Chagos -(UTC +06) Cocos -(UTC +07) Christmas diff --git a/reg/Mexico b/reg/Mexico deleted file mode 100644 index af4773f..0000000 --- a/reg/Mexico +++ /dev/null @@ -1,3 +0,0 @@ -(UTC -08) BajaNorte -(UTC -07) BajaSur -(UTC -06) General diff --git a/reg/US b/reg/US deleted file mode 100644 index 7c1cbd3..0000000 --- a/reg/US +++ /dev/null @@ -1,12 +0,0 @@ -(UTC -11) Samoa -(UTC -10) Aleutian -(UTC -10) Hawaii -(UTC -09) Alaska -(UTC -08) Pacific -(UTC -07) Mountain -(UTC -07) Arizona -(UTC -06) Indiana-Starke -(UTC -06) Central -(UTC -05) East-Indiana -(UTC -05) Michigan -(UTC -05) Eastern diff --git a/ru.ublinux.pkexec.ubl-settings-datetime.exec.policy b/ru.ublinux.pkexec.ubl-settings-datetime.exec.policy index f657711..bd85ed6 100644 --- a/ru.ublinux.pkexec.ubl-settings-datetime.exec.policy +++ b/ru.ublinux.pkexec.ubl-settings-datetime.exec.policy @@ -7,7 +7,7 @@ UBLinux https://ublinux.ru - + Run "Time date settings" as root Запуск настройки даты и времени" с правами root Authentication is required to run the time date settings diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index e4f8297..319a9c3 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -9,11 +9,12 @@ link_directories(${GTK_LIBRARY_DIRS}) add_definitions(${GTK_CFLAGS_OTHER}) #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a") -#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -fdiagnostics-color=always") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always") set(SOURCE_FILES - ubl-settings-datetime.cpp) + main.cc + ubl-settings-datetime.cc + ubl-settings-datetime.h) set(LIBRARIES ${GTK_LIBRARIES} diff --git a/source/main.cc b/source/main.cc new file mode 100644 index 0000000..46295a7 --- /dev/null +++ b/source/main.cc @@ -0,0 +1,90 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "ubl-settings-datetime.h" +int main(int argc, char* argv[]) { + string str_argv=""; + string str_cmd_argv = ""; + for (int i=1; i1){ + str_argv = argv[1]; + } + if ((str_argv.find("--lock")!=std::string::npos || argc==1)){ + int len_argv = 1; + auto app = Gtk::Application::create(len_argv, argv, "org.gtkmm.example.plug"); + auto builder = Gtk::Builder::create_from_file(path_glade + "ubl-settings-datetime.glade"); + builder->set_translation_domain(app_name); + for (int i=0; iget_widget_derived("window", wnd); + auto r = app->run(*wnd); + delete wnd; + return r; + } + else{ + auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example.plug"); + auto builder = Gtk::Builder::create_from_file(path_glade + "ubl-settings-datetime.glade"); + builder->set_translation_domain(app_name); + Glib::init(); + Glib::OptionContext context; + CmdArgParser parser{ + "Socket ID", + "Command line argument for socket ID communication.", + "No help available, sorry" + }; + context.set_main_group(parser); + context.parse(argc, argv); + ::Window socketID = parser.GetSocketID(); + SettingsPlug plug{socketID, builder}; + plug.show(); + app->run(plug); + return 0; + } +} \ No newline at end of file diff --git a/source/ubl-settings-datetime.cc b/source/ubl-settings-datetime.cc new file mode 100644 index 0000000..884751e --- /dev/null +++ b/source/ubl-settings-datetime.cc @@ -0,0 +1,677 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "ubl-settings-datetime.h" +using namespace std; + +string path_app= "/usr/bin/"; +string path_glade= "/usr/share/ubl-settings-datetime/ui/"; +string app_name = "ubl-settings-datetime"; +string path_locale = "/usr/share/locale/"; +string path_css = "/usr/share/ubl-settings-datetime/css/style.css"; +bool flag_datetime = false; +bool flag_timezone = false; +bool flag_ntp = false; +bool flag_update = false; + +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::OptionEntry socketIDArg; + socketIDArg.set_long_name("socket-id"); + socketIDArg.set_short_name('s'); + socketIDArg.set_flags(Glib::OptionEntry::FLAG_IN_MAIN); + socketIDArg.set_description("Settings manager socket"); + add_entry(socketIDArg, m_socketID); +} + +::Window CmdArgParser::GetSocketID() const { + return m_socketID; +} + +MainWindow::MainWindow(BaseObjectType* obj, Glib::RefPtr const& builder) + : Gtk::ApplicationWindow(obj) + , builder{builder} { + this->settings(); +} + +MainWindow::MainWindow(Glib::RefPtr const& builder) { + this->builder = builder; + this->settings(); +} + +void MainWindow::settings(){ + year=0, month=0, day=0; + this->get_builder(); + this->lacalization(); + _numTimeHrs->set_range(0,23); + _numTimeMin->set_range(0,59); + _numTimeHrs->set_increments(1.0,1.0); + _numTimeMin->set_increments(1.0,1.0); + this->get_config(); + this->flag_block_gui(); + this->event(); + this->parse_text_date(); +} +void MainWindow::lacalization(){ + + _txtDate->set_tooltip_text(gettext("Date of\nFormat: DD.MM.YYYY")); + _lblSynchronizebChkGLob->set_text(gettext("Synchronize via NTP")); + _cbDhcp->append(gettext("DHCP")); + _cbDhcp->append(gettext("Manually")); + _lblDateTimeSetting->set_text(gettext("Local Configuration")); + _lblHead->set_text(gettext("Settings the date and time")); + _lblTime->set_text(gettext("Time")); + _lblData->set_text(gettext("Date")); + _lblTimeZone->set_text(gettext("Time zone")); + _lblReg->set_text(gettext("Region")); + _lblZone->set_text(gettext("Zone")); + _lblRegGlob->set_text(gettext("Region")); + _lblZone1Glob->set_text(gettext("Zone")); + _lblTimeZoneGlob->set_text(gettext("Time zone")); + _lblSynchronizeBtn->set_text(gettext("Apply local date and time settings")); + _lblDateTimeSettingGlob->set_text(gettext("Global customization")); + this->set_title(gettext("ubl-settings-datetime")); + _mess_dchp->set_title(gettext("Warning!")); + _lblTimeBios->set_text(gettext("Synchronize hardware time")); + _lblSynchronizebChk->set_text(gettext("Synchronize via NTP")); +} + +void MainWindow::flag_block_gui(){ + if (flag_datetime==true){ + //_numTimeHrs->set_sensitive(false); + //_numTimeMin->set_sensitive(false); + //_txtDate->set_sensitive(false); + _btnUpdateDateTime->set_sensitive(false); + } + if (flag_timezone==true){ + _cbRegion->set_sensitive(false); + _cbZone->set_sensitive(false); + _cbRegionGlob->set_sensitive(false); + _cbZoneGlob->set_sensitive(false); + //_btnChooseDate->set_sensitive(false); + _cbDhcp->set_sensitive(false); + } + if (flag_ntp==true){ + _cbxSynchronizeNtpGlob->set_sensitive(false); + _cbDhcp->set_sensitive(false); + _txtNtpServer->set_sensitive(false); + _cbxSynchronizeNtp->set_sensitive(false); + } + if (flag_update==true){ + _lblDateTimeSettingGlob->set_sensitive(false); + _lblSynchronizebChkGLob->set_sensitive(false); + _cbxSynchronizeNtpGlob->set_sensitive(false); + _lblTimeZoneGlob->set_sensitive(false); + _lblRegGlob->set_sensitive(false); + _cbRegionGlob->set_sensitive(false); + _lblZone1Glob->set_sensitive(false); + _cbZoneGlob->set_sensitive(false); + _txtNtpServer->set_sensitive(false); + _cbDhcp->set_sensitive(false); + } +} + +void MainWindow::add_CSS(){ + Glib::RefPtr cssProvider = Gtk::CssProvider::create(); + cssProvider->load_from_path(path_css); + Glib::RefPtr styleContext = Gtk::StyleContext::create(); + Glib::RefPtr 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 context = _boxColor->get_style_context(); + Glib::RefPtr context_lbl_head = _lblHead->get_style_context(); + context->add_class("cssboxColor1"); + context_lbl_head->add_class("textHead"); +} + +void MainWindow::get_builder(){ + builder->get_widget("boxColor", _boxColor); + builder->get_widget("btnUpdateDateTime", _btnUpdateDateTime); + builder->get_widget("btnChooseDate", _btnChooseDate); + builder->get_widget("btnMessClose", _btnMessClose); + builder->get_widget("cbxSynchronizeNtpGlob", _cbxSynchronizeNtpGlob); + builder->get_widget("popCalendar", _popCalendar); + builder->get_widget("numTimeHrs", _numTimeHrs); + builder->get_widget("numTimeMin", _numTimeMin); + builder->get_widget("cbDhcp", _cbDhcp); + builder->get_widget("txtDate", _txtDate); + builder->get_widget("cbRegion", _cbRegion); + builder->get_widget("cbRegionGlob", _cbRegionGlob); + builder->get_widget("cbZone", _cbZone); + builder->get_widget("cbZoneGlob", _cbZoneGlob); + builder->get_widget("txtNtpServer", _txtNtpServer); + builder->get_widget("cldrDate", _cldrDate); + builder->get_widget("mess_dchp", _mess_dchp); + 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("lblRegGlob",_lblRegGlob); + builder->get_widget("lblZone1Glob",_lblZone1Glob); + builder->get_widget("lblTimeZoneGlob",_lblTimeZoneGlob); + builder->get_widget("lblSynchronizebChk",_lblSynchronizebChk); + builder->get_widget("lblSynchronizebChkGLob",_lblSynchronizebChkGLob); + builder->get_widget("lblSynchronizeBtn",_lblSynchronizeBtn); + builder->get_widget("lblDateTimeSettingGlob",_lblDateTimeSettingGlob); + builder->get_widget("lblTimeBios",_lblTimeBios); + builder->get_widget("btnHardwareTime",_btnHardwareTime); + builder->get_widget("cbxSynchronizeNtp",_cbxSynchronizeNtp); + + this->add_CSS(); +} + +void MainWindow::event(){ + _cbxSynchronizeNtp->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::set_ntp_toggle)); + _btnHardwareTime->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::hardware_clock)); + _btnMessClose->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::gui_mess_close)); + //_cldrDate->signal_day_selected().connect(sigc::mem_fun(*this, &MainWindow::get_calendar)); + _cbxSynchronizeNtpGlob->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::set_ntp_toggle_glob)); + _btnUpdateDateTime->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::update_time_date)); + _btnChooseDate->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::calendar_show)); + _cbDhcp->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::event_entry_cbDhcp)); + _cbRegion->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::append_zone)); + _cbRegionGlob->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::append_zone_glob)); + _cbZone->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::enter_zone)); + _cbZoneGlob->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::enter_zone_glob)); + _txtNtpServer->signal_focus_out_event().connect(sigc::mem_fun(*this, &MainWindow::focus_ntp)); + _cldrDate->signal_day_selected_double_click().connect(sigc::mem_fun(*this, &MainWindow::get_calendar)); +} + +void MainWindow::set_ntp_toggle(){ + bool flag = _cbxSynchronizeNtp->get_active(); + if (flag_ntp==true){ + } + else { + _numTimeHrs->set_sensitive(!flag); + _numTimeMin->set_sensitive(!flag); + _btnChooseDate->set_sensitive(!flag); + _txtDate->set_sensitive(!flag); + _lblTimeBios->set_sensitive(!flag); + } + string cmd = ""; + if (flag==false){ + cmd="systemctl --now disable systemd-timesyncd.service ntpd.service"; + system(cmd.c_str()); + } + else { + cmd = "systemctl --now enable systemd-timesyncd.service"; + system(cmd.c_str()); + } +} + + +void MainWindow::hardware_clock(){ + string cmd = "hwclock --systohc"; + system(cmd.c_str()); +} + +void MainWindow::gui_mess_close(){ + _mess_dchp->hide(); +} + +bool MainWindow::focus_ntp(GdkEventFocus* event){ + if (event!=NULL){} + if (_txtNtpServer->get_text()=="" || _txtNtpServer->get_text()==" "){ + _lblMessage->set_text(gettext("Enter DHCP !")); + _mess_dchp->show(); + } + else{ + string cmd = ""; + cmd = "/usr/bin/ubconfig set network NTPSERVERS=" + _txtNtpServer->get_text(); + this->call(cmd.c_str()); + } + + return true; +} + +void MainWindow::event_entry_cbDhcp(){ + Glib::ustring str_dhcp = _cbDhcp->get_active_text(); + if (str_dhcp.length()!=0){ + if (str_dhcp=="DHCP"){ + string cmd = "/usr/bin/ubconfig set network NTPSERVERS=dhcp"; + system(cmd.c_str()); + _txtNtpServer->set_sensitive(false); + _cbDhcp->set_active(0); + _txtNtpServer->set_text(""); + } + else{ + string str_dhcp = this->call("/usr/bin/ubconfig get network NTPSERVERS"); + if ((str_dhcp!="") && (str_dhcp!="(null)") ){ + str_dhcp = str_dhcp.substr(str_dhcp.find("=")+1,str_dhcp.length()); + str_dhcp = str_dhcp.substr(0,str_dhcp.find("\n")); + if (str_dhcp!="dhcp"){ + _txtNtpServer->set_text(str_dhcp); + } + _txtNtpServer->set_sensitive(true); + _cbDhcp->set_active(1); + } + } + } + else{ + string cmd = "/usr/bin/ubconfig set network NTPSERVERS=dhcp"; + system(cmd.c_str()); + _cbDhcp->set_active(0); + } +} + +void MainWindow::get_calendar(){ + string str_month = ""; + string str_day = ""; + _cldrDate->get_date(year, month, day); + if (month <10){ + str_month = "0"+to_string(month+1); + } + else{ + str_month = to_string(month+1); + } + if (day <10){ + str_day = "0"+to_string(day); + } + else{ + str_day = to_string(day); + } + string date = str_day + '.' + str_month + '.' + to_string(year); + _txtDate->set_text(date); + _popCalendar->hide(); +} + +void MainWindow::calendar_show(){ + if (year==0){ + time_t now = time(0); + tm *ltm = localtime(&now); + unsigned int y=1900+ ltm->tm_year; + unsigned int m=ltm->tm_mon; + unsigned int d=ltm->tm_mday; + _cldrDate->select_month(m,y); + _cldrDate->select_day(d); + } + else{ + _cldrDate->select_month(month,year); + _cldrDate->select_day(day); + + } + _popCalendar->show(); +} + +void MainWindow::enry_dhcp_mess(){ + string str_dhcp = this->call("/usr/bin/ubconfig get network NTPSERVERS"); + if ((str_dhcp!="") && (str_dhcp!="(null)")){ + _cbxSynchronizeNtpGlob->set_active(1); + str_dhcp = str_dhcp.substr(str_dhcp.find("=")+1,str_dhcp.length()); + str_dhcp = str_dhcp.substr(0,str_dhcp.find("\n")); + if (str_dhcp=="dhcp"){ + _cbDhcp->set_active(0); + _txtNtpServer->set_sensitive(false); + } + else{ + if (str_dhcp==""){ + _lblMessage->set_text(gettext("Enter DHCP !")); + _mess_dchp->show(); + } + else{ + _cbDhcp->set_active(1); + _txtNtpServer->set_text(str_dhcp); + } + } + this->set_ntp_toggle_glob(); + } + else{ + _cbxSynchronizeNtpGlob->set_active(0); + _cbDhcp->set_sensitive(0); + _txtNtpServer->set_sensitive(0); + } +} + +void MainWindow::get_config(){ + this->read_file(); + this->update_hour_minute(); + this->update_calendar(); + this->enry_dhcp_mess(); + string str_ntp = this->call("systemctl status ntpd.service systemd-timesyncd.service | grep \"Active: active\""); + if (str_ntp.length()<50) { + _cbxSynchronizeNtp->set_active(false); + _numTimeHrs->set_sensitive(true); + _numTimeMin->set_sensitive(true); + _btnChooseDate->set_sensitive(true); + _txtDate->set_sensitive(true); + _lblTimeBios->set_sensitive(true); + } + else{ + _cbxSynchronizeNtp->set_active(true); + _numTimeHrs->set_sensitive(false); + _numTimeMin->set_sensitive(false); + _btnChooseDate->set_sensitive(false); + _txtDate->set_sensitive(false); + _lblTimeBios->set_sensitive(false); + } + string read_reg_zon_cfg = this->call("/usr/bin/ubconfig get clock ZONE"); + if ((read_reg_zon_cfg != "") && (read_reg_zon_cfg !="(null)")){ + read_reg_zon_cfg = read_reg_zon_cfg.substr(read_reg_zon_cfg.find("=")+1,read_reg_zon_cfg.length()); + read_reg_zon_cfg = read_reg_zon_cfg.substr(0,read_reg_zon_cfg.find("\n")); + string str_filling_reg = read_reg_zon_cfg.substr(0,read_reg_zon_cfg.find("/")); + string str_filling_zon = read_reg_zon_cfg.substr(read_reg_zon_cfg.find("/")+1,read_reg_zon_cfg.length()); + str_filling_zon = str_filling_zon.substr(0,str_filling_zon.find("\n")); + string str_zone_check = ""; + this->append_region_zone(str_filling_reg,str_filling_zon); + } + else { + this->append_region_zone("Asia","Omsk"); + } +} + +void MainWindow::enter_zone(){ + Glib::ustring zone_text = _cbZone->get_active_text(); + Glib::ustring reg_text = _cbRegion->get_active_text(); + if(!(zone_text.empty()) && !(reg_text.empty())){ + str_zone=zone_text.substr(zone_text.find(") ")+2,zone_text.length()); + str_region=reg_text; + string cmd = "rm -f /etc/localtime"; + system(cmd.c_str()); + string cmd1 = "ln -s /usr/share/zoneinfo/" + str_region + "/" + str_zone+" /etc/localtime"; + system(cmd1.c_str()); + } + else{ + str_zone=""; + str_region=""; + } +} + +void MainWindow::parse_text_date(){ + string data = _txtDate->get_text(); + if (data.length()==10){ + string day = data.substr(0,2); + string month1 = data.substr(3,2); + string year = data.substr(6,data.length()); + } +} + +void MainWindow::enter_zone_glob(){ + Glib::ustring zone_text = _cbZoneGlob->get_active_text(); + Glib::ustring reg_text = _cbRegionGlob->get_active_text(); + if(!(zone_text.empty()) && !(reg_text.empty())){ + str_zoneGlob = zone_text.substr(zone_text.find(") ")+2,zone_text.length()); + str_region_glob = reg_text; + string cmd = "/usr/bin/ubconfig set clock ZONE=" +str_region_glob +"/" + str_zoneGlob; + system(cmd.c_str()); + } + else{ + str_zoneGlob=""; + str_region_glob=""; + } +} + +void MainWindow::set_ntp_toggle_glob(){ + bool flag = _cbxSynchronizeNtp->get_active(); + if (flag==true){ + system("/usr/bin/ubconfig remove network NTPSERVERS") + } + else{ + + } + +} + +void MainWindow::append_region_zone(string region, string zone){ + int index = 0; + for ( const auto &text : time_reg_map ) { + _cbRegion->append(text.first); + _cbRegionGlob->append(text.first); + if (text.first == region){ + _cbRegionGlob->set_active(index); + _cbRegion->set_active(index); + } + index+=1; + } + index = 0; + string cheek_zone = ""; + for (const auto &_str_zone : time_reg_map.at(region)){ + _cbZone->append(_str_zone); + _cbZoneGlob->append(_str_zone); + if (_str_zone!=""){ + cheek_zone = _str_zone.substr(_str_zone.find(") ")+2,_str_zone.length()); + if (cheek_zone == zone){ + _cbZone->set_active(index); + _cbZoneGlob->set_active(index); + } + } + index+=1; + } + +} +string MainWindow::call(string cmd){ + FILE *fp; + int status; + char path[PATH_MAX]; + fp = popen(cmd.c_str(), "r"); + if (fp == NULL){ + exit(1); + } + while (fgets(path, PATH_MAX, fp) != NULL){ + printf("%s", path); + break; + } + status = pclose(fp); + if (status == -1) { + exit(1); + } + else { + } + return path; +} + +void MainWindow::append_zone(){ + Glib::ustring text = _cbRegion->get_active_text(); + _cbZone->remove_all(); + if(!(text.empty())){ + str_region = text; + for (const auto &_str_zone : time_reg_map.at(str_region)){ + _cbZone->append(_str_zone); + } + } +} + +void MainWindow::append_zone_glob(){ + Glib::ustring text = _cbRegionGlob->get_active_text(); + _cbZoneGlob->remove_all(); + if(!(text.empty())){ + str_region_glob = text; + for (const auto &_str_zone : time_reg_map.at(str_region_glob)){ + _cbZoneGlob->append(_str_zone); + } + } +} + +void MainWindow::update_time_date(){ + //this->enter_zone(); + bool flag = _cbxSynchronizeNtpGlob->get_active(); + string cmd = ""; + if ((year!=0) && (month !=0) && (day !=0)){ + string str_month = ""; + string str_day = ""; + month+=2; + if (month <10){ + str_month = "0"+to_string(month); + } + else{ + str_month = to_string(month); + } + if (day <10){ + str_day = "0"+to_string(day); + } + else{ + str_day = to_string(day); + } + string str_data = ""; + str_data = str_day+"." + str_month+"." + to_string(year); + string str_data_entry = _txtDate->get_text(); + if (str_data==str_data_entry){ + cmd = "date +%Y%m%d -s \"" + to_string(year)+ + str_month+str_day+"\""; + system(cmd.c_str()); + + _txtDate->set_text(str_data); + year=0; + month=0; + day=0; + } + else{ + this->post_entry_data(); + } + } + else{ + this->post_entry_data(); + } + if (flag==false){ + hour = _numTimeHrs->get_value_as_int(); + minute = _numTimeMin->get_value_as_int(); + time_t now = time(0); + tm *ltm = localtime(&now); + cmd = "date +%T -s \""+ + to_string(hour) + ":" + to_string(minute) + + ":" + to_string(ltm->tm_sec) +"\""; + system(cmd.c_str()); + } + cmd = "hwclock --systohc"; + system(cmd.c_str()); +} + +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{ + _lblMessage->set_text(gettext("Incorrect date format")); + _mess_dchp->show(); + } +} + +void MainWindow::update_hour_minute(){ + time_t now = time(0); + tm *ltm = localtime(&now); + _numTimeHrs->set_value(ltm->tm_hour); + _numTimeMin->set_value(ltm->tm_min); +} + +void MainWindow::update_calendar(){ + time_t now = time(0); + tm *ltm = localtime(&now); + int year1 = 1900 + (int)ltm->tm_year; + string str_month = ""; + string str_day = ""; + unsigned int month, day; + month=ltm->tm_mon+1; + day=ltm->tm_mday; + if (month <=10){ + str_month = "0"+to_string(month); + } + else{ + str_month = to_string(month); + } + if (day <10){ + str_day = "0"+to_string(day); + } + else{ + str_day = to_string(day); + } + string date = str_day + '.' + str_month + '.' + to_string(year1); + _txtDate->set_text(date); +} + +void MainWindow::read_file(){ + std::string line; + namespace fs = std::filesystem; + for (const auto & entry : fs::directory_iterator("/usr/share/zoneinfo/")){ + std::ifstream in(entry.path()); // окрываем файл для чтения + if (in.is_open()){ + string key_reg = entry.path().filename().string(); + string path_dir = "/usr/share/zoneinfo/"+key_reg; + if (fs::is_directory(path_dir)){ + if (key_reg!="Pacific"){ + if (key_reg!="posix"){ + if (key_reg!="Etc"){ + if (key_reg!="right"){ + vector zone; + zone.push_back(""); + for (const auto & entry_zone : fs::directory_iterator(path_dir)){ + std::ifstream in1(entry_zone.path()); // окрываем файл для чтения + if (in1.is_open()){ + string key_zone = entry_zone.path().filename().string(); + if (key_zone.length()!=0 || key_zone!=" "){ + zone.push_back(string(gettext(key_zone.c_str()))); + } + } + in1.close(); + } + + key_reg = string(gettext(key_reg.c_str())); + time_reg_map.insert({key_reg, zone}); + }}}} + } + } + in.close(); + } +} + +vector MainWindow::split(const std::string &s, char delim){ + std::stringstream ss(s); + std::string item; + std::vector elems; + while (std::getline(ss, item, delim)) { + elems.push_back(item); + } + return elems; +} + +SettingsPlug::SettingsPlug(::Window p_socketID, Glib::RefPtr builder) +: Gtk::Plug{p_socketID} +{ + builder->get_widget("plugBox", plugBox); + plugBox->get_parent()->remove(*plugBox); + add(*plugBox); + show_all_children(); +} + +void help(){ + g_print("Usage: ubl-settings-datetime [--lock-timezone] [--lock-ntp] [--lock-datetime] [--lock-update]\n"); + g_print("Options:\n"); + g_print(" --lock-timezone Disable timezone field editing\n"); + g_print(" --lock-ntp Disable ntp field editing\n"); + g_print(" --lock-datetime Disable datetime field editing\n"); + g_print(" --lock-update Disable save changes\n"); + cout << "Параметры командной строки --lock-datetime\n --lock-timezone\n --lock-ntp\n --lock-update\n" << endl; +} \ No newline at end of file diff --git a/source/ubl-settings-datetime.cpp b/source/ubl-settings-datetime.cpp deleted file mode 100644 index 6c05d25..0000000 --- a/source/ubl-settings-datetime.cpp +++ /dev/null @@ -1,684 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -using namespace std; - -string path_app= "/usr/bin/"; -string path_glade= "/usr/share/ubl-settings-datetime/ui/"; -string app_name = "ubl-settings-datetime"; -bool flag_datetime = false; -bool flag_timezone = false; -bool flag_ntp = false; -bool flag_update = false; - - -class CmdArgParser : public Glib::OptionGroup -{ - -public: - - CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help) - : Glib::OptionGroup{p_name, p_description, p_help} - { - // Define the 'socket ID' argument options: - Glib::OptionEntry socketIDArg; - socketIDArg.set_long_name("socket-id"); - socketIDArg.set_short_name('s'); - socketIDArg.set_flags(Glib::OptionEntry::FLAG_IN_MAIN); - socketIDArg.set_description("Settings manager socket"); - - // Register it in the parser. It value will be recorded in m_socketID for later usage. - add_entry(socketIDArg, m_socketID); - } - - // Override this to handle errors. I skipped it for simplicity. - // void on_error(Glib::OptionContext& context, const Glib::Error& error) override; - - ::Window GetSocketID() const - { - return m_socketID; - } - -private: - - int m_socketID = 0; - -}; - - - -class MainWindow : public Gtk::ApplicationWindow { -public: - MainWindow(BaseObjectType* obj, Glib::RefPtr const& builder) - : Gtk::ApplicationWindow(obj) - , builder{builder} - { - this->settings(); - - } - MainWindow(Glib::RefPtr const& builder) { - this->builder = builder; - this->settings(); - } - - virtual ~MainWindow() = default; - - void settings(){ - this->get_builder(); - _numTimeHrs->set_range(0,23); - _numTimeMin->set_range(0,59); - _numTimeHrs->set_increments(1.0,1.0); - _numTimeMin->set_increments(1.0,1.0); - _txtDate->set_sensitive(false); - this->get_config(); - this->flag_block_gui(); - this->event(); - } - - void flag_block_gui(){ - if (flag_datetime==true){ - _numTimeHrs->set_sensitive(false); - _numTimeMin->set_sensitive(false); - } - else if (flag_timezone==true){ - _cbRegion->set_sensitive(false); - _cbZone->set_sensitive(false); - _cbRegionGlob->set_sensitive(false); - _cbZoneGlob->set_sensitive(false); - _btnChooseDate->set_sensitive(false); - } - else if (flag_ntp==true){ - _cbxSynchronizeNtp->set_sensitive(false); - _cbDhcp->set_sensitive(false); - _txtNtpServer->set_sensitive(false); - } - else if (flag_update==true){ - _btnUpdateDateTime->set_sensitive(false); - } - } - void add_CSS(){ - Glib::RefPtr cssProvider = Gtk::CssProvider::create(); - cssProvider->load_from_path("style.css"); - Glib::RefPtr styleContext = Gtk::StyleContext::create(); - Glib::RefPtr 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 context = _btnUpdateDateTime->get_style_context(); - context->add_class("myButton"); - } - - void get_builder(){ - builder->set_translation_domain(app_name); - - builder->get_widget("btnUpdateDateTime", _btnUpdateDateTime); - builder->get_widget("btnChooseDate", _btnChooseDate); - builder->get_widget("btnMessClose", _btnMessClose); - builder->get_widget("cbxSynchronizeNtp", _cbxSynchronizeNtp); - builder->get_widget("popCalendar", _popCalendar); - builder->get_widget("numTimeHrs", _numTimeHrs); - builder->get_widget("numTimeMin", _numTimeMin); - builder->get_widget("cbDhcp", _cbDhcp); - builder->get_widget("txtDate", _txtDate); - builder->get_widget("cbRegion", _cbRegion); - builder->get_widget("cbRegionGlob", _cbRegionGlob); - builder->get_widget("cbZone", _cbZone); - builder->get_widget("cbZoneGlob", _cbZoneGlob); - builder->get_widget("txtNtpServer", _txtNtpServer); - builder->get_widget("cldrDate", _cldrDate); - builder->get_widget("mess_dchp", _mess_dchp); - //this->add_CSS(); - } - void event(){ - _btnMessClose->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::gui_mess_close)); - _cldrDate->signal_day_selected().connect(sigc::mem_fun(*this, &MainWindow::get_calendar)); - _cbxSynchronizeNtp->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::set_ntp_toggle)); - _btnUpdateDateTime->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::update_time_date)); - _btnChooseDate->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::calendar_show)); - _cbDhcp->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::event_entry_cbDhcp)); - _cbRegion->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::append_zone)); - _cbRegionGlob->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::append_zone_glob)); - _cbZone->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::enter_zone)); - _cbZoneGlob->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::enter_zone_glob)); - _txtNtpServer->signal_focus_out_event().connect(sigc::mem_fun(*this, &MainWindow::focus_ntp)); - //_txtNtpServer->grab_focus(); - } - - void gui_mess_close(){ - _mess_dchp->hide(); - } - - bool focus_ntp(GdkEventFocus* event){ - if (_txtNtpServer->get_text()=="" || _txtNtpServer->get_text()==" "){ - _mess_dchp->show(); - } - else{ - string cmd = ""; - cmd = "/usr/bin/ubconfig set network NTPSERVERS=" + _txtNtpServer->get_text(); - this->call(cmd.c_str()); - } - - return true; - } - - - - - void event_entry_cbDhcp(){ - Glib::ustring str_dhcp = _cbDhcp->get_active_text(); - if (str_dhcp.length()!=0){ - if (str_dhcp=="DHCP"){ - string cmd = "/usr/bin/ubconfig set network NTPSERVERS=dhcp"; - system(cmd.c_str()); - _txtNtpServer->set_sensitive(false); - _cbDhcp->set_active(0); - _txtNtpServer->set_text(""); - } - else{ - string str_dhcp = this->call("/usr/bin/ubconfig get network NTPSERVERS"); - - if ((str_dhcp!="") && (str_dhcp!="(null)") ){ - str_dhcp = str_dhcp.substr(str_dhcp.find("=")+1,str_dhcp.length()); - str_dhcp = str_dhcp.substr(0,str_dhcp.find("\n")); - if (str_dhcp!="dhcp"){ - - - _txtNtpServer->set_text(str_dhcp); - } - _txtNtpServer->set_sensitive(true); - _cbDhcp->set_active(1); - } - } - } - else{ - string cmd = "/usr/bin/ubconfig set network NTPSERVERS=dhcp"; - system(cmd.c_str()); - //_txtNtpServer->set_sensitive(false); - _cbDhcp->set_active(0); - } - } - - void get_calendar(){ - _cldrDate->get_date(year, month, day); - string str_month = ""; - string str_day = ""; - month+=1; - if (month <10){ - str_month = "0"+to_string(month); - } - else{ - str_month = to_string(month); - } - if (day <10){ - str_day = "0"+to_string(day); - } - else{ - str_day = to_string(day); - } - string date = str_day + '.' + str_month + '.' + to_string(year); - _txtDate->set_text(date); - } - - - void calendar_show(){ - time_t now = time(0); - tm *ltm = localtime(&now); - unsigned int y=1900+ ltm->tm_year; - unsigned int m=ltm->tm_mon; - unsigned int d=ltm->tm_mday; - - - _cldrDate->select_month(m,y); - _cldrDate->select_day(d); - _popCalendar->show(); - } - - void enry_dhcp_mess(){ - string str_dhcp = this->call("/usr/bin/ubconfig get network NTPSERVERS"); - if ((str_dhcp!="") && (str_dhcp!="(null)")){ - _cbxSynchronizeNtp->set_active(1); - str_dhcp = str_dhcp.substr(str_dhcp.find("=")+1,str_dhcp.length()); - str_dhcp = str_dhcp.substr(0,str_dhcp.find("\n")); - if (str_dhcp=="dhcp"){ - _cbDhcp->set_active(0); - _txtNtpServer->set_sensitive(false); - //_cbxSynchronizeNtp->set_sensitive(true); - } - else{ - if (str_dhcp==""){ - _mess_dchp->show(); - } - else{ - _cbDhcp->set_active(1); - //_txtNtpServer->set_sensitive(true); - //_cbxSynchronizeNtp->set_sensitive(false); - _txtNtpServer->set_text(str_dhcp); - } - } - - - //_cbxDhcp->set_active(true); - this->set_ntp_toggle(); - } - else{ - _cbxSynchronizeNtp->set_active(0); - _cbDhcp->set_sensitive(0); - _txtNtpServer->set_sensitive(0); - - } - } - void get_config(){ - this->read_file(); - this->update_hour_minute(); - this->update_calendar(); - //this->event_entry_cbDhcp(); - this->enry_dhcp_mess(); - - string str_ntp = this->call("systemctl status ntpd.service systemd-timesyncd.service | grep \"Active: active\""); - if (str_ntp.length()<50) { - _cbxSynchronizeNtp->set_active(false); - } - else{ - _cbxSynchronizeNtp->set_active(true); - } - - string read_reg_zon_cfg = this->call("/usr/bin/ubconfig get clock ZONE"); - if ((read_reg_zon_cfg != "") && (read_reg_zon_cfg !="(null)")){ - read_reg_zon_cfg = read_reg_zon_cfg.substr(read_reg_zon_cfg.find("=")+1,read_reg_zon_cfg.length()); - read_reg_zon_cfg = read_reg_zon_cfg.substr(0,read_reg_zon_cfg.find("\n")); - string str_filling_reg = read_reg_zon_cfg.substr(0,read_reg_zon_cfg.find("/")); - string str_filling_zon = read_reg_zon_cfg.substr(read_reg_zon_cfg.find("/")+1,read_reg_zon_cfg.length()); - str_filling_zon = str_filling_zon.substr(0,str_filling_zon.find("\n")); - string str_zone_check = ""; - this->append_region_zone(str_filling_reg,str_filling_zon); - } - else { - this->append_region_zone("Asia","Omsk"); - - } - - } - - void enter_zone(){ - Glib::ustring zone_text = _cbZone->get_active_text(); - Glib::ustring reg_text = _cbRegion->get_active_text(); - if(!(zone_text.empty()) && !(reg_text.empty())){ - str_zone=zone_text.substr(zone_text.find(") ")+2,zone_text.length()); - str_region=reg_text; - string cmd = "timedatectl set-timezone '" + str_region +"/" + str_zone+"'"; - system(cmd.c_str()); - } - else{ - str_zone=""; - str_region=""; - } - } - - void enter_zone_glob(){ - Glib::ustring zone_text = _cbZoneGlob->get_active_text(); - Glib::ustring reg_text = _cbRegionGlob->get_active_text(); - if(!(zone_text.empty()) && !(reg_text.empty())){ - str_zoneGlob = zone_text.substr(zone_text.find(") ")+2,zone_text.length()); - str_region_glob = reg_text; - string cmd = "/usr/bin/ubconfig set clock ZONE=" +str_region_glob +"/" + str_zoneGlob; - system(cmd.c_str()); - } - else{ - str_zoneGlob=""; - str_region_glob=""; - } - } - - void set_ntp_toggle(){ - bool flag = _cbxSynchronizeNtp->get_active(); - if (flag_datetime==true){ - - } - else { - _numTimeHrs->set_sensitive(!flag); - _numTimeMin->set_sensitive(!flag); - _btnChooseDate->set_sensitive(!flag); - } - - //_txtDate->set_sensitive(!flag); - - //_btnUpdateDateTime->set_sensitive(!flag); - if (flag==false){ - system("systemctl --now disable systemd-timesyncd.service ntpd.service"); - } - else { - system("systemctl --now enable systemd-timesyncd.service"); - } - - } - - void append_region_zone(string region, string zone){ - int index = 0; - for ( const auto &text : time_reg_map ) { - _cbRegion->append(text.first); - _cbRegionGlob->append(text.first); - if (text.first == region){ - _cbRegionGlob->set_active(index); - _cbRegion->set_active(index); - - } - index+=1; - } - index = 0; - string cheek_zone = ""; - for (const auto &_str_zone : time_reg_map.at(region)){ - _cbZone->append(_str_zone); - _cbZoneGlob->append(_str_zone); - if (_str_zone!=""){ - cheek_zone = _str_zone.substr(_str_zone.find(") ")+2,_str_zone.length()); - if (cheek_zone == zone){ - _cbZone->set_active(index); - _cbZoneGlob->set_active(index); - } - } - index+=1; - } - } - string call(string cmd){ - FILE *fp; - int status; - char path[PATH_MAX]; - fp = popen(cmd.c_str(), "r"); - if (fp == NULL){ - //return ""; - } - - while (fgets(path, PATH_MAX, fp) != NULL){ - printf("%s", path); - break; - - } - - status = pclose(fp); - if (status == -1) { - //return ""; - } - else { - //return ""; - } - return path; - } - - void append_zone(){ - Glib::ustring text = _cbRegion->get_active_text(); - _cbZone->remove_all(); - - if(!(text.empty())){ - str_region = text; - for (const auto &_str_zone : time_reg_map.at(str_region)){ - _cbZone->append(_str_zone); - } - } - - } - - void append_zone_glob(){ - Glib::ustring text = _cbRegionGlob->get_active_text(); - _cbZoneGlob->remove_all(); - if(!(text.empty())){ - str_region_glob = text; - for (const auto &_str_zone : time_reg_map.at(str_region_glob)){ - _cbZoneGlob->append(_str_zone); - } - } - - } - void update_time_date(){ - this->enter_zone(); - bool flag = _cbxSynchronizeNtp->get_active(); - if (flag==false){ - hour = _numTimeHrs->get_value_as_int(); - minute = _numTimeMin->get_value_as_int(); - time_t now = time(0); - tm *ltm = localtime(&now); - string cmd = "timedatectl set-time \""+ - to_string(hour) + ":" + to_string(minute) - + ":" + to_string(ltm->tm_sec) +"\""; - system(cmd.c_str()); - if ((year==0) && (month == 0) && (day == 0)){ - time_t now = time(0); - tm *ltm = localtime(&now); - year=1900+ ltm->tm_year; - month=ltm->tm_mon; - day=ltm->tm_mday; - } - string str_month = ""; - string str_day = ""; - if (month <10){ - str_month = "0"+to_string(month+1); - } - else{ - str_month = to_string(month); - } - if (day <10){ - str_day = "0"+to_string(day); - } - else{ - str_day = to_string(day); - } - string cmd1 = "date --set=\"" +to_string(year)+ - str_month+str_day + " " +to_string(hour) + ":" + - to_string(minute)+"\""; - system(cmd1.c_str()); - } - - - } - void update_hour_minute(){ - time_t now = time(0); - tm *ltm = localtime(&now); - _numTimeHrs->set_value(ltm->tm_hour); - _numTimeMin->set_value(ltm->tm_min); - } - - void update_calendar(){ - time_t now = time(0); - tm *ltm = localtime(&now); - int year = 1900 + (int)ltm->tm_year; - string str_month = ""; - string str_day = ""; - unsigned int month, day; - month=ltm->tm_mon+1; - day=ltm->tm_mday; - if (month <=10){ - str_month = "0"+to_string(month); - } - else{ - str_month = to_string(month); - } - if (day <10){ - str_day = "0"+to_string(day); - } - else{ - str_day = to_string(day); - } - string date = str_day + '.' + str_month + '.' + to_string(year); - _txtDate->set_text(date); - } - void read_file(){ - std::string line; - namespace fs = std::filesystem; - for (const auto & entry : fs::directory_iterator("/usr/share/ubl-settings-datetime/reg/")){ - std::ifstream in(entry.path()); // окрываем файл для чтения - if (in.is_open()) - { - vector zone; - zone.push_back(""); - while (getline(in, line)) - { - zone.push_back(string(gettext(line.c_str()))); - } - string key_reg = entry.path().filename().string(); - key_reg = string(gettext(key_reg.c_str())); - time_reg_map.insert({key_reg, zone}); - } - in.close(); - } - } - -private: - Glib::RefPtr builder; - Gtk::Button *_btnUpdateDateTime; - Gtk::Button *_btnChooseDate; - Gtk::Button *_btnMessClose; - Gtk::ComboBoxText *_cbDhcp; - Gtk::SpinButton *_numTimeHrs; - Gtk::SpinButton *_numTimeMin; - Gtk::CheckButton *_cbxSynchronizeNtp; - - Gtk::Entry *_txtDate; - Gtk::ComboBoxText *_cbRegion; - Gtk::ComboBoxText *_cbRegionGlob; - Gtk::ComboBoxText *_cbZone; - Gtk::ComboBoxText *_cbZoneGlob; - Gtk::Entry *_txtNtpServer; - Gtk::MessageDialog *_mess_dchp; - Gtk::Popover *_popCalendar; - Gtk::Calendar *_cldrDate; - unsigned int year, month, day; - int hour; - int minute; - string str_region=""; - string str_region_glob=""; - string str_txtDate; - string str_txtNtpServer; - string str_zone=""; - string str_zoneGlob; - std::map > time_reg_map; - -}; - -class SettingsPlug : public Gtk::Plug -{ - -public: - Gtk::Window *window; - SettingsPlug(::Window p_socketID, Glib::RefPtr builder) - : Gtk::Plug{p_socketID} - { - - //MainWindow* wnd = nullptr; - //builder->get_widget_derived("window", wnd); - builder->get_widget("plugBox", plugBox); - plugBox->get_parent()->remove(*plugBox); - add(*plugBox); - - show_all_children(); - } - -private: - - Gtk::Widget *plugBox; - Gtk::Widget *parent; -}; - -void help(){ - g_print("Usage: ubl-settings-datetime [--lock-timezone] [--lock-ntp] [--lock-datetime] [--lock-update]\n"); - g_print("Options:\n"); - g_print(" --lock-timezone Disable timezone field editing\n"); - g_print(" --lock-ntp Disable ntp field editing\n"); - g_print(" --lock-datetime Disable datetime field editing\n"); - g_print(" --lock-update Disable save changes\n"); - cout << "Параметры командной строки --lock-datetime\n --lock-timezone\n --lock-ntp\n --lock-update\n" << endl; -} - - -int main(int argc, char* argv[]) { - - //path_app=filesystem::current_path(); - //path_app+="/"; - //cout << *argv[0] << endl; - //app_name=to_string(*argv[0]); - //app_name=app_name.substr(1, app_name.length()); - string str_cmd_argv = ""; - for (int i=1; iget_widget_derived("window", wnd); - auto r = app->run(*wnd); - - delete wnd; - return r; - } - else{ - Glib::init(); - setlocale(LC_ALL, ""); - Glib::OptionContext context; - - CmdArgParser parser{ - "Socket ID", - "Command line argument for socket ID communication.", - "No help available, sorry" - }; - - context.set_main_group(parser); - context.parse(argc, argv); - - ::Window socketID = parser.GetSocketID(); - - // Handle plug: - SettingsPlug plug{socketID, builder}; - plug.show(); - - app->run(plug); - - } - - -} \ No newline at end of file diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h new file mode 100644 index 0000000..4dd0cc9 --- /dev/null +++ b/source/ubl-settings-datetime.h @@ -0,0 +1,141 @@ +#ifndef UBL_SETTINGS_DATETIME_H +#define UBL_SETTINGS_DATETIME_H +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using namespace std; + +extern string path_app; +extern string path_glade; +extern string app_name; +extern string path_locale; +extern string path_css; +extern bool flag_datetime; +extern bool flag_timezone; +extern bool flag_ntp; +extern bool flag_update; + +class CmdArgParser : public Glib::OptionGroup +{ +public: + CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help); + ::Window GetSocketID() const; +private: + int m_socketID = 0; +}; + +class MainWindow : public Gtk::ApplicationWindow { + public: + MainWindow(BaseObjectType* obj, Glib::RefPtr const& builder); + MainWindow(Glib::RefPtr const& builder); + virtual ~MainWindow() = default; + void post_entry_data(); + void lacalization(); + void settings(); + void flag_block_gui(); + void add_CSS(); + void get_builder(); + void event(); + void gui_mess_close(); + bool focus_ntp(GdkEventFocus* event); + void event_entry_cbDhcp(); + void get_calendar(); + void calendar_show(); + void enry_dhcp_mess(); + void get_config(); + void enter_zone(); + void enter_zone_glob(); + void set_ntp_toggle(); + void append_region_zone(string region, string zone); + string call(string cmd); + void append_zone(); + void append_zone_glob(); + void update_time_date(); + void update_hour_minute(); + void update_calendar(); + void read_file(); + void parse_text_date(); + void hardware_clock(); + void set_ntp_toggle_glob(); + vector split(const std::string &s, char delim); + private: + Glib::RefPtr builder; + Gtk::Button *_btnUpdateDateTime; + Gtk::Button *_btnChooseDate; + Gtk::Button *_btnMessClose; + Gtk::ComboBoxText *_cbDhcp; + Gtk::SpinButton *_numTimeHrs; + Gtk::SpinButton *_numTimeMin; + Gtk::CheckButton *_cbxSynchronizeNtpGlob; + Gtk::Box *_boxColor; + Gtk::Entry *_txtDate; + Gtk::ComboBoxText *_cbRegion; + Gtk::ComboBoxText *_cbRegionGlob; + Gtk::ComboBoxText *_cbZone; + Gtk::ComboBoxText *_cbZoneGlob; + Gtk::Entry *_txtNtpServer; + Gtk::Window *_mess_dchp; + Gtk::Popover *_popCalendar; + Gtk::Calendar *_cldrDate; + Gtk::Label *_lblMessage; + Gtk::Label *_lblDateTimeSetting; + Gtk::Label *_lblHead; + Gtk::Label *_lblTime; + Gtk::Label *_lblData; + Gtk::Label *_lblTimeZone; + Gtk::Label *_lblReg; + Gtk::Label *_lblZone; + Gtk::Label *_lblRegGlob; + Gtk::Label *_lblZone1Glob; + Gtk::Label *_lblTimeZoneGlob; + Gtk::Label *_lblSynchronizebChk; + Gtk::Label *_lblSynchronizebChkGLob; + Gtk::Label *_lblSynchronizeBtn; + Gtk::Label *_lblDateTimeSettingGlob; + Gtk::Label *_lblTimeBios; + Gtk::Button *_btnHardwareTime; + Gtk::CheckButton *_cbxSynchronizeNtp; + std::map > time_reg_map; + unsigned int year=0; + unsigned int month=0; + unsigned int day=0; + int hour; + int minute; + string str_region=""; + string str_region_glob=""; + string str_txtDate; + string str_txtNtpServer; + string str_zone=""; + string str_zoneGlob; + +}; + +class SettingsPlug : public Gtk::Plug +{ +public: + Gtk::Window *window; + SettingsPlug(::Window p_socketID, Glib::RefPtr builder); +private: + Gtk::Widget *plugBox; + Gtk::Widget *parent; +}; +void help(); +#endif diff --git a/style.css b/style.css new file mode 100644 index 0000000..8c5d210 --- /dev/null +++ b/style.css @@ -0,0 +1,6 @@ +.cssboxColor1{ + background: url("/usr/share/ubl-settings-datetime/images/bg_top.png") no-repeat; +} +.textHead{ + text-shadow: 1px 1px #ffffff; +} \ No newline at end of file diff --git a/ubl-settings-datetime.glade b/ubl-settings-datetime.glade index 6087d6f..ff8fc94 100644 --- a/ubl-settings-datetime.glade +++ b/ubl-settings-datetime.glade @@ -2,49 +2,14 @@ - + False + Внимание! - - - - - False - dialog - + True False vertical - 2 - - - False - True - end - - - - btnMessClose - True - True - True - - - True - True - 0 - - - - - - - - False - False - 0 - - True @@ -53,23 +18,34 @@ True False + 5 + 5 + 5 + 5 + 6 + 6 50 gtk-dialog-warning - False + True True 0 - + + 160 True False - Введите DHCP + start + center + 6 + 6 + Введите DHCP ! - False + True True 1 @@ -78,7 +54,26 @@ False True - 2 + 1 + + + + + OK + True + True + True + 5 + 5 + 5 + 5 + 3 + 3 + + + False + True + 1 @@ -87,14 +82,13 @@ False Настройки даты и времени - /usr/share/ubl-settings-datetime/images/ubl-settings-datetime.png True False vertical - + True False @@ -108,7 +102,8 @@ 5 6 6 - /usr/share/ubl-settings-datetime/images/ubl-settings-datetime.png + 69 + ubl-settings-datetime False @@ -117,44 +112,68 @@ - - 145 + True False - Изменить параметр NTPSERVERS - 5 - 5 - 5 - 5 - 3 - 6 - Настройка даты и времени - True - 28 - 0 + + + True + False + + + True + False + vertical + + + 255 + True + False + Настройки даты и времени + + + + + + + + True + True + 0 + + + + + False + True + 0 + + + + + True + True + 0 + + + + + True + False + + + False + True + 1 + + - False + True True 1 - - - 100 - True - False - 15 - 5 - 15 - 5 - - - False - True - 2 - - False @@ -166,13 +185,12 @@ True False - 10 vertical True False - 5 + 6 5 5 5 @@ -182,9 +200,42 @@ True False - 5 + 6 5 + 5 vertical + + + True + True + False + 5 + 5 + 5 + 6 + 6 + True + + + 145 + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Синхронизировать через NTP + + + + + False + True + 0 + + True @@ -194,7 +245,6 @@ 145 True False - 5 5 5 5 @@ -214,7 +264,6 @@ True True - Часы 5 5 5 @@ -247,7 +296,6 @@ True True - Минуты 5 5 5 @@ -275,11 +323,10 @@ True False - + 145 True False - 5 5 5 5 @@ -297,12 +344,13 @@ - 221 + 191 True True Дата Формат: ДД.ММ.ГГГГ 5 + 5 5 5 6 @@ -351,28 +399,6 @@ True False - - - 145 - True - False - Изменить параметр зоны - 5 - 5 - 5 - 5 - 6 - 6 - Временная зона - True - 0 - - - False - True - 0 - - True @@ -385,18 +411,9 @@ - + True False - Регион - 5 - 5 - 5 - 5 - 6 - 6 - Регион - 0 False @@ -405,123 +422,225 @@ - + True - False - 5 + True + True 5 5 5 - 6 - 6 + + + True + False + center + center + Синхронизировать аппаратное время + + - False + True True 3 + + + False + True + 3 + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 0.019999999552965164 + in - + True False - Зона - 5 - 5 + 6 5 - 5 - 6 - 6 - Зона - 0 + + + True + False + + + False + True + 1 + + + + + True + False + Регион + 5 + 5 + 5 + 5 + 8 + Регион + 0 + + + False + True + 2 + + + + + True + False + 5 + 5 + 5 + 5 + 8 + + + False + True + 3 + + + + + True + False + Зона + 5 + 5 + 5 + 5 + 8 + Зона + 0 + + + False + True + 4 + + + + + True + False + 5 + 5 + 5 + 5 + 8 + + + False + True + 5 + + + + + 5 + True + False + + + False + True + 6 + + + + + True + False + + + False + True + 7 + + - - False - True - 4 - - - + + True False - 5 - 5 - 5 - 5 - 6 - 6 + Часовой пояс - - False - True - 5 - + + + False + True + 5 + + + + + True + True + True + 5 + 5 + 5 + 6 - - 5 + True False - - - False - True - 6 - - - - - True - True - True - end - 5 - 5 - 6 - 6 + center + center - + True False - - - True - False - media-playlist-repeat - - - False - True - 0 - - - - - True - False - Синхронизировать - - - False - True - 1 - - + 5 + 5 + 5 + 5 + media-playlist-repeat + + False + True + 0 + + + + + True + False + center + center + Применить локальную настройку даты и времени + + + False + True + 1 + - - False - True - 7 - - True + False True - 3 + 6 @@ -530,7 +649,7 @@ True False - Настройка даты и времени + Локальная настройка @@ -551,7 +670,6 @@ True False - 10 vertical @@ -567,27 +685,32 @@ True False - 5 + 6 5 + 5 vertical True False - - Синхронизировать через NTP + True True False Автоматическая синхронизация времени 5 - 5 5 5 6 - 6 True + + + True + False + Синхронизировать через NTP + + False @@ -599,13 +722,7 @@ True False - Способ синхронизации 6 - 6 - - DHCP - Вручную - False @@ -618,15 +735,12 @@ -1 True True - Ввод сервера для синхронизации даты и времени: -Локальный (DHCP) или произвольный center 5 5 5 5 6 - 6 True @@ -642,134 +756,127 @@ - + True False + 5 + 5 + 5 + 5 + 6 + 0.019999999552965164 + in - - 145 - True - False - Изменить параметр зоны - 5 - 5 - 5 - 5 - 6 - 6 - Временная зона - True - 28 - 0 - - - False - True - 0 - - - - - True - False - - - False - True - 1 - - - - - True - False - Регион - 5 - 5 - 5 - 5 - 6 - 6 - Регион - 0 - - - False - True - 2 - - - - + True False - 5 - 5 - 5 - 5 - 6 - 6 - - - False - True - 3 - - - - - True - False - Зона - 5 - 5 - 5 - 5 - Зона - 0 - - - False - True - 4 - - - - - True - False - 5 - 5 - 5 - 5 - 6 - 6 + + + True + False + + + False + True + 1 + + + + + True + False + 5 + 5 + 5 + 5 + 8 + Регион + 0 + + + False + True + 2 + + + + + True + False + 5 + 5 + 5 + 5 + 8 + + + False + True + 3 + + + + + True + False + 5 + 5 + 5 + 5 + 8 + Зона + 0 + + + False + True + 4 + + + + + True + False + 5 + 5 + 5 + 5 + 8 + + + False + True + 5 + + + + + 5 + True + False + 15 + 5 + 15 + 5 + + + False + True + 6 + + - - False - True - 5 - - - - 5 + + True False - 15 - 5 - 15 - 5 + Часовой пояс - - False - True - 6 - - True + False True 1 @@ -777,10 +884,10 @@ - + True False - Настройка даты и времени в глобальной конфигурации + Глобальная настройка diff --git a/ubl-settings-datetime_ru.po b/ubl-settings-datetime_ru.po index 902df90..8f78b7a 100644 --- a/ubl-settings-datetime_ru.po +++ b/ubl-settings-datetime_ru.po @@ -1,1540 +1,85 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# Russian translations for PACKAGE package. +# Copyright (C) 2023 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Automatically generated, 2023. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-14 18:29+0600\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -#. Ok -#: ubconfig_date_time.glade:26 -msgctxt "Ok" -msgid "Oк" -msgstr "" - -#. Enter DHCP -#: ubconfig_date_time.glade:68 -msgctxt "Enter DHCP" -msgid "Введите DHCP" -msgstr "" - -#. Date and time settings -#: ubconfig_date_time.glade:88 -msgctxt "Date and time settings" -msgid "Настройки даты и времени" -msgstr "" - -#: ubconfig_date_time.glade:123 -msgid "Изменить параметр NTPSERVERS" -msgstr "" - -#. Setting the date and time -#: ubconfig_date_time.glade:130 ubconfig_date_time.glade:553 -msgctxt "Setting the date and time" -msgid "Настройка даты и времени" -msgstr "" - -#. Time -#: ubconfig_date_time.glade:204 -msgctxt "Time" -msgid "Время" -msgstr "" - -#. Clock -#: ubconfig_date_time.glade:218 -msgctxt "Clock" -msgid "Часы" -msgstr "" - -#: ubconfig_date_time.glade:239 -msgid ":" -msgstr "" - -#. Minutes -#: ubconfig_date_time.glade:251 -msgctxt "Minutes" -msgid "Минуты" -msgstr "" - -#. Date -#: ubconfig_date_time.glade:289 -msgctxt "Date" -msgid "Дата" -msgstr "" - -#. Date of -#. Format: DD.MM.YYYY -#: ubconfig_date_time.glade:304 -msgctxt "" -"Date of\n" -"Format: DD.MM.YYYY" -msgid "" -"Дата\n" -"Формат: ДД.ММ.ГГГГ" -msgstr "" - -#. Interactive date picker -#: ubconfig_date_time.glade:323 -msgctxt "Interactive date picker" -msgid "Интерактивный выбор даты" -msgstr "" - -#. Change zone setting -#: ubconfig_date_time.glade:360 ubconfig_date_time.glade:679 -msgctxt "Change zone setting" -msgid "Изменить параметр зоны" -msgstr "" - -#. time zone -#: ubconfig_date_time.glade:367 -msgctxt "time zone" -msgid "Временная зона" -msgstr "" - -#. Region -#: ubconfig_date_time.glade:393 ubconfig_date_time.glade:400 -#: ubconfig_date_time.glade:712 ubconfig_date_time.glade:719 -msgctxt "Region" -msgid "Регион" -msgstr "" - -#. Zone -#: ubconfig_date_time.glade:430 ubconfig_date_time.glade:437 -#: ubconfig_date_time.glade:749 ubconfig_date_time.glade:756 -msgctxt "Zone" -msgid "Зона" -msgstr "" - -#. Update date and time -#: ubconfig_date_time.glade:516 ubconfig_date_time.glade:523 -msgctxt "Update date and time" -msgid "Обновить дату и время" -msgstr "" - -#. Synchronize via NTP -#: ubconfig_date_time.glade:601 -msgctxt "Synchronize via NTP" -msgid "Синхронизировать через NTP" -msgstr "" - -#. Automatic time synchronization -#: ubconfig_date_time.glade:605 -msgctxt "Automatic time synchronization" -msgid "Автоматическая синхронизация времени" -msgstr "" - -#. Synchronization method -#: ubconfig_date_time.glade:625 -msgctxt "Synchronization method" -msgid "Способ синхронизации" -msgstr "" - -#. DHCP -#: ubconfig_date_time.glade:633 -msgctxt "DHCP" -msgid "DHCP" -msgstr "" - -#. Manually -#: ubconfig_date_time.glade:634 -msgctxt "Manually" -msgid "Вручную" -msgstr "" - -#. Server input for date and time synchronization: -#. Local (DHCP) or arbitrary -#: ubconfig_date_time.glade:647 -msgctxt "" -"Server input for date and time synchronization:\n" -"Local (DHCP) or arbitrary" -msgid "" -"Ввод сервера для синхронизации даты и времени:\n" -"Локальный (DHCP) или произвольный" -msgstr "" - -#. Time zone -#: ubconfig_date_time.glade:686 -msgctxt "Time zone" -msgid "Временная зона" -msgstr "" - -#. Setting date and time in global configuration -#: ubconfig_date_time.glade:811 -msgctxt "Setting date and time in global configuration" -msgid "Настройка даты и времени в глобальной конфигурации" -msgstr "" - -msgid "Mexico" -msgstr "Мексика" - -msgid "BajaNorte" -msgstr "" - -msgid "BajaSur" -msgstr "Южная Нижняя Калифорния" - -msgid "General" -msgstr "" - -msgid "Arctic" -msgstr "" - -msgid "Longyearbyen" -msgstr "" - -msgid "Indian" -msgstr "" - -msgid "Comoro" -msgstr "" - -msgid "Antananarivo" -msgstr "" - -msgid "Mayotte" -msgstr "" - -msgid "Mauritius" -msgstr "" - -msgid "Reunion" -msgstr "" - -msgid "Mahe" -msgstr "" - -msgid "Maldives" -msgstr "" - -msgid "Kerguelen" -msgstr "" - -msgid "Chagos" -msgstr "" - -msgid "Cocos" -msgstr "" - -msgid "Christmas" -msgstr "" - -msgid "Europe" -msgstr "" - -msgid "Jersey" -msgstr "" - -msgid "Dublin" -msgstr "" - -msgid "Belfast" -msgstr "" - -msgid "Guernsey" -msgstr "" - -msgid "London" -msgstr "" - -msgid "Lisbon" -msgstr "" - -msgid "Isle_of_Man" -msgstr "" - -msgid "Ljubljana" -msgstr "" - -msgid "Stockholm" -msgstr "" - -msgid "Skopje" -msgstr "" - -msgid "Oslo" -msgstr "" - -msgid "Sarajevo" -msgstr "" - -msgid "Tirane" -msgstr "" - -msgid "Zagreb" -msgstr "" - -msgid "Vienna" -msgstr "" - -msgid "Andorra" -msgstr "" - -msgid "Madrid" -msgstr "" - -msgid "Podgorica" -msgstr "" - -msgid "Copenhagen" -msgstr "" - -msgid "Monaco" -msgstr "" - -msgid "Belgrade" -msgstr "" - -msgid "Budapest" -msgstr "" - -msgid "Brussels" -msgstr "" - -msgid "Amsterdam" -msgstr "" - -msgid "Berlin" -msgstr "" - -msgid "Zurich" -msgstr "" - -msgid "Bratislava" -msgstr "" - -msgid "Prague" -msgstr "" - -msgid "Malta" -msgstr "" - -msgid "Rome" -msgstr "" - -msgid "Luxembourg" -msgstr "" - -msgid "Vaduz" -msgstr "" - -msgid "Paris" -msgstr "" - -msgid "Warsaw" -msgstr "" - -msgid "Vatican" -msgstr "" - -msgid "Busingen" -msgstr "" - -msgid "Gibraltar" -msgstr "" - -msgid "San_Marino" -msgstr "" - -msgid "Sofia" -msgstr "" - -msgid "Vilnius" -msgstr "" - -msgid "Helsinki" -msgstr "" - -msgid "Mariehamn" -msgstr "" - -msgid "Riga" -msgstr "" - -msgid "Bucharest" -msgstr "" - -msgid "Kyiv" -msgstr "" - -msgid "Kiev" -msgstr "" - -msgid "Athens" -msgstr "" - -msgid "Zaporozhye" -msgstr "" - -msgid "Tallinn" -msgstr "" - -msgid "Kaliningrad" -msgstr "" - -msgid "Uzhgorod" -msgstr "" - -msgid "Chisinau" -msgstr "" - -msgid "Nicosia" -msgstr "" - -msgid "Tiraspol" -msgstr "" - -msgid "Simferopol" -msgstr "" - -msgid "Istanbul" -msgstr "" - -msgid "Moscow" -msgstr "" - -msgid "Kirov" -msgstr "" - -msgid "Minsk" -msgstr "" - -msgid "Volgograd" -msgstr "" - -msgid "Ulyanovsk" -msgstr "" - -msgid "Samara" -msgstr "" - -msgid "Astrakhan" -msgstr "" - -msgid "Saratov" -msgstr "" - -msgid "Africa" -msgstr "" - -msgid "Lome" -msgstr "" - -msgid "Bissau" -msgstr "" - -msgid "Sao_Tome" -msgstr "" - -msgid "Abidjan" -msgstr "" - -msgid "Accra" -msgstr "" - -msgid "Banjul" -msgstr "" - -msgid "Conakry" -msgstr "" - -msgid "Ouagadougou" -msgstr "" - -msgid "Nouakchott" -msgstr "" - -msgid "Timbuktu" -msgstr "" - -msgid "Dakar" -msgstr "" - -msgid "Monrovia" -msgstr "" - -msgid "Freetown" -msgstr "" - -msgid "Bamako" -msgstr "" - -msgid "El_Aaiun" -msgstr "" - -msgid "Lagos" -msgstr "" - -msgid "Porto-Novo" -msgstr "" - -msgid "Algiers" -msgstr "" - -msgid "Douala" -msgstr "" - -msgid "Brazzaville" -msgstr "" - -msgid "Libreville" -msgstr "" - -msgid "Casablanca" -msgstr "" - -msgid "Niamey" -msgstr "" - -msgid "Tunis" -msgstr "" - -msgid "Luanda" -msgstr "" - -msgid "Malabo" -msgstr "" - -msgid "Ceuta" -msgstr "" - -msgid "Kinshasa" -msgstr "" - -msgid "Bangui" -msgstr "" - -msgid "Ndjamena" -msgstr "" - -msgid "Juba" -msgstr "" - -msgid "Maseru" -msgstr "" - -msgid "Khartoum" -msgstr "" - -msgid "Lubumbashi" -msgstr "" - -msgid "Tripoli" -msgstr "" - -msgid "Mbabane" -msgstr "" - -msgid "Kigali" -msgstr "" - -msgid "Gaborone" -msgstr "" - -msgid "Windhoek" -msgstr "" - -msgid "Maputo" -msgstr "" - -msgid "Cairo" -msgstr "" - -msgid "Johannesburg" -msgstr "" - -msgid "Bujumbura" -msgstr "" - -msgid "Lusaka" -msgstr "" - -msgid "Harare" -msgstr "" - -msgid "Blantyre" -msgstr "" - -msgid "Djibouti" -msgstr "" - -msgid "Dar_es_Salaam" -msgstr "" - -msgid "Kampala" -msgstr "" - -msgid "Addis_Ababa" -msgstr "" - -msgid "Mogadishu" -msgstr "" - -msgid "Asmera" -msgstr "" - -msgid "Asmara" -msgstr "" - -msgid "Nairobi" -msgstr "" - -msgid "Antarctica" -msgstr "" - -msgid "Rothera" -msgstr "" - -msgid "Palmer" -msgstr "" - -msgid "Troll" -msgstr "" - -msgid "Syowa" -msgstr "" - -msgid "Mawson" -msgstr "" - -msgid "Vostok" -msgstr "" - -msgid "Davis" -msgstr "" - -msgid "DumontDUrville" -msgstr "" - -msgid "Casey" -msgstr "" - -msgid "Macquarie" -msgstr "" - -msgid "McMurdo" -msgstr "" - -msgid "South_Pole" -msgstr "" - -msgid "locali" -msgstr "" - -msgid "America" -msgstr "" - -msgid "Atka" -msgstr "" - -msgid "Adak" -msgstr "" - -msgid "Anchorage" -msgstr "" - -msgid "Metlakatla" -msgstr "" - -msgid "Juneau" -msgstr "" - -msgid "Sitka" -msgstr "" - -msgid "Nome" -msgstr "" - -msgid "Yakutat" -msgstr "" - -msgid "Tijuana" -msgstr "" - -msgid "Santa_Isabel" -msgstr "" - -msgid "Vancouver" -msgstr "" - -msgid "Ensenada" -msgstr "" - -msgid "Los_Angeles" -msgstr "" - -msgid "Ciudad_Juarez" -msgstr "" - -msgid "Dawson" -msgstr "" - -msgid "Hermosillo" -msgstr "" - -msgid "Phoenix" -msgstr "" - -msgid "Whitehorse" -msgstr "" - -msgid "Edmonton" -msgstr "" - -msgid "Creston" -msgstr "" - -msgid "Inuvik" -msgstr "" - -msgid "Mazatlan" -msgstr "" - -msgid "Shiprock" -msgstr "" - -msgid "Yellowknife" -msgstr "" - -msgid "Fort_Nelson" -msgstr "" - -msgid "Denver" -msgstr "" - -msgid "Boise" -msgstr "" - -msgid "Dawson_Creek" -msgstr "" - -msgid "Cambridge_Bay" -msgstr "" - -msgid "North_Dakota" -msgstr "" - -msgid "Knox_IN" -msgstr "" - -msgid "Costa_Rica" -msgstr "" - -msgid "Menominee" -msgstr "" - -msgid "El_Salvador" -msgstr "" - -msgid "Regina" -msgstr "" - -msgid "Guatemala" -msgstr "" - -msgid "Resolute" -msgstr "" - -msgid "Monterrey" -msgstr "" - -msgid "Chicago" -msgstr "" - -msgid "Winnipeg" -msgstr "" - -msgid "Indiana" -msgstr "" - -msgid "Rankin_Inlet" -msgstr "" - -msgid "Merida" -msgstr "" - -msgid "Tegucigalpa" -msgstr "" - -msgid "Managua" -msgstr "" - -msgid "Belize" -msgstr "" - -msgid "Rainy_River" -msgstr "" - -msgid "Bahia_Banderas" -msgstr "" - -msgid "Ojinaga" -msgstr "" - -msgid "Chihuahua" -msgstr "" - -msgid "Swift_Current" -msgstr "" - -msgid "Mexico_City" -msgstr "" - -msgid "Matamoros" -msgstr "" - -msgid "Jamaica" -msgstr "" - -msgid "Montreal" -msgstr "" - -msgid "Havana" -msgstr "" - -msgid "Grand_Turk" -msgstr "" - -msgid "Iqaluit" -msgstr "" - -msgid "Louisville" -msgstr "" - -msgid "Guayaquil" -msgstr "" - -msgid "Lima" -msgstr "" - -msgid "Coral_Harbour" -msgstr "" - -msgid "Detroit" -msgstr "" - -msgid "Port-au-Prince" -msgstr "" - -msgid "Fort_Wayne" -msgstr "" - -msgid "Eirunepe" -msgstr "" - -msgid "Indianapolis" -msgstr "" - -msgid "Rio_Branco" -msgstr "" - -msgid "Cancun" -msgstr "" - -msgid "Nipigon" -msgstr "" - -msgid "Toronto" -msgstr "" - -msgid "Panama" -msgstr "" - -msgid "New_York" -msgstr "" - -msgid "Kentucky" -msgstr "" - -msgid "Pangnirtung" -msgstr "" - -msgid "Thunder_Bay" -msgstr "" - -msgid "Bogota" -msgstr "" - -msgid "Cayman" -msgstr "" - -msgid "Atikokan" -msgstr "" - -msgid "Porto_Acre" -msgstr "" - -msgid "Nassau" -msgstr "" - -msgid "Anguilla" -msgstr "" - -msgid "Guadeloupe" -msgstr "" - -msgid "Puerto_Rico" -msgstr "" - -msgid "Porto_Velho" -msgstr "" - -msgid "Guyana" -msgstr "" - -msgid "Lower_Princes" -msgstr "" - -msgid "St_Lucia" -msgstr "" - -msgid "Port_of_Spain" -msgstr "" - -msgid "Dominica" -msgstr "" - -msgid "Manaus" -msgstr "" - -msgid "Thule" -msgstr "" - -msgid "St_Vincent" -msgstr "" - -msgid "St_Barthelemy" -msgstr "" - -msgid "Grenada" -msgstr "" - -msgid "Marigot" -msgstr "" - -msgid "Goose_Bay" -msgstr "" - -msgid "Martinique" -msgstr "" - -msgid "La_Paz" -msgstr "" - -msgid "Cuiaba" -msgstr "" - -msgid "Tortola" -msgstr "" - -msgid "Virgin" -msgstr "" - -msgid "Santo_Domingo" -msgstr "" - -msgid "Antigua" -msgstr "" - -msgid "Curacao" -msgstr "" - -msgid "Barbados" -msgstr "" - -msgid "Blanc-Sablon" -msgstr "" - -msgid "Aruba" -msgstr "" - -msgid "Kralendijk" -msgstr "" - -msgid "Montserrat" -msgstr "" - -msgid "Campo_Grande" -msgstr "" - -msgid "Caracas" -msgstr "" - -msgid "St_Thomas" -msgstr "" - -msgid "Glace_Bay" -msgstr "" - -msgid "St_Kitts" -msgstr "" - -msgid "Moncton" -msgstr "" - -msgid "Boa_Vista" -msgstr "" - -msgid "Halifax" -msgstr "" - -msgid "Buenos_Aires" -msgstr "" - -msgid "Santarem" -msgstr "" - -msgid "Araguaina" -msgstr "" - -msgid "Belem" -msgstr "" - -msgid "St_Johns" -msgstr "" - -msgid "Nuuk" -msgstr "" - -msgid "Cordoba" -msgstr "" - -msgid "Catamarca" -msgstr "" - -msgid "Rosario" -msgstr "" - -msgid "Jujuy" -msgstr "" - -msgid "Montevideo" -msgstr "" - -msgid "Punta_Arenas" -msgstr "" - -msgid "Cayenne" -msgstr "" - -msgid "Sao_Paulo" -msgstr "" - -msgid "Santiago" -msgstr "" - -msgid "Paramaribo" -msgstr "" - -msgid "Miquelon" -msgstr "" - -msgid "Godthab" -msgstr "" - -msgid "Maceio" -msgstr "" - -msgid "Fortaleza" -msgstr "" - -msgid "Argentina" -msgstr "" - -msgid "Mendoza" -msgstr "" - -msgid "Recife" -msgstr "" - -msgid "Bahia" -msgstr "" - -msgid "Asuncion" -msgstr "" - -msgid "Noronha" -msgstr "" - -msgid "Scoresbysund" -msgstr "" - -msgid "Danmarkshavn" -msgstr "" - -msgid "Chile" -msgstr "" - -msgid "EasterIsland" -msgstr "" - -msgid "Continental" -msgstr "" - -msgid "Australia" -msgstr "" - -msgid "Perth" -msgstr "" - -msgid "Eucla" -msgstr "" - -msgid "West" -msgstr "" - -msgid "Darwin" -msgstr "" - -msgid "North" -msgstr "" - -msgid "Yancowinna" -msgstr "" - -msgid "South" -msgstr "" - -msgid "Lindeman" -msgstr "" - -msgid "Broken_Hill" -msgstr "" - -msgid "Adelaide" -msgstr "" - -msgid "Queensland" -msgstr "" - -msgid "Brisbane" -msgstr "" +msgid "Manually" +msgstr "Вручную" -msgid "Victoria" -msgstr "" - -msgid "Hobart" -msgstr "" - -msgid "ACT" -msgstr "" - -msgid "Tasmania" -msgstr "" - -msgid "LHI" -msgstr "" - -msgid "Currie" -msgstr "" - -msgid "Canberra" -msgstr "" - -msgid "Sydney" -msgstr "" - -msgid "Melbourne" -msgstr "" - -msgid "Lord_Howe" -msgstr "" - -msgid "NSW" -msgstr "" - -msgid "Asia" -msgstr "" - -msgid "Beirut" -msgstr "" - -msgid "Famagusta" -msgstr "" - -msgid "Hebron" -msgstr "" - -msgid "Tel_Aviv" -msgstr "" - -msgid "Jerusalem" -msgstr "" - -msgid "Gaza" -msgstr "" - -msgid "Amman" -msgstr "" - -msgid "Bahrain" -msgstr "" - -msgid "Tehran" -msgstr "" - -msgid "Baghdad" -msgstr "" - -msgid "Kuwait" -msgstr "" - -msgid "Riyadh" -msgstr "" - -msgid "Qatar" -msgstr "" - -msgid "Damascus" -msgstr "" - -msgid "Aden" -msgstr "" - -msgid "Yerevan" -msgstr "" - -msgid "Baku" -msgstr "" - -msgid "Dubai" -msgstr "" - -msgid "Kabul" -msgstr "" - -msgid "Muscat" -msgstr "" - -msgid "Tbilisi" -msgstr "" - -msgid "Kathmandu" -msgstr "" - -msgid "Samarkand" -msgstr "" - -msgid "Ashgabat" -msgstr "" - -msgid "Karachi" -msgstr "" - -msgid "Katmandu" -msgstr "" - -msgid "Calcutta" -msgstr "" - -msgid "Tashkent" -msgstr "" - -msgid "Yekaterinburg" -msgstr "" - -msgid "Oral" -msgstr "" - -msgid "Dushanbe" -msgstr "" - -msgid "Atyrau" -msgstr "" - -msgid "Aqtobe" -msgstr "" - -msgid "Aqtau" -msgstr "" - -msgid "Qyzylorda" -msgstr "" - -msgid "Ashkhabad" -msgstr "" - -msgid "Colombo" -msgstr "" - -msgid "Kolkata" -msgstr "" - -msgid "Dhaka" -msgstr "" - -msgid "Thimphu" -msgstr "" - -msgid "Rangoon" -msgstr "" - -msgid "Kashgar" -msgstr "" - -msgid "Qostanay" -msgstr "" - -msgid "Almaty" -msgstr "" - -msgid "Urumqi" -msgstr "" - -msgid "Yangon" -msgstr "" - -msgid "Dacca" -msgstr "" - -msgid "Thimbu" -msgstr "" - -msgid "Omsk" -msgstr "" - -msgid "Bishkek" -msgstr "" - -msgid "Ho_Chi_Minh" -msgstr "" - -msgid "Phnom_Penh" -msgstr "" - -msgid "Vientiane" -msgstr "" - -msgid "Bangkok" -msgstr "" - -msgid "Krasnoyarsk" -msgstr "" - -msgid "Novokuznetsk" -msgstr "" - -msgid "Barnaul" -msgstr "" - -msgid "Jakarta" -msgstr "" - -msgid "Saigon" -msgstr "" - -msgid "Hovd" -msgstr "" - -msgid "Novosibirsk" -msgstr "" - -msgid "Tomsk" -msgstr "" - -msgid "Pontianak" -msgstr "" - -msgid "Harbin" -msgstr "" - -msgid "Chungking" -msgstr "" - -msgid "Ulan_Bator" -msgstr "" - -msgid "Brunei" -msgstr "" - -msgid "Singapore" -msgstr "" - -msgid "Choibalsan" -msgstr "" - -msgid "Chongqing" -msgstr "" - -msgid "Macau" -msgstr "" - -msgid "Ujung_Pandang" -msgstr "" - -msgid "Manila" -msgstr "" - -msgid "Kuala_Lumpur" -msgstr "" - -msgid "Makassar" -msgstr "" - -msgid "Kuching" -msgstr "" - -msgid "Macao" -msgstr "" - -msgid "Shanghai" -msgstr "" - -msgid "Taipei" -msgstr "" - -msgid "Ulaanbaatar" -msgstr "" - -msgid "Irkutsk" -msgstr "" - -msgid "Hong_Kong" -msgstr "" - -msgid "Khandyga" -msgstr "" - -msgid "Seoul" -msgstr "" - -msgid "Jayapura" -msgstr "" - -msgid "Chita" -msgstr "" - -msgid "Pyongyang" -msgstr "" - -msgid "Yakutsk" -msgstr "" - -msgid "Tokyo" -msgstr "" - -msgid "Dili" -msgstr "" - -msgid "Vladivostok" -msgstr "" - -msgid "Ust-Nera" -msgstr "" - -msgid "Srednekolymsk" -msgstr "" - -msgid "Sakhalin" -msgstr "" - -msgid "Magadan" -msgstr "" - -msgid "Anadyr" -msgstr "" - -msgid "Kamchatka" -msgstr "" - -msgid "US" -msgstr "" - -msgid "Samoa" -msgstr "" - -msgid "Aleutian" -msgstr "" - -msgid "Hawaii" -msgstr "" - -msgid "Alaska" -msgstr "" - -msgid "Pacific" -msgstr "" - -msgid "Mountain" -msgstr "" - -msgid "Arizona" -msgstr "" +msgid "Enter DHCP!" +msgstr "Введите DHCP!" -msgid "Indiana-Starke" -msgstr "" +msgid "OK" +msgstr "OK" -msgid "Central" -msgstr "" +msgid "Settings the date and time" +msgstr "Настройки даты и времени" -msgid "East-Indiana" -msgstr "" +msgid "Local Configuration" +msgstr "Локальная настройка" -msgid "Michigan" -msgstr "" +msgid "Global customization" +msgstr "Глобальная настройка" -msgid "Eastern" -msgstr "" +msgid "Change the NTPSERVERS parameter" +msgstr "Изменить параметр NTPSERVERS" -msgid "Atlantic" -msgstr "" +msgid "ubl-settings-datetime" +msgstr "Настройки даты и времени" -msgid "Bermuda" -msgstr "" +msgid "Time" +msgstr "Время" -msgid "Stanley" -msgstr "" +msgid "Clock" +msgstr "Часы" -msgid "South_Georgia" -msgstr "" +msgid ":" +msgstr ":" -msgid "Cape_Verde" -msgstr "" +msgid "Minutes" +msgstr "Минуты" -msgid "Azores" -msgstr "" +msgid "Date" +msgstr "Дата" -msgid "Faeroe" -msgstr "" +msgid "Date of\nFormat: DD.MM.YYYY" +msgstr "Дата\nФормат: ДД.ММ.ГГГГ" -msgid "Faroe" -msgstr "" +msgid "Interactive date picker" +msgstr "Интерактивный выбор даты" -msgid "St_Helena" -msgstr "" +msgid "Change zone setting" +msgstr "Изменить параметр зоны" -msgid "Reykjavik" -msgstr "" +msgid "Region" +msgstr "Регион" -msgid "Canary" -msgstr "" +msgid "Zone" +msgstr "Зона" -msgid "Madeira" -msgstr "" +msgid "Apply local date and time settings" +msgstr "Применить локальную настройку даты и времени" -msgid "Jan_Mayen" -msgstr "" +msgid "Automatic time synchronization" +msgstr "Автоматическая синхронизация времени" -msgid "Brazil" -msgstr "" +msgid "Synchronize via NTP" +msgstr "Синхронизировать через NTP" -msgid "Acre" -msgstr "" +msgid "Time zone" +msgstr "Часовой пояс" -msgid "East" -msgstr "" +msgid "Setting date and time in global configuration" +msgstr "Настройка даты и времени в глобальной конфигурации" -msgid "DeNoronha" -msgstr "" +msgid "Incorrect date format" +msgstr "Не верный формат даты" +msgid "Synchronize hardware time" +msgstr "Синхронизировать аппаратное время" +msgid "Warning!" +msgstr "Внимание!" -- 2.35.1 From 1d034799844dac3ae0c4528718f3e300fb0351a6 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Mon, 30 Jan 2023 09:48:47 +0000 Subject: [PATCH 02/12] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=B4=D0=B8=D0=B7=D0=B0=D0=B9=D0=BD=20?= =?UTF-8?q?=D0=BF=D0=BE=20#15,=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=B1=D0=B0=D0=B3=20=D1=81=20=D0=B0=D0=BF?= =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D1=82=D0=BD=D1=8B=D0=BC=D0=B8=20=D1=87?= =?UTF-8?q?=D0=B0=D1=81=D0=B0=D0=BC=D0=B8,=D0=BD=D0=B5=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B0=D0=BB=D0=BE=20=D0=B8=D0=B7=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/ubl-settings-datetime.cc | 10 ++- ubl-settings-datetime.glade | 113 +++++++++++++++++--------------- ubl-settings-datetime_ru.po | 4 +- 3 files changed, 65 insertions(+), 62 deletions(-) diff --git a/source/ubl-settings-datetime.cc b/source/ubl-settings-datetime.cc index 884751e..2df0429 100644 --- a/source/ubl-settings-datetime.cc +++ b/source/ubl-settings-datetime.cc @@ -90,7 +90,7 @@ void MainWindow::lacalization(){ _lblRegGlob->set_text(gettext("Region")); _lblZone1Glob->set_text(gettext("Zone")); _lblTimeZoneGlob->set_text(gettext("Time zone")); - _lblSynchronizeBtn->set_text(gettext("Apply local date and time settings")); + _lblSynchronizeBtn->set_text(gettext("Sync by")); _lblDateTimeSettingGlob->set_text(gettext("Global customization")); this->set_title(gettext("ubl-settings-datetime")); _mess_dchp->set_title(gettext("Warning!")); @@ -427,8 +427,8 @@ void MainWindow::enter_zone_glob(){ void MainWindow::set_ntp_toggle_glob(){ bool flag = _cbxSynchronizeNtp->get_active(); - if (flag==true){ - system("/usr/bin/ubconfig remove network NTPSERVERS") + if (flag==false){ + system("/usr/bin/ubconfig remove network NTPSERVERS"); } else{ @@ -508,7 +508,7 @@ void MainWindow::append_zone_glob(){ void MainWindow::update_time_date(){ //this->enter_zone(); - bool flag = _cbxSynchronizeNtpGlob->get_active(); + bool flag = _cbxSynchronizeNtp->get_active(); string cmd = ""; if ((year!=0) && (month !=0) && (day !=0)){ string str_month = ""; @@ -556,8 +556,6 @@ void MainWindow::update_time_date(){ + ":" + to_string(ltm->tm_sec) +"\""; system(cmd.c_str()); } - cmd = "hwclock --systohc"; - system(cmd.c_str()); } void MainWindow::post_entry_data(){ diff --git a/ubl-settings-datetime.glade b/ubl-settings-datetime.glade index ff8fc94..52b1d0b 100644 --- a/ubl-settings-datetime.glade +++ b/ubl-settings-datetime.glade @@ -399,6 +399,62 @@ True False + + + True + True + True + 5 + 5 + 5 + 5 + 6 + 6 + + + True + False + center + center + + + True + False + 5 + 5 + 5 + 5 + media-playlist-repeat + + + False + True + 0 + + + + + True + False + center + center + Синхронизировать + + + False + True + 1 + + + + + + + False + True + 0 + + True @@ -426,9 +482,12 @@ True True True + 5 5 5 5 + 6 + 6 True @@ -589,60 +648,6 @@ 5 - - - True - True - True - 5 - 5 - 5 - 6 - - - True - False - center - center - - - True - False - 5 - 5 - 5 - 5 - media-playlist-repeat - - - False - True - 0 - - - - - True - False - center - center - Применить локальную настройку даты и времени - - - False - True - 1 - - - - - - - False - True - 6 - - diff --git a/ubl-settings-datetime_ru.po b/ubl-settings-datetime_ru.po index 8f78b7a..62bf046 100644 --- a/ubl-settings-datetime_ru.po +++ b/ubl-settings-datetime_ru.po @@ -60,8 +60,8 @@ msgstr "Регион" msgid "Zone" msgstr "Зона" -msgid "Apply local date and time settings" -msgstr "Применить локальную настройку даты и времени" +msgid "Sync by" +msgstr "Синхронизировать" msgid "Automatic time synchronization" msgstr "Автоматическая синхронизация времени" -- 2.35.1 From 07c22ff69565c88918e9135f7992bd03806b4aa1 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Mon, 30 Jan 2023 10:49:07 +0000 Subject: [PATCH 03/12] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=B1=D0=B0=D0=B3=20=D0=B2=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B2=D0=BE=D0=B4=D0=BE=D0=BC=20Null=20=D0=B2=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D0=B5=20=D0=B2=D0=B2=D0=BE=D0=B4=D0=B0=20ntpserver=20?= =?UTF-8?q?=D0=B8=20=D0=B1=D0=B0=D0=B3=20=D1=81=20=D0=B1=D0=BB=D0=BE=D0=BA?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=BE=D0=B9=20flag=5Fdatetime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bg_top.png | Bin 45513 -> 33872 bytes source/ubl-settings-datetime.cc | 29 +++++++++++++++++++++++++---- ubl-settings-datetime.glade | 3 ++- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/bg_top.png b/bg_top.png index d673a36f2602b94f7541bf9d6b9b846fb3cbeccd..8eb67cbc38babeaf498d981356cf7e77e2741f12 100644 GIT binary patch literal 33872 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 diff --git a/source/ubl-settings-datetime.cc b/source/ubl-settings-datetime.cc index 2df0429..a17cad5 100644 --- a/source/ubl-settings-datetime.cc +++ b/source/ubl-settings-datetime.cc @@ -104,6 +104,15 @@ void MainWindow::flag_block_gui(){ //_numTimeMin->set_sensitive(false); //_txtDate->set_sensitive(false); _btnUpdateDateTime->set_sensitive(false); + _numTimeHrs->set_sensitive(false); + _numTimeMin->set_sensitive(false); + _btnChooseDate->set_sensitive(false); + _txtDate->set_sensitive(false); + _lblTimeBios->set_sensitive(false); + _btnHardwareTime->set_sensitive(false); + _lblTime->set_sensitive(false); + _lblData->set_sensitive(false); + //_cbxSynchronizeNtp->set_sensitive(false); } if (flag_timezone==true){ _cbRegion->set_sensitive(false); @@ -204,7 +213,7 @@ void MainWindow::event(){ void MainWindow::set_ntp_toggle(){ bool flag = _cbxSynchronizeNtp->get_active(); - if (flag_ntp==true){ + if (flag_ntp==true || flag_datetime==true){ } else { _numTimeHrs->set_sensitive(!flag); @@ -212,6 +221,9 @@ void MainWindow::set_ntp_toggle(){ _btnChooseDate->set_sensitive(!flag); _txtDate->set_sensitive(!flag); _lblTimeBios->set_sensitive(!flag); + _btnUpdateDateTime->set_sensitive(!flag); + _lblTime->set_sensitive(!flag); + _lblData->set_sensitive(!flag); } string cmd = ""; if (flag==false){ @@ -251,6 +263,8 @@ bool MainWindow::focus_ntp(GdkEventFocus* event){ void MainWindow::event_entry_cbDhcp(){ Glib::ustring str_dhcp = _cbDhcp->get_active_text(); + int index_activ = _cbDhcp->get_entry_text_column(); + cout << index_activ << endl; if (str_dhcp.length()!=0){ if (str_dhcp=="DHCP"){ string cmd = "/usr/bin/ubconfig set network NTPSERVERS=dhcp"; @@ -264,7 +278,7 @@ void MainWindow::event_entry_cbDhcp(){ if ((str_dhcp!="") && (str_dhcp!="(null)") ){ str_dhcp = str_dhcp.substr(str_dhcp.find("=")+1,str_dhcp.length()); str_dhcp = str_dhcp.substr(0,str_dhcp.find("\n")); - if (str_dhcp!="dhcp"){ + if (str_dhcp!="dhcp" && str_dhcp!="(null)"){ _txtNtpServer->set_text(str_dhcp); } _txtNtpServer->set_sensitive(true); @@ -333,6 +347,10 @@ void MainWindow::enry_dhcp_mess(){ _lblMessage->set_text(gettext("Enter DHCP !")); _mess_dchp->show(); } + else if (str_dhcp=="(null)"){ + _cbDhcp->set_active(0); + _txtNtpServer->set_text(""); + } else{ _cbDhcp->set_active(1); _txtNtpServer->set_text(str_dhcp); @@ -426,12 +444,15 @@ void MainWindow::enter_zone_glob(){ } void MainWindow::set_ntp_toggle_glob(){ - bool flag = _cbxSynchronizeNtp->get_active(); + bool flag = _cbxSynchronizeNtpGlob->get_active(); if (flag==false){ system("/usr/bin/ubconfig remove network NTPSERVERS"); + _cbDhcp->set_sensitive(false); + _txtNtpServer->set_sensitive(false); } else{ - + _cbDhcp->set_sensitive(true); + _txtNtpServer->set_sensitive(true); } } diff --git a/ubl-settings-datetime.glade b/ubl-settings-datetime.glade index 52b1d0b..6f5f085 100644 --- a/ubl-settings-datetime.glade +++ b/ubl-settings-datetime.glade @@ -131,9 +131,10 @@ False Настройки даты и времени + - +

-- 2.35.1 From 5af9ea241b31b041634d5e2a85dd847e062d0dd4 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Mon, 30 Jan 2023 11:12:10 +0000 Subject: [PATCH 04/12] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20policy=20=D0=B8=20=D0=B4=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D0=B9=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 4 ++-- ru.ublinux.pkexec.ubl-settings-datetime.exec.policy | 4 ++-- ubl-settings-datetime.glade | 6 ++---- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index e1f25a0..af79dbe 100644 --- a/Makefile +++ b/Makefile @@ -12,8 +12,8 @@ CMAKE_COMMAND = cmake CMAKE_SOURCE_DIR = ./source CMAKE_BUILD_DIR = ./compile DEPENDS = cmake -#PKGNAME = $(MAKEFILE_DIR) -PKGNAME = ubl-settings-datetime +PKGNAME = $(MAKEFILE_DIR) +#PKGNAME = ubl-settings-datetime default_target: all all: init build diff --git a/ru.ublinux.pkexec.ubl-settings-datetime.exec.policy b/ru.ublinux.pkexec.ubl-settings-datetime.exec.policy index bd85ed6..3aa3714 100644 --- a/ru.ublinux.pkexec.ubl-settings-datetime.exec.policy +++ b/ru.ublinux.pkexec.ubl-settings-datetime.exec.policy @@ -7,7 +7,7 @@ UBLinux https://ublinux.ru - + Run "Time date settings" as root Запуск настройки даты и времени" с правами root Authentication is required to run the time date settings @@ -21,4 +21,4 @@ true - + \ No newline at end of file diff --git a/ubl-settings-datetime.glade b/ubl-settings-datetime.glade index 6f5f085..9386f0d 100644 --- a/ubl-settings-datetime.glade +++ b/ubl-settings-datetime.glade @@ -243,7 +243,7 @@ False - 145 + 160 True False 5 @@ -325,7 +325,7 @@ False - 145 + 160 True False 5 @@ -527,8 +527,6 @@ True False - 6 - 5 True -- 2.35.1 From 3c037a52d04a0c8d0a694405dd15b9d881d62cbf Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Mon, 30 Jan 2023 16:51:37 +0000 Subject: [PATCH 05/12] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=B4=D0=B8=D0=B7=D0=B0=D0=B9=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ubl-settings-datetime.glade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ubl-settings-datetime.glade b/ubl-settings-datetime.glade index 9386f0d..ae6f203 100644 --- a/ubl-settings-datetime.glade +++ b/ubl-settings-datetime.glade @@ -580,7 +580,7 @@ Зона 5 5 - 5 + 10 5 8 Зона @@ -825,7 +825,7 @@ False 5 5 - 5 + 10 5 8 Зона -- 2.35.1 From c3109de13e313bf2572c15322226d7a09594bd53 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Tue, 31 Jan 2023 10:34:48 +0600 Subject: [PATCH 06/12] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=B4=D0=B8=D0=B7=D0=B0=D0=B9=D0=BD=20?= =?UTF-8?q?=D0=B8=20=D0=BB=D0=BE=D0=BA=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B4=D0=B8=D0=B7=D0=B0=D0=B9=D0=BD=D0=B0.=20?= =?UTF-8?q?=D0=98=20=D1=82=D0=BE=D1=87=D0=BA=D0=B0=20=D0=BF=D0=BE=20=D1=83?= =?UTF-8?q?=D0=BC=D0=BE=D0=BB=D1=87=D0=B0=D0=BD=D0=B8=D1=8E=20=D0=9E=D0=BC?= =?UTF-8?q?=D1=81=D0=BA,=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D1=8B=20co?= =?UTF-8?q?ut-=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/ubl-settings-datetime.cc | 40 ++++++++++----------- ubl-settings-datetime.glade | 64 ++++++++------------------------- 2 files changed, 33 insertions(+), 71 deletions(-) diff --git a/source/ubl-settings-datetime.cc b/source/ubl-settings-datetime.cc index a17cad5..a64c36e 100644 --- a/source/ubl-settings-datetime.cc +++ b/source/ubl-settings-datetime.cc @@ -95,7 +95,7 @@ void MainWindow::lacalization(){ this->set_title(gettext("ubl-settings-datetime")); _mess_dchp->set_title(gettext("Warning!")); _lblTimeBios->set_text(gettext("Synchronize hardware time")); - _lblSynchronizebChk->set_text(gettext("Synchronize via NTP")); + //_lblSynchronizebChk->set_text(gettext("Synchronize via NTP")); } void MainWindow::flag_block_gui(){ @@ -112,7 +112,7 @@ void MainWindow::flag_block_gui(){ _btnHardwareTime->set_sensitive(false); _lblTime->set_sensitive(false); _lblData->set_sensitive(false); - //_cbxSynchronizeNtp->set_sensitive(false); + //_cbxSynchronizeNtpGlob->set_sensitive(false); } if (flag_timezone==true){ _cbRegion->set_sensitive(false); @@ -126,11 +126,10 @@ void MainWindow::flag_block_gui(){ _cbxSynchronizeNtpGlob->set_sensitive(false); _cbDhcp->set_sensitive(false); _txtNtpServer->set_sensitive(false); - _cbxSynchronizeNtp->set_sensitive(false); } if (flag_update==true){ _lblDateTimeSettingGlob->set_sensitive(false); - _lblSynchronizebChkGLob->set_sensitive(false); + //_lblSynchronizebChkGLob->set_sensitive(false); _cbxSynchronizeNtpGlob->set_sensitive(false); _lblTimeZoneGlob->set_sensitive(false); _lblRegGlob->set_sensitive(false); @@ -155,6 +154,7 @@ void MainWindow::add_CSS(){ } void MainWindow::get_builder(){ + builder->set_translation_domain(path_app); builder->get_widget("boxColor", _boxColor); builder->get_widget("btnUpdateDateTime", _btnUpdateDateTime); builder->get_widget("btnChooseDate", _btnChooseDate); @@ -183,19 +183,19 @@ void MainWindow::get_builder(){ builder->get_widget("lblRegGlob",_lblRegGlob); builder->get_widget("lblZone1Glob",_lblZone1Glob); builder->get_widget("lblTimeZoneGlob",_lblTimeZoneGlob); - builder->get_widget("lblSynchronizebChk",_lblSynchronizebChk); + //builder->get_widget("lblSynchronizebChk",_lblSynchronizebChk); builder->get_widget("lblSynchronizebChkGLob",_lblSynchronizebChkGLob); builder->get_widget("lblSynchronizeBtn",_lblSynchronizeBtn); builder->get_widget("lblDateTimeSettingGlob",_lblDateTimeSettingGlob); builder->get_widget("lblTimeBios",_lblTimeBios); builder->get_widget("btnHardwareTime",_btnHardwareTime); - builder->get_widget("cbxSynchronizeNtp",_cbxSynchronizeNtp); + //builder->get_widget("cbxSynchronizeNtp",_cbxSynchronizeNtp); this->add_CSS(); } void MainWindow::event(){ - _cbxSynchronizeNtp->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::set_ntp_toggle)); + //_cbxSynchronizeNtpGlob->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::set_ntp_toggle)); _btnHardwareTime->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::hardware_clock)); _btnMessClose->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::gui_mess_close)); //_cldrDate->signal_day_selected().connect(sigc::mem_fun(*this, &MainWindow::get_calendar)); @@ -212,7 +212,7 @@ void MainWindow::event(){ } void MainWindow::set_ntp_toggle(){ - bool flag = _cbxSynchronizeNtp->get_active(); + bool flag = _cbxSynchronizeNtpGlob->get_active(); if (flag_ntp==true || flag_datetime==true){ } else { @@ -263,8 +263,6 @@ bool MainWindow::focus_ntp(GdkEventFocus* event){ void MainWindow::event_entry_cbDhcp(){ Glib::ustring str_dhcp = _cbDhcp->get_active_text(); - int index_activ = _cbDhcp->get_entry_text_column(); - cout << index_activ << endl; if (str_dhcp.length()!=0){ if (str_dhcp=="DHCP"){ string cmd = "/usr/bin/ubconfig set network NTPSERVERS=dhcp"; @@ -372,7 +370,7 @@ void MainWindow::get_config(){ this->enry_dhcp_mess(); string str_ntp = this->call("systemctl status ntpd.service systemd-timesyncd.service | grep \"Active: active\""); if (str_ntp.length()<50) { - _cbxSynchronizeNtp->set_active(false); + _cbxSynchronizeNtpGlob->set_active(false); _numTimeHrs->set_sensitive(true); _numTimeMin->set_sensitive(true); _btnChooseDate->set_sensitive(true); @@ -380,7 +378,7 @@ void MainWindow::get_config(){ _lblTimeBios->set_sensitive(true); } else{ - _cbxSynchronizeNtp->set_active(true); + _cbxSynchronizeNtpGlob->set_active(true); _numTimeHrs->set_sensitive(false); _numTimeMin->set_sensitive(false); _btnChooseDate->set_sensitive(false); @@ -388,7 +386,7 @@ void MainWindow::get_config(){ _lblTimeBios->set_sensitive(false); } string read_reg_zon_cfg = this->call("/usr/bin/ubconfig get clock ZONE"); - if ((read_reg_zon_cfg != "") && (read_reg_zon_cfg !="(null)")){ + if ((read_reg_zon_cfg != "") && (strstr(read_reg_zon_cfg.c_str() ,"(null)")==NULL)){ read_reg_zon_cfg = read_reg_zon_cfg.substr(read_reg_zon_cfg.find("=")+1,read_reg_zon_cfg.length()); read_reg_zon_cfg = read_reg_zon_cfg.substr(0,read_reg_zon_cfg.find("\n")); string str_filling_reg = read_reg_zon_cfg.substr(0,read_reg_zon_cfg.find("/")); @@ -398,7 +396,7 @@ void MainWindow::get_config(){ this->append_region_zone(str_filling_reg,str_filling_zon); } else { - this->append_region_zone("Asia","Omsk"); + this->append_region_zone("Africa","Abidjan"); } } @@ -432,9 +430,8 @@ void MainWindow::enter_zone_glob(){ Glib::ustring zone_text = _cbZoneGlob->get_active_text(); Glib::ustring reg_text = _cbRegionGlob->get_active_text(); if(!(zone_text.empty()) && !(reg_text.empty())){ - str_zoneGlob = zone_text.substr(zone_text.find(") ")+2,zone_text.length()); - str_region_glob = reg_text; - string cmd = "/usr/bin/ubconfig set clock ZONE=" +str_region_glob +"/" + str_zoneGlob; + //str_zoneGlob = zone_text.substr(zone_text.find(") ")+2,zone_text.length()); + string cmd = "/usr/bin/ubconfig set clock ZONE=" +reg_text +"/" + zone_text; system(cmd.c_str()); } else{ @@ -444,6 +441,7 @@ void MainWindow::enter_zone_glob(){ } void MainWindow::set_ntp_toggle_glob(){ + this->set_ntp_toggle(); bool flag = _cbxSynchronizeNtpGlob->get_active(); if (flag==false){ system("/usr/bin/ubconfig remove network NTPSERVERS"); @@ -469,13 +467,12 @@ void MainWindow::append_region_zone(string region, string zone){ index+=1; } index = 0; - string cheek_zone = ""; + cout << zone; for (const auto &_str_zone : time_reg_map.at(region)){ _cbZone->append(_str_zone); _cbZoneGlob->append(_str_zone); if (_str_zone!=""){ - cheek_zone = _str_zone.substr(_str_zone.find(") ")+2,_str_zone.length()); - if (cheek_zone == zone){ + if (_str_zone == zone){ _cbZone->set_active(index); _cbZoneGlob->set_active(index); } @@ -529,7 +526,7 @@ void MainWindow::append_zone_glob(){ void MainWindow::update_time_date(){ //this->enter_zone(); - bool flag = _cbxSynchronizeNtp->get_active(); + bool flag = _cbxSynchronizeNtpGlob->get_active(); string cmd = ""; if ((year!=0) && (month !=0) && (day !=0)){ string str_month = ""; @@ -692,5 +689,4 @@ void help(){ g_print(" --lock-ntp Disable ntp field editing\n"); g_print(" --lock-datetime Disable datetime field editing\n"); g_print(" --lock-update Disable save changes\n"); - cout << "Параметры командной строки --lock-datetime\n --lock-timezone\n --lock-ntp\n --lock-update\n" << endl; } \ No newline at end of file diff --git a/ubl-settings-datetime.glade b/ubl-settings-datetime.glade index ae6f203..f7021fe 100644 --- a/ubl-settings-datetime.glade +++ b/ubl-settings-datetime.glade @@ -129,7 +129,7 @@ 255 True False - Настройки даты и времени + Date and time settings @@ -205,38 +205,6 @@ 5 5 vertical - - - True - True - False - 5 - 5 - 5 - 6 - 6 - True - - - 145 - True - False - 5 - 5 - 5 - 5 - 6 - 6 - Синхронизировать через NTP - - - - - False - True - 0 - - True @@ -251,7 +219,7 @@ 5 6 6 - Время + Time True 0 @@ -333,7 +301,7 @@ 5 6 6 - Дата + Date True 0 @@ -348,8 +316,8 @@ 191 True True - Дата -Формат: ДД.ММ.ГГГГ + Date +Format: DD.MM.YYYY 5 5 5 @@ -439,7 +407,7 @@ False center center - Синхронизировать + Sync by False @@ -495,7 +463,7 @@ False center center - Синхронизировать аппаратное время + Synchronize hardware time @@ -542,13 +510,12 @@ True False - Регион 5 5 5 5 8 - Регион + Region 0 @@ -577,13 +544,12 @@ True False - Зона 5 5 10 5 8 - Зона + Area 0 @@ -637,7 +603,7 @@ True False - Часовой пояс + Time Zone
@@ -653,7 +619,7 @@ True False - Локальная настройка + Local Configuration
@@ -712,7 +678,7 @@ True False - Синхронизировать через NTP + Synchronize via NTP
@@ -794,7 +760,7 @@ 5 5 8 - Регион + Region 0
@@ -828,7 +794,7 @@ 10 5 8 - Зона + Area 0
@@ -891,7 +857,7 @@ True False - Глобальная настройка + Global customization
-- 2.35.1 From 83f2d10a2d608600e8af9717f8b3405323655f59 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Tue, 31 Jan 2023 10:51:23 +0600 Subject: [PATCH 07/12] =?UTF-8?q?=D0=94=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=20Readme=20=D1=84=D0=B0=D0=B9=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/README.md b/README.md index b5c8c4d..6a12544 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,30 @@ # ubl-settings-datetime # Настройки даты и времени +[RU] Утилита для настройки даты и времени + +Utility for setting the date and time + ![alt text](screenshot/screenshot.png) +# Build +In order to build check-hostalive you will need: + +- CMake +- C compiler +- GTK+ 3 & dependencies + +Once you have all the necessary dependencies, you can use: +```sh +$ make +``` + +# Installation +After a successful build, just use: +```sh +$ sudo make install clean +``` + +# Uninstallation +After a successful build, just use: +```sh +$ sudo make uninstall -- 2.35.1 From 29fb58915a04ef6ec6d5cd96159f168fe5f63d75 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Tue, 31 Jan 2023 11:14:07 +0600 Subject: [PATCH 08/12] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20Readme=20=D1=84=D0=B0=D0=B9=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a12544..c267919 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Utility for setting the date and time ![alt text](screenshot/screenshot.png) # Build -In order to build check-hostalive you will need: +In order to build ubl-settings-datetime you will need: - CMake - C compiler @@ -28,3 +28,14 @@ $ sudo make install clean After a successful build, just use: ```sh $ sudo make uninstall +``` +# Usage +```sh +$ check-hostalive --help +Usage: ubl-settings-datetime [--lock-timezone] [--lock-ntp] [--lock-datetime] [--lock-update] +Options: + --lock-timezone Disable timezone field editing + --lock-ntp Disable ntp field editing + --lock-datetime Disable datetime field editing + --lock-update Disable save changes +``` -- 2.35.1 From 2fe93244d1292c03d9ac4d741a845b04eadae132 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Tue, 31 Jan 2023 11:14:10 +0600 Subject: [PATCH 09/12] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20Readme=20=D1=84=D0=B0=D0=B9=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c267919..aa70440 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ $ sudo make uninstall ``` # Usage ```sh -$ check-hostalive --help +$ ubl-settings-datetime --help Usage: ubl-settings-datetime [--lock-timezone] [--lock-ntp] [--lock-datetime] [--lock-update] Options: --lock-timezone Disable timezone field editing -- 2.35.1 From d6ca8af99cc5e0fe61f1233788d45c868738e3d2 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Tue, 31 Jan 2023 12:39:52 +0600 Subject: [PATCH 10/12] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=B2=20pkexec,=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20desktop=20=D1=84=D0=B0=D0=B9=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/main.cc | 8 +-- source/ubl-settings-datetime.cc | 47 +++++++++++++++--- source/ubl-settings-datetime.h | 6 +++ ubl-settings-datetime.desktop | 2 +- ubl-settings-datetime.glade | 86 ++++++++++++++++++++++++++++++++- ubl-settings-datetime_ru.po | 3 ++ 6 files changed, 135 insertions(+), 17 deletions(-) diff --git a/source/main.cc b/source/main.cc index 46295a7..2363a00 100644 --- a/source/main.cc +++ b/source/main.cc @@ -25,11 +25,7 @@ int main(int argc, char* argv[]) { for (int i=1; iset_translation_domain(app_name); for (int i=0; iset_translation_domain(app_name); Glib::init(); Glib::OptionContext context; CmdArgParser parser{ diff --git a/source/ubl-settings-datetime.cc b/source/ubl-settings-datetime.cc index a64c36e..1fc22c6 100644 --- a/source/ubl-settings-datetime.cc +++ b/source/ubl-settings-datetime.cc @@ -64,15 +64,30 @@ MainWindow::MainWindow(Glib::RefPtr const& builder) { void MainWindow::settings(){ year=0, month=0, day=0; this->get_builder(); - this->lacalization(); - _numTimeHrs->set_range(0,23); - _numTimeMin->set_range(0,59); - _numTimeHrs->set_increments(1.0,1.0); - _numTimeMin->set_increments(1.0,1.0); - this->get_config(); - this->flag_block_gui(); this->event(); - this->parse_text_date(); + if (this->check_root()==0){ + this->lacalization(); + _numTimeHrs->set_range(0,23); + _numTimeMin->set_range(0,59); + _numTimeHrs->set_increments(1.0,1.0); + _numTimeMin->set_increments(1.0,1.0); + this->get_config(); + this->flag_block_gui(); + this->parse_text_date(); + } + else{ + this->hide(); + //exit(1); + } +} + +int MainWindow::check_root(){ + if (geteuid()!=0){ + _lblMessageSudo->set_text(gettext("The program must be run with \nsuperuser privileges!")); + _mess_sudo->show(); + return 1; + } + return 0; } void MainWindow::lacalization(){ @@ -189,15 +204,30 @@ void MainWindow::get_builder(){ builder->get_widget("lblDateTimeSettingGlob",_lblDateTimeSettingGlob); 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("btnMessCloseSudo",_btnMessCloseSudo); + + //builder->get_widget("cbxSynchronizeNtp",_cbxSynchronizeNtp); this->add_CSS(); } +void MainWindow::gui_exit(){ + exit(1); +} + +bool MainWindow::gui_exit_2(GdkEventAny* event){ + if (event!=NULL){} + exit(1); + return true; +} void MainWindow::event(){ //_cbxSynchronizeNtpGlob->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::set_ntp_toggle)); _btnHardwareTime->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::hardware_clock)); _btnMessClose->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::gui_mess_close)); + _btnMessCloseSudo->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::gui_exit)); //_cldrDate->signal_day_selected().connect(sigc::mem_fun(*this, &MainWindow::get_calendar)); _cbxSynchronizeNtpGlob->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::set_ntp_toggle_glob)); _btnUpdateDateTime->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::update_time_date)); @@ -209,6 +239,7 @@ void MainWindow::event(){ _cbZoneGlob->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::enter_zone_glob)); _txtNtpServer->signal_focus_out_event().connect(sigc::mem_fun(*this, &MainWindow::focus_ntp)); _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)); } void MainWindow::set_ntp_toggle(){ diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h index 4dd0cc9..20ff007 100644 --- a/source/ubl-settings-datetime.h +++ b/source/ubl-settings-datetime.h @@ -75,11 +75,15 @@ class MainWindow : public Gtk::ApplicationWindow { void parse_text_date(); void hardware_clock(); void set_ntp_toggle_glob(); + int check_root(); + void gui_exit(); + bool gui_exit_2(GdkEventAny* event); vector split(const std::string &s, char delim); private: Glib::RefPtr builder; Gtk::Button *_btnUpdateDateTime; Gtk::Button *_btnChooseDate; + Gtk::Button *_btnMessCloseSudo; Gtk::Button *_btnMessClose; Gtk::ComboBoxText *_cbDhcp; Gtk::SpinButton *_numTimeHrs; @@ -93,9 +97,11 @@ class MainWindow : public Gtk::ApplicationWindow { Gtk::ComboBoxText *_cbZoneGlob; Gtk::Entry *_txtNtpServer; Gtk::Window *_mess_dchp; + Gtk::Window *_mess_sudo; Gtk::Popover *_popCalendar; Gtk::Calendar *_cldrDate; Gtk::Label *_lblMessage; + Gtk::Label *_lblMessageSudo; Gtk::Label *_lblDateTimeSetting; Gtk::Label *_lblHead; Gtk::Label *_lblTime; diff --git a/ubl-settings-datetime.desktop b/ubl-settings-datetime.desktop index 2225ea4..87d86f7 100644 --- a/ubl-settings-datetime.desktop +++ b/ubl-settings-datetime.desktop @@ -7,7 +7,7 @@ GenericName[ru]=Настройка даты и времени Comment=Date time settings Comment[ru]=Приложение для настройки даты и времени Type=Application -Exec=ubl-settings-datetime +Exec=pkexec ubl-settings-datetime Icon=ubl-settings-datetime Terminal=false Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings; \ No newline at end of file diff --git a/ubl-settings-datetime.glade b/ubl-settings-datetime.glade index f7021fe..a919ff1 100644 --- a/ubl-settings-datetime.glade +++ b/ubl-settings-datetime.glade @@ -5,6 +5,7 @@ False Внимание! + dialog True @@ -42,7 +43,7 @@ center 6 6 - Введите DHCP ! + Enter DHCP ! True @@ -79,6 +80,89 @@
+ + False + Внимание! + center + dialog + + + True + False + vertical + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + 50 + gtk-dialog-warning + + + True + True + 0 + + + + + 160 + True + False + start + center + 5 + 5 + 5 + 5 + 6 + 6 + Enter DHCP ! + + + True + True + 1 + + + + + False + True + 1 + + + + + OK + True + True + True + 5 + 5 + 5 + 5 + 3 + 3 + + + False + True + 1 + + + + + False Настройки даты и времени diff --git a/ubl-settings-datetime_ru.po b/ubl-settings-datetime_ru.po index 62bf046..7f7f769 100644 --- a/ubl-settings-datetime_ru.po +++ b/ubl-settings-datetime_ru.po @@ -6,6 +6,9 @@ msgid "" msgstr "" +msgid "The program must be run with \nsuperuser privileges!" +msgstr "Программа должна быть запущена с правами \nсуперпользователя!" + msgid "Manually" msgstr "Вручную" -- 2.35.1 From 5645f375b3fe94a652cd48cd9a10be80bdb4bf59 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Tue, 31 Jan 2023 12:56:30 +0600 Subject: [PATCH 11/12] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0=20=D0=BE=D0=BA=D0=BD=D0=B0,=20=D0=B5=D1=81?= =?UTF-8?q?=D0=BB=D0=B8=20=D0=B7=D0=B0=D0=BF=D1=83=D1=89=D0=B5=D0=BD=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=BD=D0=B5=20=D0=BE=D1=82=20sudo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/ubl-settings-datetime.cc | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/source/ubl-settings-datetime.cc b/source/ubl-settings-datetime.cc index 1fc22c6..9ea6713 100644 --- a/source/ubl-settings-datetime.cc +++ b/source/ubl-settings-datetime.cc @@ -76,8 +76,29 @@ void MainWindow::settings(){ this->parse_text_date(); } else{ - this->hide(); - //exit(1); + _numTimeHrs->set_sensitive(false); + _numTimeMin->set_sensitive(false); + _lblTime->set_sensitive(false); + _lblData->set_sensitive(false); + _txtDate->set_sensitive(false); + _btnChooseDate->set_sensitive(false); + _btnUpdateDateTime->set_sensitive(false); + _btnHardwareTime->set_sensitive(false); + _cbRegion->set_sensitive(false); + _cbZone->set_sensitive(false); + _lblReg->set_sensitive(false); + _lblZone->set_sensitive(false); + _lblTimeZone->set_sensitive(false); + _lblDateTimeSettingGlob->set_sensitive(false); + _cbxSynchronizeNtpGlob->set_sensitive(false); + _lblSynchronizebChkGLob->set_sensitive(false); + _cbDhcp->set_sensitive(false); + _txtNtpServer->set_sensitive(false); + _lblTimeZoneGlob->set_sensitive(false); + _lblRegGlob->set_sensitive(false); + _lblZone1Glob->set_sensitive(false); + _lblDateTimeSetting->set_sensitive(false); + } } -- 2.35.1 From d8899037406f2e8162d2a57f8c8a07dfee012b21 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Tue, 31 Jan 2023 14:55:02 +0600 Subject: [PATCH 12/12] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D1=81=D0=BA=D1=80=D0=B8=D0=BD=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20REDME=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- screenshot/screenshot.png | Bin 35649 -> 47669 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshot/screenshot.png b/screenshot/screenshot.png index 39c88a4f9edcc2d975aea96ed69d7e5a5063a2a2..e5addb251b41e10e915203223e18cd1792d5458b 100644 GIT binary patch literal 47669 zcmY&adxYPGVS?F+{Rfmm>?+n9ios(}Nkg)(6hXUiW zh(;U~z6p;g`DQDWhawqNp!MFF|BTPEO>5++L)f6FYmKW%OqQSMbTdbJ0_p7Gp89-Z zvRnPmd&|3wg^1gQ&OAW|PsjWM0l~AHJO00q2?LzssV_~#R8cGe--jC^|2u{CPEv~; zn^if^4ja@af-<3IL~hO)#nK2|B`Sx%Y=rlDGgyLB?i~m|@bR)?F~00qmr8uU=$PSu zcgx_7BvAizb3G|?NTuopfs_(|uu`#MA|f;7)W4!)+Ey%`^z>B$%KgT@|58qCPLi0VL$m>sG{2y49MS#Q6&NgZ`@!xJ*S^ z<4}x((MSVnecxWLuN!Ia}x7TxECwAXU`dY&|N@_L9&;!krINt3BF13OKB zw?{%ZknvjT#DAZw-I8VSa{9KNLE;<)B8!BAM8ogyk0USNtjL1xw^zNjG{D?Ll!3=@ zukNJHBxrNc%DH>QBtsw3kRB4>^zBayELb*2UI>5~B6+-@|EUW6^cZk#MJI3x#5R8s zqZjRdblui6ViQ?x2WIrM2~Q?l`?Va&&1adG@G<%JpaYv(55@(_Om zkC%SPQPyFM*Xg6a@PbKKDFr!b)4jD8H4MgC4i6e9@sy2yDbj=x31&<_DmxP*Cx2L+ zC(&v4S$IZcj~>{Oi=B@p7H+8?7M!8=TS=yU=?>;*KOb+JsyNu%vTxzx=khDdtO}&7$RkhTzX%yYPDP3M+)nZB-$?a^;q$))Z@ft zfA?&(Z70Qv@??B&-MHvX-7n>TeK|+E6U&bq-#6JUpGh+eKze!DXmL1yxjQYUeH@7C zQBHw1S7`wQh4MUW^>piChvMf!Qp1WzTj=21@nl@4Y7O%IuHmMxDwu{2-E+CmgGb>I z3TF=ZnNyus>vQFo+jlx)-8bY^Q2HfUbs+>MNB&bx>6vva;AsZs9PU^1l7Z1;-E)K- z`58}@j{66Zsi~fW!r#BCK?m9q2lflvN%z?lDKeJMTg7q*tx8QVjE; z;}69Pb;jbLEyO-6VYh=CPCmu+dWb^ofN67biq^P@|1By1)`9DXby#@WK%05%N+hYJ z^{6uXEiP?I36|(%o2Y)IBBtDA3#%Tw?9Q^w4twY25i~d86L_Jj?#0GLZD#Q1*jy)8 zn(FEHtU5ys7p^zRcvH!a9j%oddRqX!G*4Q#N-NQT7orde#l zvwg8f=ah*do#O(xY2^7#*s0-AIY+c_&sB!XL@A(DInRWLNbKdF8nkX>9?afzFM@-a zCk89zq1ElUKh}6S$C=$VUz#MX(ySG5IQqf4Gw86|*4O0D)t@%+Uj)5JHHcp8dU~X5!QdRf)nvc4G0Ucu)RY>%&M@9cxL+A* z{C@qz2Ev|*@Nggwq8L!U!*Oa|_cJ^wGBT3*xrST^`VG4rN8&mQoL z8E3k?eAV|Lzy(QVpD~aTwpfh19ZxfPzNU-PBYpeEmsRt#5W+*`U~5kk^f-E`WoW3X z-DWUv&}v@IAJN5`Hfa(P1-0zWWo-4vRmPgj=j zt}>4>b%wNZW27@ajk)^Wb%#*P#>t`*Mu%?Z48VK42T#HMK zf6Q+Wk4$;OiJM7fxfrChr9!6kc*Cw zst{!a?g)aW>j)Rp7?fW1bTiY~ba~uvPnxE(JdI)9Je+g8h@iJp zb3bXd7esjRGhw*0Ch-7N1a^ZWMEGs^QThr2`o z8_4hPO;%>t(ud~ul*|%k5#x-;9-0vo&f7!!yd2Iubn1OwT#1X&=iYi20`Lbn*?*40 z=);Q}f6Wtc=&{IMUcX(Xu^C?P+tn%O3EDl5>wvJ|gu~^-0^xv(Kh%)a>2Y;c)71^* zynWEUy1atR2Vm`Vtp#3O!6u`SK{QY0k2grbyB{@c;`XoG)TH1Qi{@l2F@LpA^U+|I zQ^rTDvmk`0wZ=3mE(yolriu#ARO4kH+D{<}Pq(M*7dh1Q(Cn*y!K=$JGKzWcLCb9c z8&-LKezVgiS_W>X%NOsvb?;?nM@PO2!5IS(uf?MGDUY@&KJ4+a%hzM7)A_Zd*{(35 z!Wvdb;b0gHJ&M$!w{H@x=w`0 z_~aBL&F&#M<+cwB44kHdJXMylCMc6!<}`>6qMAj=SNGEr^0y9dJ)HYuhS%_wL5!#E zWd_|8KMU)bN(pM1?1(KB20K8G6)GC1`)r%x#l2+)4jOhC)W}5LIdI>`5DK&5V9HUy zlL0T4c|;`N9RIftDMBAp(ww$hz=_3u;h4zquNUuCB8GM}tD38gdYbJtt0Lh=ut49w z$&h!$9BC5G?_?Dfufo3CseE)89Zo2^JzL2Uy##8f&mtDHtyz4S?C4M8K#@eAUT?$if2)PBmpTL|lxvMh4J?1}wGg+&TtTXx9%poo z!_~!8XaLZyS1L>cL$IR0{66c$SlLAS8&Dxb_rtl?l+fL}x=I!f>iylxYKm;|+9?}* z-SF7dR*S_Lex5%(=)&vyM$1SL`qR5CTSyQmqFTS({$ZAu=XF~OrPXmW`_pP8ZIoOL zq3>XZ)#+9byZ`PXx7D6dj`=YNZph_5y^`+zgViHWNpF2pIF_JI`P#kFU-Il@y5<->aIGxTc}a?Q3Nl#lkBS`oB+2^u_Ly!wgAvoyI^x{Mft? zHm!B2UD4*Ve$0TzjBrPfzklr%o}C(q2_-wnz{Wwyaho=jd5^k<$7-WGyA zy3DP#nbq#H+#1V3Sd02*i)>-kORsWGKrmbO1>A?tBJW#U}xHF_k*%oci^32{sohvNU6r2-MKmh!Qdnp!OP|M3x>+o}Kld{0R=_WD1LAtr6UBKE%evNUnj46Rn!4%8q~p_G;trz~U%SLrysI zv;fK9VK4)3qc#gDJ*+jYz9v0gB=YOWGN~71^o~)QfdcS+*WkyNbgrEfw(7g7zxQxY zY$b7}f+|dXxu1mj!)Q)Qrm~EJRlvPICH$Y=G6^LU#`wM%lvSo;T!!Zlhh`Uzp%W(!CeMg9XLmyVYk(hK;Lt!5~Je-L>{=Vo^ z!#qLsLktxh>B?8$aKhk{$=vU=9Exd?TNUO?d&Ozvhp`ZaOqDJ_O)e#6Fu1Exffrub z*26_l^ZmoZT}Dw-%zJ#DTQOt-y1qd+j4E#TnqsPV^1XD21@r=ZQ_1;r&>muCgv_^9 zKbGMwmkl2;Z5i4Wy^9p6H%Q*-Df*o2lqr}?zC04ikJeP5>rrzkm6Y^k@q|yaV&tev ze)Pq!2>MFJl*RHyj$rK-bDL#2^Olsx4HcvT{uVnoOgKqc->$UK&N+BOWB#Q|Y@&%L zGt7I$$TgdurY(+kF1N?tzBy^Us`8UMqAWtmEL?TrtO(M0F&ZOLMfv!LH_S>Zo$=QA zxlo-9ktycL*^<$MiLx}6$b5#k6?j77Dq--`4Ii%G28JE$XumI1!0p)VRuImrtRyMB ziQufDIf-B^N#?tGk2b{k#11=~4kz~Dy$>!?9vVne&gC@y(=eimvS^q!d)eU@1q zbzsLu4Od2OS0I<-%Ib!l2JP_^S}=uzD+^wdMMgX+C8}{cGk8YztvFX+2#rFhxY`oE zny}2>b!}b(syg!Ce=Rm_x1qsZ+r{!i}JO@6zRs{`)DT;AJ zNdC5&!4P6{pSBDey`JERE^qnQN^|rd{(Z1QXJ;1*BRu|4?^eGH<|IJx|4C)(HkCxt zrK*-}&BHX}5UsFCx@ylCwX$A<|CwA~N+1*+83C03d4HxzPD@LRT)>%v09^=Zp7^F; zyWG}=Jyyi191U$d{}Um{4DZ|K;GLRFE1bI!^)>*5Q)os`J(iZ1h+_s56BBt2o2`%`OtRo&X9&9c!=FF$h&%P7v-gRnltv*)Jkakh9V(1|{^e#+Bc<;sQJf+W z`>z0Q+z=~XlmrI>Iqxnsu15!* z?77>nG)C9{*-}$anab4+Z?V@>rKVSWAo=QT-}PI=t15}228M@5!PPj@MTJ}Et!t<4 zf`Xb=DL;|jdFd?|pXTrdOjMgA7OtI&W`-$g6cT9^2tr28aS$cck~=y&LQt^q@bR-I zEK?_vI+S>#RaQbVNl!dFN6e`Z&?K;aUslW72bD z3dAZ_pUC~_14)uB?bA!64)kjSK)iBFm!zPEn+rA9!TctP+-uC2g&|8FA=?ZxIIpW9 zZyBN?*pykMyMbMyd_ZN4SWH zi}}78(MJqyC}j99MN-CU5OzWyH)Ph3URjAM4hDay>aYI-wr|ju$3YJ1wQbIvuoP7b z_qi<-?9abx_$R`S8cd_`B|BiUAf^!mIb_Bf7wAdkek^3zheBIV*AEZ=mi=B?A|^IE!K-jH$E=B6{Di`LPx{q*W-h}sIU|<;5wf^`qZ`-U}qnX&T zcFIS9u3VPn)1ls8wvsJn`Wo_#5#ATjv$gFUA7d8E84<-!6cbr!-MSVdOZ{mdV@a_T zpNBg^zPP!$xxSu*pPwHuDxn~kWh~wq5m*d+P$+b7FX6?gx`^e&hF!UlTCy<*1FB>| zfT-km24iDC7ulj2;7p`s8KL$V-Gqv+0WkH)H#kXoI|4}~{VpU^txBZZu}Dr@pzrN; z2#lfF@La!u5y7)BpL&$|50=yz4fLloL?Ra@q+^;#zU>%z&D2Ua%+t=z+X;T@SpoaQ z)}lNY`G7j@56)7b*0`wI{GaZz4^g>1Oiw;dhH8=<@ zr=qg5vR73#ktS*&Se4ktIl|D9gJ2vFC<5d^6H_IhkmjGLFhtj<(iRVU5Z}S z$z~{4afx1mIlCS2oU_Bsch1f}ikjUA4%KFJ7gy(dx|Iaw)^%Q2?@J=o&{@N<5&$F& zsuMJJjK4Si2d z7AKse%y(6h&k(tF4m=4j>KhkDO106Jf~6zJ;D-+%2zInt25m`s;XI~`Ds9cos6n`R zc!?vRmrJr3%;NPhQv82$rVT}*E_$nQU4ruk8{b$<8YXWlQ4 zAK~&wwGlbgI!rj5G+03Xvv5+nDGMHExT~8R0A?&>A^;oZS4Fv%BazeBMx{&|8NL#k zy3jY}mHu)o2Ws2N+$j!?w}5?q7cl_4?73kNXwXdF%^l|a_pG8!?s@lo=n+-XdMP{e zely&>TX{Oc>&xwsxNMJFwB3|)30%>D1s7uy7jYHV)V$JrL zBXLj>3umm=)ZVFC+P6^l=JqR4MN(ztgpK=Pei|2)qk2~~BmaZCN@Mi{$6!rO4bY}6 zEDVNvH{M1leOq`G*bXj>;sWq=?R4L}8-O-@KH?bJj_AlA?;Z%_h7f|p4Gqb37Nqo_ z?H!64(W=gA6$)2_7i7)lx33^3`plfW00x;3RK$gY((R#SbTofV9m0CO$KoWI8DULZR)L_VBMvT`*rT| zLsi-XZV|h=Lzt!N{WeaA4tbg7xCfU+h8x9VqztNvzNmx2kwXhDxo@Pw04)H6CoH+C zBWXf~Xe11WZzTj}zc-~%?51;P@=RTQmuh4g+Hvt`Ol%bU#Nt|32OtS9A|+AG*;=bg zA`KAAFzV!!?`t{5zeg3OURj2pbBA^)9oZ%}R2k+0i16rCR8(}}BObw85GOiLWTgiG zVr2y?jBf(A4B!Oo8EYQgw;2xUn@?Xi!Mp-KQaP}VL|&D!^!9L9<>_S~EaV_U?!@DPL0N!K0u2bWD7;+brL!`j-pT_4y6P9Abt4(mfFzmPR2a1ItS zbZj`5%_+EpZ2k)yP)9ZE-hh)S%l(81#p$xWbJHwwNxd3ARAChuQpkH5 zTc_;{OhT`kTUr2I`OAFu;3qQGsn7Psw;KM;BSQY;SmS5(w8cfuyeTecx{I;jpo=e%uv?PGFMux7d-OC$ca{N)86om=)j3 zBV9VEqn#ps2LB_|+)x{wF@uFI{xKtGfj}la{ks@E&JHSv>T>ne;@4uVd=HL-y3HX} z*`Hfy;dnK{;uK@9G&rVP4I0v zqQv_>4K1yuui4RZjc$xjRb~;A6^QgJoqYC)`Z{e&{4S(5fgI` z?y4RH2g7Gg$QnF%$(W#0Hmy`Md~$Gbu(M;P`I)Bwd#G@xd)$ci$t~j45|vUXm3sU8 z+#$`}s{@%@phu*fyxCLJ$(G>;`csmQQ8cH{uTKWz#RGz|W>)@lcS(j79YtY9y{|KE z*L4F~xi9ug+RXfC(*y$&hf;r!S-J5iwNFGq=fCkd1SrVZGNfIjSY8y@`E+$TA=H4w#zC#m0P^kZBG64Q7)Ph+qColAFBHBV+IraPa%X_jy!Z-ZO*4C zcAo2Q7vqX5#0e%<*N!`CHeHu&Y8m}a3OdnHf!UIXxujwld)mgvrlPNT+H}e2yLg;+ zsQAVk53d^t$|sfI`Y*Gb1x_x!^x5!1*nNcbS)_-uQSm4dcXaA$EeZ+>&MZQ_M!xHX zVQ#zp4ylf-V{~P5khaaTucW}=7}lFzKgv)9gSl>IF@mZ|*cy6+yA=6Qra4j86nv2E zU9fldthfggg>CbqmAuLm-<;UCN~20>jpHk^TD<;w6S-*xTXeq8P|@sa+|{G)i;dzm z{=odUyfJ3zgW$eor{I=tBhjj*0CnO?On;`--*-I(YVVxk|9Xp$YkWreI0Ki3#hVSg zKgQ4F`x``_W0;=g82<7GL#eI=aWwYv(BSsn;;qC;@eS#+AKf)TC%jM9$eAW^U(abKWc7H~ zBR=F^^O|6kp67`kDBY&v?k$vTiQddq8f%Onz(q@d>#0@*zv}CprN7EpJb2qw5}4_q zUpQ3Qtgin-Gb4K=D~`%xEVG~7#zgSWX_^`IVdqX0()w?$i$9n5aNmtC3w>y#*JDG< z2maHP62tc8$;L$h|FoP_a+vgT$0uFw)Qcp{+{d$tCA}A$%N1}#JOk$OlIg=;Id50M zCmpFfmN>h}_)jRsl0K>DiP@XjZqJ2F<<29w2zOmw_u@tTb0``}V_(SX#)))A0#uO< zD)YL9Q`@sG*q}OQ^GZ)~EW*pXN!Z5CG#Uo6@F=P#RbAv<>8n4bNZ;Y@s6d`4!jC;f zT?Yu8o=(1hFWNHTGQsHLT$6PsHIh9z-G+QQ2xoj0Alm;#)H7FU8Ha7G^rx6Cm#6(G z+2nhtfa|F z#P^F+@)Lo0Usz`6;ReyJ((GpsS}M=($^v`|jHzx#<)#dIZlXZ*`Kj09CHe!qI{qK( zhx4LHXWx1B(LWyho)TetKEEN|*Ut;$u=0e_JE?0`T8H3d!L?_fTmO!L*yxrs`QC=VvgdBu| zqE=M|Px!gQGK@1!Zp(=8bazxOWnhE-ic{te`NStlvndyvj;{YW`A@oo)qp2ECRG;Y zAO+6c-iKUkT5npesb+=fSbd<#=HPmUD|xX*PFdg@{;8+iFDi4JIfyfL=Vjt3jy|rD zAZ9ln9z>wAa-Q7Kca`I?6)Vp)Va^4{I5Ofb?`d7=2^gD{;=KU{VvkNtfQE?JuWH%z$~fAqpC*>x zShH~Mb7A&mJd)bH`BToB(IxC?OB?D6K87+U=Jr^gOy-H2OkWl?oXV!74TM_E!ha-+ zWtlGGe-%*@@@MR}I`|gia?9_-6&VhUJ%r^xb51rLJvb6914axIwp*-lv&udicPVF@ z+|A?WhmL0?O^Lo}6eVbB$P82(b7TvBRhCd=1W^R)(|&iM_xEuM>4YMQDNjeed@)1H z%l{SOkEK9J{zV<4m1NvY=l&ehVHztbIgMh#^THalk~7&EWg#S)Qb$+pL?^L=##*`|d`8NOjr64){>v1fT|R!) zS7W!Vh)|7-m0;^5v4zpXP03ja{%Tdpj0u7U0Oe<;UxWUX*Y{KglL$ks zBR1@*=AD|-Ck4$adyNkoC$=ttu7uT8t}QR|h@u^*9vcZa0ppiP(i)wE-fm<698Dv7 ziKTZG8+TGd7AkLxxhd5f2H%A8Fx8y@!tvj4F7uX#sn>~pQ3#wQfQ35F<>sHSkegKx zQ(r|(jlLb8G1mr9rUyi>n9mXm6H?(teY}`Yib`YYCD0o$U74dZ0c(Ph%$h6bc}1qa ze-Nw!G0gUy`aB&-d%o5OKrn7R6=HL(^P_M*^ta0&9(fOt`$`J~ZfjqK{EZ)@59P=< zumQ@zP~T&#YSt8<^1ce_BW+6|<8|oUdQwLIHB)&ux!dfb#~_rHj6^e_*TSHn?=X&@ zBG5EZH66lwx>H*!sBiBRFK0ArcB;X(4^U8NfOT#UakFz z`jjM6Ui#Yqi9bHFhpQr+jj|$slU4D{L&fELm&(wAureg`o%S;0@LAW4axPrTawM)q-Jcc~dJJGsmZuN=n-_ya zXdgvkUp>X#XOuiGeKd>)rx^mfo#l)>=(95d7d{V`irJ>`A!)ja>q^dC$)}~uNcDGt z=?`fO$5mPv5l?<**XRdC6xT>C^W(dYcYy0$%xv%6+}GOI?fcfpKGSU&h7 z!smBj+;a7Dya!>`>DVohBlFpwVvl#aERkfv^F2B&v$d@}H~9B-dFkpOn$TDI_kuuy zVaSxo8p=6&4cgrF!8r5!+g=5EdWyrZ`;#u}ekG-1@UrIHqu-EuEHU&cMXFl(4a#hy z@@(t(usl8wjVdwcu_6_%iS~mcnK2cy)8zGRl1x>i?%`0S<<r2U-i@OyK9iH|iZa=O@mRYFfWliim3mh}r3Rz7kECUSB7Pkj~7^jEss>kfSYoKIV?- z@DgQEwht0@-Thw3&=-aQ&^x-MH^;XGp2XM8{1;v#B$&kL$Wa55-H_>$YD@Uo9eJkA z-uDOE1VRFL%?=V*r3|A9)N;|tW)>E-BiuCle(s+1lHWge13D|_RlzptRs8Zm&UbbN zoEKx7tc4wmw+*c`z(ko9k0QLy-raF+Wa+$o3vQNDGIZ|!RwNr2uoJU%ceX(sH?#%& z6GA(dYT$8bpO^1lsXYm`ETF z_uCB#0o}fjKIN7M>Q_?i&;Apsrv=Wt^PJS=oi9sHklUW~+cVfr9DAOq3kxW;=gq{GgX<+sU?Ro#g>Ye1&mhTh7 ze-GYwD3Es_ucz$kxGZGckyZbTDpxeseYtovu~v0V9HyZ;p3U>RZx>+BMZ`JiqM-Z3 z=cAVGbuTf%fQshY zew4XkRI6{tMHCRQ;^$woz~4y@IZXMw<`MckL0uLDa*%5Dv(tGd_9Z;v>mF^=Q0%;P zDosUu`$H2gGYRIpVvL;xB!M3kYw;d;x;yi`4S=jb29=02A~6drZXOY7H9B#N@557 zYPws0oQ{I&Htlsf^9cD^FR-)sSdX@;@yKxEK`tgdwVXD)pH#nE*o@3y6gfRy#1(su zpL#$$-)=rXS7D{qwCL7cLC1+i&7J=W@7$NPZqj$RaVra3crA$k*A=%i@;}Z}((@!0 z;K?^yxsEV9e_rABs6ql!sa-go`=JsTeSOvW_TWvhbJP)b_u5KB7NtZi7|Ktu`Rtd_ zYuxs{E{MQ1szmpG>gwF@;;U4Yue=44O`{`%89;M~@gr7{v=k;B4)QJD`=mWwMpsq_ z^Z=XUJ8D@14B5-Cq?bWNxlk9${QWvn%H+SQD9QKh7!UQrc2s}n^ZK61@|_%DA_&^i z$l1mat6C{Yn2N<-AQIZyMw`ito>R}>g_myEX3xt@3GBtGV8j@3SCV^N{u5`=)-r-j zZJ>=l-Y7!yRb#p3YHN3p;6T-MMRTa4+0SD?{4p+H){8$`%z1Y1Z+ZDviHQdUw7Bnu zoeH059tUNvlIIAg?X*dK{R%aNjBR%yt#Ayn4-CYUTPF5B9svvGtf34KX4H zL3>^fZeadRcp$c}y|Yu_+oXTAcKmF5u+zTQ*T3{vQ!=Qe71Tx}7VuPeb>$j2&)>53bXAZwLa}f_1@zsFf>)Y{X%J_>}tJftNORv&D|z z^ZaVnM6cqv6Ne>Jq~`I+$rP#ba)kj(=l2bx_!n7NyWY0fGL(lDhz1@1`6rq%9Fvp@ z=<2eu0lwgE=eC(sLVg(0qgQQTz~F8~+{?ZeUlc8yLNO~FtR|~vVD@WPs?+lG^n@5} z-1sYpJ82PndqK=fCjBv>?w*Wn+QZ^F1#ockc74Hbi_o22M3&Piul7vyeI$;W%(X`ZmN+{W2P z0NKZuoOC-pc4nK22fUu3Cm+BsHz6uN9uZ_} zpCKXvTVYs6u(hI|G>biPC03C0cPZ2W@AIATV

@b$s%lb{kK1U6;EdGPQmXj_ar` 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 literal 35649 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 Z61VXH?IEN`bocfR