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 @@
-
-
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