master #196

Merged
asmeron merged 38 commits from YanTheKaller/ubinstall-gtk:master into master 4 months ago

@ -82,17 +82,17 @@ uninstall:
$(RM) "$${PATH_FILE_MO}"; \
done
@for SIZE in 16x16 32x32 48x48 scalable; do \
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.png"; \
$(RM) "${DESTDIR}/usr/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
$(RM) "${DESTDIR}/usr/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.png"; \
done
@for FILE_SVG in $(wildcard *.svg); do \
for SIZE in 16x16 32x32 48x48 scalable; do \
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \
$(RM) "${DESTDIR}/usr/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}"; \
$(RM) "${DESTDIR}/usr/share/icons/hicolor/scalable/$${SUB_NAME}/$${FILE_ICON##*/}"; \
done
@$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}"
@$(RM) "${DESTDIR}${PREFIX}/share/applications/${PKGNAME}.desktop"
@ -112,19 +112,19 @@ uninstall:
install: check uninstall
@echo "Install ..."
@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"; \
install -dm755 "${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES"; \
# PATH_FILE_MO="${DESTDIR}/usr/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 "icons/apps/com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
install -dm755 "${DESTDIR}/usr/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}/usr/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}; \
install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/$${SUB_NAME}" $${FILE_ICON}; \
done
@install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
@ -137,10 +137,10 @@ install: check uninstall
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; \
ldconfig -n ${DESTDIR}/usr/lib; \
[ -d "${DESTDIR}/usr/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}/usr/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}/usr/share/applications" ] && touch "${DESTDIR}/usr/share/applications" &>/dev/null || true; \
fi
@echo "Install: OK"

@ -0,0 +1,4 @@
GROUP;APPLICATION;DESCRIPTION
Plank dock-panel;plank.desktop;Universal macOS-style dock-panel
Conky monitor;conky.desktop;System monitor
Hostalive;check-hostalive.desktop;Check the internet is alive
1 GROUP APPLICATION DESCRIPTION
2 Plank dock-panel plank.desktop Universal macOS-style dock-panel
3 Conky monitor conky.desktop System monitor
4 Hostalive check-hostalive.desktop Check the internet is alive

@ -46,5 +46,6 @@
<file>filesystems-format-list.csv</file>
<file>groups-list.csv</file>
<file>vfs-list.csv</file>
<file>applications-list.csv</file>
</gresource>
</gresources>

@ -0,0 +1,13 @@
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="15" y="3" width="80" height="104" rx="10" fill="#465476"/>
<circle cx="24.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="24.5" cy="98.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="98.5" r="4.5" fill="white"/>
<ellipse cx="55" cy="45" rx="29" ry="30" fill="#54ABD1"/>
<circle cx="55" cy="45" r="10" fill="#465476"/>
<path d="M25.1552 82.0624C22.1209 79.1997 21.7802 76.4852 24.8808 72.0538C28.9925 67.1452 44.1852 57.9024 46.0457 59.8487C48.1025 61.5864 39.8102 77.2959 35.163 81.7008C30.9301 85.0674 28.0833 84.825 25.1552 82.0624Z" fill="#F6D966"/>
<circle cx="81" cy="89" r="19" fill="#F5C211"/>
<path d="M82 96.9C83.1292 96.6691 84.144 96.0554 84.8729 95.1625C85.6017 94.2697 85.9999 93.1526 86 92V89C86.0013 88.3118 85.86 87.6308 85.585 87H76.415C76.14 87.6308 75.9987 88.3118 76 89V92C76.0001 93.1526 76.3983 94.2697 77.1271 95.1625C77.856 96.0554 78.8708 96.6691 80 96.9V91H82V96.9ZM74.536 94.69C74.1812 93.8376 73.999 92.9233 74 92H71V90H74V89C74 88.357 74.087 87.735 74.249 87.144L72.036 85.866L73.036 84.134L75.056 85.3C75.1198 85.1983 75.1861 85.0983 75.255 85H86.745C86.814 85.098 86.88 85.199 86.944 85.3L88.964 84.134L89.964 85.866L87.751 87.144C87.913 87.734 88 88.357 88 89V90H91V92H88C88 92.953 87.81 93.862 87.464 94.69L89.964 96.134L88.964 97.866L86.438 96.408C85.7824 97.2184 84.9537 97.8718 84.0127 98.3203C83.0718 98.7688 82.0424 99.001 81 99C79.9576 99.001 78.9282 98.7688 77.9873 98.3203C77.0463 97.8718 76.2176 97.2184 75.562 96.408L73.036 97.866L72.036 96.134L74.536 94.69ZM77 83C77 81.9391 77.4214 80.9217 78.1716 80.1716C78.9217 79.4214 79.9391 79 81 79C82.0609 79 83.0783 79.4214 83.8284 80.1716C84.5786 80.9217 85 81.9391 85 83H77Z" fill="white"/>
<path d="M82 96.9C83.1292 96.6691 84.144 96.0554 84.8729 95.1625C85.6017 94.2697 85.9999 93.1526 86 92V89C86.0013 88.3118 85.86 87.6308 85.585 87H76.415C76.14 87.6308 75.9987 88.3118 76 89V92C76.0001 93.1526 76.3983 94.2697 77.1271 95.1625C77.856 96.0554 78.8708 96.6691 80 96.9V91H82V96.9Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -0,0 +1,13 @@
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="15" y="3" width="80" height="104" rx="10" fill="#465476"/>
<circle cx="24.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="24.5" cy="98.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="98.5" r="4.5" fill="white"/>
<ellipse cx="55" cy="45" rx="29" ry="30" fill="#54ABD1"/>
<circle cx="55" cy="45" r="10" fill="#465476"/>
<path d="M25.1552 82.0624C22.1209 79.1997 21.7802 76.4852 24.8808 72.0538C28.9925 67.1452 44.1852 57.9024 46.0457 59.8487C48.1025 61.5864 39.8102 77.2959 35.163 81.7008C30.9301 85.0674 28.0833 84.825 25.1552 82.0624Z" fill="#F6D966"/>
<circle cx="81" cy="89" r="19" fill="#62A0EA"/>
<path d="M84.6994 86.057C84.1235 85.8981 83.6199 85.5457 83.2733 85.059C82.4044 83.8397 80.5818 83.8716 79.7573 85.1214C79.4283 85.6205 78.9374 85.991 78.3672 86.1705C76.939 86.6197 76.4069 88.3628 77.3408 89.5331C77.7135 90.0004 77.9138 90.5819 77.9079 91.1796C77.894 92.6768 79.3881 93.7211 80.7897 93.1949C81.3488 92.9852 81.963 92.9743 82.5292 93.164C83.9492 93.6399 85.4046 92.5423 85.3374 91.0462C85.3103 90.4496 85.4895 89.8618 85.8448 89.3817C86.7359 88.1787 86.1426 86.4548 84.6994 86.057ZM87.3353 90.9559L87.5666 96.1005C87.5709 96.1978 87.5515 96.2947 87.5101 96.3828C87.4686 96.4709 87.4063 96.5476 87.3286 96.6062C87.2509 96.6649 87.16 96.7038 87.0639 96.7195C86.9678 96.7352 86.8693 96.7272 86.777 96.6964L81.8935 95.06C81.7631 95.0164 81.6216 95.0189 81.4928 95.0671L76.6708 96.877C76.5797 96.9111 76.4816 96.9225 76.385 96.9103C76.2885 96.898 76.1964 96.8625 76.1166 96.8067C76.0369 96.7509 75.9719 96.6766 75.9272 96.5901C75.8826 96.5036 75.8597 96.4076 75.8605 96.3102L75.9082 91.1599C75.9091 91.0224 75.8628 90.8887 75.7769 90.7812L72.5656 86.755C72.5047 86.6788 72.4634 86.5889 72.4451 86.4932C72.4268 86.3974 72.4321 86.2986 72.4606 86.2054C72.489 86.1122 72.5398 86.0272 72.6084 85.958C72.6771 85.8888 72.7616 85.8374 72.8546 85.8082L77.767 84.2617C77.8982 84.2205 78.0114 84.1355 78.0874 84.0209L80.9242 79.722C80.9779 79.6408 81.0507 79.5739 81.136 79.527C81.2214 79.4802 81.317 79.4549 81.4143 79.4533C81.5117 79.4516 81.608 79.4737 81.695 79.5176C81.7819 79.5615 81.8568 79.6259 81.9133 79.7053L84.9021 83.8987C84.982 84.0106 85.0979 84.0917 85.2305 84.1283L90.1953 85.4982C90.2891 85.5242 90.3752 85.5726 90.4462 85.6393C90.5171 85.706 90.5708 85.789 90.6025 85.881C90.6342 85.9731 90.6431 86.0715 90.6283 86.1678C90.6134 86.264 90.5754 86.3552 90.5175 86.4335L87.4525 90.5718C87.3705 90.6826 87.329 90.8182 87.3353 90.9559Z" fill="white"/>
<path d="M84.6994 86.057C84.1235 85.8981 83.6199 85.5457 83.2733 85.059C82.4044 83.8397 80.5818 83.8716 79.7573 85.1214C79.4283 85.6205 78.9374 85.991 78.3672 86.1705C76.939 86.6197 76.4069 88.3628 77.3408 89.5331C77.7135 90.0004 77.9138 90.5819 77.9079 91.1796C77.894 92.6768 79.3881 93.7211 80.7897 93.1949C81.3488 92.9852 81.963 92.9743 82.5292 93.164C83.9492 93.6399 85.4046 92.5423 85.3374 91.0462C85.3103 90.4496 85.4895 89.8618 85.8448 89.3817C86.7359 88.1787 86.1426 86.4548 84.6994 86.057Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

@ -0,0 +1,10 @@
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="15" y="3" width="80" height="104" rx="10" fill="#465476"/>
<circle cx="24.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="24.5" cy="98.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="98.5" r="4.5" fill="white"/>
<ellipse cx="55" cy="45" rx="29" ry="30" fill="#54ABD1"/>
<circle cx="55" cy="45" r="10" fill="#465476"/>
<path d="M25.1552 82.0624C22.1209 79.1997 21.7802 76.4852 24.8808 72.0538C28.9925 67.1452 44.1852 57.9024 46.0457 59.8487C48.1025 61.5864 39.8102 77.2959 35.163 81.7008C30.9301 85.0674 28.0833 84.825 25.1552 82.0624Z" fill="#F6D966"/>
</svg>

After

Width:  |  Height:  |  Size: 720 B

@ -0,0 +1,16 @@
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="15" y="3" width="80" height="104" rx="10" fill="#465476"/>
<circle cx="24.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="24.5" cy="98.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="98.5" r="4.5" fill="white"/>
<ellipse cx="55" cy="45" rx="29" ry="30" fill="#54ABD1"/>
<circle cx="55" cy="45" r="10" fill="#465476"/>
<path d="M25.1552 82.0624C22.1209 79.1997 21.7802 76.4852 24.8808 72.0538C28.9925 67.1452 44.1852 57.9024 46.0457 59.8487C48.1025 61.5864 39.8102 77.2959 35.163 81.7008C30.9301 85.0674 28.0833 84.825 25.1552 82.0624Z" fill="#F6D966"/>
<circle cx="81" cy="89" r="19" fill="#ED333B"/>
<path d="M82.236 99.42C80.696 99.42 79.2587 99.182 77.924 98.706C76.5987 98.23 75.4367 97.5487 74.438 96.662C73.4393 95.7753 72.66 94.7067 72.1 93.456C71.54 92.196 71.26 90.7867 71.26 89.228C71.26 87.6693 71.526 86.26 72.058 85C72.5993 83.74 73.3553 82.662 74.326 81.766C75.2967 80.87 76.4307 80.184 77.728 79.708C79.0253 79.2227 80.4347 78.98 81.956 78.98C82.656 78.98 83.3747 79.036 84.112 79.148C84.8493 79.26 85.582 79.4467 86.31 79.708C87.0473 79.9693 87.752 80.3287 88.424 80.786L86.87 83.628C86.17 83.18 85.4187 82.8487 84.616 82.634C83.8133 82.41 82.978 82.298 82.11 82.298C81.018 82.298 80.0333 82.4567 79.156 82.774C78.2787 83.0913 77.532 83.5533 76.916 84.16C76.3 84.7573 75.8287 85.4853 75.502 86.344C75.1753 87.1933 75.012 88.1547 75.012 89.228C75.012 90.7307 75.3293 92.0047 75.964 93.05C76.608 94.0953 77.4853 94.8887 78.596 95.43C79.716 95.962 80.9947 96.228 82.432 96.228C83.0947 96.228 83.7013 96.1673 84.252 96.046C84.8027 95.9153 85.26 95.7707 85.624 95.612V91.3H81.326V88.332H88.858V97.768C88.3167 98.104 87.654 98.398 86.87 98.65C86.0953 98.902 85.2927 99.0933 84.462 99.224C83.6407 99.3547 82.8987 99.42 82.236 99.42Z" fill="white"/>
<circle cx="88" cy="98" r="4" fill="#ED333B"/>
<path d="M87.375 97.375V95.5H88.625V97.375H90.5V98.625H88.625V100.5H87.375V98.625H85.5V97.375H87.375Z" fill="white"/>
<circle cx="88" cy="98" r="4" fill="#ED333B"/>
<path d="M88.001 95.5C86.7027 95.4982 85.6196 96.4924 85.5092 97.7873C85.3988 99.0821 86.2979 100.246 87.5777 100.464C88.8575 100.683 90.0911 99.8831 90.4157 98.6248H89.7661C89.4485 99.5239 88.5074 100.041 87.5791 99.8268C86.6508 99.6124 86.0311 98.7348 86.1391 97.7873C86.2471 96.8399 87.0483 96.1245 88.001 96.125C88.4972 96.1257 88.9723 96.3261 89.3193 96.6812L88.3147 97.6874H90.5V95.5L89.7661 96.2343C89.299 95.7639 88.6636 95.4996 88.001 95.5Z" fill="white" stroke="white" stroke-width="0.5"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

@ -0,0 +1,14 @@
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="15" y="3" width="80" height="104" rx="10" fill="#465476"/>
<circle cx="24.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="24.5" cy="98.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="98.5" r="4.5" fill="white"/>
<ellipse cx="55" cy="45" rx="29" ry="30" fill="#54ABD1"/>
<circle cx="55" cy="45" r="10" fill="#465476"/>
<path d="M25.1552 82.0624C22.1209 79.1997 21.7802 76.4852 24.8808 72.0538C28.9925 67.1452 44.1852 57.9024 46.0457 59.8487C48.1025 61.5864 39.8102 77.2959 35.163 81.7008C30.9301 85.0674 28.0833 84.825 25.1552 82.0624Z" fill="#F6D966"/>
<circle cx="81" cy="89" r="19" fill="#ED333B"/>
<path d="M82.236 99.42C80.696 99.42 79.2587 99.182 77.924 98.706C76.5987 98.23 75.4367 97.5487 74.438 96.662C73.4393 95.7753 72.66 94.7067 72.1 93.456C71.54 92.196 71.26 90.7867 71.26 89.228C71.26 87.6693 71.526 86.26 72.058 85C72.5993 83.74 73.3553 82.662 74.326 81.766C75.2967 80.87 76.4307 80.184 77.728 79.708C79.0253 79.2227 80.4347 78.98 81.956 78.98C82.656 78.98 83.3747 79.036 84.112 79.148C84.8493 79.26 85.582 79.4467 86.31 79.708C87.0473 79.9693 87.752 80.3287 88.424 80.786L86.87 83.628C86.17 83.18 85.4187 82.8487 84.616 82.634C83.8133 82.41 82.978 82.298 82.11 82.298C81.018 82.298 80.0333 82.4567 79.156 82.774C78.2787 83.0913 77.532 83.5533 76.916 84.16C76.3 84.7573 75.8287 85.4853 75.502 86.344C75.1753 87.1933 75.012 88.1547 75.012 89.228C75.012 90.7307 75.3293 92.0047 75.964 93.05C76.608 94.0953 77.4853 94.8887 78.596 95.43C79.716 95.962 80.9947 96.228 82.432 96.228C83.0947 96.228 83.7013 96.1673 84.252 96.046C84.8027 95.9153 85.26 95.7707 85.624 95.612V91.3H81.326V88.332H88.858V97.768C88.3167 98.104 87.654 98.398 86.87 98.65C86.0953 98.902 85.2927 99.0933 84.462 99.224C83.6407 99.3547 82.8987 99.42 82.236 99.42Z" fill="white"/>
<circle cx="88" cy="98" r="4" fill="#ED333B"/>
<path d="M87.375 97.375V95.5H88.625V97.375H90.5V98.625H88.625V100.5H87.375V98.625H85.5V97.375H87.375Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1,15 @@
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="15" y="3" width="80" height="104" rx="10" fill="#465476"/>
<circle cx="24.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="24.5" cy="98.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="98.5" r="4.5" fill="white"/>
<ellipse cx="55" cy="45" rx="29" ry="30" fill="#54ABD1"/>
<circle cx="55" cy="45" r="10" fill="#465476"/>
<path d="M25.1552 82.0624C22.1209 79.1997 21.7802 76.4852 24.8808 72.0538C28.9925 67.1452 44.1852 57.9024 46.0457 59.8487C48.1025 61.5864 39.8102 77.2959 35.163 81.7008C30.9301 85.0674 28.0833 84.825 25.1552 82.0624Z" fill="#F6D966"/>
<circle cx="81" cy="89" r="19" fill="#33D17A"/>
<path d="M86 80C87.657 80 89 81.343 89 83C89 84.657 87.657 86 86 86H83C81.694 86 80.583 85.166 80.171 84H79C77.9 84 77 84.9 77 86V86.171C78.166 86.583 79 87.694 79 89C79 90.306 78.166 91.417 77 91.829V92C77 93.1 77.9 94 79 94H80.17C80.582 92.835 81.694 92 83 92H86C87.657 92 89 93.343 89 95C89 96.657 87.657 98 86 98H83C81.694 98 80.583 97.166 80.171 96H79C76.79 96 75 94.21 75 92H73C71.343 92 70 90.657 70 89C70 87.343 71.343 86 73 86H75C75 83.79 76.79 82 79 82H80.17C80.582 80.835 81.694 80 83 80H86ZM86 94H83C82.448 94 82 94.448 82 95C82 95.552 82.448 96 83 96H86C86.552 96 87 95.552 87 95C87 94.448 86.552 94 86 94ZM76 88H73C72.448 88 72 88.448 72 89C72 89.552 72.448 90 73 90H76C76.552 90 77 89.552 77 89C77 88.448 76.552 88 76 88ZM86 82H83C82.448 82 82 82.448 82 83C82 83.552 82.448 84 83 84H86C86.552 84 87 83.552 87 83C87 82.448 86.552 82 86 82Z" fill="white"/>
<path d="M86 94H83C82.448 94 82 94.448 82 95C82 95.552 82.448 96 83 96H86C86.552 96 87 95.552 87 95C87 94.448 86.552 94 86 94Z" fill="white"/>
<path d="M76 88H73C72.448 88 72 88.448 72 89C72 89.552 72.448 90 73 90H76C76.552 90 77 89.552 77 89C77 88.448 76.552 88 76 88Z" fill="white"/>
<path d="M86 82H83C82.448 82 82 82.448 82 83C82 83.552 82.448 84 83 84H86C86.552 84 87 83.552 87 83C87 82.448 86.552 82 86 82Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1,15 @@
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="15" y="3" width="80" height="104" rx="10" fill="#465476"/>
<circle cx="24.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="24.5" cy="98.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="98.5" r="4.5" fill="white"/>
<ellipse cx="55" cy="45" rx="29" ry="30" fill="#54ABD1"/>
<circle cx="55" cy="45" r="10" fill="#465476"/>
<path d="M25.1552 82.0624C22.1209 79.1997 21.7802 76.4852 24.8808 72.0538C28.9925 67.1452 44.1852 57.9024 46.0457 59.8487C48.1025 61.5864 39.8102 77.2959 35.163 81.7008C30.9301 85.0674 28.0833 84.825 25.1552 82.0624Z" fill="#F6D966"/>
<circle cx="81" cy="89" r="19" fill="#33D17A"/>
<path d="M79 79C79.552 79 80 79.448 80 80V84C80 84.552 79.552 85 79 85H77V87H82V86C82 85.448 82.448 85 83 85H89C89.552 85 90 85.448 90 86V90C90 90.552 89.552 91 89 91H83C82.448 91 82 90.552 82 90V89H77V95H82V94C82 93.448 82.448 93 83 93H89C89.552 93 90 93.448 90 94V98C90 98.552 89.552 99 89 99H83C82.448 99 82 98.552 82 98V97H76C75.448 97 75 96.552 75 96V85H73C72.448 85 72 84.552 72 84V80C72 79.448 72.448 79 73 79H79ZM88 95H84V97H88V95ZM88 87H84V89H88V87ZM78 81H74V83H78V81Z" fill="white"/>
<path d="M88 87H84V89H88V87Z" fill="white"/>
<path d="M88 95H84V97H88V95Z" fill="white"/>
<path d="M78 81H74V83H78V81Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,12 @@
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="15" y="3" width="80" height="104" rx="10" fill="#465476"/>
<circle cx="24.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="24.5" cy="98.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="98.5" r="4.5" fill="white"/>
<ellipse cx="55" cy="45" rx="29" ry="30" fill="#54ABD1"/>
<circle cx="55" cy="45" r="10" fill="#465476"/>
<path d="M25.1552 82.0624C22.1209 79.1997 21.7802 76.4852 24.8808 72.0538C28.9925 67.1452 44.1852 57.9024 46.0457 59.8487C48.1025 61.5864 39.8102 77.2959 35.163 81.7008C30.9301 85.0674 28.0833 84.825 25.1552 82.0624Z" fill="#F6D966"/>
<circle cx="81" cy="89" r="19" fill="#C061CB"/>
<path d="M78.3636 84.3234L84.6364 99L88.4617 90.0483H93V87.9517H87.0838L84.6364 93.6766L78.3636 79L74.5383 87.9517H70V90.0483H75.9162L78.3636 84.3234Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 935 B

@ -0,0 +1,13 @@
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="15" y="3" width="80" height="104" rx="10" fill="#465476"/>
<circle cx="24.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="24.5" cy="98.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="98.5" r="4.5" fill="white"/>
<ellipse cx="55" cy="45" rx="29" ry="30" fill="#54ABD1"/>
<circle cx="55" cy="45" r="10" fill="#465476"/>
<path d="M25.1552 82.0624C22.1209 79.1997 21.7802 76.4852 24.8808 72.0538C28.9925 67.1452 44.1852 57.9024 46.0457 59.8487C48.1025 61.5864 39.8102 77.2959 35.163 81.7008C30.9301 85.0674 28.0833 84.825 25.1552 82.0624Z" fill="#F6D966"/>
<circle cx="81" cy="89" r="19" fill="#FF7800"/>
<path d="M77 91.5V88H80.5L78.8915 89.61C79.4465 90.1775 80.2063 90.4982 81 90.5C82.2698 90.4981 83.4008 89.6971 83.824 88.5H83.833C83.8903 88.3373 83.9336 88.17 83.9625 88H84.9685C84.7166 89.9999 83.0158 91.4999 81 91.5H80.995C79.9344 91.5031 78.9166 91.0818 78.1685 90.33L77 91.5ZM78.037 87H77.031C77.2829 85.0008 78.9825 83.5011 80.9975 83.5H81C82.0609 83.4966 83.0789 83.918 83.827 84.67L85 83.5V87H81.5L83.111 85.39C82.5555 84.8219 81.7947 84.5011 81 84.5C79.7303 84.5019 78.5993 85.3029 78.176 86.5H78.167C78.1093 86.6626 78.066 86.8299 78.0375 87H78.037Z" fill="white"/>
<path d="M73 93H89V82H73V93ZM82 95V97H86V99H76V97H80V95H71.992C71.8607 94.9992 71.7309 94.9725 71.6099 94.9215C71.4889 94.8704 71.3792 94.7959 71.287 94.7024C71.1949 94.6088 71.1221 94.498 71.0728 94.3763C71.0236 94.2546 70.9989 94.1243 71 93.993V81.007C71 80.451 71.455 80 71.992 80H90.008C90.556 80 91 80.449 91 81.007V93.993C91 94.549 90.545 95 90.008 95H82V95Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -0,0 +1,13 @@
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="15" y="3" width="80" height="104" rx="10" fill="#465476"/>
<circle cx="24.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="24.5" cy="98.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="12.5" r="4.5" fill="white"/>
<circle cx="85.5" cy="98.5" r="4.5" fill="white"/>
<ellipse cx="55" cy="45" rx="29" ry="30" fill="#54ABD1"/>
<circle cx="55" cy="45" r="10" fill="#465476"/>
<path d="M25.1552 82.0624C22.1209 79.1997 21.7802 76.4852 24.8808 72.0538C28.9925 67.1452 44.1852 57.9024 46.0457 59.8487C48.1025 61.5864 39.8102 77.2959 35.163 81.7008C30.9301 85.0674 28.0833 84.825 25.1552 82.0624Z" fill="#F6D966"/>
<circle cx="81" cy="89" r="19" fill="#FF7800"/>
<path d="M77 96V92.0625H80.9375L79.128 93.8737C79.7523 94.5122 80.607 94.8729 81.5 94.875C82.9285 94.8729 84.2009 93.9717 84.677 92.625H84.6872C84.7516 92.442 84.8003 92.2538 84.8328 92.0625H85.9646C85.6811 94.3124 83.7678 95.9999 81.5 96H81.4944C80.3012 96.0035 79.1562 95.5296 78.3146 94.6837L77 96ZM78.1667 90.9375H77.0349C77.3183 88.6884 79.2303 87.0013 81.4972 87H81.5C82.6934 86.9962 83.8387 87.4702 84.6804 88.3163L86 87V90.9375H82.0625L83.8749 89.1263C83.2499 88.4871 82.394 88.1262 81.5 88.125C80.0716 88.1271 78.7992 89.0283 78.323 90.375H78.3129C78.248 90.5579 78.1992 90.7461 78.1672 90.9375H78.1667Z" fill="white"/>
<path d="M78 79.003V79H88.998C89.55 79 90 79.455 90 79.992V98.008C89.9998 98.2712 89.895 98.5235 89.7088 98.7095C89.5226 98.8955 89.2702 99 89.007 99H72.993C72.8617 98.9991 72.7318 98.9723 72.6109 98.9212C72.4899 98.8701 72.3802 98.7957 72.288 98.7022C72.1958 98.6087 72.1229 98.4979 72.0735 98.3762C72.0241 98.2545 71.9991 98.1243 72 97.993V85L78 79.003ZM74.83 85H78V81.83L74.83 85ZM80 81V86C80 86.2652 79.8947 86.5196 79.7071 86.7071C79.5196 86.8946 79.2652 87 79 87H74V97H88V81H80Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -0,0 +1,17 @@
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="20" y="5" width="70" height="84" rx="4" fill="#E9E9E9"/>
<rect x="26.5" y="12.5" width="57" height="2" rx="0.5" fill="#C0BFBC" stroke="#C0BFBC"/>
<rect x="26.5" y="18.5" width="57" height="2" rx="0.5" fill="#C0BFBC" stroke="#C0BFBC"/>
<rect x="26.5" y="24.5" width="57" height="2" rx="0.5" fill="#C0BFBC" stroke="#C0BFBC"/>
<rect x="26.5" y="30.5" width="57" height="2" rx="0.5" fill="#C0BFBC" stroke="#C0BFBC"/>
<rect x="26.5" y="36.5" width="57" height="2" rx="0.5" fill="#C0BFBC" stroke="#C0BFBC"/>
<rect x="26.5" y="42.5" width="57" height="2" rx="0.5" fill="#C0BFBC" stroke="#C0BFBC"/>
<rect x="26.5" y="48.5" width="57" height="2" rx="0.5" fill="#C0BFBC" stroke="#C0BFBC"/>
<rect x="26.5" y="54.5" width="57" height="2" rx="0.5" fill="#C0BFBC" stroke="#C0BFBC"/>
<path d="M71 76L73.5 73.5C74 75.6667 76.9099 78.2547 77.5 81.5C78.5 87 79 88.5 82 94.5C83.9015 98.3032 86 99.5 87 101L77.5 104C76 101.5 74.8974 98.6444 73.5 95.5C71.5 91 71.5 85.5 70 83C68.6071 80.6786 70.6632 77.4949 70.9641 76.2513L71 76Z" fill="#E93939"/>
<path d="M71 76L68.5 73.5C68 75.6667 65.0901 78.2547 64.5 81.5C63.5 87 63 88.5 60 94.5C58.0985 98.3032 56.5 100 55 102L64.5 104C66 101.5 67.1026 98.6444 68.5 95.5C70.5 91 70.5 85.5 72 83C73.3929 80.6786 71.3368 77.4949 71.0359 76.2513L71 76Z" fill="#E93939"/>
<rect x="59" y="61" width="24" height="24" rx="12" fill="#F6D966"/>
<rect x="62" y="64" width="18" height="18" rx="9" fill="#D0B548"/>
<path d="M70.0489 65.927C70.3483 65.0057 71.6517 65.0057 71.9511 65.9271L73.0206 69.2188C73.1545 69.6309 73.5385 69.9098 73.9717 69.9098H77.4329C78.4016 69.9098 78.8044 71.1494 78.0207 71.7188L75.2205 73.7533C74.87 74.0079 74.7234 74.4593 74.8572 74.8713L75.9268 78.1631C76.2261 79.0844 75.1717 79.8506 74.388 79.2812L71.5878 77.2467C71.2373 76.9921 70.7627 76.9921 70.4122 77.2467L67.612 79.2812C66.8283 79.8506 65.7739 79.0844 66.0732 78.1631L67.1428 74.8713C67.2766 74.4593 67.13 74.0079 66.7795 73.7533L63.9793 71.7188C63.1956 71.1494 63.5984 69.9098 64.5671 69.9098H68.0283C68.4615 69.9098 68.8455 69.6309 68.9794 69.2188L70.0489 65.927Z" fill="#F6D966"/>
<path d="M31.3334 72.5552C31.3698 72.226 31.5896 71.3447 31.9209 70.6981C32.2153 70.1236 32.9502 70.0901 33.5218 70.0515C34.0806 70.0137 34.6068 70.6754 34.995 71.1912C35.3166 71.6184 35.8217 72.0007 36.338 72.3514C36.9321 72.7549 37.4054 72.8489 38.1227 72.8683C38.6943 72.8837 39.6098 71.7887 40.2957 71.0476C40.7713 70.5337 41.6 70.2005 42.6127 69.9421C43.5968 69.691 44.1423 70.1983 44.6763 70.639C45.3513 71.196 46.2407 71.9278 46.7747 72.2045C47.3239 72.489 48.1535 72.7385 48.7439 72.8859C49.6434 73.1106 50.3999 72.924 51.2271 72.5938C52.6524 72.0248 53.1609 71.3425 53.5674 70.882C54.1925 70.311 54.7458 69.9421 54.9661 69.7952C55.0771 69.7212 55.1864 69.6483 55.52 69.5732" stroke="#C0BFBC" stroke-width="2" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

@ -0,0 +1,17 @@
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_30_716)">
<rect x="2" y="76.0535" width="66" height="32" rx="2" transform="rotate(-38.1226 2 76.0535)" fill="#F6D966"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M95.4964 15.3952C94.6274 16.0771 94.4758 17.3343 95.1577 18.2033L98.8617 22.9234C99.5436 23.7924 100.801 23.944 101.67 23.2621L106.39 19.558C107.259 18.8761 107.411 17.6189 106.729 16.75L103.025 12.0298C102.343 11.1609 101.085 11.0092 100.217 11.6911L95.4964 15.3952ZM104.538 17.198L102.069 14.0512C101.728 13.6167 101.099 13.5409 100.665 13.8818C100.23 14.2228 100.154 14.8514 100.495 15.2859L102.965 18.4327C103.305 18.8671 103.934 18.9429 104.369 18.602C104.803 18.261 104.879 17.6324 104.538 17.198Z" fill="#343F58"/>
<rect x="22.006" y="57.8118" width="39" height="36" rx="1" transform="rotate(-38.1226 22.006 57.8118)" fill="#54ABD1"/>
<path d="M22.9621 55.7904C21.2573 53.618 21.6364 50.475 23.8088 48.7702L77.3039 6.7907C77.3039 6.7907 85.9575 -0.000104427 100.465 18.4872C114.973 36.9744 106.319 43.7652 106.319 43.7652L52.8241 85.7447C50.6517 87.4495 47.5086 87.0704 45.8039 84.898L22.9621 55.7904Z" fill="#465476"/>
<rect x="17.0458" y="87.1272" width="4" height="10" rx="1" transform="rotate(-38.1226 17.0458 87.1272)" fill="#535353"/>
<rect x="11.5688" y="88.2473" width="27" height="1" transform="rotate(-38.1226 11.5688 88.2473)" fill="white"/>
<rect x="8.40283" y="76.1135" width="4" height="10" rx="1" transform="rotate(-38.1226 8.40283 76.1135)" fill="#535353"/>
<path d="M64.2302 51.4492C65.0667 51.2108 65.9602 51.2737 66.755 51.6269C67.5498 51.9801 68.1954 52.6012 68.5791 53.3817C68.9627 54.1623 69.0601 55.0528 68.8543 55.8978C68.6485 56.7428 68.1525 57.4887 67.4528 58.0054C66.7532 58.522 65.8943 58.7765 65.0262 58.7246C64.158 58.6726 63.3356 58.3175 62.7025 57.7211C62.0694 57.1247 61.6658 56.325 61.5622 55.4614C61.4585 54.5979 61.6614 53.7254 62.1353 52.9961L57.3578 46.777C56.5253 47.0486 55.6236 47.017 54.812 46.688C54.0005 46.359 53.3313 45.7537 52.9229 44.9791C52.5145 44.2044 52.3931 43.3104 52.5801 42.4549C52.7672 41.5994 53.2507 40.8376 53.9451 40.3041C54.6395 39.7707 55.5002 39.4999 56.375 39.5397C57.2498 39.5795 58.0823 39.9272 58.7255 40.5215C59.3687 41.1158 59.7811 41.9183 59.8898 42.7873C59.9985 43.6562 59.7965 44.5356 59.3196 45.2699L61.7083 48.3795C62.0551 47.1335 62.793 45.9865 63.8975 45.138L67.821 42.1239C68.4666 41.6281 68.9312 40.9337 69.1434 40.1478C69.3556 39.3619 69.3036 38.5281 68.9954 37.7746C68.1551 38.0144 67.2571 37.9501 66.4596 37.5929C65.6621 37.2358 65.0161 36.6088 64.6354 35.8222C64.2547 35.0357 64.1636 34.14 64.3783 33.293C64.593 32.4459 65.0996 31.7018 65.8089 31.1915C66.5183 30.6813 67.3849 30.4377 68.2563 30.5035C69.1276 30.5694 69.9478 30.9406 70.5724 31.5517C71.1971 32.1628 71.5861 32.9747 71.671 33.8444C71.756 34.7141 71.5314 35.5859 71.0368 36.3062C71.7138 37.5966 71.9137 39.0845 71.6011 40.5077C71.2886 41.9309 70.4836 43.1981 69.3281 44.0858L65.4046 47.0999C64.759 47.5958 64.2944 48.2901 64.0822 49.076C63.87 49.8619 63.922 50.6958 64.2302 51.4492V51.4492ZM64.4952 54.0377C64.2351 54.2376 64.065 54.5326 64.0223 54.8578C63.9797 55.1831 64.068 55.512 64.2679 55.7722C64.4677 56.0323 64.7627 56.2025 65.088 56.2451C65.4133 56.2878 65.7422 56.1994 66.0023 55.9996C66.2625 55.7997 66.4326 55.5047 66.4752 55.1795C66.5178 54.8542 66.4295 54.5253 66.2297 54.2651C66.0298 54.005 65.7348 53.8349 65.4095 53.7922C65.0842 53.7496 64.7554 53.8379 64.4952 54.0377ZM55.4526 42.2665C55.1924 42.4663 55.0223 42.7613 54.9797 43.0866C54.937 43.4119 55.0254 43.7408 55.2252 44.0009C55.4251 44.2611 55.7201 44.4312 56.0454 44.4739C56.3706 44.5165 56.6995 44.4282 56.9597 44.2284C57.2198 44.0285 57.3899 43.7335 57.4326 43.4082C57.4752 43.083 57.3869 42.7541 57.187 42.4939C56.9872 42.2337 56.6921 42.0636 56.3669 42.021C56.0416 41.9783 55.7127 42.0666 55.4526 42.2665ZM67.2233 33.2242C66.9631 33.4241 66.793 33.7191 66.7504 34.0444C66.7078 34.3696 66.7961 34.6985 66.9959 34.9587C67.1958 35.2188 67.4908 35.389 67.8161 35.4316C68.1414 35.4743 68.4702 35.3859 68.7304 35.1861C68.9905 34.9863 69.1606 34.6912 69.2033 34.366C69.2459 34.0407 69.1576 33.7118 68.9577 33.4516C68.7579 33.1915 68.4629 33.0214 68.1376 32.9787C67.8123 32.9361 67.4834 33.0244 67.2233 33.2242Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_30_716">
<rect width="110" height="110" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

