diff --git a/Makefile b/Makefile index 3813ef7..21263cf 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,6 @@ DEPENDS = /bin/cmake PREFIX ?= /usr/local PKGNAME = $(MAKEFILE_DIR) FILE_VER = source/${PKGNAME}.h -PKGIDENT=$(subst /,-,${PREFIX}) default_target: all @@ -22,9 +21,9 @@ all: init build init: @echo "Initialize ..."; \ - if [ -d ".git" ]; then \ + if [[ -d ".git" ]]; then \ LATEST_TAG=$$(git describe --abbrev=0 --tags | sed 's/^v//'); \ - if [ -z "$${LATEST_TAG}" ]; \ + if [[ -z "$${LATEST_TAG}" ]]; \ then \ LATEST_TAG=$$"0.0"; \ echo "$${LATEST_TAG} is empty"; \ @@ -38,7 +37,7 @@ init: depend: @echo "Check depends ..." @for FILE_DEPEND in $(DEPENDS); do \ - if [ ! -f $${FILE_DEPEND} ]; then \ + if [[ ! -f "$${FILE_DEPEND}" ]]; then \ echo "ERROR: Depend '$${FILE_DEPEND}' not found !"; \ exit 1; \ fi; \ @@ -48,21 +47,21 @@ depend: debug: @echo "Debug ..." - if [ ! -d ${CMAKE_BUILD_DIR} ]; then \ + if [[ ! -d "${CMAKE_BUILD_DIR}" ]]; then \ $(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \ fi; \ echo "Debug: OK" prepare: @echo "Prepare ..."; \ - if [ ! -d ${CMAKE_BUILD_DIR} ]; then \ + if [[ ! -d "${CMAKE_BUILD_DIR}" ]]; then \ $(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \ fi; \ echo "Prepare: OK" check: @echo "Check ..."; \ - if [ -f ${CMAKE_BUILD_DIR}/${PKGNAME} ]; then \ + if [[ -f "${CMAKE_BUILD_DIR}/${PKGNAME}" ]]; then \ echo "Check: OK"; \ else \ echo "Check: ${CMAKE_BUILD_DIR}/${PKGNAME} not found !"; \ @@ -77,10 +76,9 @@ build: depend prepare uninstall: @echo "Uninstall ..." - @for FILE_PO in $(wildcard *.po); do \ - LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \ - FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \ - PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \ + @for LANG in $$(find ./locale -iname "*.po" -print | sed -En "s/.+_([[:alpha:]]+)\.po/\1/p" | sort -u); do \ +# PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \ + PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \ $(RM) "$${PATH_FILE_MO}"; \ done @for SIZE in 16x16 32x32 48x48 scalable; do \ @@ -92,55 +90,64 @@ uninstall: $(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \ done; \ done + @for FILE_ICON in $(wildcard icons/*/*.svg); do \ + SUB_NAME=$${FILE_ICON#*/}; SUB_NAME=$${SUB_NAME%/*}; \ + $(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/$${SUB_NAME}/$${FILE_ICON}"; \ + done @$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}" @$(RM) "${DESTDIR}${PREFIX}/share/applications/${PKGNAME}.desktop" - @$(RM) "${DESTDIR}/usr/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg" - @$(RM) "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy" - @if [ -z ${DESTDIR} ]; then \ - [ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \ + @if [[ "${PREFIX}" == @("/usr"|"/usr/") ]]; then \ + $(RM) "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}.policy"; \ + else \ +# $(RM) "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \ + $(RM) "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \ + fi + @if [[ -z "${DESTDIR}" ]]; then \ + [[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ]] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \ update-desktop-database --quiet &>/dev/null || true; \ - [ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \ + [[ -d "${DESTDIR}${PREFIX}/share/applications" ]] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \ fi @echo "Uninstall: OK" install: check uninstall @echo "Install ..." - @for FILE_PO in $(wildcard *.po); do \ - LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \ - install -dm755 "${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES"; \ - FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \ - PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \ - echo "$${FILE_PO}"; \ - msgfmt "$${FILE_PO}" -v -f -o "$${PATH_FILE_MO}"; \ + @for LANG in $$(find ./locale -iname "*.po" -print | sed -En "s/.+_([[:alpha:]]+)\.po/\1/p" | sort -u); do \ + install -dm755 "${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES"; \ +# PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \ + PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \ + PKGNAME_PO="./locale/${PKGNAME}_$${LANG}.po"; [[ -f "$${PKGNAME_PO}" ]] || PKGNAME_PO= ; \ + msgfmt --verbose --use-fuzzy --output-file "$${PATH_FILE_MO}" - < <(msgcat --use-first --no-wrap $${PKGNAME_PO} ./locale/*_$${LANG}.po); \ done @for SIZE in 16 32 48; do \ - install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \ - rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \ + install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \ + rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "icons/apps/com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \ + done + @for FILE_ICON in $(wildcard icons/*/*.svg); do \ + SUB_NAME=$${FILE_ICON#*/}; SUB_NAME=$${SUB_NAME%/*}; \ + install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/$${SUB_NAME}" $${FILE_ICON}; \ done - @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg" - @cp ./com.ublinux.${PKGNAME}.policy ./compile/com.ublinux.${PKGNAME}${PKGIDENT}.policy - @sed -e 's+/usr/bin+${PREFIX}/bin+' -e 's+.run+${PKGIDENT}.run+g' ./compile/com.ublinux.${PKGNAME}${PKGIDENT}.policy -i @install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}" @install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop" - @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg" - @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg" - @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.plug-connected-symbolic.svg" - @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.plug-disconnected-symbolic.svg" - @install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "${CMAKE_BUILD_DIR}/com.ublinux.${PKGNAME}${PKGIDENT}.policy" - @install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "locales.csv" - @install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "fonts.csv" - @install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "auth-profile.csv" - @if [ -z ${DESTDIR} ]; then \ - [ -d "${DESTDIR}/usr/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}/usr/share/icons/hicolor/" &>/dev/null || true; \ + @if [[ "${PREFIX}" == @("/usr"|"/usr/") ]]; then \ + install -Dm644 -t "${DESTDIR}${PREFIX}/share/polkit-1/actions/" "com.ublinux.${PKGNAME}.policy"; \ + else \ +# install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \ + install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \ +# sed -e "s+/usr/bin+${PREFIX}/bin+" -e "s+\.run+$${PREFIX//\//-}\.run+g" -i "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \ + sed -e "s+/usr/bin+${PREFIX}/bin+" -e "s+\.run+$${PREFIX//\//-}\.run+g" -i "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \ + fi + @if [[ -z "${DESTDIR}" ]]; then \ + ldconfig -n ${DESTDIR}${PREFIX}/lib; \ + [[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ]] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \ update-desktop-database --quiet &>/dev/null || true; \ - [ -d "${DESTDIR}/usr/share/applications" ] && touch "${DESTDIR}/usr/share/applications" &>/dev/null || true; \ + [[ -d "${DESTDIR}${PREFIX}/share/applications" ]] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \ fi @echo "Install: OK" clean: @echo "Clean ..." @$(RM) -rd ${CMAKE_BUILD_DIR} - @if [ -d ${CMAKE_BUILD_DIR} ]; then \ + @if [[ -d "${CMAKE_BUILD_DIR}" ]]; then \ echo "Clean: error, compile directory exist ${CMAKE_BUILD_DIR}"; \ else \ echo "Clean: OK"; \ diff --git a/com.ublinux.ubl-settings-system.checked.svg b/com.ublinux.ubl-settings-system.checked.svg deleted file mode 100644 index e3cab42..0000000 --- a/com.ublinux.ubl-settings-system.checked.svg +++ /dev/null @@ -1,327 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/com.ublinux.ubl-settings-system.warning.svg b/com.ublinux.ubl-settings-system.warning.svg deleted file mode 100644 index 9a90dba..0000000 --- a/com.ublinux.ubl-settings-system.warning.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/gresource.xml b/gresource.xml index 4038613..0b49684 100644 --- a/gresource.xml +++ b/gresource.xml @@ -10,7 +10,4 @@ ubl-settings-system.css - - ubl-settings-system-banner.png - \ No newline at end of file diff --git a/com.ublinux.ubl-settings-system.svg b/icons/apps/com.ublinux.ubl-settings-system.svg similarity index 100% rename from com.ublinux.ubl-settings-system.svg rename to icons/apps/com.ublinux.ubl-settings-system.svg diff --git a/com.ublinux.ubl-settings-system.plug-connected-symbolic.svg b/icons/status/com.ublinux.ubl-settings-system.plug-connected-symbolic.svg similarity index 100% rename from com.ublinux.ubl-settings-system.plug-connected-symbolic.svg rename to icons/status/com.ublinux.ubl-settings-system.plug-connected-symbolic.svg diff --git a/com.ublinux.ubl-settings-system.plug-disconnected-symbolic.svg b/icons/status/com.ublinux.ubl-settings-system.plug-disconnected-symbolic.svg similarity index 100% rename from com.ublinux.ubl-settings-system.plug-disconnected-symbolic.svg rename to icons/status/com.ublinux.ubl-settings-system.plug-disconnected-symbolic.svg diff --git a/locale/locales.pot b/locale/locales.pot new file mode 100644 index 0000000..c460889 --- /dev/null +++ b/locale/locales.pot @@ -0,0 +1,534 @@ +# Russian translations for ubl-settings-system package. +# Copyright (C) 2022, UBTech LLC +# This file is distributed under the same license as the ubl-settings-system package. +# UBLinux Team , 2022 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: ubl-settings-system 1.0\n" +"Report-Msgid-Bugs-To: info@ublinux.com\n" +"POT-Creation-Date: 2023-04-25 15:52+0600\n" +"PO-Revision-Date: 2023-01-01 00:00+0600\n" +"Last-Translator: UBLinux Team \n" +"Language-Team: UBLinux Team \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ./locales.csv:1 +msgid "Afrikaans, South Africa" +msgstr "" + +#: ./locales.csv:2 +msgid "Arabic, United Arab Emirates" +msgstr "" + +#: ./locales.csv:3 +msgid "Arabic, Bahrain" +msgstr "" + +#: ./locales.csv:4 +msgid "Arabic, Algeria" +msgstr "" + +#: ./locales.csv:5 +msgid "Arabic, Egypt" +msgstr "" + +#: ./locales.csv:6 +msgid "Arabic, Iraq" +msgstr "" + +#: ./locales.csv:7 +msgid "Arabic, Jordan" +msgstr "" + +#: ./locales.csv:8 +msgid "Arabic, Kuwait" +msgstr "" + +#: ./locales.csv:9 +msgid "Arabic, Libya" +msgstr "" + +#: ./locales.csv:10 +msgid "Arabic, Morocco" +msgstr "" + +#: ./locales.csv:11 +msgid "Arabic, Oman" +msgstr "" + +#: ./locales.csv:12 +msgid "Arabic, Qatar" +msgstr "" + +#: ./locales.csv:13 +msgid "Arabic, Saudi Arabia" +msgstr "" + +#: ./locales.csv:14 +msgid "Arabic, Tunisia" +msgstr "" + +#: ./locales.csv:15 +msgid "Arabic, Yemen" +msgstr "" + +#: ./locales.csv:16 +msgid "Assamese, India" +msgstr "" + +#: ./locales.csv:17 +msgid "Azerbaijani, Azerbaijan" +msgstr "" + +#: ./locales.csv:18 +msgid "Belarusian, Belarus" +msgstr "" + +#: ./locales.csv:19 +msgid "Bulgarian, Bulgaria" +msgstr "" + +#: ./locales.csv:20 +msgid "Bengali, India" +msgstr "" + +#: ./locales.csv:21 +msgid "Bosnian, Bosnia and Herzegovina" +msgstr "" + +#: ./locales.csv:22 +msgid "Catalan, Spain" +msgstr "" + +#: ./locales.csv:23 +msgid "Czech, Czech Republic" +msgstr "" + +#: ./locales.csv:24 +msgid "Danish, Denmark" +msgstr "" + +#: ./locales.csv:25 +msgid "German, Austria" +msgstr "" + +#: ./locales.csv:26 +msgid "German, Belgium" +msgstr "" + +#: ./locales.csv:27 +msgid "German, Switzerland" +msgstr "" + +#: ./locales.csv:28 +msgid "German, Germany" +msgstr "" + +#: ./locales.csv:29 +msgid "German, Liechtenstein" +msgstr "" + +#: ./locales.csv:30 +msgid "German, Luxembourg" +msgstr "" + +#: ./locales.csv:31 +msgid "Greek, Cyprus" +msgstr "" + +#: ./locales.csv:32 +msgid "Greek, Greece" +msgstr "" + +#: ./locales.csv:33 +msgid "English, Australia" +msgstr "" + +#: ./locales.csv:34 +msgid "English, Botswana" +msgstr "" + +#: ./locales.csv:35 +msgid "English, Canada" +msgstr "" + +#: ./locales.csv:36 +msgid "English, United Kingdom" +msgstr "" + +#: ./locales.csv:37 +msgid "English, Hong Kong SAR China" +msgstr "" + +#: ./locales.csv:38 +msgid "English, Ireland" +msgstr "" + +#: ./locales.csv:39 +msgid "English, India" +msgstr "" + +#: ./locales.csv:40 +msgid "English, Malta" +msgstr "" + +#: ./locales.csv:41 +msgid "English, New Zealand" +msgstr "" + +#: ./locales.csv:42 +msgid "English, Philippines" +msgstr "" + +#: ./locales.csv:43 +msgid "English, Singapore" +msgstr "" + +#: ./locales.csv:44 +msgid "English, U.S.A." +msgstr "" + +#: ./locales.csv:45 +msgid "English, Zimbabwe" +msgstr "" + +#: ./locales.csv:46 +msgid "Spanish, Argentina" +msgstr "" + +#: ./locales.csv:47 +msgid "Spanish, Bolivia" +msgstr "" + +#: ./locales.csv:48 +msgid "Spanish, Chile" +msgstr "" + +#: ./locales.csv:49 +msgid "Spanish, Colombia" +msgstr "" + +#: ./locales.csv:50 +msgid "Spanish, Costa Rica" +msgstr "" + +#: ./locales.csv:51 +msgid "Spanish, Dominican Republic" +msgstr "" + +#: ./locales.csv:52 +msgid "Spanish, Ecuador" +msgstr "" + +#: ./locales.csv:53 +msgid "Spanish, Spain" +msgstr "" + +#: ./locales.csv:54 +msgid "Spanish, Guatemala" +msgstr "" + +#: ./locales.csv:55 +msgid "Spanish, Honduras" +msgstr "" + +#: ./locales.csv:56 +msgid "Spanish, Mexico" +msgstr "" + +#: ./locales.csv:57 +msgid "Spanish, Nicaragua" +msgstr "" + +#: ./locales.csv:58 +msgid "Spanish, Panama" +msgstr "" + +#: ./locales.csv:59 +msgid "Spanish, Peru" +msgstr "" + +#: ./locales.csv:60 +msgid "Spanish, Puerto Rico" +msgstr "" + +#: ./locales.csv:61 +msgid "Spanish, Paraguay" +msgstr "" + +#: ./locales.csv:62 +msgid "Spanish, El Salvador" +msgstr "" + +#: ./locales.csv:63 +msgid "Spanish, U.S.A." +msgstr "" + +#: ./locales.csv:64 +msgid "Spanish, Uruguay" +msgstr "" + +#: ./locales.csv:65 +msgid "Spanish, Venezuela" +msgstr "" + +#: ./locales.csv:66 +msgid "Estonian, Estonia" +msgstr "" + +#: ./locales.csv:67 +msgid "Finnish, Finland" +msgstr "" + +#: ./locales.csv:68 +msgid "French, Belgium" +msgstr "" + +#: ./locales.csv:69 +msgid "French, Canada" +msgstr "" + +#: ./locales.csv:70 +msgid "French, Switzerland" +msgstr "" + +#: ./locales.csv:71 +msgid "French, France" +msgstr "" + +#: ./locales.csv:72 +msgid "French, Luxembourg" +msgstr "" + +#: ./locales.csv:73 +msgid "Gujarati, India" +msgstr "" + +#: ./locales.csv:74 +msgid "Hebrew, Israel" +msgstr "" + +#: ./locales.csv:75 +msgid "Hindi, India" +msgstr "" + +#: ./locales.csv:76 +msgid "Croatian, Croatia" +msgstr "" + +#: ./locales.csv:77 +msgid "Hungarian, Hungary" +msgstr "" + +#: ./locales.csv:78 +msgid "Armenian, Armenia" +msgstr "" + +#: ./locales.csv:79 +msgid "Indonesian, Indonesia" +msgstr "" + +#: ./locales.csv:80 +msgid "Icelandic, Iceland" +msgstr "" + +#: ./locales.csv:81 +msgid "Italian, Switzerla" +msgstr "" + +#: ./locales.csv:82 +msgid "Italian, Italy" +msgstr "" + +#: ./locales.csv:83 +msgid "Japanese, Japan" +msgstr "" + +#: ./locales.csv:84 +msgid "Georgian, Georgia" +msgstr "" + +#: ./locales.csv:85 +msgid "Kazakh, Kazakhstan" +msgstr "" + +#: ./locales.csv:86 +msgid "Kannada, India" +msgstr "" + +#: ./locales.csv:87 +msgid "Korean, Korea" +msgstr "" + +#: ./locales.csv:88 +msgid "Kashmiri, India" +msgstr "" + +#: ./locales.csv:89 +msgid "Kurdish, Turkey" +msgstr "" + +#: ./locales.csv:90 +msgid "Kurdish (Sorani), Turkey" +msgstr "" + +#: ./locales.csv:91 +msgid "Kirghiz, Kyrgyzstan" +msgstr "" + +#: ./locales.csv:92 +msgid "Lithuanian, Lithuania" +msgstr "" + +#: ./locales.csv:93 +msgid "Latvian, Latvia" +msgstr "" + +#: ./locales.csv:94 +msgid "Macedonian, Macedonia" +msgstr "" + +#: ./locales.csv:95 +msgid "Malayalam, India" +msgstr "" + +#: ./locales.csv:96 +msgid "Marathi, India" +msgstr "" + +#: ./locales.csv:97 +msgid "Malay, Malaysia" +msgstr "" + +#: ./locales.csv:98 +msgid "Maltese, Malta" +msgstr "" + +#: ./locales.csv:99 +msgid "Bokmal, Norway" +msgstr "" + +#: ./locales.csv:100 +msgid "Dutch, Belgium" +msgstr "" + +#: ./locales.csv:101 +msgid "Dutch, Netherlands" +msgstr "" + +#: ./locales.csv:102 +msgid "Nynorsk, Norway" +msgstr "" + +#: ./locales.csv:103 +msgid "Oriya, India" +msgstr "" + +#: ./locales.csv:104 +msgid "Punjabi, India" +msgstr "" + +#: ./locales.csv:105 +msgid "Polish, Poland" +msgstr "" + +#: ./locales.csv:106 +msgid "Portuguese, Brazil" +msgstr "" + +#: ./locales.csv:107 +msgid "Portuguese, Portugal" +msgstr "" + +#: ./locales.csv:108 +msgid "Romanian, Romania" +msgstr "" + +#: ./locales.csv:109 +msgid "Russian, Russia" +msgstr "" + +#: ./locales.csv:110 +msgid "Russian, Ukraine" +msgstr "" + +#: ./locales.csv:111 +msgid "Sanskrit, India" +msgstr "" + +#: ./locales.csv:112 +msgid "Slovak, Slovakia" +msgstr "" + +#: ./locales.csv:113 +msgid "Slovenian, Slovenia" +msgstr "" + +#: ./locales.csv:114 +msgid "Albanian, Albania" +msgstr "" + +#: ./locales.csv:115 +msgid "Serbian, Montenegro" +msgstr "" + +#: ./locales.csv:116 +msgid "Serbian, Montenegro (Latin)" +msgstr "" + +#: ./locales.csv:117 +msgid "Serbian, Serbia" +msgstr "" + +#: ./locales.csv:118 +msgid "Serbian, Serbia (Latin)" +msgstr "" + +#: ./locales.csv:119 +msgid "Swedish, Sweden" +msgstr "" + +#: ./locales.csv:120 +msgid "Tamil, India" +msgstr "" + +#: ./locales.csv:121 +msgid "Telugu, India" +msgstr "" + +#: ./locales.csv:122 +msgid "Thai, Thailand" +msgstr "" + +#: ./locales.csv:123 +msgid "Turkish, Turkey" +msgstr "" + +#: ./locales.csv:124 +msgid "Ukrainian, Ukraine" +msgstr "" + +#: ./locales.csv:125 +msgid "Vietnamese, Vietnam" +msgstr "" + +#: ./locales.csv:126 +msgid "Simplified Chinese, China" +msgstr "" + +#: ./locales.csv:127 +msgid "Traditional Chinese, Hong Kong SAR China" +msgstr "" + +#: ./locales.csv:128 +msgid "Chinese, Singapore" +msgstr "" + +#: ./locales.csv:129 +msgid "Traditional Chinese, Taiwan" +msgstr "" diff --git a/locale/locales_ru.po b/locale/locales_ru.po new file mode 100644 index 0000000..9e9266b --- /dev/null +++ b/locale/locales_ru.po @@ -0,0 +1,534 @@ +# Russian translations for ubl-settings-system package. +# Copyright (C) 2022, UBTech LLC +# This file is distributed under the same license as the ubl-settings-system package. +# UBLinux Team , 2022 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: ubl-settings-system 1.0\n" +"Report-Msgid-Bugs-To: info@ublinux.com\n" +"POT-Creation-Date: 2023-04-25 15:52+0600\n" +"PO-Revision-Date: 2023-01-01 00:00+0600\n" +"Last-Translator: UBLinux Team \n" +"Language-Team: Russian - UBLinux Team \n" +"Language: Russian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ./locales.csv:1 +msgid "Afrikaans, South Africa" +msgstr "Африкаанс, Южная Африка" + +#: ./locales.csv:2 +msgid "Arabic, United Arab Emirates" +msgstr "Арабский, Объединенные Арабские Эмираты" + +#: ./locales.csv:3 +msgid "Arabic, Bahrain" +msgstr "Арабский, Бахрейн" + +#: ./locales.csv:4 +msgid "Arabic, Algeria" +msgstr "Арабский, Алжир" + +#: ./locales.csv:5 +msgid "Arabic, Egypt" +msgstr "Арабский, Египет" + +#: ./locales.csv:6 +msgid "Arabic, Iraq" +msgstr "Арабский, Ирак" + +#: ./locales.csv:7 +msgid "Arabic, Jordan" +msgstr "Арабский, Иордания" + +#: ./locales.csv:8 +msgid "Arabic, Kuwait" +msgstr "Арабский, Кувейт" + +#: ./locales.csv:9 +msgid "Arabic, Libya" +msgstr "Арабский, Ливия" + +#: ./locales.csv:10 +msgid "Arabic, Morocco" +msgstr "Арабский, Марокко" + +#: ./locales.csv:11 +msgid "Arabic, Oman" +msgstr "Арабский, Оман" + +#: ./locales.csv:12 +msgid "Arabic, Qatar" +msgstr "Арабский, Катар" + +#: ./locales.csv:13 +msgid "Arabic, Saudi Arabia" +msgstr "Арабский, Саудовская Аравия" + +#: ./locales.csv:14 +msgid "Arabic, Tunisia" +msgstr "Арабский, Тунис" + +#: ./locales.csv:15 +msgid "Arabic, Yemen" +msgstr "Арабский, Йемен" + +#: ./locales.csv:16 +msgid "Assamese, India" +msgstr "Ассамский, Индия" + +#: ./locales.csv:17 +msgid "Azerbaijani, Azerbaijan" +msgstr "Азербайджанский, Азербайджан" + +#: ./locales.csv:18 +msgid "Belarusian, Belarus" +msgstr "Белорусский, Беларусь" + +#: ./locales.csv:19 +msgid "Bulgarian, Bulgaria" +msgstr "Болгарский, Болгария" + +#: ./locales.csv:20 +msgid "Bengali, India" +msgstr "Бенгальский, Индия" + +#: ./locales.csv:21 +msgid "Bosnian, Bosnia and Herzegovina" +msgstr "Боснийский, Босния и Герцеговина" + +#: ./locales.csv:22 +msgid "Catalan, Spain" +msgstr "Каталанский, Испания" + +#: ./locales.csv:23 +msgid "Czech, Czech Republic" +msgstr "Чешский, Чехия" + +#: ./locales.csv:24 +msgid "Danish, Denmark" +msgstr "Датский, Дания" + +#: ./locales.csv:25 +msgid "German, Austria" +msgstr "Немецкий, Австрия" + +#: ./locales.csv:26 +msgid "German, Belgium" +msgstr "Немецкий, Бельгия" + +#: ./locales.csv:27 +msgid "German, Switzerland" +msgstr "Немецкий, Швейцария" + +#: ./locales.csv:28 +msgid "German, Germany" +msgstr "Немецкий, Германия" + +#: ./locales.csv:29 +msgid "German, Liechtenstein" +msgstr "Немецкий, Лихтенштейн" + +#: ./locales.csv:30 +msgid "German, Luxembourg" +msgstr "Немецкий, Люксембург" + +#: ./locales.csv:31 +msgid "Greek, Cyprus" +msgstr "Греческий, Кипр" + +#: ./locales.csv:32 +msgid "Greek, Greece" +msgstr "Греческий, Греция" + +#: ./locales.csv:33 +msgid "English, Australia" +msgstr "Английский, Австралия" + +#: ./locales.csv:34 +msgid "English, Botswana" +msgstr "Английский, Ботсвана" + +#: ./locales.csv:35 +msgid "English, Canada" +msgstr "Английский, Канада" + +#: ./locales.csv:36 +msgid "English, United Kingdom" +msgstr "Английский, Великобритания" + +#: ./locales.csv:37 +msgid "English, Hong Kong SAR China" +msgstr "Английский, Гонконг (САР Китая)" + +#: ./locales.csv:38 +msgid "English, Ireland" +msgstr "Английский, Ирландия" + +#: ./locales.csv:39 +msgid "English, India" +msgstr "Английский, Индия" + +#: ./locales.csv:40 +msgid "English, Malta" +msgstr "Английский, Мальта" + +#: ./locales.csv:41 +msgid "English, New Zealand" +msgstr "Английский, Новая Зеландия" + +#: ./locales.csv:42 +msgid "English, Philippines" +msgstr "Английский, Филиппины" + +#: ./locales.csv:43 +msgid "English, Singapore" +msgstr "Английский, Сингапур" + +#: ./locales.csv:44 +msgid "English, U.S.A." +msgstr "Английский, США" + +#: ./locales.csv:45 +msgid "English, Zimbabwe" +msgstr "Английский, Зимбабве" + +#: ./locales.csv:46 +msgid "Spanish, Argentina" +msgstr "Испанский, Аргентина" + +#: ./locales.csv:47 +msgid "Spanish, Bolivia" +msgstr "Испанский, Боливия" + +#: ./locales.csv:48 +msgid "Spanish, Chile" +msgstr "Испанский, Чили" + +#: ./locales.csv:49 +msgid "Spanish, Colombia" +msgstr "Испанский, Колумбия" + +#: ./locales.csv:50 +msgid "Spanish, Costa Rica" +msgstr "Испанский, Коста-Рика" + +#: ./locales.csv:51 +msgid "Spanish, Dominican Republic" +msgstr "Испанский, Доминиканская Республика" + +#: ./locales.csv:52 +msgid "Spanish, Ecuador" +msgstr "Испанский, Эквадор" + +#: ./locales.csv:53 +msgid "Spanish, Spain" +msgstr "Испанский, Испания" + +#: ./locales.csv:54 +msgid "Spanish, Guatemala" +msgstr "Испанский, Гватемала" + +#: ./locales.csv:55 +msgid "Spanish, Honduras" +msgstr "Испанский, Гондурас" + +#: ./locales.csv:56 +msgid "Spanish, Mexico" +msgstr "Испанский, Мексика" + +#: ./locales.csv:57 +msgid "Spanish, Nicaragua" +msgstr "Испанский, Никарагуа" + +#: ./locales.csv:58 +msgid "Spanish, Panama" +msgstr "Испанский, Панама" + +#: ./locales.csv:59 +msgid "Spanish, Peru" +msgstr "Испанский, Перу" + +#: ./locales.csv:60 +msgid "Spanish, Puerto Rico" +msgstr "Испанский, Пуэрто-Рико" + +#: ./locales.csv:61 +msgid "Spanish, Paraguay" +msgstr "Испанский, Парагвай" + +#: ./locales.csv:62 +msgid "Spanish, El Salvador" +msgstr "Испанский, Сальвадор" + +#: ./locales.csv:63 +msgid "Spanish, U.S.A." +msgstr "Испанский, США" + +#: ./locales.csv:64 +msgid "Spanish, Uruguay" +msgstr "Испанский, Уругвай" + +#: ./locales.csv:65 +msgid "Spanish, Venezuela" +msgstr "Испанский, Венесуэла" + +#: ./locales.csv:66 +msgid "Estonian, Estonia" +msgstr "Эстонский, Эстония" + +#: ./locales.csv:67 +msgid "Finnish, Finland" +msgstr "Финский, Финляндия" + +#: ./locales.csv:68 +msgid "French, Belgium" +msgstr "Французский, Бельгия" + +#: ./locales.csv:69 +msgid "French, Canada" +msgstr "Французский, Канада" + +#: ./locales.csv:70 +msgid "French, Switzerland" +msgstr "Французский, Швейцария" + +#: ./locales.csv:71 +msgid "French, France" +msgstr "Французский, Франция" + +#: ./locales.csv:72 +msgid "French, Luxembourg" +msgstr "Французский, Люксембург" + +#: ./locales.csv:73 +msgid "Gujarati, India" +msgstr "Гуджарати, Индия" + +#: ./locales.csv:74 +msgid "Hebrew, Israel" +msgstr "Иврит, Израиль" + +#: ./locales.csv:75 +msgid "Hindi, India" +msgstr "Хинди, Индия" + +#: ./locales.csv:76 +msgid "Croatian, Croatia" +msgstr "Хорватский, Хорватия" + +#: ./locales.csv:77 +msgid "Hungarian, Hungary" +msgstr "Венгерский, Венгрия" + +#: ./locales.csv:78 +msgid "Armenian, Armenia" +msgstr "Армянский, Армения" + +#: ./locales.csv:79 +msgid "Indonesian, Indonesia" +msgstr "Индонезийский, Индонезия" + +#: ./locales.csv:80 +msgid "Icelandic, Iceland" +msgstr "Исландский, Исландия" + +#: ./locales.csv:81 +msgid "Italian, Switzerla" +msgstr "Итальянский, Швейцария" + +#: ./locales.csv:82 +msgid "Italian, Italy" +msgstr "Итальянский, Италия" + +#: ./locales.csv:83 +msgid "Japanese, Japan" +msgstr "Японский, Япония" + +#: ./locales.csv:84 +msgid "Georgian, Georgia" +msgstr "Грузинский, Грузия" + +#: ./locales.csv:85 +msgid "Kazakh, Kazakhstan" +msgstr "Казахский, Казахстан" + +#: ./locales.csv:86 +msgid "Kannada, India" +msgstr "Каннада, Индия" + +#: ./locales.csv:87 +msgid "Korean, Korea" +msgstr "Корейский, Корея" + +#: ./locales.csv:88 +msgid "Kashmiri, India" +msgstr "Кашмирский, Индия" + +#: ./locales.csv:89 +msgid "Kurdish, Turkey" +msgstr "Курдский, Турция" + +#: ./locales.csv:90 +msgid "Kurdish (Sorani), Turkey" +msgstr "Курдский (сорани), Турция" + +#: ./locales.csv:91 +msgid "Kirghiz, Kyrgyzstan" +msgstr "Киргизский, Киргизия" + +#: ./locales.csv:92 +msgid "Lithuanian, Lithuania" +msgstr "Литовский, Литва" + +#: ./locales.csv:93 +msgid "Latvian, Latvia" +msgstr "Латышский, Латвия" + +#: ./locales.csv:94 +msgid "Macedonian, Macedonia" +msgstr "Македонский, Македония" + +#: ./locales.csv:95 +msgid "Malayalam, India" +msgstr "Малаялам, Индия" + +#: ./locales.csv:96 +msgid "Marathi, India" +msgstr "Маратхи, Индия" + +#: ./locales.csv:97 +msgid "Malay, Malaysia" +msgstr "Малайский, Малайзия" + +#: ./locales.csv:98 +msgid "Maltese, Malta" +msgstr "Мальтийский, Мальта" + +#: ./locales.csv:99 +msgid "Bokmal, Norway" +msgstr "Букмол, Норвегия" + +#: ./locales.csv:100 +msgid "Dutch, Belgium" +msgstr "Нидерландский, Бельгия" + +#: ./locales.csv:101 +msgid "Dutch, Netherlands" +msgstr "Нидерландский, Нидерланды" + +#: ./locales.csv:102 +msgid "Nynorsk, Norway" +msgstr "Нюнорск, Норвегия" + +#: ./locales.csv:103 +msgid "Oriya, India" +msgstr "Ория, Индия" + +#: ./locales.csv:104 +msgid "Punjabi, India" +msgstr "Панджаби, Индия" + +#: ./locales.csv:105 +msgid "Polish, Poland" +msgstr "Польский, Польша" + +#: ./locales.csv:106 +msgid "Portuguese, Brazil" +msgstr "Португальский, Бразилия" + +#: ./locales.csv:107 +msgid "Portuguese, Portugal" +msgstr "Португальский, Португалия" + +#: ./locales.csv:108 +msgid "Romanian, Romania" +msgstr "Румынский, Румыния" + +#: ./locales.csv:109 +msgid "Russian, Russia" +msgstr "Русский, Россия" + +#: ./locales.csv:110 +msgid "Russian, Ukraine" +msgstr "Русский, Украина" + +#: ./locales.csv:111 +msgid "Sanskrit, India" +msgstr "Санскрит, Индия" + +#: ./locales.csv:112 +msgid "Slovak, Slovakia" +msgstr "Словацкий, Словакия" + +#: ./locales.csv:113 +msgid "Slovenian, Slovenia" +msgstr "Словенский, Словения" + +#: ./locales.csv:114 +msgid "Albanian, Albania" +msgstr "Албанский, Албания" + +#: ./locales.csv:115 +msgid "Serbian, Montenegro" +msgstr "Сербский, Черногория" + +#: ./locales.csv:116 +msgid "Serbian, Montenegro (Latin)" +msgstr "Сербский, Черногория (латиница)" + +#: ./locales.csv:117 +msgid "Serbian, Serbia" +msgstr "Сербский, Сербия" + +#: ./locales.csv:118 +msgid "Serbian, Serbia (Latin)" +msgstr "Сербский, Сербия (латиница)" + +#: ./locales.csv:119 +msgid "Swedish, Sweden" +msgstr "Шведский, Швеция" + +#: ./locales.csv:120 +msgid "Tamil, India" +msgstr "Тамильский, Индия" + +#: ./locales.csv:121 +msgid "Telugu, India" +msgstr "Телугу, Индия" + +#: ./locales.csv:122 +msgid "Thai, Thailand" +msgstr "Тайский, Таиланд" + +#: ./locales.csv:123 +msgid "Turkish, Turkey" +msgstr "Турецкий, Турция" + +#: ./locales.csv:124 +msgid "Ukrainian, Ukraine" +msgstr "Украинский, Украина" + +#: ./locales.csv:125 +msgid "Vietnamese, Vietnam" +msgstr "Вьетнамский, Вьетнам" + +#: ./locales.csv:126 +msgid "Simplified Chinese, China" +msgstr "Китайский (упрощенный), Китай" + +#: ./locales.csv:127 +msgid "Traditional Chinese, Hong Kong SAR China" +msgstr "Китайский (традиционный), Гонконг (САР Китая)" + +#: ./locales.csv:128 +msgid "Chinese, Singapore" +msgstr "Китайский, Сингапур" + +#: ./locales.csv:129 +msgid "Traditional Chinese, Taiwan" +msgstr "Китайский (традиционный), Тайвань" diff --git a/ubl-settings-system.pot b/locale/ubl-settings-system.pot similarity index 100% rename from ubl-settings-system.pot rename to locale/ubl-settings-system.pot diff --git a/ubl-settings-system_ru.po b/locale/ubl-settings-system_ru.po similarity index 100% rename from ubl-settings-system_ru.po rename to locale/ubl-settings-system_ru.po diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index d77379f..a92858d 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -8,24 +8,26 @@ include_directories(${GTK_INCLUDE_DIRS}) link_directories(${GTK_LIBRARY_DIRS}) add_definitions(${GTK_CFLAGS_OTHER}) +pkg_check_modules(VTE291 REQUIRED vte-2.91) +include_directories(${VTE291_INCLUDE_DIRS}) +link_directories(${VTE291_LIBRARY_DIRS}) +add_definitions(${VTE291_CFLAGS_OTHER}) + find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0) +option(WEBKIT_FOUND "No" OFF) if(WEBKIT_LIBRARIES_FOUND) + option(WEBKIT_FOUND "Yes" ON) PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-4.0 webkit2gtk-web-extension-4.0) include_directories(${WEBKIT_INCLUDE_DIRS}) link_directories(${WEBKIT_LIBRARY_DIRS}) add_definitions(${WEBKIT_CFLAGS_OTHER}) endif() -pkg_check_modules(VTE291 REQUIRED vte-2.91) -include_directories(${VTE291_INCLUDE_DIRS}) -link_directories(${VTE291_LIBRARY_DIRS}) -add_definitions(${VTE291_CFLAGS_OTHER}) - set(GRESOURCE_C resources.c) set(GRESOURCE_XML gresource.xml) -find_program(GLIB_COMPILE_RESOURCES NAMES glib-compile-resources REQUIRED) +find_program(GLIB_COMPILE_RESOURCES NAMES glib-compile-resources REQUIRED) add_custom_target(GLADE ubl-settings-system.glade) set(DEPENDFILES @@ -35,7 +37,6 @@ set(DEPENDFILES ../ubl-settings-system-domain-view.glade ../ubl-settings-system-layouts.glade ../gresource.xml - ../ubl-settings-system-banner.png ../ubl-settings-system.css ) @@ -59,18 +60,19 @@ add_custom_target( DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C} ) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \ - -O2 -pipe -fno-plt -fexceptions \ +add_definitions(-DVTE_INCLUDE) + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \ + -O2 -pipe -fno-plt -fexceptions \ -Wformat -Werror=format-security \ -fstack-clash-protection -fcf-protection") string(FIND "${CMAKE_CXX_FLAGS}" "-D_FORTIFY_SOURCE" FORTIFY_FOUND) if(FORTIFY_FOUND EQUAL -1) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wp,-D_FORTIFY_SOURCE=2") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wp,-D_FORTIFY_SOURCE=2") endif() - set(SOURCE_FILES ubl-settings-system.c ubl-settings-system.h @@ -79,7 +81,9 @@ set(SOURCE_FILES set(LIBRARIES ${GTK_LIBRARIES} - ${VTE291_LIBRARIES} + ${WEBKIT_LIBRARIES} + ${UTILS_LIBRARIES} + ${VTE291_LIBRARIES} pthread ublsettings ublsettings-gtk3 @@ -90,8 +94,8 @@ add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRE target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES}) target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR}) set_source_files_properties( - ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C} - PROPERTIES GENERATED TRUE + ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C} + PROPERTIES GENERATED TRUE ) install(TARGETS ${PROJECT_NAME} DESTINATION bin) add_dependencies(${PROJECT_NAME} dummy-resource) \ No newline at end of file diff --git a/source/ubl-settings-system.c b/source/ubl-settings-system.c index bcb6f1a..084d0c2 100644 --- a/source/ubl-settings-system.c +++ b/source/ubl-settings-system.c @@ -4,7 +4,7 @@ config main_config; //functions -void on_save_done(main_window *widgets, config_str output, int size){ +void on_save_done(main_window *, config_str output, int size){ char *final_output = yon_char_parsed_to_string(output,size,""); if (final_output){ printf("%s\n",final_output); @@ -39,59 +39,48 @@ void on_config_reload(GtkWidget *,main_window *widgets){ yon_interface_update(widgets); } -int yon_load_proceed(YON_CONFIG_TYPE type){ - if (type!=YON_CONFIG_CUSTOM){ - yon_config_clean(); - } +void yon_load_proceed(YON_CONFIG_TYPE type){ + yon_config_clean(); if (!yon_char_is_empty(config_get_default_command)) yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL); if (type==YON_CONFIG_GLOBAL){ yon_config_load_config(type,config_get_command("global"),NULL); - } - else if (type==YON_CONFIG_LOCAL){ + } else if (type==YON_CONFIG_LOCAL){ yon_config_load_config(type,config_get_command("system"),NULL); } else if (type==YON_CONFIG_CUSTOM){ - char *path; + char *path=""; textdomain(template_ui_LocaleName); GtkWidget *dialog = gtk_file_chooser_dialog_new(template_app_information.app_title,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL); textdomain(LocaleName); - yon_gtk_window_setup(GTK_WINDOW(dialog),NULL,TITLE_LABEL,main_icon,"LoadWindow"); + gtk_window_set_icon_name(GTK_WINDOW(dialog),"com.ublinux.ubl-settings-services"); + gtk_window_set_title(GTK_WINDOW(dialog),TITLE_LABEL); GtkFileFilter *filter = gtk_file_filter_new(); - gtk_file_filter_set_name(filter,"*.ini"); gtk_file_filter_add_pattern(filter,"*.ini"); + gtk_file_filter_set_name(filter, "*.ini"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter); gtk_widget_show(dialog); int response = gtk_dialog_run(GTK_DIALOG(dialog)); if (response == GTK_RESPONSE_ACCEPT){ char *file = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); if (!yon_char_is_empty(file)){ - path=yon_char_unite("'",file,"'",NULL); - main_config.custom_load_path = path; + path=file; } - yon_config_clean(); - yon_config_load_config(type,config_get_command(path),NULL); gtk_widget_destroy(dialog); } else { gtk_widget_destroy(dialog); - return 0; } + char *command = yon_char_unite(config_get_command(path),NULL); + yon_config_load_config(type,command,NULL); } - return 1; - } -void yon_config_local_load(GtkWidget *self, main_window *widgets){ +void yon_config_local_load(GtkWidget *, main_window *widgets){ yon_load_proceed(YON_CONFIG_LOCAL); - if (getuid()==0){ - textdomain(template_ui_LocaleName); - yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); - textdomain(LocaleName); - } - main_config.load_mode=1; + main_config.load_mode=YON_CONFIG_LOCAL; yon_interface_update(widgets); } -void yon_config_global_load(GtkWidget *self, main_window *widgets){ +void yon_config_global_load(GtkWidget *, main_window *widgets){ yon_load_proceed(YON_CONFIG_GLOBAL); if (getuid()==0){ textdomain(template_ui_LocaleName); @@ -102,15 +91,9 @@ void yon_config_global_load(GtkWidget *self, main_window *widgets){ yon_interface_update(widgets); } -void yon_config_custom_load(GtkWidget *self, main_window *widgets){ - if (!yon_load_proceed(YON_CONFIG_CUSTOM)) - return; - if (getuid()==0){ - textdomain(template_ui_LocaleName); - yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); - textdomain(LocaleName); - } - main_config.load_mode=1; +void yon_config_custom_load(GtkWidget *, main_window *widgets){ + yon_load_proceed(YON_CONFIG_CUSTOM); + main_config.load_mode=YON_CONFIG_CUSTOM; yon_interface_update(widgets); } @@ -169,7 +152,7 @@ void yon_interface_update(main_window *widgets){ char *lang = yon_config_get_by_key(language_parameter); char *avlocale = yon_config_get_by_key(locale_parameter); int locsize; - if (avlocale); + if (avlocale){}; config_str locale_parsed = yon_char_parse(avlocale,&locsize,","); gboolean is_active; char *locale_string=""; @@ -241,6 +224,7 @@ void yon_config_global_save(){ void yon_config_custom_save(){ main_config.save_config=3; template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_command("system"),NULL); + if (window){}; } void on_domain_address_save(GtkEntry *self){ @@ -258,7 +242,7 @@ void yon_gtk_windget_set_sensitive_from_entry_emptiness(GtkEntry *self, GtkWidge } } -void on_locale_toggle(GtkCellRendererToggle *self,GtkTreePath* path,GtkTreeViewColumn* column,locals_window *window){ +void on_locale_toggle(GtkCellRendererToggle *,GtkTreePath* path,GtkTreeViewColumn* ,locals_window *window){ GtkTreeIter iter; GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(window->MainTree)); gtk_tree_model_get_iter(model,&iter,path); @@ -297,7 +281,7 @@ void on_locale_accept(GtkWidget *self, dictionary *dict){ on_subwindow_close(self); } -void on_locale_open(GtkWidget *self, main_window *widgets){ +void on_locale_open(GtkWidget *, main_window *widgets){ locals_window *window = malloc(sizeof(locals_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_locales_path); window->Window = yon_gtk_builder_get_widget(builder,"localesLayoutsWindow"); @@ -328,7 +312,7 @@ void on_locale_open(GtkWidget *self, main_window *widgets){ } -void on_hostname_changed(GtkEntry *self, main_window *widgets){ +void on_hostname_changed(GtkEntry *self, main_window *){ char *text = (char*)gtk_entry_get_text(self); if (yon_config_get_by_key(hostname_parameter)){ yon_config_set(hostname_parameter,text); @@ -380,7 +364,7 @@ void on_id_changed(GtkEntry *self, main_window *widgets){ } -void on_id_copy(GtkButton *self, main_window *widgets){ +void on_id_copy(GtkButton *, main_window *widgets){ GtkClipboard *clipboard = gtk_clipboard_get_default(gdk_display_get_default()); const char *clipboard_id = gtk_entry_get_text(GTK_ENTRY(widgets->IDEntry)); gtk_clipboard_set_text(clipboard,clipboard_id,strlen(clipboard_id)); @@ -395,11 +379,12 @@ void on_console_font_changed(GtkComboBox *self, main_window *widgets){ gtk_combo_box_get_active_iter(self,&iter); char *code; gtk_tree_model_get(GTK_TREE_MODEL(widgets->fontlist),&iter,0,&code,-1); - if (code) - if (yon_config_get_by_key(console_font_parameter)){ - yon_config_set(console_font_parameter,code); - } else { - yon_config_register(console_font_parameter,CONSOLE_FONT_get_command,code); + if (code){ + if (yon_config_get_by_key(console_font_parameter)){ + yon_config_set(console_font_parameter,code); + } else { + yon_config_register(console_font_parameter,CONSOLE_FONT_get_command,code); + } } } } @@ -421,7 +406,7 @@ void on_language_changed(GtkComboBox *self, main_window *widgets){ } } -void on_terminal_done(VteTerminal *terminal, gint status, dictionary *dict){ +void on_terminal_done(VteTerminal *, gint status, dictionary *dict){ main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); GtkWidget *window = yon_dictionary_get_data(dict->first->next,GtkWidget*); if (!status){ @@ -430,7 +415,7 @@ void on_terminal_done(VteTerminal *terminal, gint status, dictionary *dict){ } } -void on_terminal_command_ended(VteTerminal *terminal, gint status, domain_info_window *window){ +void on_terminal_command_ended(VteTerminal *, gint status, domain_info_window *window){ // yon_ubl_status_box_despawn_infinite(GTK_CONTAINER(window->StatusBox)); if (!status){ yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"success",yon_char_get_localised_from_lib(SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE); @@ -459,7 +444,7 @@ domain_info_window *yon_information_window_new(){ return window; } -void on_domain_connect(GtkWidget *self, dictionary *dict){ +void on_domain_connect(GtkWidget *, dictionary *dict){ main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); connection_window *window = yon_dictionary_get_data(dict->first->next,connection_window*); char *adress = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry)); @@ -492,7 +477,7 @@ void on_domain_connect(GtkWidget *self, dictionary *dict){ on_config_reload(NULL,widgets); } -void on_status_clicked(GtkWidget *self, connection_window *window){ +void on_status_clicked(GtkWidget *, connection_window *window){ char *target = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry)); if (!yon_char_is_empty(target)){ yon_debug_output("%s\n",domain_info(target)); @@ -504,7 +489,7 @@ void on_status_clicked(GtkWidget *self, connection_window *window){ } } -void on_find_domains_clicked(GtkWidget *self, main_window *window){ +void on_find_domains_clicked(GtkWidget *, main_window *window){ domain_info_window *dialog = yon_information_window_new(); yon_terminal_integrated_start(dialog->ExecuteTerminal,domains_seek_command); @@ -514,7 +499,7 @@ void on_find_domains_clicked(GtkWidget *self, main_window *window){ } -void on_main_window_domain_status_clicked(GtkWidget *self, GtkEntryIconPosition icon_pos,GdkEvent* event,main_window *widgets){ +void on_main_window_domain_status_clicked(GtkWidget *, GtkEntryIconPosition icon_pos,GdkEvent* ,main_window *widgets){ if (icon_pos==GTK_ENTRY_ICON_SECONDARY&&main_config.domain_connected){ char *target = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->DomainEntry)); if (!yon_char_is_empty(target)){ @@ -549,7 +534,7 @@ gboolean on_main_window_domain_status_update(connection_window *window){ } // gboolean yon_update_thread(GtkWidget *self, GdkEvent *event, connection_window *window){ - gboolean yon_update_thread(GtkWidget *self, connection_window *window){ + gboolean yon_update_thread(GtkWidget *, connection_window *window){ g_mutex_lock(&main_config.ThreadMutex); if (!update_thread_buzy){ update_thread_buzy=1; @@ -588,7 +573,7 @@ connection_window *yon_connection_window_new(){ return window; } -void on_domain_disconnect(GtkWidget *self, dictionary *dict){ +void on_domain_disconnect(GtkWidget *, dictionary *dict){ main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); domain_window *window = yon_dictionary_get_data(dict->first->next,domain_window*); char *adress = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry)); @@ -631,7 +616,7 @@ domain_window *yon_domain_window_new(){ return window; } -void on_domain_opened(GtkWidget *self, main_window *widgets){ +void on_domain_opened(GtkWidget *, main_window *widgets){ if (main_config.domain_connected){ domain_window *window = yon_domain_window_new(); gtk_label_set_text(GTK_LABEL(window->HeadLabel),DISCONNECTION_LABEL); @@ -675,8 +660,9 @@ void on_domain_opened(GtkWidget *self, main_window *widgets){ gtk_entry_set_text(GTK_ENTRY(window->KerberosServerEntry),kerberos); if (!yon_char_is_empty(dns)) gtk_entry_set_text(GTK_ENTRY(window->DNSEntry),dns); - if (!yon_char_is_empty(client)) + if (!yon_char_is_empty(client)){ gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->ClientCombo),client); + } dictionary *dict = NULL; yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); @@ -690,21 +676,7 @@ void on_domain_opened(GtkWidget *self, main_window *widgets){ // standard functions -void config_init(){ - main_config.always_open_documentation=0; - main_config.socket_id=-1; - main_config.save_socket_id=-1; - main_config.load_socket_id=-1; - main_config.lock_help=0; - main_config.lock_help=0; - main_config.lock_load_global=0; - main_config.lock_save_global=0; - main_config.lock_save_local=0; - main_config.domain_connected=0; - main_config.save_config=0; -} - -void on_check_domain_connected(GtkWidget *self, main_window *widgets){ +void on_check_domain_connected(GtkWidget *, main_window *widgets){ int ansv = system(domain_connect_check); if (!ansv){ gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,domain_connected_icon); @@ -843,8 +815,9 @@ main_window *yon_main_window_complete(main_window *widgets){ } yon_config_local_load(NULL,widgets); char *domain = yon_config_get_by_key(DOMAIN); - if (!yon_char_is_empty(domain)) + if (!yon_char_is_empty(domain)){ gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),domain); + } yon_save_window_set_postsave_function(on_save_done,widgets); return widgets; } @@ -852,7 +825,6 @@ main_window *yon_main_window_complete(main_window *widgets){ int main(int argc, char *argv[]){ local=setlocale(LC_ALL, ""); textdomain (LocaleName); - config_init(); yon_ubl_connect_config((_template_config*)&main_config); yon_ubl_window_init(TITLE_LABEL,TITLE_INFO_LABEL,LocaleName,CssPath,LocaleName,version_application,WIKI_LINK); config_str unfound = NULL; diff --git a/source/ubl-settings-system.h b/source/ubl-settings-system.h index d389ec1..c985a4e 100644 --- a/source/ubl-settings-system.h +++ b/source/ubl-settings-system.h @@ -7,7 +7,6 @@ #include #include #include -#define VTE_INCLUDE #include #include #include @@ -197,10 +196,16 @@ typedef struct { GtkWidget *TerminalScroll; } domain_info_window; +void on_save_done(main_window *widgets, config_str output, int size); +void on_config_reload(GtkWidget *,main_window *widgets); void yon_config_local_load(GtkWidget *self, main_window *widgets); void yon_config_global_load(GtkWidget *self, main_window *widgets); void yon_config_custom_load(GtkWidget *self, main_window *widgets); +void yon_load_proceed(YON_CONFIG_TYPE type); + +void yon_interface_update(main_window *widgets); + main_window *setup_window(); void on_id_changed(GtkEntry *self, main_window *widgets); @@ -211,4 +216,34 @@ void on_hostname_changed(GtkEntry *self, main_window *widgets); void on_language_changed(GtkComboBox *self, main_window *widgets); void on_console_font_changed(GtkComboBox *self, main_window *widgets); void on_hostname_changed(GtkEntry *self, main_window *widgets); -void on_locale_window_closed(); \ No newline at end of file +void on_locale_window_closed(); +void yon_config_global_local_save(); +void yon_config_local_save(); +void yon_config_global_save(); +void yon_config_custom_save(); + void on_domain_address_save(GtkEntry *self); +void yon_gtk_windget_set_sensitive_from_entry_emptiness(GtkEntry *self, GtkWidget *target); +void on_locale_toggle(GtkCellRendererToggle *self,GtkTreePath* path,GtkTreeViewColumn* column,locals_window *window); +void on_locale_accept(GtkWidget *self, dictionary *dict); +void on_locale_open(GtkWidget *self, main_window *widgets); +void on_hostname_changed(GtkEntry *self, main_window *widgets); +void on_id_combo_toggled(GtkComboBox *self, main_window *widgets); +void on_id_changed(GtkEntry *self, main_window *widgets); +void on_id_copy(GtkButton *self, main_window *widgets); +void on_console_font_changed(GtkComboBox *self, main_window *widgets); +void on_language_changed(GtkComboBox *self, main_window *widgets); +void on_terminal_done(VteTerminal *terminal, gint status, dictionary *dict); +void on_terminal_command_ended(VteTerminal *terminal, gint status, domain_info_window *window); +domain_info_window *yon_information_window_new(); +void on_domain_connect(GtkWidget *self, dictionary *dict); +void on_status_clicked(GtkWidget *self, connection_window *window); +void on_find_domains_clicked(GtkWidget *self, main_window *window); +void on_main_window_domain_status_clicked(GtkWidget *self, GtkEntryIconPosition icon_pos,GdkEvent* event,main_window *widgets); +gboolean on_main_window_domain_status_update(connection_window *window); + gboolean yon_update_thread(GtkWidget *self, connection_window *window); +connection_window *yon_connection_window_new(); +void on_domain_disconnect(GtkWidget *self, dictionary *dict); +domain_window *yon_domain_window_new(); +void on_domain_opened(GtkWidget *self, main_window *widgets); +void on_check_domain_connected(GtkWidget *self, main_window *widgets); +main_window *yon_main_window_complete(main_window *widgets); \ No newline at end of file diff --git a/ubl-settings-system-banner.png b/ubl-settings-system-banner.png deleted file mode 100644 index 8eb67cb..0000000 Binary files a/ubl-settings-system-banner.png and /dev/null differ