@ -0,0 +1,3 @@
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.8235 87.5789V101.053C18.8225 104.452 20.0182 107.726 22.171 110.218C24.3237 112.711 27.2743 114.238 30.4314 114.493L31.3725 114.526H50.1961V128H31.3725C24.7161 128 18.3323 125.161 13.6256 120.107C8.91876 115.054 6.27451 108.2 6.27451 101.053V87.5789H18.8235ZM100.392 53.8947L128 128H114.478L106.943 107.789H81.28L73.7569 128H60.2416L87.8431 53.8947H100.392ZM94.1176 73.3305L86.2933 94.3158H101.929L94.1176 73.3305ZM37.6471 0V13.4737H62.7451V60.6316H37.6471V80.8421H25.098V60.6316H0V13.4737H25.098V0H37.6471ZM94.1176 6.73684C100.774 6.73684 107.158 9.57593 111.865 14.6295C116.571 19.6832 119.216 26.5373 119.216 33.6842V47.1579H106.667V33.6842C106.667 30.1108 105.345 26.6837 102.991 24.1569C100.638 21.6301 97.4459 20.2105 94.1176 20.2105H75.2941V6.73684H94.1176ZM25.098 26.9474H12.549V47.1579H25.098V26.9474ZM50.1961 26.9474H37.6471V47.1579H50.1961V26.9474Z" fill="#09121F"/>
</svg>

After

Width:  |  Height:  |  Size: 998 B

@ -0,0 +1,9 @@
msgid "Universal macOS-style dock-panel"
msgstr ""
msgid "System monitor"
msgstr ""
msgid "Check the internet is alive"
msgstr ""

@ -0,0 +1,27 @@
# Language translations for ubinstal package.
# Copyright (C) 2022, UBTech LLC
# This file is distributed under the same license as the ubinstal package.
# UBLinux Team <info@ublinux.com>, 2022
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: ubinstal 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-22 16:12+0600\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Universal macOS-style dock-panel"
msgstr "Универсальная панель Dock в стиле macOS"
msgid "System monitor"
msgstr "Системный монитор"
msgid "Check the internet is alive"
msgstr "Проверка наличия интернет-соединения"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -67,6 +67,7 @@ set(DEPENDFILES
../filesystems-format-list.csv
../groups-list.csv
../vfs-list.csv
../applications-list.csv
../icons-builtin/install_type_custom_normal.png
../icons-builtin/install_type_data_only_normal.png
../icons-builtin/install_type_fast_normal.png
@ -136,6 +137,7 @@ set(SOURCE_FILES
ubinstall-gtk-kernel.c
ubinstall-gtk-language.c
ubinstall-gtk-config-hub.c
ubinstall-gtk-startup-apps.c
ubinstall-gtk.h
ubl-strings.h
)

@ -76,12 +76,12 @@ void on_bootloader_user_accept(GtkWidget *, bootloader_user_window *window){
}
const char *password = gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
if (yon_char_is_empty(username)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->UsernameEntry);
return;
}
if (yon_char_is_empty(password)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->PasswordEntry);
return;
}
@ -161,103 +161,117 @@ void on_bootloader_user_add(GtkWidget *, main_window *widgets){
gtk_widget_show(window->Window);
}
void on_menu_chosen(GtkWidget *, yon_menu_item *item){
if (strcmp(item->target,DEFAULT_MENU_ITEM_LABEL)){
gtk_entry_set_text(GTK_ENTRY(item->widgets->BootloadDefaultOSEntry),item->target);
} else {
gtk_entry_set_text(GTK_ENTRY(item->widgets->BootloadDefaultOSEntry),DEFAULT_MENU_ITEM_LABEL);
void yon_menu_open_submenu(yon_menu_window *window, yon_menu_item *item){
int size;
config_str options = yon_config_load(get_menus_entry_command,&size);
textdomain("ublinux-init-grub-functions");
for (int i=1;i<size;i++){
yon_char_remove_last_symbol(options[i],'\n');
int parsed_size;
config_str parsed = yon_char_parse(_(options[i]),&parsed_size,";");
int id_size;
config_str id_parsed = yon_char_parse(parsed[0],&id_size,">");
int name_size;
config_str name_parsed = yon_char_parse(_(parsed[1]),&name_size,">");
if (yon_char_parsed_check_exist(id_parsed,id_size,item->id)==0){
yon_menu_item *subitem = yon_menu_add_item(window,parsed[0],name_parsed[1],0);
gtk_list_box_insert(GTK_LIST_BOX(window->ChildrenListBox),subitem->MenuItemRow,-1);
gtk_widget_hide(subitem->ArrowImage);
}
yon_char_parsed_free(id_parsed,id_size);
yon_char_parsed_free(name_parsed,name_size);
yon_char_parsed_free(parsed,parsed_size);
}
textdomain(LocaleName);
}
void yon_menu_ungrab(yon_menu_window *window){
GdkDisplay *display = gdk_display_get_default();
GdkSeat *seat = gdk_display_get_default_seat(display);
if (item->window->seat_grab)
if (window->seat_grab)
gdk_seat_ungrab(seat);
else
gtk_grab_remove(item->window->MenuWindow);
gtk_widget_destroy(item->window->MenuWindow);
gtk_grab_remove(window->MenuWindow);
gtk_widget_destroy(window->MenuWindow);
}
void on_menu_chosen(GtkWidget *, GtkListBoxRow* row, yon_menu_window *window){
yon_menu_item *item = g_object_get_data(G_OBJECT(row),"yon_menu_item");
if (item->children){
yon_menu_open_submenu(window,item);
gtk_widget_show(window->ChildrenRevealer);
gtk_widget_hide(window->ItemsRevealer);
gtk_revealer_set_reveal_child(GTK_REVEALER(window->ItemsRevealer),0);
gtk_revealer_set_reveal_child(GTK_REVEALER(window->ChildrenRevealer),1);
} else {
gtk_entry_set_text(GTK_ENTRY(window->target),item->name);
yon_config_register(GRUB_DEFAULT_parameter,GRUB_DEFAULT_parameter_command,item->id);
yon_menu_ungrab(window);
}
}
void on_submenu_open(GtkWidget *,yon_menu_item *item){
yon_menu_window *window = item->window;
yon_menu_item *yon_menu_add_item(yon_menu_window *target_menu,const char *id, const char *name, int children){
yon_menu_item *item = yon_menu_item_new();
item->window=target_menu;
item->children = children;
item->id = yon_char_new(id);
item->name = yon_char_new(name);
gtk_label_set_text(GTK_LABEL(item->MenuTextLabel),item->name);
dictionary *dact = NULL;
for_dictionaries(dact,item->children){
yon_menu_item *child = yon_dictionary_get_data(dact,yon_menu_item*);
gtk_widget_hide(child->NextIconButton);
gtk_list_box_insert(GTK_LIST_BOX(window->ChildrenListBox),child->MenuItemBox,-1);
g_signal_connect(G_OBJECT(child->MenuButton),"clicked",G_CALLBACK(on_menu_chosen),dact->data);
// g_signal_connect(G_OBJECT(item->MenuItemRow),"clicked",G_CALLBACK(on_menu_chosen),item);
}
gtk_revealer_set_reveal_child(GTK_REVEALER(item->window->ItemsRevealer),0);
gtk_revealer_set_reveal_child(GTK_REVEALER(item->window->ChildrenRevealer),1);
gtk_box_set_child_packing(GTK_BOX(gtk_widget_get_parent(window->ChildrenRevealer)),window->ChildrenRevealer,1,1,0,GTK_PACK_START);
gtk_box_set_child_packing(GTK_BOX(gtk_widget_get_parent(window->ItemsRevealer)),window->ItemsRevealer,0,0,0,GTK_PACK_START);
yon_on_revealer_switched(window);
g_signal_connect(G_OBJECT(window->MenuWindow),"size-allocate",G_CALLBACK(on_menu_window_size_reallocated),window);
g_object_set_data(G_OBJECT(item->MenuItemRow),"yon_menu_item",item);
gtk_widget_show(item->MenuItemRow);
return item;
}
yon_menu_window *yon_menu_window_open(GtkWidget *, main_window *widgets){
yon_menu_window *window = yon_menu_window_new();
window->target = widgets->BootloadDefaultOSEntry;
g_signal_connect(G_OBJECT(window->ItemsListBox),"row-activated",G_CALLBACK(on_menu_chosen),window);
g_signal_connect(G_OBJECT(window->ChildrenListBox),"row-activated",G_CALLBACK(on_menu_chosen),window);
gtk_window_set_transient_for(GTK_WINDOW(window->MenuWindow),GTK_WINDOW(widgets->MainWindow));
{
yon_menu_item *item = yon_menu_item_new();
item->widgets=widgets;
item->window=window;
item->children=NULL;
gtk_label_set_text(GTK_LABEL(item->MenuTextLabel),DEFAULT_MENU_ITEM_LABEL);
item->target=yon_char_new(DEFAULT_MENU_ITEM_LABEL);
gtk_list_box_insert(GTK_LIST_BOX(window->ItemsListBox),item->MenuItemBox,-1);
yon_dictionary_add_or_create_if_exists_with_data(window->menu_items,DEFAULT_MENU_ITEM_LABEL,item);
gtk_widget_show(item->MenuItemBox);
gtk_widget_hide(item->NextIconButton);
g_signal_connect(G_OBJECT(item->MenuButton),"clicked",G_CALLBACK(on_menu_chosen),item);
yon_menu_item *item = yon_menu_add_item(window,"",DEFAULT_MENU_ITEM_LABEL,0);
gtk_list_box_insert(GTK_LIST_BOX(window->ItemsListBox),item->MenuItemRow,-1);
gtk_widget_hide(item->ArrowImage);
}
int size;
config_str parsed = yon_config_load(get_menus_entry_command,&size);
for (int i=0;i<size;i++){
yon_char_remove_last_symbol(parsed[i],'\n');
int param_size;
config_str parameter = yon_char_parse(parsed[i],&param_size,">");
dictionary * cur_item = NULL;
if (param_size==2&&(cur_item=yon_dictionary_get(&window->menu_items,parameter[0]))){
yon_menu_item *item = (yon_menu_item*)cur_item->data;
yon_menu_item *item_child = yon_menu_item_new();
gtk_widget_hide(item_child->NextIconButton);
gtk_label_set_text(GTK_LABEL(item_child->MenuTextLabel),parameter[1]);
item_child->target=yon_char_new(parsed[i]);
gtk_widget_show(item_child->MenuItemBox);
yon_dictionary_add_or_create_if_exists_with_data(item->children,parameter[1],item_child);
item_child->widgets=widgets;
item_child->window=window;
} else {
yon_menu_item *item = yon_menu_item_new();
item->widgets=widgets;
item->window=window;
gtk_label_set_text(GTK_LABEL(item->MenuTextLabel),parameter[0]);
item->target=yon_char_new(parsed[i]);
gtk_list_box_insert(GTK_LIST_BOX(window->ItemsListBox),item->MenuItemBox,-1);
yon_dictionary_add_or_create_if_exists_with_data(window->menu_items,parameter[0],item);
gtk_widget_show(item->MenuItemBox);
if (param_size==2){
yon_menu_item *item_child = yon_menu_item_new();
gtk_widget_show(item->NextIconButton);
gtk_widget_hide(item_child->NextIconButton);
gtk_label_set_text(GTK_LABEL(item_child->MenuTextLabel),parameter[1]);
item_child->target=yon_char_new(parsed[i]);
gtk_widget_show(item_child->MenuItemBox);
item_child->widgets=widgets;
item_child->window=window;
g_signal_connect(G_OBJECT(item->MenuButton),"clicked",G_CALLBACK(on_submenu_open),item);
yon_dictionary_add_or_create_if_exists_with_data(item->children,parameter[1],item_child);
} else {
gtk_widget_hide(item->NextIconButton);
g_signal_connect(G_OBJECT(item->MenuButton),"clicked",G_CALLBACK(on_menu_chosen),item);
}
config_str options = yon_config_load(get_menus_entry_command,&size);
GHashTable *created = g_hash_table_new(g_str_hash,g_str_equal);
textdomain("ublinux-init-grub-functions");
for (int i=1;i<size;i++){
yon_char_remove_last_symbol(options[i],'\n');
int parsed_size;
config_str parsed = yon_char_parse(options[i],&parsed_size,";");
int have_children=0;
char *children_id;
if ((children_id=strstr(parsed[0],">"))){
children_id[0]='\0';
have_children=1;
}
char *children_name;
if ((children_name=strstr(parsed[1],">"))){
children_name[0]='\0';
have_children=1;
}
if (!g_hash_table_contains(created,parsed[0])){
g_hash_table_add(created,parsed[0]);
yon_menu_item *item = yon_menu_add_item(window,parsed[0],_(parsed[1]),have_children);
gtk_list_box_insert(GTK_LIST_BOX(window->ItemsListBox),item->MenuItemRow,-1);
if (!have_children){
gtk_widget_hide(item->ArrowImage);
}
}
}
textdomain(LocaleName);
g_hash_table_unref(created);
yon_char_parsed_free(options,size);
gtk_window_set_transient_for(GTK_WINDOW(window->MenuWindow), GTK_WINDOW(widgets->MainWindow));
int x,y,width;
@ -285,14 +299,7 @@ gboolean on_menu_clicked(GtkWidget *, GdkEventButton *event, yon_menu_window *wi
gtk_window_get_size(GTK_WINDOW(window->MenuWindow),&width,&height);
gtk_window_get_position(GTK_WINDOW(window->MenuWindow),&x,&y);
if (event->x_root<x||event->y_root<y||event->x_root>x+width||event->y_root>y+height){
GdkDisplay *display = gdk_display_get_default();
GdkSeat *seat = gdk_display_get_default_seat(display);
if (window->seat_grab)
gdk_seat_ungrab(seat);
else
gtk_grab_remove(window->MenuWindow);
gtk_widget_destroy(window->MenuWindow);
yon_menu_ungrab(window);
}
return 1;
@ -359,11 +366,9 @@ void on_menu_window_size_reallocated(GtkWidget *self,GtkAllocation *,yon_menu_wi
yon_menu_item *yon_menu_item_new(){
yon_menu_item *item = new(yon_menu_item);
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_menu_item);
item->MenuItemBox = yon_gtk_builder_get_widget(builder,"MenuItemBox");
item->MenuButton = yon_gtk_builder_get_widget(builder,"MenuButton");
item->MenuItemRow = yon_gtk_builder_get_widget(builder,"MenuItemRow");
item->MenuTextLabel = yon_gtk_builder_get_widget(builder,"MenuTextLabel");
item->NextIconButton = yon_gtk_builder_get_widget(builder,"NextIconButton");
item->children=NULL;
item->ArrowImage = yon_gtk_builder_get_widget(builder,"ArrowImage");
return item;
}

@ -27,6 +27,7 @@ int yon_configuration_hub_save(main_window *){
DOMAIN_admanger_parameter,
KERNEL_BOOT_parameter,
SERVICES_ENABLE_parameter,
AUTOEXEC_parameter,
GRUB_SUPERUSERS_parameter,
GRUB_TIMEOUT_parameter,
GRUB_DEFAULT_parameter,
@ -178,6 +179,7 @@ void yon_configuration_hub_init(main_window *widgets){
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubPersonalListBox),KEYBOARD_TAB_LABEL,"com.ublinux.ubl-settings-keyboard",YON_PAGE_KEYBOARD);
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubSystemListBox),USERS_TAB_LABEL,"com.ublinux.ubl-settings-usergroups",YON_PAGE_USERS);
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubSystemListBox),STARTUP_LABEL,"com.ublinux.ubl-settings-info",YON_PAGE_STARTUP);
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubSystemListBox),STARTUP_APP_LABEL,"com.ublinux.ubl-settings-info",YON_PAGE_APP_STARTUP);
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubSystemListBox),BOOTLOADER_LABEL,"com.ublinux.ubl-settings-bootloader",YON_PAGE_BOOTLOADER);
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubSystemListBox),NETWORK_LABEL,"com.ublinux.ubl-settings-multiseat",YON_PAGE_NETWORK);
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubPackagesListBox),KERNEL_LABEL,kernel_icon_path,YON_PAGE_KERNEL);

@ -313,7 +313,8 @@ void on_device_selection_changed(GtkWidget *self, main_window *widgets){
void yon_devices_setup(main_window *widgets){
GtkTreeIter iter;
if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->DevicesList),&iter)) return;
// if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->DevicesList),&iter)) return;
gtk_list_store_clear(widgets->DevicesList);
int size;
config_str parsed = NULL;
parsed = yon_config_load(yon_debug_output("%s\n",get_devices_command),&size);
@ -463,7 +464,12 @@ void yon_install_init(main_window *widgets, enum YON_PAGES page){
yon_char_parsed_free(fs_types,size);
char *parameter = config(part_fs_type_parameter);
if (!yon_char_is_empty(parameter)){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(fs_type_combo),parameter);
if (!gtk_combo_box_set_active_id(GTK_COMBO_BOX(fs_type_combo),parameter)){
if(gtk_combo_box_get_has_entry(GTK_COMBO_BOX(fs_type_combo))){
gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(fs_type_combo))),parameter);
}
}
} else {
gtk_combo_box_set_active(GTK_COMBO_BOX(fs_type_combo),0);
}

@ -6,20 +6,42 @@ int yon_keyboard_save(main_window *widgets){
} else {
GtkTreeIter iter;
if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->LayoutsList),&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),yon_char_get_localised_from_lib(EMPTY_IMPORTANT_LABEL),5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),yon_char_get_localised_from_lib(_EMPTY_IMPORTANT_LABEL),5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->KeyboardLayoutTree);
return 0;
}
char *final = NULL;
for_iter(widgets->LayoutsList, &iter){
char *target;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LayoutsList),&iter,0,&target,-1);
char *temp = yon_char_append_element(final,target,",");
if (!yon_char_is_empty(final)) free(final);
final = temp;
}
yon_config_register(xkblayout_parameter,xkblayout_parameter_command,final);
if(!yon_char_is_empty(final)) free(final);
}
const char *keyboard_model = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->KeyboardModelCombo));
if (!yon_char_is_empty(keyboard_model)){
yon_config_register(xkbmodel_parameter,xkbmodel_parameter_command,(char*)keyboard_model);
} else {
yon_config_remove_by_key(xkbmodel_parameter);
}
int numlock_active = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->KeyboardNumLockCombo));
char *numlock = NULL;
switch(numlock_active){
case 1: numlock = "on";
break;
case 2: numlock = "off";
break;
}
yon_config_register(num_lock_boot_parameter,num_lock_boot_parameter_command,numlock);
on_options_save(NULL,widgets);
return 1;
}
void yon_keyboard_init(main_window *widgets){
g_signal_handlers_block_by_func(G_OBJECT(widgets->KeyboardModelCombo),G_CALLBACK(on_model_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->KeyboardLayoutChangingCombo),G_CALLBACK(on_options_save),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->KeyboardNumLockCombo),G_CALLBACK(on_num_lock_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->KeyboardScrollLockSwitch),G_CALLBACK(on_scroll_lock_switch),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->KeyboardComposeSwitch),G_CALLBACK(on_compose_switch),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->KeyboardDefaultLayoutsSwitch),G_CALLBACK(on_layout_default_toggled),widgets);
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->KeyboardModelCombo));
int size;
@ -89,8 +111,10 @@ void yon_keyboard_init(main_window *widgets){
{
char *name = yon_config_get_by_key(num_lock_boot_parameter);
if (name) {
if (!strcmp(name,"yes")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->KeyboardNumLockCombo),1);
else if (!strcmp(name,"no")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->KeyboardNumLockCombo),2);
if (!strcmp(name,"yes")||!strcmp(name,"yes")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->KeyboardNumLockCombo),1);
else if (!strcmp(name,"no")||!strcmp(name,"off")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->KeyboardNumLockCombo),2);
} else {
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->KeyboardNumLockCombo),0);
}
}
{
@ -118,22 +142,22 @@ void yon_keyboard_init(main_window *widgets){
}
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->KeyboardModelCombo),G_CALLBACK(on_model_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->KeyboardNumLockCombo),G_CALLBACK(on_num_lock_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->KeyboardLayoutChangingCombo),G_CALLBACK(on_options_save),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->KeyboardScrollLockSwitch),G_CALLBACK(on_scroll_lock_switch),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->KeyboardComposeSwitch),G_CALLBACK(on_compose_switch),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->KeyboardDefaultLayoutsSwitch),G_CALLBACK(on_layout_default_toggled),widgets);
}
void on_layouts_accept(GtkWidget *self, layouts_window *window){
main_window *widgets = g_object_get_data(G_OBJECT(window->Window),"widgets");
if (!yon_char_is_empty(window->parameters)){
yon_config_register(xkblayout_parameter,xkblayout_parameter_command,window->parameters);
} else {
yon_config_remove_by_key(xkblayout_parameter);
gtk_list_store_clear(widgets->LayoutsList);
GtkTreeIter iter;
for_iter (window->list,&iter){
int active;
char *target;
gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&target,3,&active,-1);
if (active){
yon_layout_load(target,widgets);
}
}
on_subwindow_close(self);
yon_keyboard_init(widgets);
}
void on_layouts_chosen(GtkCellRenderer *, gchar *path, layouts_window *window){
@ -244,7 +268,6 @@ void yon_layouts_remove(GtkTreeView *tree, GtkListStore *cur_list, main_window *
if (yon_confirmation_dialog_call(widgets->MainWindow,data)!=GTK_RESPONSE_ACCEPT) return;
gtk_list_store_remove(widgets->LayoutsList,&iter);
}
yon_keyboard_init(widgets);
}
void on_system_layouts_remove(GtkWidget *, main_window *widgets){
@ -356,30 +379,6 @@ void on_layout_move_down(GtkWidget *, main_window *widgets){
}
}
void on_compose_switch(GtkWidget *,int status,main_window *widgets){
switch(status){
case 0:{
yon_config_remove_element(xkboptions_parameter,"compose:rwin",",");
} break;
case 1:{
yon_config_append_element(xkboptions_parameter,"compose:rwin",",");
} break;
}
yon_keyboard_init(widgets);
}
void on_scroll_lock_switch(GtkWidget *,int status,main_window *widgets){
switch(status){
case 0:{
yon_config_remove_element(xkboptions_parameter,"grp_led:scroll",",");
} break;
case 1:{
yon_config_append_element(xkboptions_parameter,"grp_led:scroll",",");
} break;
}
yon_keyboard_init(widgets);
}
void on_layout_default_sensitive_toggled(GtkWidget *, int status, main_window *widgets){
gtk_widget_set_sensitive(widgets->KeyboardLayoutTree,!status);
gtk_widget_set_sensitive(widgets->KeyboardLayoutAddButton,!status);
@ -426,18 +425,6 @@ void on_layout_selection_changed(GtkTreeView *self,main_window *widgets){
}
void on_num_lock_changed(GtkComboBox *self, main_window *){
switch (gtk_combo_box_get_active(self)){
case 0:
yon_config_remove_by_key(num_lock_boot_parameter);
break;
case 1: yon_config_register(num_lock_boot_parameter,num_lock_boot_parameter_command,"yes");
break;
case 2:yon_config_register(num_lock_boot_parameter,num_lock_boot_parameter_command,"no");
break;
}
}
void on_model_changed(GtkComboBoxText *self, main_window *widgets){
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(self))){
case 0:
@ -452,14 +439,21 @@ void on_model_changed(GtkComboBoxText *self, main_window *widgets){
void on_options_save(GtkWidget *,main_window *widgets){
char *main_id = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->KeyboardLayoutChangingCombo));
int parameter_parsed_size;
config_str parameter_parsed = NULL;
yon_char_parsed_add_or_create_if_exists(parameter_parsed,&parameter_parsed_size,!yon_char_is_empty(main_id)?main_id:"");
char *final_parameter = yon_char_parsed_to_string_full(parameter_parsed,parameter_parsed_size,",");
yon_char_parsed_free(parameter_parsed,parameter_parsed_size);
if (!yon_char_is_empty(final_parameter)){
yon_config_register(xkboptions_parameter,xkboptions_parameter_command,final_parameter);
free(final_parameter);
char *options = yon_char_append_element(NULL,main_id,",");
if (gtk_switch_get_active(GTK_SWITCH(widgets->KeyboardComposeSwitch))){
char *temp = yon_char_append_element(options,"compose:rwin",",");
if (!yon_char_is_empty(options)) free(options);
options = temp;
}
if (gtk_switch_get_active(GTK_SWITCH(widgets->KeyboardScrollLockSwitch))){
char *temp = yon_char_append_element(options,"grp_led:scroll",",");
if (!yon_char_is_empty(options)) free(options);
options = temp;
}
if (!yon_char_is_empty(options)){
yon_config_register(xkboptions_parameter,xkboptions_parameter_command,options);
free(options);
} else {
yon_config_remove_by_key(xkboptions_parameter);
}

@ -68,17 +68,25 @@ void on_locale_accept(GtkWidget *self, language_window *window){
}
char *locale_str = config(locale_parameter);
GtkTreeIter iter,itar;
for_iter (GTK_TREE_MODEL(window->LanguagesList),&iter){
char *locale,*lang,*territory;
int status;
gtk_tree_model_get(GTK_TREE_MODEL(window->LanguagesList),&iter,0,&status,1,&locale,2,&lang,3,&territory,-1);
if (status){
gtk_list_store_append(widgets->LanguageList,&itar);
gtk_list_store_set(widgets->LanguageList,&itar,1,lang,2,territory,3,locale,-1);
if (!yon_char_is_empty(locale_str)&&!strcmp(locale_str,locale)){
gtk_list_store_set(widgets->LanguageList,&itar,0,1,-1);
int size;
config_str parsed = yon_char_parse(final,&size,",");
for (int i=0;i<size;i++){
int found = 0;
for_iter(GTK_TREE_MODEL(widgets->LanguageList),&itar){
char *checktarget;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguageList),&itar,3,&checktarget,-1);
if (!strcmp(checktarget,parsed[i])){
found = 1;
break;
}
}
if (found) continue;
char *locale_str = g_hash_table_lookup(main_config.languages,parsed[i]);
if (yon_char_is_empty(locale_str)) continue;
int parameter_size;
config_str parameter_parsed = yon_char_parse(locale_str,&parameter_size,"|");
gtk_list_store_append(widgets->LanguageList,&iter);
gtk_list_store_set(widgets->LanguageList,&iter,1,parameter_parsed[1],2,parameter_parsed[2],3,parameter_parsed[0],-1);
}
if (yon_char_is_empty(locale_str)){
if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->LanguageList),&iter)){
@ -104,8 +112,32 @@ gboolean yon_locale_window_unlock(GtkWidget *spinner){
return G_SOURCE_REMOVE;
}
gboolean yon_locale_window_load(language_window *window){
main_window *widgets = g_object_get_data(G_OBJECT(window->Window),"widgets");
char *config_languages = NULL;
GtkTreeIter iter;
for_iter (widgets->LanguageList,&iter){
char *code;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguageList),&iter,3,&code,-1);
char *temp = yon_char_append_element(config_languages,code,",");
if (!yon_char_is_empty(config_languages)) free(config_languages);
config_languages = temp;
}
if (!yon_char_is_empty(config_languages))
gtk_entry_set_text(GTK_ENTRY(window->ManualEntry),config_languages);
for_iter (window->LanguagesList,&iter){
char *code;
gtk_tree_model_get(GTK_TREE_MODEL(window->LanguagesList),&iter,1,&code,-1);
if (yon_char_check_element(config_languages,code,",")){
gtk_list_store_set(window->LanguagesList,&iter,0,1,-1);
}
}
yon_locale_window_unlock(window->LoadingSpinner);
return G_SOURCE_REMOVE;
}
void *yon_locales_load_func(language_window *window){
char *config_value = config(locale_parameter);
char *config_value = config(lang_parameter);
int config_parsed_size;
config_str config_parsed = NULL;
if (config_value){
@ -133,6 +165,7 @@ void *yon_locales_load_func(language_window *window){
g_idle_add((GSourceFunc)yon_locale_window_set_locales,data_struct);
yon_char_parsed_free(parsed,parsed_size);
}
g_idle_add((GSourceFunc)yon_locale_window_load,window);
g_idle_add((GSourceFunc)yon_locale_window_unlock,window->LoadingSpinner);
yon_char_parsed_free(config_parsed,config_parsed_size);
g_thread_exit(NULL);
@ -159,6 +192,7 @@ language_window *yon_language_window_new(){
gtk_overlay_add_overlay(GTK_OVERLAY(window->LoadingOverlay),window->LoadingSpinner);
g_thread_new("locales-thread",(GThreadFunc)yon_locales_load_func,window);
return window;
}

@ -152,7 +152,7 @@ int yon_network_save(main_window *widgets){
if (gtk_switch_get_active(GTK_SWITCH(widgets->NetworkDomainSwitch))){
const char *domain_name = gtk_entry_get_text(GTK_ENTRY(widgets->NetworkDomainNameEntry));
if (yon_char_is_empty(domain_name)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->NetworkDomainNameEntry);
return 0;
}
@ -161,7 +161,7 @@ int yon_network_save(main_window *widgets){
if (!yon_char_is_empty(domain_name)) yon_config_register(DOMAIN_parameter,DOMAIN_parameter_command,(char*)domain_name);
else yon_config_remove_by_key(DOMAIN_parameter);
if ((!yon_char_is_empty(domain_admin)&&yon_char_is_empty(domain_password))||(yon_char_is_empty(domain_admin)&&!yon_char_is_empty(domain_password))){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->NetworkDomainAdminEntry);
yon_ubl_status_highlight_incorrect(widgets->NetworkDomainPasswordEntry);
return 0;
@ -200,7 +200,7 @@ int yon_network_save(main_window *widgets){
case 4:
char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NetworkNTPEntry));
if (yon_char_is_empty(value)) {
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->NetworkNTPEntry);
return 0;
}
@ -219,7 +219,7 @@ int yon_network_save(main_window *widgets){
hostname = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->HotnameEntry));
}
if (yon_char_is_empty(hostname)){
yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_box_render(_EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->HotnameEntry);
return 0;
}

@ -29,15 +29,19 @@ enum YON_PAGES yon_page_get_next(main_window *widgets, enum YON_PAGES page){
case YON_PAGE_INSTALL_SAME_PARTITION: return YON_PAGE_OS_COMPONENTS; break;
case YON_PAGE_INSTALL_ADVANCED: return YON_PAGE_OS_COMPONENTS; break;
case YON_PAGE_INSTALL_RECOVERY: return yon_recovery_get_next(widgets); break;
case YON_PAGE_RECOVERY_GRUB_INSTALL: return main_config.configure_mode?YON_PAGE_INSTALLATION:YON_PAGE_INSTALLATION_BEGIN; break;
case YON_PAGE_RECOVERY_GRUB_UPDATE: return main_config.configure_mode?YON_PAGE_INSTALLATION:YON_PAGE_INSTALLATION_BEGIN; break;
case YON_PAGE_RECOVERY_OS_ONLY: return main_config.configure_mode?YON_PAGE_INSTALLATION:YON_PAGE_INSTALLATION_BEGIN; break;
case YON_PAGE_RECOVERY_USRDATA_ONLY: return main_config.configure_mode?YON_PAGE_INSTALLATION:YON_PAGE_INSTALLATION_BEGIN; break;
case YON_PAGE_INSTALLATION: break;
case YON_PAGE_CONFIGURE_SAVE: break;
case YON_PAGE_RECOVERY_GRUB_INSTALL: return main_config.configure_mode?YON_PAGE_INSTALLATION:YON_PAGE_RECOVERY_BEGIN; break;
case YON_PAGE_RECOVERY_GRUB_UPDATE: return main_config.configure_mode?YON_PAGE_INSTALLATION:YON_PAGE_RECOVERY_BEGIN; break;
case YON_PAGE_RECOVERY_OS_ONLY: return main_config.configure_mode?YON_PAGE_INSTALLATION:YON_PAGE_RECOVERY_BEGIN; break;
case YON_PAGE_RECOVERY_USRDATA_ONLY: return main_config.configure_mode?YON_PAGE_INSTALLATION:YON_PAGE_RECOVERY_BEGIN; break;
case YON_PAGE_RECOVERY_BEGIN: main_config.save_configured = 1; return YON_PAGE_RECOVERY_PROCESS; break;
case YON_PAGE_RECOVERY_PROCESS: return YON_PAGE_RECOVERY_COMPLETION; break;
case YON_PAGE_INSTALLATION: return YON_PAGE_COMPLETION; break;
case YON_PAGE_CONFIGURE_SAVE:
break;
case YON_PAGE_COMPLETED:
case YON_PAGE_INSTALL_ERROR:
case YON_PAGE_CONFIGURE_END:
case YON_PAGE_RECOVERY_COMPLETION:
case YON_PAGE_COMPLETION:
on_reboot_accepted(widgets);
gtk_main_quit();
@ -123,20 +127,31 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){
gtk_widget_set_sensitive(widgets->BackButton,0);
gtk_widget_set_sensitive(widgets->CancelInstallButton,1);
break;
case YON_PAGE_RECOVERY_PROCESS:
gtk_widget_set_sensitive(widgets->NextButton,0);
gtk_widget_set_sensitive(widgets->BackButton,0);
gtk_widget_set_sensitive(widgets->CancelInstallButton,1);
break;
case YON_PAGE_CONFIGURE_END:
gtk_button_set_label(GTK_BUTTON(widgets->NextButton),SAVE_AND_EXIT_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL);
break;
case YON_PAGE_COMPLETED:
case YON_PAGE_RECOVERY_COMPLETION:
case YON_PAGE_INSTALL_ERROR:
case YON_PAGE_CONFIGURE_SAVE:
case YON_PAGE_COMPLETION:
gtk_button_set_label(GTK_BUTTON(widgets->NextButton),RESTART_LABEL);
gtk_widget_set_sensitive(widgets->BackButton,0);
gtk_widget_set_sensitive(widgets->CancelInstallButton,0);
gtk_widget_set_sensitive(widgets->NextButton,1);
break;
case YON_PAGE_SECTIONS:
gtk_widget_show(widgets->SourceButton);
gtk_widget_set_sensitive(widgets->BackButton,1);
gtk_widget_set_sensitive(widgets->NextButton,1);
gtk_widget_set_sensitive(widgets->CancelInstallButton,1);
break;
default:
gtk_widget_set_sensitive(widgets->BackButton,1);
@ -154,6 +169,7 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){
case YON_PAGE_KEYBOARD:
case YON_PAGE_USERS:
case YON_PAGE_STARTUP:
case YON_PAGE_APP_STARTUP:
case YON_PAGE_LANGUAGE:
case YON_PAGE_BOOTLOADER:
case YON_PAGE_PACKAGES:
@ -209,6 +225,9 @@ int yon_page_save(main_window *widgets, enum YON_PAGES page){
case YON_PAGE_STARTUP:
return yon_startup_save(widgets);
break;
case YON_PAGE_APP_STARTUP:
return yon_startup_app_save(widgets);
break;
case YON_PAGE_BOOTLOADER:
return yon_bootloader_save(widgets);
break;
@ -243,6 +262,7 @@ int yon_page_save(main_window *widgets, enum YON_PAGES page){
return yon_install_options_save(widgets->UserdataDevicesTree,widgets->UserdataSysSectionTree,"data_only",widgets);
break;
case YON_PAGE_INSTALLATION_BEGIN:
case YON_PAGE_RECOVERY_BEGIN:
return yon_installation_start(widgets);
break;
case YON_PAGE_CONFIGURE_END:
@ -273,6 +293,7 @@ void yon_switch_page_render(main_window *widgets){
case YON_PAGE_RECOVERY_GRUB_UPDATE:
case YON_PAGE_RECOVERY_OS_ONLY:
case YON_PAGE_RECOVERY_USRDATA_ONLY:
case YON_PAGE_RECOVERY_BEGIN:
page = 2;
break;
case YON_PAGE_CONFIG_HUB:
@ -292,8 +313,10 @@ void yon_switch_page_render(main_window *widgets){
page = 3;
break;
case YON_PAGE_INSTALLATION:
case YON_PAGE_RECOVERY_PROCESS:
page = 4;
break;
case YON_PAGE_RECOVERY_COMPLETION:
case YON_PAGE_COMPLETED:
case YON_PAGE_COMPLETION:
case YON_PAGE_INSTALL_ERROR:
@ -395,6 +418,9 @@ void yon_page_init(main_window *widgets, enum YON_PAGES page){
case YON_PAGE_STARTUP:
yon_startup_services_setup(widgets);
break;
case YON_PAGE_APP_STARTUP:
yon_startup_apps_setup(widgets);
break;
case YON_PAGE_BOOTLOADER:
yon_bootloader_init(widgets);
break;
@ -424,7 +450,6 @@ void yon_page_init(main_window *widgets, enum YON_PAGES page){
if (main_config.install_complete){
g_mutex_unlock(&main_config.install_mutex);
g_thread_new("install_thread",(GThreadFunc)on_setup_system_configuration,widgets);
on_page_next_clicked(NULL,widgets);
} else {
g_mutex_unlock(&main_config.install_mutex);
}
@ -453,33 +478,37 @@ void on_page_prev_clicked(GtkWidget *, main_window *widgets){
}
void on_page_cancel_clicked(GtkWidget *, main_window *widgets){
gtk_widget_hide(widgets->BackButton);
gtk_widget_hide(widgets->SourceButton);
gtk_widget_show(widgets->NextButton);
gtk_widget_show(widgets->StartScenarioButton);
gtk_widget_set_sensitive(widgets->CancelInstallButton,0);
gtk_widget_set_sensitive(widgets->BackButton,1);
gtk_widget_set_sensitive(widgets->NextButton,1);
gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,1);
yon_page_update(widgets);
if (main_config.install_thread){
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
data->action_text=INTERRUPT_TEXT_LABEL;
data->title=WARNING_TITLE_LABEL;
if (yon_confirmation_dialog_call(widgets->MainWindow,data)==GTK_RESPONSE_ACCEPT ){
if (main_config.install_thread){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_LICENCE);
on_page_prev_clicked(NULL,widgets);
gtk_widget_hide(gtk_widget_get_parent(widgets->InstallationProgress));
gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress));
pthread_cancel((pthread_t)main_config.install_thread);
}
pthread_cancel((pthread_t)main_config.install_thread);
}
}
// gtk_widget_hide(widgets->BackButton);
// gtk_widget_hide(widgets->SourceButton);
// gtk_widget_show(widgets->NextButton);
// gtk_widget_show(widgets->StartScenarioButton);
// gtk_widget_set_sensitive(widgets->CancelInstallButton,0);
// gtk_widget_set_sensitive(widgets->BackButton,1);
// gtk_widget_set_sensitive(widgets->NextButton,1);
// gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,1);
// gtk_widget_show(widgets->NextButton);
// gtk_widget_show(widgets->BackButton);
gtk_button_set_label(GTK_BUTTON(widgets->NextButton),NEXT_LABEL);
GtkWidget *image = gtk_button_get_image(GTK_BUTTON(widgets->NextButton));
gtk_image_set_from_icon_name(GTK_IMAGE(image),arrow_right_icon_path,GTK_ICON_SIZE_BUTTON);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LicenseAgreeRadio))){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_SECTIONS);
} else {
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_LICENCE);
on_page_prev_clicked(NULL,widgets);
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_WELCOME);
}
yon_page_update(widgets);
main_config.save_done=0;
main_config.install_complete=0;
main_config.install_thread=0;
}
void on_additional_page_clicked(GtkWidget *, main_window *widgets){

@ -10,20 +10,11 @@ int yon_region_save(main_window *widgets){
yon_ubl_status_highlight_incorrect(widgets->ZoneCombo);
return 0;
}
char *languages = "";
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->LanguagesFilter);
char *lang_code=NULL;
for_iter(model,&iter){
gtk_tree_model_get(model,&iter,2,&lang_code,-1);
languages = yon_char_unite(languages,!yon_char_is_empty(languages)?",":"",lang_code,NULL);
}
if (yon_char_is_empty(languages)){
yon_config_remove_by_key(locale_parameter);
} else {
yon_config_register(locale_parameter,locale_parameter_command,languages);
free(languages);
}
const char *region = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo));
const char *zone = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo));
char *final = yon_char_unite(region,"/",zone,NULL);
yon_config_register(zone_parameter,zone_parameter_command,final);
free(final);
return 1;
}
@ -46,24 +37,6 @@ void on_region_changed(GtkComboBox *self, main_window *widgets){
void yon_region_init(main_window *widgets){
int size;
config_str parsed = NULL;
int langsize;
config_str lang = default_langs(&langsize);
GtkTreeIter iter;
gtk_list_store_clear(widgets->LanguagesList);
config_str languages = yon_config_load(languages_command,&size);
for (int i=0;i<size;i++){
int parsed_size;
config_str parsed = yon_char_parse(languages[i],&parsed_size,"|");
gtk_list_store_append(widgets->LanguagesList,&iter);
gtk_list_store_set(widgets->LanguagesList,&iter,0,0,1,parsed[0],2,parsed[1],3,parsed[2],-1);
}
yon_char_parsed_free(parsed,size);
if (lang)
yon_char_parsed_free(lang,langsize);
parsed = yon_dir_get_contents(zone_path,&size);
for (int i=0;i<size;i++){
if (!strstr(parsed[i],".")&&strcmp(parsed[i],"posix")&&strcmp(parsed[i],"right")){
@ -77,10 +50,6 @@ void yon_region_init(main_window *widgets){
while(gtk_events_pending()) gtk_main_iteration();
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->RegionCombo),0);
yon_char_parsed_free(parsed,size);
gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter),0);
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
char *zone = yon_char_new(config(zone_parameter));
if (!yon_char_is_empty(zone)){

@ -38,7 +38,7 @@ void on_config_local_load(GtkWidget *,main_window *widgets){
if (!yon_char_is_empty(main_config.config_load_path)) free(main_config.config_load_path);
main_config.config_load_path = yon_char_new("system");
yon_load_proceed(YON_CONFIG_LOCAL);
yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
// yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
main_config.load_mode=YON_CONFIG_LOCAL;
}
@ -50,23 +50,23 @@ void on_config_global_load(GtkWidget *,main_window *widgets){
if (!yon_char_is_empty(main_config.config_load_path)) free(main_config.config_load_path);
main_config.config_load_path = yon_char_new("global");
yon_load_proceed(YON_CONFIG_GLOBAL);
yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
// yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
main_config.load_mode=YON_CONFIG_GLOBAL;
}
void on_config_custom_load(GtkWidget *,main_window *widgets){
void on_config_custom_load(GtkWidget *,main_window *){
yon_load_proceed(YON_CONFIG_CUSTOM);
yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
// yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
main_config.load_mode=YON_CONFIG_CUSTOM;
}
void on_config_custom_load_last(GtkWidget *,main_window *widgets){
void on_config_custom_load_last(GtkWidget *,main_window *){
yon_config_clean();
if (!yon_char_is_empty(config_get_default_command))
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
char *command = config_get_command(main_config.config_load_path);
yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL);
yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
// yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
main_config.load_mode=YON_CONFIG_CUSTOM;
}
@ -89,9 +89,8 @@ void on_config_global_save(GtkWidget *,main_window *widgets){
gboolean on_install_success(main_window *widgets){
gtk_label_set_text(GTK_LABEL(widgets->InstallationLabel),"");
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETION);
yon_config_restore(widgets);
yon_page_update(widgets);
on_page_next_clicked(NULL,widgets);
return 0;
}
@ -204,7 +203,7 @@ void *on_config_save(void *data){
g_mutex_unlock(&main_config.install_mutex);
if ((!main_config.save_done)&&main_config.save_configured){
on_setup_system_configuration(widgets);
on_page_next_clicked(NULL,widgets);
// on_page_next_clicked(NULL,widgets);
}
} else {
yon_launch("ubconfig --source system get /");
@ -294,12 +293,12 @@ void *on_setup_system_configuration(void * data){
}
if (!main_config.dry_run){
char *parameter_string = yon_char_parsed_to_string(all_parameters,size," ");
char *command = set_user_config_command(parameter_string);
if (system(yon_debug_output("%s\n",command))){};
yon_char_parsed_free(all_parameters,size);
free(command);
if (parameter_string) free(parameter_string);
char *parameter_string = yon_char_parsed_to_string(all_parameters,size," ");
char *command = set_user_config_command(parameter_string);
if (system(yon_debug_output("%s\n",command))){};
yon_char_parsed_free(all_parameters,size);
free(command);
if (parameter_string) free(parameter_string);
} else {
yon_launch("ubconfig --source system get /");
}

@ -90,6 +90,11 @@ void yon_source_update(source_window *window){
void on_source_add(GtkWidget *,source_window *window){
const char *path = gtk_widget_get_visible(window->PathEntry)?gtk_entry_get_text(GTK_ENTRY(window->PathEntry)):gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->DeviceCombo));
if (yon_char_is_empty(path)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_visible(window->PathEntry)?window->PathEntry:window->DeviceCombo);
return;
}
if (!yon_dictionary_get(&window->sources,(char*)path)){
yon_dictionary_add_or_create_if_exists_with_data(window->sources,yon_char_new(path),NULL);
gtk_entry_set_text(GTK_ENTRY(window->PathEntry),"");
@ -170,6 +175,11 @@ void on_source_accept(GtkWidget *,source_window *window){
} break;
case 1:{
char *cur = (char*)gtk_entry_get_text(GTK_ENTRY(element->PathEntry));
if (yon_char_is_empty(cur)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(element->PathEntry);
return;
}
if (yon_char_check_element(sources_list,cur,",")){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),VALUE_REPEAT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(element->DeviceCombo);
@ -200,22 +210,22 @@ void on_source_accept(GtkWidget *,source_window *window){
int size;
config_str paths = NULL;
dictionary *dict;
if (!window->sources) return;
for_dictionaries(dict,window->sources){
if (yon_char_parsed_check_exist(paths,size,dict->key)>-1){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),VALUE_REPEAT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
if (window->sources){
for_dictionaries(dict,window->sources){
if (yon_char_parsed_check_exist(paths,size,dict->key)>-1){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),VALUE_REPEAT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
return;
}
yon_char_parsed_add_or_create_if_exists(paths,&size,dict->key);
}
if (!size){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->PathEntry);
return;
}
yon_char_parsed_add_or_create_if_exists(paths,&size,dict->key);
}
if (!size){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->PathEntry);
return;
}
char *parameter_string = yon_char_parsed_to_string(paths,(int)size,",");
free(parameter_string);
on_subwindow_close(window->Window);
if (!yon_char_is_empty(parameter_string)) free(parameter_string);
if (!main_config.configure_mode){
int size;
@ -229,6 +239,7 @@ void on_source_accept(GtkWidget *,source_window *window){
}
}
yon_dictionary_free_all(window->sources,NULL);
on_subwindow_close(window->Window);
free(window);
}

@ -0,0 +1,214 @@
#include "ubinstall-gtk.h"
void on_srartup_apps_toggled(GtkWidget *, char *path, main_window *widgets){
GtkTreeIter iter;
int status;
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->StartupAppsList),&iter,path);
gtk_tree_model_get(GTK_TREE_MODEL(widgets->StartupAppsList),&iter,0,&status,-1);
gtk_list_store_set(widgets->StartupAppsList,&iter,0,!status,-1);
}
void on_startup_apps_selection_changed(GtkWidget *,main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->StartupAppsTree)),&model,&iter)){
int status;
gtk_tree_model_get(model,&iter,4,&status,-1);
if (status){
gtk_widget_set_sensitive(widgets->StartupAppsEditButton,1);
gtk_widget_set_sensitive(widgets->StartupAppsRemoveButton,1);
return;
}
}
gtk_widget_set_sensitive(widgets->StartupAppsEditButton,0);
gtk_widget_set_sensitive(widgets->StartupAppsRemoveButton,0);
}
void on_startup_apps_remove(GtkWidget *self,main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->StartupAppsTree)),&model,&iter)){
char *unit;
int deletable;
gtk_tree_model_get(model,&iter,2,&unit,4,&deletable,-1);
if (!deletable) return;
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
data->action_text = SERVICE_REMOVE_CONFIRMATION_LABEL(unit);
data->title = SERVICE_REMOVE_TITLE_LABEL;
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
gtk_list_store_remove(widgets->StartupList,&iter);
}
}
}
void yon_startup_apps_setup(main_window *widgets){
GtkTreeIter iter;
if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->StartupAppsList),&iter)){
int size;
config_str apps = yon_resource_open_file(apps_list_path,&size);
for (int i=1;i<size;i++){
int parsed_size;
config_str parsed = yon_char_parse(apps[i],&parsed_size,";");
if (parsed_size&&!yon_char_is_empty(parsed[0])){
gtk_list_store_append(widgets->StartupAppsList,&iter);
gtk_list_store_set(widgets->StartupAppsList,&iter,0,1,1,parsed[0],2,yon_char_return_if_exist(parsed[1],""),3,yon_char_return_if_exist(_(parsed[2]),""),-1);
}
}
}
char *startup = config(SERVICES_ENABLE_parameter);
if (!yon_char_is_empty(startup)){
if (!strcmp(startup,"auto")){
for_iter(GTK_TREE_MODEL(widgets->StartupAppsList),&iter){
gtk_list_store_set(widgets->StartupAppsList,&iter,0,1,-1);
}
} else {
int parsed_size;
config_str parsed = yon_char_parse(startup,&parsed_size,",");
for_iter(GTK_TREE_MODEL(widgets->StartupAppsList),&iter){
char *target;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->StartupAppsList),&iter,2,&target,-1);
if (strstr(target,",")){
int target_size;
config_str target_parsed = yon_char_parse(target,&target_size,",");
int found =0;
for (int i=0;i<target_size;i++){
int pos = yon_char_parsed_check_exist(parsed,parsed_size,target_parsed[i]);
if (pos>-1){
found++;
parsed = yon_char_parsed_rip(parsed,&parsed_size,pos);
}
}
if (found == target_size){
gtk_list_store_set(widgets->StartupAppsList,&iter,0,1,-1);
} else {
gtk_list_store_set(widgets->StartupAppsList,&iter,0,0,-1);
}
yon_char_parsed_free(target_parsed,target_size);
} else {
int pos = yon_char_parsed_check_exist(parsed,parsed_size,target);
if (pos>-1){
gtk_list_store_set(widgets->StartupAppsList,&iter,0,1,-1);
parsed = yon_char_parsed_rip(parsed,&parsed_size,pos);
} else {
gtk_list_store_set(widgets->StartupAppsList,&iter,0,0,-1);
}
}
}
if (parsed_size&&parsed){
for (int i=0;i<parsed_size;i++){
gtk_list_store_append(widgets->StartupAppsList,&iter);
gtk_list_store_set(widgets->StartupAppsList,&iter,0,1,2,parsed[i],-1);
}
}
yon_char_parsed_free(parsed,parsed_size);
}
}
}
void on_startup_app_add_accept(GtkWidget *self, main_window *widgets){
startup_service_window *window = g_object_get_data(G_OBJECT(self),"startup_service_window");
const char *unit = gtk_entry_get_text(GTK_ENTRY(window->UnitEntry));
const char *app = gtk_entry_get_text(GTK_ENTRY(window->ServiceEntry));
const char *description = gtk_entry_get_text(GTK_ENTRY(window->DescriptionEntry));
if (yon_char_is_empty(app)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->ServiceEntry);
return;
}
GtkTreeIter iter;
gtk_list_store_append(widgets->StartupAppsList,&iter);
gtk_list_store_set(widgets->StartupAppsList,&iter,0,1,1,unit,2,app,3,description,4,1,-1);
on_subwindow_close(self);
}
void on_startup_app_edit_accept(GtkWidget *self, main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->StartupServicesTree)),&model,&iter)){
startup_service_window *window = g_object_get_data(G_OBJECT(self),"startup_service_window");
const char *unit = gtk_entry_get_text(GTK_ENTRY(window->UnitEntry));
const char *app = gtk_entry_get_text(GTK_ENTRY(window->ServiceEntry));
const char *description = gtk_entry_get_text(GTK_ENTRY(window->DescriptionEntry));
if (yon_char_is_empty(app)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->ServiceEntry);
return;
}
gtk_list_store_set(widgets->StartupAppsList,&iter,0,1,1,unit,2,app,3,description,4,1,-1);
}
on_subwindow_close(self);
}
startup_service_window *yon_startup_app_window_new(){
startup_service_window *window = new(startup_service_window);
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_service);
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->UnitEntry = yon_gtk_builder_get_widget(builder,"UnitEntry");
window->ServiceEntry = yon_gtk_builder_get_widget(builder,"ServiceEntry");
window->DescriptionEntry = yon_gtk_builder_get_widget(builder,"DescriptionEntry");
window->AppLabel = yon_gtk_builder_get_widget(builder,"AppLabel");
window->GroupLabel = yon_gtk_builder_get_widget(builder,"GroupLabel");
window->DescriptionLabel = yon_gtk_builder_get_widget(builder,"DescriptionLabel");
gtk_label_set_text(GTK_LABEL(window->AppLabel),APP_LABEL);
gtk_label_set_text(GTK_LABEL(window->AppLabel),GROUP_LABEL);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_object_set_data(G_OBJECT(window->AcceptButton),"startup_service_window",window);
return window;
}
void on_startup_app_add(GtkWidget *, main_window *widgets){
startup_service_window *window = yon_startup_app_window_new();
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->MainWindow),SERVICE_ADD_TITLE_LABEL,icon_path,"app_add_window");
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_startup_app_add_accept),widgets);
gtk_widget_show(window->Window);
}
void on_startup_app_edit(GtkWidget *, main_window *widgets){
GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->StartupServicesTree)),NULL,&iter)){
char *app, *unit, *description;
int status;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->StartupAppsList),&iter,1,&unit,2,&app,3,&description,4,&status,-1);
if (status){
startup_service_window *window = yon_startup_app_window_new();
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->MainWindow),SERVICE_EDIT_TITLE_LABEL,icon_path,"app_add_window");
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_startup_app_edit_accept),widgets);
gtk_entry_set_text(GTK_ENTRY(window->UnitEntry),unit);
gtk_entry_set_text(GTK_ENTRY(window->ServiceEntry),app);
gtk_entry_set_text(GTK_ENTRY(window->DescriptionEntry),description);
gtk_widget_show(window->Window);
}
}
}
int yon_startup_app_save(main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->StartupAppsList);
int size = 0;
int list_size=0;
config_str modules = NULL;
for_iter(model,&iter){
list_size++;
char *target;
int status;
gtk_tree_model_get(model,&iter,0,&status,2,&target,-1);
if (status){
yon_char_parsed_add_or_create_if_exists(modules,&size,target);
}
}
if (size){
char *final = yon_char_parsed_to_string(modules,size,",");
yon_config_register(AUTOEXEC_parameter,AUTOEXEC_parameter_command,final);
yon_char_parsed_free(modules,size);
} else {
yon_config_remove_by_key(AUTOEXEC_parameter);
}
return 1;
}

@ -52,7 +52,7 @@ void yon_startup_services_setup(main_window *widgets){
config_str parsed = yon_char_parse(services[i],&parsed_size,";");
if (parsed_size&&!yon_char_is_empty(parsed[0])){
gtk_list_store_append(widgets->StartupList,&iter);
gtk_list_store_set(widgets->StartupList,&iter,0,1,1,parsed[0],2,yon_char_return_if_exist(parsed[1],""),3,yon_char_return_if_exist(parsed[2],""),-1);
gtk_list_store_set(widgets->StartupList,&iter,0,1,1,parsed[0],2,yon_char_return_if_exist(parsed[1],""),3,yon_char_return_if_exist(_(parsed[2]),""),-1);
}
}
}

@ -91,6 +91,8 @@ yon_user_struct *yon_user_struct_new(){
user->PasswordCombo = yon_gtk_builder_get_widget(builder,"PasswordCombo");
user->PasswordEntry = yon_gtk_builder_get_widget(builder,"PasswordEntry");
user->PasswordButton = yon_gtk_builder_get_widget(builder,"PasswordButton");
yon_gtk_entry_block_symbols(GTK_ENTRY(user->LoginEntry),"'\"=:\n");
yon_gtk_entry_block_symbols(GTK_ENTRY(user->UsernameEntry),"'\":\n");
g_object_set_data(G_OBJECT(user->MainBox),"yon_user_struct",user);

@ -54,7 +54,7 @@ void on_link(GtkWidget *self, char* uri, gpointer ){
on_open_documentation_confirmation(self,uri);
}
void on_about(GtkWidget *, char *version_application){
void yon_on_about(GtkWidget *, main_window *){
GtkBuilder *builder=gtk_builder_new_from_resource(ui_glade_path_about);
GtkWidget *window=yon_gtk_builder_get_widget(builder,"AboutWindow");
GtkWidget *title=yon_gtk_builder_get_widget(builder,"headerAboutTopic");
@ -336,6 +336,7 @@ void config_init(){
main_config.exit_accepted=0;
main_config.config_load_path = NULL;
main_config.config_save_path = NULL;
main_config.force_scenario=0;
yon_packages_init();
main_config.dry_run=0;
main_config.force_ini=NULL;
@ -343,7 +344,16 @@ void config_init(){
main_config.slides = NULL;
main_config.chosen_slide = NULL;
main_config.os_name = NULL;
{
int size;
config_str ret = yon_config_load(os_name_get_command,&size);
if (size){
yon_char_remove_last_symbol(ret[0],'\n');
main_config.os_name = yon_char_new(ret[0]);
yon_char_parsed_free(ret,size);
}
}
main_config.languages = g_hash_table_new(g_str_hash,g_str_equal);
int size;
config_str languages = yon_config_load(languages_command,&size);
@ -367,24 +377,14 @@ void config_init(){
}
}
// void on_root_get_root(char *argline){
// yon_launch(argline);
// }
// void *on_setup_system_configuration(void *data);
void on_additional_software_toggled(GtkWidget *, char *, main_window *){
// GtkTreeIter iter;
// int status;
// gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter,path);
// gtk_tree_model_get(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter,0,&status,-1);
// gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,!status,-1);
}
void on_gparted_open(){
yon_launch_app_with_arguments(open_gparted_command,NULL);
}
void on_gparted_update(GtkWidget *, main_window *widgets){
yon_devices_setup(widgets);
}
void on_reboot_accepted(main_window *){
g_mutex_lock(&main_config.install_mutex);
if (main_config.install_thread){
@ -396,7 +396,7 @@ void on_reboot_accepted(main_window *){
if (system("reboot")){};
}
void on_exit_accepted(main_window *widgets){
void on_exit_accepted(main_window *){
g_mutex_lock(&main_config.install_mutex);
if (main_config.install_thread){
pthread_cancel((pthread_t)main_config.install_thread);
@ -404,7 +404,8 @@ void on_exit_accepted(main_window *widgets){
}
main_config.exit_accepted=1;
while(gtk_events_pending()) gtk_main_iteration();
gtk_widget_destroy(widgets->MainWindow);
// gtk_widget_destroy(widgets->MainWindow);
// gtk_main_quit();
}
gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets){
@ -603,7 +604,6 @@ void yon_main_window_create(main_window *widgets){
widgets->Notebook = yon_gtk_builder_get_widget(builder,"Notebook");
widgets->MainSpinner=yon_gtk_builder_get_widget(builder,"MainSpinner");
widgets->LicenseAgreeRadio = yon_gtk_builder_get_widget(builder,"LicenseAgreeRadio");
widgets->LicenseDisgreeRadio = yon_gtk_builder_get_widget(builder,"LicenseDisgreeRadio");
widgets->DocumentationMenuItem = yon_ubl_menu_item_documentation_new(DOCUMENTATION_LABEL);
widgets->AboutMenuItem = yon_ubl_menu_item_about_new(ABOUT_LABEL);
@ -650,7 +650,8 @@ void yon_main_window_create(main_window *widgets){
widgets->CommonInstallationFilesystemTypeCombo = yon_gtk_builder_get_widget(builder,"CommonInstallationFilesystemTypeCombo");
widgets->CommonInstallationSectionNameEntry = yon_gtk_builder_get_widget(builder,"CommonInstallationSectionNameEntry");
widgets->CommonFormatSwitch = yon_gtk_builder_get_widget(builder,"CommonFormatSwitch");
widgets->GpartedCommonButton = yon_gtk_builder_get_widget(builder,"GpartedCommonButton");
widgets->CommonGpartedButton = yon_gtk_builder_get_widget(builder,"CommonGpartedButton");
widgets->CommonUpdateGpartedButton = yon_gtk_builder_get_widget(builder,"CommonUpdateGpartedButton");
widgets->SamePlaceDeviceTree = yon_gtk_builder_get_widget(builder,"SamePlaceDeviceTree");
widgets->SamePlacePartTree = yon_gtk_builder_get_widget(builder,"SamePlacePartTree");
@ -658,7 +659,8 @@ void yon_main_window_create(main_window *widgets){
widgets->SameInstallationFormatRevealer = yon_gtk_builder_get_widget(builder,"SameInstallationFormatRevealer");
widgets->SameInstallationFilesystemTypeCombo = yon_gtk_builder_get_widget(builder,"SameInstallationFilesystemTypeCombo");
widgets->SameInstallationSectionNameEntry = yon_gtk_builder_get_widget(builder,"SameInstallationSectionNameEntry");
widgets->GpartedSameButton = yon_gtk_builder_get_widget(builder,"GpartedSameButton");
widgets->SameGpartedButton = yon_gtk_builder_get_widget(builder,"SameGpartedButton");
widgets->SameUpdateGpartedButton = yon_gtk_builder_get_widget(builder,"SameUpdateGpartedButton");
widgets->NextInstallationFilesystemTypeCombo = yon_gtk_builder_get_widget(builder,"NextInstallationFilesystemTypeCombo");
widgets->NextInstallationFormatSwitch = yon_gtk_builder_get_widget(builder,"NextInstallationFormatSwitch");
@ -668,10 +670,13 @@ void yon_main_window_create(main_window *widgets){
widgets->NextInstallationSizeTypeSpin = yon_gtk_builder_get_widget(builder,"NextInstallationFormatSizeCombo");
widgets->NextInstallationSysDevicesTree = yon_gtk_builder_get_widget(builder,"NextInstallationSysDevicesTree");
widgets->NextInstallationSysSectionTree = yon_gtk_builder_get_widget(builder,"NextInstallationSysSectionTree");
widgets->GpartedNextInstallationButton = yon_gtk_builder_get_widget(builder,"GpartedNextInstallationButton");
widgets->NextInstallationGPartedButton = yon_gtk_builder_get_widget(builder,"NextInstallationGPartedButton");
widgets->NextInstallationUpdateGPartedButton = yon_gtk_builder_get_widget(builder,"NextInstallationUpdateGPartedButton");
widgets->AdvancedDeviceChosenCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"AdvancedDeviceChosenCell"));
widgets->AdvancedPartChosenCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"AdvancedPartChosenCell"));
widgets->AdvancedGpartedButton = yon_gtk_builder_get_widget(builder,"AdvancedGpartedButton");
widgets->AdvancedUpdateGpartedButton = yon_gtk_builder_get_widget(builder,"AdvancedUpdateGpartedButton");
widgets->AdvancedDeviceTree = yon_gtk_builder_get_widget(builder,"AdvancedDeviceTree");
widgets->AdvancedVirtualDeviceCombo = yon_gtk_builder_get_widget(builder,"AdvancedVirtualDeviceCombo");
widgets->AdvancedPartitionTree = yon_gtk_builder_get_widget(builder,"AdvancedPartitionTree");
@ -692,17 +697,20 @@ void yon_main_window_create(main_window *widgets){
widgets->GrubInstallDevicesTree = yon_gtk_builder_get_widget(builder,"GrubInstallDevicesTree");
widgets->GrubInstallPartitionTree = yon_gtk_builder_get_widget(builder,"GrubInstallPartitionTree");
widgets->GpartedGrubInstallButton = yon_gtk_builder_get_widget(builder,"GpartedGrubInstallButton");
widgets->GrubInstallGpartedButton = yon_gtk_builder_get_widget(builder,"GrubInstallGpartedButton");
widgets->GrubInstallUpdateGpartedButton = yon_gtk_builder_get_widget(builder,"GrubInstallUpdateGpartedButton");
widgets->GrubUpdateDevicesTree = yon_gtk_builder_get_widget(builder,"GrubUpdateDevicesTree");
widgets->GrubUpdatePartitionTree = yon_gtk_builder_get_widget(builder,"GrubUpdatePartitionTree");
widgets->GpartedGrubUpdateButton = yon_gtk_builder_get_widget(builder,"GpartedGrubUpdateButton");
widgets->GrubUpdateGpartedButton = yon_gtk_builder_get_widget(builder,"GrubUpdateGpartedButton");
widgets->GrubUpdateUpdateGpartedButton = yon_gtk_builder_get_widget(builder,"GrubUpdateUpdateGpartedButton");
widgets->OSDevicesTree = yon_gtk_builder_get_widget(builder,"OSDevicesTree");
widgets->OSSpinner = yon_gtk_builder_get_widget(builder,"OSSpinner");
widgets->OSOverlay = yon_gtk_builder_get_widget(builder,"OSOverlay");
widgets->OSSysSectionTree = yon_gtk_builder_get_widget(builder,"OSSysSectionTree");
widgets->GpartedOSButton = yon_gtk_builder_get_widget(builder,"GpartedOSButton");
widgets->OSGpartedButton = yon_gtk_builder_get_widget(builder,"OSGpartedButton");
widgets->OSUpdateGpartedButton = yon_gtk_builder_get_widget(builder,"OSUpdateGpartedButton");
widgets->OSFormatSwitch = yon_gtk_builder_get_widget(builder,"OSFormatSwitch");
widgets->OSRevealer = yon_gtk_builder_get_widget(builder,"OSRevealer");
widgets->OSFormatSizeSpin = yon_gtk_builder_get_widget(builder,"OSFormatSizeSpin");
@ -715,7 +723,8 @@ void yon_main_window_create(main_window *widgets){
widgets->UserdataDevicesTree = yon_gtk_builder_get_widget(builder,"UserdataDevicesTree");
widgets->UserdataSysSectionTree = yon_gtk_builder_get_widget(builder,"UserdataSysSectionTree");
widgets->GpartedUserdataButton = yon_gtk_builder_get_widget(builder,"UserdataGpartedButton");
widgets->UserdataGpartedButton = yon_gtk_builder_get_widget(builder,"UserdataGpartedButton");
widgets->UserdataUpdateGpartedButton = yon_gtk_builder_get_widget(builder,"UserdataUpdateGpartedButton");
widgets->UserdataFormatSwitch = yon_gtk_builder_get_widget(builder,"UserdataFormatSwitch");
widgets->UserdataRevealer = yon_gtk_builder_get_widget(builder,"UserdataRevealer");
widgets->UserdataFormatSizeSpin = yon_gtk_builder_get_widget(builder,"UserdataFormatSizeSpin");
@ -823,6 +832,13 @@ void yon_main_window_create(main_window *widgets){
widgets->StartupChosenCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"StartupChosenCell"));
widgets->StartupList = GTK_LIST_STORE(gtk_builder_get_object(builder,"StartupList"));
widgets->StartupAppsTree = yon_gtk_builder_get_widget(builder,"StartupAppsTree");
widgets->StartupAppsAddButton = yon_gtk_builder_get_widget(builder,"StartupAppsAddButton");
widgets->StartupAppsEditButton = yon_gtk_builder_get_widget(builder,"StartupAppsEditButton");
widgets->StartupAppsRemoveButton = yon_gtk_builder_get_widget(builder,"StartupAppsRemoveButton");
widgets->StartupAppsChosenCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"StartupAppsChosenCell"));
widgets->StartupAppsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"StartupAppsList"));
// widgets->BootloaderImage = yon_gtk_builder_get_widget(builder,"BootloaderImage");
widgets->BootloadTimerSwitch = yon_gtk_builder_get_widget(builder,"BootloadTimerSwitch");
widgets->BootloadTimerSpin = yon_gtk_builder_get_widget(builder,"BootloadTimerSpin");
@ -885,9 +901,23 @@ void yon_main_window_create(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->ReadFullLogButton),"clicked",G_CALLBACK(on_process_log_view),widgets);
g_signal_connect(G_OBJECT(widgets->ReadShortLogButton),"clicked",G_CALLBACK(on_summary_log_view),widgets);
g_signal_connect(G_OBJECT(widgets->GpartedCommonButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
g_signal_connect(G_OBJECT(widgets->GpartedSameButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
g_signal_connect(G_OBJECT(widgets->GpartedNextInstallationButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
g_signal_connect(G_OBJECT(widgets->CommonGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
g_signal_connect(G_OBJECT(widgets->SameGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
g_signal_connect(G_OBJECT(widgets->NextInstallationGPartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
g_signal_connect(G_OBJECT(widgets->OSGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
g_signal_connect(G_OBJECT(widgets->UserdataGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
g_signal_connect(G_OBJECT(widgets->GrubUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
g_signal_connect(G_OBJECT(widgets->GrubInstallGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
g_signal_connect(G_OBJECT(widgets->AdvancedGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
g_signal_connect(G_OBJECT(widgets->CommonUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets);
g_signal_connect(G_OBJECT(widgets->SameUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets);
g_signal_connect(G_OBJECT(widgets->NextInstallationUpdateGPartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets);
g_signal_connect(G_OBJECT(widgets->OSUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets);
g_signal_connect(G_OBJECT(widgets->UserdataUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets);
g_signal_connect(G_OBJECT(widgets->GrubUpdateUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets);
g_signal_connect(G_OBJECT(widgets->GrubInstallUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets);
g_signal_connect(G_OBJECT(widgets->AdvancedUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets);
// g_signal_connect(G_OBJECT(widgets->MainWindow),"check-resize",G_CALLBACK(on_region_resized),widgets);
g_signal_connect(G_OBJECT(widgets->NextButton),"clicked",G_CALLBACK(on_page_next_clicked),widgets);
@ -911,9 +941,6 @@ void yon_main_window_create(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->KeyboardLayoutAddButton),"clicked",G_CALLBACK(on_system_layouts_add),widgets);
g_signal_connect(G_OBJECT(widgets->KeyboardLayoutRemoveButton),"clicked",G_CALLBACK(on_system_layouts_remove),widgets);
g_signal_connect(G_OBJECT(widgets->KeyboardModelCombo),"changed",G_CALLBACK(on_model_changed),widgets);
g_signal_connect(G_OBJECT(widgets->KeyboardNumLockCombo),"changed",G_CALLBACK(on_num_lock_changed),widgets);
g_signal_connect(G_OBJECT(widgets->KeyboardComposeSwitch),"state-set",G_CALLBACK(on_compose_switch),widgets);
g_signal_connect(G_OBJECT(widgets->KeyboardScrollLockSwitch),"state-set",G_CALLBACK(on_scroll_lock_switch),widgets);
g_signal_connect(G_OBJECT(widgets->GrubInstallDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->GrubUpdateDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets);
@ -943,6 +970,10 @@ void yon_main_window_create(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->StartupServicesEditButton),"clicked",G_CALLBACK(on_startup_service_edit),widgets);
g_signal_connect(G_OBJECT(widgets->StartupServicesRemoveButton),"clicked",G_CALLBACK(on_startup_services_remove),widgets);
g_signal_connect(G_OBJECT(widgets->StartupAppsTree),"cursor-changed",G_CALLBACK(on_startup_apps_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->StartupAppsAddButton),"clicked",G_CALLBACK(on_startup_app_add),widgets);
g_signal_connect(G_OBJECT(widgets->StartupAppsEditButton),"clicked",G_CALLBACK(on_startup_app_edit),widgets);
g_signal_connect(G_OBJECT(widgets->StartupAppsRemoveButton),"clicked",G_CALLBACK(on_startup_apps_remove),widgets);
g_signal_connect(G_OBJECT(widgets->AutoHostnameCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->HotnameEntry);
@ -1003,8 +1034,9 @@ void yon_main_window_create(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->ScrollLeftEventBox),"leave-notify-event",G_CALLBACK(on_install_slider_hover_highlight_end),widgets);
g_signal_connect(G_OBJECT(widgets->ScrollRightEventBox),"leave-notify-event",G_CALLBACK(on_install_slider_hover_highlight_end),widgets);
g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),widgets);
g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(yon_on_about),NULL);
g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),WIKI_LINK);
yon_gtk_window_setup(GTK_WINDOW(widgets->MainWindow),NULL,TITLE_LABEL,icon_path,NULL);
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter),(GtkTreeModelFilterVisibleFunc)on_country_filter,widgets,NULL);
@ -1073,26 +1105,12 @@ void yon_main_window_create(main_window *widgets){
textdomain(LocaleName);
}
}
{
int size;
config_str slides = yon_char_parsed_new(&size,slide_repeat_path);
widgets->region_original = gdk_pixbuf_new_from_resource(regions_path,NULL);
widgets->keyboard_original = gdk_pixbuf_new_from_resource(keyboard_path,NULL);
widgets->user_original = gdk_pixbuf_new_from_resource(users_path,NULL);
widgets->startup_original = gdk_pixbuf_new_from_resource(startup_path,NULL);
widgets->bootloader_original = gdk_pixbuf_new_from_resource(bootloader_path,NULL);
widgets->network_original = gdk_pixbuf_new_from_resource(network_icon_path,NULL);
widgets->slides_original = NULL;
widgets->slides_original = g_list_prepend(widgets->slides_original,gdk_pixbuf_new_from_resource(slide_0_path,NULL));
for (int i=1;i<size;i++){
widgets->slides_original = g_list_prepend(widgets->slides_original,gdk_pixbuf_new_from_resource(slides[i-1],NULL));
}
widgets->slides_original = g_list_reverse(widgets->slides_original);
yon_char_parsed_free(slides,size);
}
gtk_builder_connect_signals(builder,NULL);
if (!yon_char_is_empty(config(AUTOINSTALL_TYPE_INSTALL))){
gtk_widget_show(widgets->StartScenarioButton);
if (main_config.force_scenario){
gtk_button_clicked(GTK_BUTTON(widgets->StartScenarioButton));
}
} else {
gtk_widget_hide(widgets->StartScenarioButton);
}
@ -1150,6 +1168,7 @@ int main(int argc, char *argv[]){
int option_index = 0;
struct option long_options[] = {
{"dry-run", 0, 0, 'D'},
{"scenario", 0, 0, 's'},
{NULL, 0, NULL, 0}
};
optind = 1;
@ -1159,6 +1178,9 @@ int main(int argc, char *argv[]){
case 'D':
main_config.dry_run = 1;
break;
case 's':
main_config.force_scenario = 1;
break;
default:
break;
}

File diff suppressed because it is too large Load Diff

@ -1,6 +1,7 @@
#define TITLE_LABEL _("System installation")
#define TITLE_LABEL yon_char_unite(_("System installation")," ",main_config.os_name,NULL)
#define WIKI_LINK _("https://wiki.ublinux.com/en/software/programs_and_utilities/all/ubinstall-gtk")
#define WELCOME_LABEL _("Welcome to system installation")
#define WELCOME_BOTTOM_LABEL _("This program will ask you few questions\nand help you install system on your computer")
#define OPEN_LABEL _("Open")
@ -97,7 +98,6 @@ NULL)
#define PASSWORD_TITLE_LABEL _("Password input")
#define PASSWORD_MISMATCH_LABEL _("Password mismatch")
#define EMPTY_IMPORTANT_LABEL _("Empty important field")
#define PASSWORD_SHORT_LABEL(min_size_char) yon_char_unite(_("Password must be at least")," ", min_size_char," ",_("characters"))
#define RESTART_LABEL _("Restart PC")
@ -109,7 +109,6 @@ NULL)
#define LANGUAGES_TITLE_LABEL _("Available languages in the system")
#define LAYOUTS_TITLE_LABEL _("Keyboard layout language")
#define APPLY_LABEL _("Apply")
#define SUCCESS_HEADER_LABEL _("Success")
#define LAYOUT_LABEL _("Layout")
#define DESIGNATION_LABEL _("Designation")
@ -171,7 +170,9 @@ NULL)
#define READ_INSTALL_LOG_LABEL _("Read installation log")
#define READ_PROGRESS_LOG_LABEL _("Read progress log")
#define ACCEPT_LABEL _("Accept")
#define APPLY_LABEL _("Ok")
#undef ACCEPT_LABEL
#define ACCEPT_LABEL _("Ok")
#define GPARTED_LABEL _("Start GParted")
#define PROGRESS_LOG_LABEL _("Progress log")
@ -268,18 +269,28 @@ NULL)
#define PERSONAL_SECTION_LABEL _("Personal")
#define HARDWARE_SECTION_LABEL _("Hardware")
#define SYSTEM_SECTION_LABEL _("System")
#define PACKAGES_SECTION_LABEL _("Installing Modules")
#define PACKAGES_SECTION_LABEL _("Installing software by groups")
#define KERNEL_LABEL _("Kernel")
#define KERNEL_ADDON_LABEL _("Kernel addons")
#define SOFTWARE_LABEL _("Installing software by groups")
#define SOFTWARE_LABEL _("Installing Modules")
#define PACMAN_SOFTWARE_LABEL _("Installing Packages")
#define REGION_ICON_LABEL _("Location")
#define STARTUP_LABEL _("Startup services")
#define STARTUP_LABEL _("Autorun of services")
#define STARTUP_APP_LABEL _("Autorun of applications")
#define BOOTLOADER_LABEL _("Boot load")
#define NETWORK_LABEL _("Network")
#define ENABLE_VNC_LABEL _("Enable VNC server")
#define ENABLE_RDP_LABEL _("Enable RDP server")
#define APP_TITLE_LABEL _("Autorun of application")
#define APP_TITLE_INFO_LABEL _("Configuring autorun application")
#define APP_LABEL _("Application:")
#define GROUP_LABEL _("Group:")
#define APP_TABLE_LABEL _("Application")
#define GROUP_TABLE_LABEL _("Group")
// #define _LABEL _("Select your language:")
// #define _LABEL _("Selecting additional system kernel components")
// #define _LABEL _("<i><b>Package:</b></i>")
// #define _LABEL _("<i><b>Module:</b></i>")
// #define _LABEL _("New section at")
@ -400,10 +411,7 @@ NULL)
// #define _LABEL _("Configuring the parameters of the installed system")
// #define _LABEL _("Selecting the system kernel")
// #define _LABEL _("Selecting kernels for installation in the system and selecting the default kernel. Internet access is required to install additional kernels")
// #define _LABEL _("Selecting additional system kernel components")
// #define _LABEL _("Selecting additional kernel modules from the repository via the Internet")
// #define _LABEL _("Selecting additional installation components")
// #define _LABEL _("Selecting additional components and software")
// #define _LABEL _("Search and select the software you need to install by package name. Internet access required")
// #define _LABEL _("Chosen packages")
// #define _LABEL _("Enter your time zone")
@ -415,10 +423,22 @@ NULL)
// #define _LABEL _("Starting the system")
// #define _LABEL _("Setting up system boot")
// #define _LABEL _("Setting up network access")
// #define _LABEL _("Additional system components")
// #define _LABEL _("Configuring the installation of additional components")
// #define _LABEL _("Wait for the system to finish loading")
// #define _LABEL _("Selecting software from the installation media")
// #define _LABEL _("Modules and packages")
// #define _LABEL _("Setting the system")
// #define _LABEL _("Selecting software packages to install from the repository. Internet access is required")
// #define _LABEL _("Selecting software modules to install from the repository. Internet access is required")
// #define _LABEL _("Language")
// #define _LABEL _("On")
// #define _LABEL _("Selecting the software group to install from the repository. Internet access is required")
// #define _LABEL _("Recovery configuration has ended")
// #define _LABEL _("System recovery is about to begin")
// #define _LABEL _("System recovery")
// #define _LABEL _("The process of restoring the system is underway...")
// #define _LABEL _("System recovery successfully completed!")
// #define _LABEL _("You can reboot the system and use the installed version or continue to work in the current system.")
// #define _LABEL _("Selecting additional system kernel components from the repository. Internet access required")
#define slide_1_title _("Product ecosystem")
#define slide_1_text _("Developed by a team of professionals and successfully presented on the market.\n\
@ -433,11 +453,11 @@ Includes:\n\
#define slide_2_text _("It has been successfully used in both government agencies and commercial companies of various sizes.")
#define slide_3_title _("System Editions")
#define slide_3_text _("- UBLinux Desktop Enterprise for workstations (PCs, laptops, thin clients, dashboards, including interactive touchscreens and Multi-touch, industrial computers, hardware and software complex),\n\
- UBLinux Server for server hardware and storage systems,\n\
- UBLinux Network for network equipment,\n\
- UBLinux Education for educational institutions,\n\
- UBLinux Desktop Basic for personal (home) use")
#define slide_3_text _("- Desktop Enterprise for workstations (PCs, laptops, thin clients, dashboards, including interactive touchscreens and Multi-touch, industrial computers, hardware and software complex),\n\
- Server for server hardware and storage systems,\n\
- Network for network equipment,\n\
- Education for educational institutions,\n\
- Desktop Basic for personal (home) use")
#define slide_4_title _("Device Support")
#define slide_4_text _("A wide range of devices is supported: printing equipment, scanners, webcams, etc.\n\
@ -457,10 +477,10 @@ From a minimal configuration (a thin client that only allows remote connection t
#define slide_7_title _("Domain architecture support")
#define slide_7_text _("A domain controller allows you to:\n\
- use group policies,\n\
- centralized software deployment across your fleet,\n\
- organize network resources and provide flexible access to them\n\
\n\
use group policies,\n\
centralized software deployment across your fleet,\n\
organize network resources and provide flexible access to them\n\
Allows you to integrate your workstation with Microsoft Active Directory, FreeIPA, and Samba DC, applying the necessary domain settings to your workstation.")
#define slide_8_title _("Compatibility with Windows applications")
@ -509,7 +529,7 @@ The creation of custom repositories is also supported, which users can create an
\n\
Used to automate deployment and configuration of workstations and servers, as well as manage computing equipment.")
#define slide_19_title _("UBLinux Server virtualization tools")
#define slide_19_title _("Server virtualization tools")
#define slide_19_text _("The server and workstation virtualization system enables efficient deployment and management of virtual IT infrastructure in data centers.\n\
\n\
- Supports Microsoft Windows, GNU/Linux, and FreeBSD guest operating systems\n\

@ -195,7 +195,7 @@
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Accept</property>
<property name="label" translatable="yes">Ok</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>

@ -103,7 +103,7 @@
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Accept</property>
<property name="label" translatable="yes">Ok</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>

@ -145,7 +145,7 @@
</child>
<child>
<object class="GtkButton" id="SaveButton">
<property name="label" translatable="yes">Apply</property>
<property name="label" translatable="yes">Ok</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>

@ -191,7 +191,7 @@
</child>
<child>
<object class="GtkButton" id="SaveButton">
<property name="label" translatable="yes">Apply</property>
<property name="label" translatable="yes">Ok</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>

@ -218,7 +218,7 @@
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Apply</property>
<property name="label" translatable="yes">Ok</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>

@ -1,73 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="ubl-settings-bootloader">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-bootloader.css -->
<object class="GtkBox" id="MenuItemBox">
<object class="GtkListBoxRow" id="MenuItemRow">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="can-focus">True</property>
<child>
<object class="GtkButton" id="MenuButton">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<object class="GtkLabel" id="MenuTextLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="MenuTextLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="NextIconButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="popup">menu1</property>
<property name="direction">right</property>
<child>
<placeholder/>
</child>
<style>
<class name="thin"/>
<class name="noborder"/>
<class name="nobackground"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="ArrowImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.pan-right-symbolic</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<style>
<class name="noborder"/>
<class name="menunoborder"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<object class="GtkMenu" id="menu1">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</interface>

@ -1,8 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="ubl-settings-bootloader">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-bootloader.css -->
<!-- interface-css-provider-path ubinstall-gtk.css -->
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.pan-left-symbolic</property>
</object>
<object class="GtkWindow" id="MainWindow">
<property name="width-request">450</property>
<property name="height-request">250</property>
@ -78,6 +83,7 @@
</child>
<child>
<object class="GtkRevealer" id="ChildrenRevealer">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="transition-type">none</property>
<child>
@ -88,50 +94,11 @@
<property name="spacing">5</property>
<child>
<object class="GtkButton" id="BackButton">
<property name="label" translatable="yes">Back</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkMenuButton" id="NextIconButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="direction">left</property>
<child>
<placeholder/>
</child>
<style>
<class name="thin"/>
<class name="noborder"/>
<class name="nobackground"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="MenuTextLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Back</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<property name="image">image1</property>
<style>
<class name="noborder"/>
<class name="menunoborder"/>
@ -181,7 +148,7 @@
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>

@ -18,25 +18,56 @@
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-top">1</property>
<property name="orientation">vertical</property>
<property name="spacing">1</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">7</property>
<property name="margin-top">1</property>
<property name="orientation">vertical</property>
<property name="spacing">1</property>
<child>
<object class="GtkLabel" id="NameLabel">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Name</property>
<property name="width-chars">0</property>
<property name="track-visited-links">False</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
<property name="spacing">7</property>
<child>
<object class="GtkLabel" id="NameLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Name</property>
<property name="width-chars">0</property>
<property name="track-visited-links">False</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="VersionLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Version</property>
<property name="use-markup">True</property>
<property name="width-chars">15</property>
<property name="track-visited-links">False</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<style>
<class name="selection"/>
</style>
</object>
<packing>
<property name="expand">False</property>
@ -45,43 +76,32 @@
</packing>
</child>
<child>
<object class="GtkLabel" id="VersionLabel">
<object class="GtkLabel" id="DescriptionLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Version</property>
<property name="use-markup">True</property>
<property name="width-chars">15</property>
<property name="track-visited-links">False</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">Description</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="TagsBox">
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">center</property>
<property name="margin-top">3</property>
<property name="margin-bottom">5</property>
<property name="spacing">2</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">6</property>
<property name="position">2</property>
</packing>
</child>
<style>
<class name="selection"/>
</style>
</object>
<packing>
<property name="expand">False</property>
@ -90,32 +110,25 @@
</packing>
</child>
<child>
<object class="GtkLabel" id="DescriptionLabel">
<object class="GtkBox" id="TagsBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">Description</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<property name="halign">center</property>
<property name="valign">start</property>
<property name="margin-top">3</property>
<property name="margin-bottom">5</property>
<property name="spacing">2</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="ubinstall-gtk">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubinstall-gtk.css -->
@ -54,7 +54,7 @@
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label3">
<object class="GtkLabel" id="AppLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Unit:</property>
@ -90,7 +90,7 @@
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label2">
<object class="GtkLabel" id="GroupLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Service:</property>
@ -126,7 +126,7 @@
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label1">
<object class="GtkLabel" id="DescriptionLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Description:</property>
@ -195,7 +195,7 @@
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Accept</property>
<property name="label" translatable="yes">Ok</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@ -211,9 +211,9 @@
</object>
<object class="GtkSizeGroup">
<widgets>
<widget name="label1"/>
<widget name="label2"/>
<widget name="label3"/>
<widget name="DescriptionLabel"/>
<widget name="GroupLabel"/>
<widget name="AppLabel"/>
</widgets>
</object>
</interface>

@ -14,8 +14,8 @@
<property name="can-focus">False</property>
<property name="top-padding">5</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<property name="left-padding">6</property>
<property name="right-padding">6</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>

@ -322,7 +322,7 @@
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Choose</property>
<property name="label" translatable="yes">Ok</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>

@ -129,7 +129,7 @@ interrupt installation process?</property>
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Accept</property>
<property name="label" translatable="yes">Ok</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save