Merge pull request 'master' (#41) from YanTheKaller/ubl-settings-repomanager:master into master

Reviewed-on: #41
pull/108/head v2.8
Dmitry Razumov 1 year ago
commit 0e3de0ff4f

@ -112,29 +112,35 @@ install: check uninstall
msgfmt "$${FILE_PO}" -v -f -o "$${PATH_FILE_MO}"; \ msgfmt "$${FILE_PO}" -v -f -o "$${PATH_FILE_MO}"; \
done done
@for SIZE in 16 32 48; do \ @for SIZE in 16 32 48; do \
install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \ install -dm755 "${DESTDIR}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \ rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
done done
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.document-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.document-symbolic.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.document-green-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.document-green-symbolic.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.document-red-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.document-red-symbolic.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.document-sign-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.document-sign-symbolic.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.folder-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.folder-symbolic.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.folder-green-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.folder-green-symbolic.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.folder-red-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.folder-red-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.folder-red-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.document-sign-error-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.chain-error-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.chain-symbolic.svg"
@install -Dm755 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "crypt-key.csv"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop" @install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
@install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}" @install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
@install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy" @install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy"
@sed -e '\|annotate key=|s|/usr/bin|${PREFIX}/bin|' -e '/action id=/s/\.run/${PKGIDENT}\.run/' -i ${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy @sed -e '\|annotate key=|s|/usr/bin|${PREFIX}/bin|' -e '/action id=/s/\.run/${PKGIDENT}\.run/' -i ${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy
@if [ -z ${DESTDIR} ]; then \ @if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \ [ -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; \ 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 fi
@echo "Install: OK" @echo "Install: OK"

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 640 512"
version="1.1"
id="svg4"
sodipodi:docname="com.ublinux.ubl-settings-repomanager.chain-error-symbolic.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="1.4199219"
inkscape:cx="319.7359"
inkscape:cy="255.64787"
inkscape:window-width="1920"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.-->
<g>
<path class="error" d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z" id="path2" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path class="success" d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
id="svg2"
viewBox="0 0 100 100"
version="1.1"
sodipodi:docname="com.ublinux.ubl-settings-repomanager.document-sign-symbolic.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs498" />
<sodipodi:namedview
id="namedview496"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="5.1406663"
inkscape:cx="-3.7932826"
inkscape:cy="51.938792"
inkscape:window-width="1920"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<linearGradient
id="SVGID_1_"
gradientUnits="userSpaceOnUse"
x1="50"
y1="754.7531"
x2="50"
y2="828.357"
gradientTransform="translate(0,-742.08062)">
<stop
offset="0"
style="stop-color:#35762e"
id="stop488" />
<stop
offset="1"
style="stop-color:#6daa43"
id="stop490" />
</linearGradient>
<path
id="path493"
class="error"
style="display:inline;fill:#1a1a1a;stroke-width:1.16507"
d="M 50.361177,1.5488617 A 23.427829,24.021389 0 0 0 28.297887,17.661878 c -0.02133,0.01144 -0.04386,0.02079 -0.06517,0.03225 v 0.145162 a 23.427829,24.021389 0 0 0 -1.298898,7.730469 23.427829,24.021389 0 0 0 4.539401,14.110698 c 0,0 0.0023,0.0024 0.0023,0.0024 2.246699,3.69522 5.500248,6.687335 9.393416,8.562272 v 41.408124 l 9.550721,9.792695 9.550721,-9.792695 -0.57529,-8.61066 4.485468,-4.601414 -4.485468,-4.601415 6.78663,-6.960878 -6.78663,-6.960878 0.57529,-9.672879 c 4.004586,-1.958268 7.371165,-5.141825 9.645105,-9.064579 a 23.427829,24.021389 0 0 0 4.175351,-13.610695 23.427829,24.021389 0 0 0 -0.885408,-6.51387 v -0.552999 c -0.06101,-0.03572 -0.125335,-0.06593 -0.186521,-0.101386 A 23.427829,24.021389 0 0 0 50.361177,1.5488617 Z m 0.09888,11.9816513 A 11.933611,3.3885097 0 0 1 62.392839,16.919938 11.933611,3.3885097 0 0 1 50.460055,20.309362 11.933611,3.3885097 0 0 1 38.525024,16.919938 11.933611,3.3885097 0 0 1 50.460055,13.530513 Z M 44.09141,53.671347 h 3.222525 V 86.351298 H 44.09141 Z" />
<rect
class="error"
style="fill:#1a1a1a;stroke-width:1.899"
id="rect2334"
width="9.6674757"
height="39.283848"
x="40.868935"
y="50.3694" />
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -47,10 +47,12 @@
id="stop490" /> id="stop490" />
</linearGradient> </linearGradient>
<path <path
class="success"
id="path493" id="path493"
style="display:inline;fill:#1a1a1a;stroke-width:1.16507" style="display:inline;fill:#1a1a1a;stroke-width:1.16507"
d="M 50.361177,1.5488617 A 23.427829,24.021389 0 0 0 28.297887,17.661878 c -0.02133,0.01144 -0.04386,0.02079 -0.06517,0.03225 v 0.145162 a 23.427829,24.021389 0 0 0 -1.298898,7.730469 23.427829,24.021389 0 0 0 4.539401,14.110698 c 0,0 0.0023,0.0024 0.0023,0.0024 2.246699,3.69522 5.500248,6.687335 9.393416,8.562272 v 41.408124 l 9.550721,9.792695 9.550721,-9.792695 -0.57529,-8.61066 4.485468,-4.601414 -4.485468,-4.601415 6.78663,-6.960878 -6.78663,-6.960878 0.57529,-9.672879 c 4.004586,-1.958268 7.371165,-5.141825 9.645105,-9.064579 a 23.427829,24.021389 0 0 0 4.175351,-13.610695 23.427829,24.021389 0 0 0 -0.885408,-6.51387 v -0.552999 c -0.06101,-0.03572 -0.125335,-0.06593 -0.186521,-0.101386 A 23.427829,24.021389 0 0 0 50.361177,1.5488617 Z m 0.09888,11.9816513 A 11.933611,3.3885097 0 0 1 62.392839,16.919938 11.933611,3.3885097 0 0 1 50.460055,20.309362 11.933611,3.3885097 0 0 1 38.525024,16.919938 11.933611,3.3885097 0 0 1 50.460055,13.530513 Z M 44.09141,53.671347 h 3.222525 V 86.351298 H 44.09141 Z" /> d="M 50.361177,1.5488617 A 23.427829,24.021389 0 0 0 28.297887,17.661878 c -0.02133,0.01144 -0.04386,0.02079 -0.06517,0.03225 v 0.145162 a 23.427829,24.021389 0 0 0 -1.298898,7.730469 23.427829,24.021389 0 0 0 4.539401,14.110698 c 0,0 0.0023,0.0024 0.0023,0.0024 2.246699,3.69522 5.500248,6.687335 9.393416,8.562272 v 41.408124 l 9.550721,9.792695 9.550721,-9.792695 -0.57529,-8.61066 4.485468,-4.601414 -4.485468,-4.601415 6.78663,-6.960878 -6.78663,-6.960878 0.57529,-9.672879 c 4.004586,-1.958268 7.371165,-5.141825 9.645105,-9.064579 a 23.427829,24.021389 0 0 0 4.175351,-13.610695 23.427829,24.021389 0 0 0 -0.885408,-6.51387 v -0.552999 c -0.06101,-0.03572 -0.125335,-0.06593 -0.186521,-0.101386 A 23.427829,24.021389 0 0 0 50.361177,1.5488617 Z m 0.09888,11.9816513 A 11.933611,3.3885097 0 0 1 62.392839,16.919938 11.933611,3.3885097 0 0 1 50.460055,20.309362 11.933611,3.3885097 0 0 1 38.525024,16.919938 11.933611,3.3885097 0 0 1 50.460055,13.530513 Z M 44.09141,53.671347 h 3.222525 V 86.351298 H 44.09141 Z" />
<rect <rect
class="success"
style="fill:#1a1a1a;stroke-width:1.899" style="fill:#1a1a1a;stroke-width:1.899"
id="rect2334" id="rect2334"
width="9.6674757" width="9.6674757"

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path class="warning" d="M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"/></svg>

After

Width:  |  Height:  |  Size: 610 B

@ -0,0 +1,7 @@
KEY_NAME;KEY_DESCRIPTION;KEY_ALGO_NAME
RSA;RSA/RSA;RSA
DSA ElGamal;DSA/ELG;ELG
DSA (sign only);DSA;DSA
RSA (sign only);RSA;RSA
GOST R 34.10-2012;GOST3410-2012;GOST3410-2012
GOST R 34.10-2001;GOST3410-2001;GOST3410-2001
1 KEY_NAME KEY_DESCRIPTION KEY_ALGO_NAME
2 RSA RSA/RSA RSA
3 DSA ElGamal DSA/ELG ELG
4 DSA (sign only) DSA DSA
5 RSA (sign only) RSA RSA
6 GOST R 34.10-2012 GOST3410-2012 GOST3410-2012
7 GOST R 34.10-2001 GOST3410-2001 GOST3410-2001

@ -2,7 +2,11 @@
<gresources> <gresources>
<gresource prefix="/com/ublinux/ui"> <gresource prefix="/com/ublinux/ui">
<file>ubl-settings-repomanager.glade</file> <file>ubl-settings-repomanager.glade</file>
<file>ubl-settings-repomanager-windows.glade</file> <file>ubl-settings-repomanager-add.glade</file>
<file>ubl-settings-repomanager-configuration.glade</file>
<file>ubl-settings-repomanager-repo-block.glade</file>
<file>ubl-settings-repomanager-filechooser.glade</file>
<file>ubl-settings-repomanager-key.glade</file>
<file>ubl-settings-repomanager-sign.glade</file> <file>ubl-settings-repomanager-sign.glade</file>
</gresource> </gresource>
<gresource prefix="/com/ublinux/css"> <gresource prefix="/com/ublinux/css">

@ -8,6 +8,11 @@ include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS}) link_directories(${GTK_LIBRARY_DIRS})
add_definitions(${GTK_CFLAGS_OTHER}) add_definitions(${GTK_CFLAGS_OTHER})
pkg_check_modules(VTE291 REQUIRED vte-2.91)
include_directories(${VTE291_INCLUDE_DIRS})
link_directories(${VTE291_LIBRARY_DIRS})
add_definitions(${VTE291_CFLAGS_OTHER})
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0) find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
option(WEBKIT_FOUND "No" OFF) option(WEBKIT_FOUND "No" OFF)
@ -31,8 +36,12 @@ add_custom_target(GLADE ubl-settings-repomanager.glade)
set(DEPENDFILES set(DEPENDFILES
../ubl-settings-repomanager.glade ../ubl-settings-repomanager.glade
../ubl-settings-repomanager-windows.glade ../ubl-settings-repomanager-add.glade
../ubl-settings-repomanager-configuration.glade
../ubl-settings-repomanager-filechooser.glade
../ubl-settings-repomanager-key.glade
../ubl-settings-repomanager-sign.glade ../ubl-settings-repomanager-sign.glade
../ubl-settings-repomanager-repo-block.glade
../gresource.xml ../gresource.xml
../ubl-settings-repomanager-banner.png ../ubl-settings-repomanager-banner.png
../ubl-settings-repomanager.css ../ubl-settings-repomanager.css
@ -70,15 +79,17 @@ set(SOURCE_FILES
ubl-settings-repomanager.c ubl-settings-repomanager.c
ubl-settings-repomanager.h ubl-settings-repomanager.h
ubl-strings.h ubl-strings.h
ubl-utils.h
ubl-utils.c
${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h ${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h
) )
set(LIBRARIES set(LIBRARIES
${GTK_LIBRARIES} ${GTK_LIBRARIES}
${WEBKIT_LIBRARIES} ${WEBKIT_LIBRARIES}
pthread) ${VTE291_LIBRARIES}
pthread
ublsettings
ublsettings-gtk3
ublsettingsui-gtk3)
add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}) add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C})

File diff suppressed because it is too large Load Diff

@ -1,6 +1,5 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <gtk/gtkx.h> #include <gtk/gtkx.h>
#include "ubl-utils.h"
#include <locale.h> #include <locale.h>
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
@ -10,7 +9,9 @@
#include <libintl.h> #include <libintl.h>
#include <sys/types.h> #include <sys/types.h>
#include <fcntl.h> #include <fcntl.h>
#include "../compile/ubl-cmake.h" #include <libublsettings.h>
#include <libublsettings-gtk3.h>
#include <libublsettingsui-gtk3.h>
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h> #include <webkit2/webkit2.h>
#endif #endif
@ -21,171 +22,259 @@
#define _(String) gettext(String) #define _(String) gettext(String)
#define glade_path "/com/ublinux/ui/ubl-settings-repomanager.glade" #define glade_path "/com/ublinux/ui/ubl-settings-repomanager.glade"
#define glade_repo_path "/com/ublinux/ui/ubl-settings-repomanager-windows.glade" #define glade_path_repo_add "/com/ublinux/ui/ubl-settings-repomanager-add.glade"
#define glade_sign_path "/com/ublinux/ui/ubl-settings-repomanager-sign.glade" #define glade_path_storage_config "/com/ublinux/ui/ubl-settings-repomanager-configuration.glade"
#define glade_path_repo_block "/com/ublinux/ui/ubl-settings-repomanager-repo-block.glade"
#define glade_path_filechooser "/com/ublinux/ui/ubl-settings-repomanager-filechooser.glade"
#define glade_path_key "/com/ublinux/ui/ubl-settings-repomanager-key.glade"
#define glade_path_sign "/com/ublinux/ui/ubl-settings-repomanager-sign.glade"
#define banner_path "/com/ublinux/images/ubl-settings-repomanager-banner.png" #define banner_path "/com/ublinux/images/ubl-settings-repomanager-banner.png"
#define CssPath "/com/ublinux/css/ubl-settings-repomanager.css" #define CssPath "/com/ublinux/css/ubl-settings-repomanager.css"
#define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL) #define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
#define icon_path "com.ublinux.ubl-settings-repomanager" #define icon_path "com.ublinux.ubl-settings-repomanager"
#define folder_no_edits "com.ublinux.ubl-settings-repomanager.folder-symbolic" #define folder_no_edits "com.ublinux.libublsettingsui-gtk3.folder-symbolic"
#define folder_deleted "com.ublinux.ubl-settings-repomanager.folder-red-symbolic" #define document_no_edits "com.ublinux.libublsettingsui-gtk3.key-symbolic"
#define folder_added "com.ublinux.ubl-settings-repomanager.folder-green-symbolic" #define document_deleted "com.ublinux.ubl-settings-repomanager.key-red-symbolic"
#define document_no_edits "com.ublinux.ubl-settings-repomanager.document-symbolic" #define document_added "com.ublinux.ubl-settings-repomanager.key-green-symbolic"
#define document_deleted "com.ublinux.ubl-settings-repomanager.document-red-symbolic"
#define document_added "com.ublinux.ubl-settings-repomanager.document-green-symbolic" #define move_icon "com.ublinux.libublsettingsui-gtk3.arrows-left-right-symbolic"
#define remove_icon "com.ublinux.libublsettingsui-gtk3.trash-symbolic"
#define LocalePath "/usr/share/locale" #define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-repomanager" #define LocaleName "ubl-settings-repomanager"
#define lib_key_icon_name "com.ublinux.libublsettingsui-gtk3.key-symbolic"
#define key_icon_name "com.ublinux.ubl-settings-repomanager.document-sign-symbolic"
#define key_error_icon_name "com.ublinux.ubl-settings-repomanager.document-sign-error-symbolic"
#define package_signature_icon_name "com.ublinux.ubl-settings-repomanager.chain-symbolic"
#define package_signature_error_icon_name "com.ublinux.ubl-settings-repomanager.chain-error-symbolic"
#define warning_icon_name "com.ublinux.ubl-settings-repomanager.warning-symbolic"
#define package_linked_icon "com.ublinux.ubl-settings-repomanager.package-linked-symbolic"
#define package_unlinked_icon "com.ublinux.ubl-settings-repomanager.package-unlinked-symbolic"
#define key_encription_path "/usr/share/ubl-settings-repomanager/csv/crypt-key.csv"
typedef char* string; typedef char* string;
#define get_package_info_command(filename) yon_char_unite("LC_ALL=EN pacman -Q --info --file ",filename," |sed -e 's/ */ /g' -e 's/ : /:/g' -e 's/\\n/ /g'",NULL) #define get_gpg_keys_command yon_char_unite(yon_ubl_check_root()==1 ? yon_char_unite("su - ",yon_ubl_root_user_get()," -c \"gpg --list-signatures\"",NULL):"gpg --list-signatures"," | grep '^sig 3' | cut -d' ' -f10,11,13- | sort -u |sed -e 's/[0-9]*-[0-9]*-[0-9]* //g'",NULL)
#define get_saved_package_info_command(path,filename) yon_char_unite("LC_ALL=EN pacman -Q --info --file $(find \"",path,"\" -name \"*",filename,"*\" -not -name *.sig |head -n 1)|sed -e 's/ */ /g' -e 's/ : /:/g' -e 's/\\n/ /g'",NULL)
#define create_storage_command(path,name) yon_char_unite("repo-manager add -r '",name,"' -d '", path,"'",NULL)
#define add_packages_command(path,arch,name,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' ",packages_path,NULL)
#define add_packages_sign_command(path,arch,name,repo_sign,pack_sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -S '",repo_sign,"' -s '",pack_sign,"' ",packages_path,NULL)
#define add_packages_package_sign_command(path,arch,name,sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -s '",sign,"' ",packages_path,NULL)
#define add_packages_repo_sign_command(path,arch,name,sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -S '",sign,"' ",packages_path,NULL)
#define remove_packages_command(path,arch,name,packages_path) yon_char_unite("repo-manager remove -r '",name,"' -a '",arch,"' -d '", path,"' ",packages_path,NULL)
#define yon_move_packages_command(storage,arch, source_repo, target_repo, packages) yon_char_unite("repo-manager move -d '",storage,"' -a '",arch,"' -R '",source_repo,"' -r '",target_repo,"' ", packages,NULL)
#define yon_delete_packages_command(storage,arch, target_repo, packages) yon_char_unite("repo-manager remove -d '",storage,"' -a '",arch,"' -r '",target_repo,"' ", packages,NULL)
#define yon_delete_packages_sign_command(storage,arch, target_repo,sign, packages) yon_char_unite("repo-manager remove -d '",storage,"' -a '",arch,"' -r '",target_repo,"' -S '",sign,"' ", packages,NULL)
#define ubl_settings_update_command "ubl-settings-update"
#define yon_get_packages_command(path,repo,arch) yon_char_unite("repo-manager show --quiet -d ",path," -a ",arch," -r ",repo," | sed -E 's/(\\S+)(\\s+)(\\S+)/\\1 \\3/g'",NULL)
#define yon_repo_get_signature(path, repo) yon_char_unite("repo-manager verify --quiet -d ",path," -r ",repo," . 2>&1 | cut -d: -f2 |sed -E 's/ *//g'",NULL)
#define yon_repo_get_signature_status(path,repo,arch, package) yon_char_unite("repo-manager verify --quiet -d ",path," -r ",repo," ",package,NULL)
#define yon_repo_get_signature_status_arch(path,repo,arch) yon_char_unite("repo-manager verify --quiet -d ",path," -r ",repo," .",NULL)
#define yon_repo_get_signature_status_packages(path,repo,arch) yon_char_unite("repo-manager verify --quiet -d ",path," -r ",repo,NULL)
#define yon_get_package_name_from_filename(path) yon_char_unite("[[ '",path,"' =~ (.*/)*(.*)-[^-]+-[^-]+-[^-]+\\.pkg\\.tar\\.[^.-]+ ]] && echo ${BASH_REMATCH[2]}",NULL)
#define yon_get_filename_from_package_name(target) yon_char_unite("find ${PATH} -maxdepth 1 -regextype egrep -regex \".*/",target,"-[^-]+-[^-]+-[^-]+\\.pkg\\.tar\\.[^-.]*\"",NULL)
#define get_gpg_keys_command yon_char_unite(yon_ubl_check_root()==1 ? yon_char_unite("su - ",yon_ubl_root_user_get()," -c \"gpg --list-signatures\"",NULL):"gpg --list-signatures"," | grep '^sig 3' | cut -d' ' -f10,11,13- | sort -u |sed -e 's/[0-9]*-[0-9]*-[0-9]* //g'",NULL) #define get_gpg_keys_command yon_char_unite(yon_ubl_check_root()==1 ? yon_char_unite("su - ",yon_ubl_root_user_get()," -c \"gpg --list-signatures\"",NULL):"gpg --list-signatures"," | grep '^sig 3' | cut -d' ' -f10,11,13- | sort -u |sed -e 's/[0-9]*-[0-9]*-[0-9]* //g'",NULL)
#define yon_sign_package(storage,repo,arch,target,sign) yon_char_unite("repo-manager add -r '",repo,"' -a '",arch,"' -d '", storage,"' -s '",sign,"' ",target,NULL)
#define yon_sign_repo(storage,repo,sign) yon_char_unite("repo-manager add -f -r '",repo,"' -d '", storage,"' --sign-repo='",sign,"'",NULL)
#define get_package_info_command(filename) yon_char_unite("pacman -Q --info --file ",filename," 2>/dev/null|sed -e 's/ */ /g' -e 's/ : /: /g' -e 's/\\n/ /g' -e 's/^ /\\t/g'",NULL)
#define get_storage_info_label(path, repos, archs) yon_char_unite(STORAGE_PATH_LABEL,": ", path,"\n\n", REPOS_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,NULL)
#define get_repo_info_label(repos, archs,sign) yon_char_unite(REPO_NAME_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,"\n\n",sign,NULL)
#define get_arch_info_label(repos, archs) yon_char_unite(REPO_NAME_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,NULL)
#define yon_generate_key_command(type,name,email,strength,comment,expire,password) yon_char_unite("gpg --batch --gen-key <<EOF\n\
%echo Generating a basic OpenPGP key\n\
Key-Type: ",type,"\n\
Key-Length: 1024\n\
Subkey-Type: ELG-E\n\
Subkey-Length: ",strength,"\n\
Name-Real: ",name,"\n\
Name-Comment: ",comment,"\n\
Name-Email: ",email,"\n\
Expire-Date: ",expire,"\n\
Passphrase: ",password,"\n\
%commit\n\
%echo done\n\
EOF",NULL)
#define yon_generate_key_no_password_command(type,name,email,strength,comment,expire,password) yon_char_unite("gpg --batch --gen-key <<EOF\n\
%echo Generating a basic OpenPGP key\n\
Key-Type: ",type,"\n\
Key-Length: 1024\n\
Subkey-Type: ELG-E\n\
Subkey-Length: ",strength,"\n\
Name-Real: ",name,"\n\
Name-Comment: ",comment,"\n\
Name-Email: ",email,"\n\
Expire-Date: ",expire,"\n\
%no-protection\n\
%commit\n\
%echo done\n\
EOF",NULL)
string version_application; string version_application;
char *local; char *local;
typedef struct { typedef struct {
template_config_fields
GtkTreeStore *tree_store; GtkTreeStore *tree_store;
int always_open_documentation;
int win_pos_x;
int win_pos_y;
int win_width;
int win_height;
int socket_id;
int load_socket_id;
int save_socket_id;
int lock_help;
int lock_save_local;
int lock_save_global;
int lock_load_global;
int lock_root; int lock_root;
config_str signs;
int signs_size;
char *last_selection;
} config; } config;
typedef struct { typedef struct {
GtkWidget *Window; template_window_fields
GtkWidget *HatLabel; GtkWidget *UpdateButton;
GtkWidget *PlugBox; GtkWidget *DBConfigurationButton;
GtkWidget *AddButton;
GtkWidget *MoveButton;
GtkWidget *RemoveButton;
GtkWidget *CloudButton;
GtkWidget *ReposTree;
GtkWidget *RepoFileTree;
GtkWidget *SearchEntry;
GtkWidget *RepoPackagesTree;
GtkWidget *InformationLabel;
GtkWidget *KeyMenuItem;
GtkTreeStore *RepoList;
GtkListStore *RepoFileList;
GtkListStore *RepoPackagesList;
} main_window;
typedef struct {
GtkWidget *MainWindow;
GtkWidget *StatusBox;
GtkWidget *HeadLabel;
GtkWidget *PackagesToAddLabel;
GtkWidget *CancelButton;
GtkWidget *AddButton;
GtkWidget *MoveSourceFrame;
GtkWidget *MoveSourceStorageEntry;
GtkWidget *MoveSourceRepoEntry;
GtkWidget *MoveSourceArchEntry;
GtkWidget *MoveTargetFrame;
GtkWidget *MoveTargetStorageEntry;
GtkWidget *MoveTargetRepoEntry;
GtkWidget *MoveTargetArchEntry;
GtkWidget *StorageCombo;
GtkWidget *RepositoryCombo;
GtkWidget *ArchitectureCombo;
GtkWidget *PackageSignCombo;
GtkWidget *RepoSignCombo;
GtkWidget *AddPackageButton;
GtkWidget *RemoveButton;
GtkWidget *PackagesTree;
GtkWidget *InfoLabel;
GtkWidget *TestTree;
GtkListStore *PackagesList;
GtkTreeStore *tree_copy;
GtkTreeModel *storage_filter;
GtkTreeModel *repo_filter;
GtkTreeModel *arch_filter;
GtkTreeModel *package_filter;
GtkWidget *MovePaned; char *selected_path;
GtkWidget *HeadOverlay; dictionary *added_packages_archs;
GtkWidget *HeadImage; dictionary *removed_packages_archs;
GtkWidget *HeadBox; } repo_add_window;
GtkWidget *HeadTitleLabel;
GtkWidget *HeadInfoLabel;
typedef struct {
GtkWidget *MainWindow;
GtkWidget *HeadLabel;
GtkWidget *CancelButton;
GtkWidget *AcceptButton;
GtkWidget *StatusBox; GtkWidget *StatusBox;
GtkWidget *StatusIcon; GtkWidget *StoragePathCombo;
GtkWidget *StatusLabel; GtkWidget *OpenExistingButton;
GtkWidget *CreateNewButton;
GtkWidget *SaveLabel; GtkWidget *DisableButton;
GtkWidget *SaveMenuItem;
GtkWidget *SaveGlobalMenuItem;
GtkWidget *SaveLocalMenuItem;
GtkWidget *RightBox;
GtkWidget *LoadLabel;
GtkWidget *LoadGlobalMenuItem;
GtkWidget *LoadLocalMenuItem;
GtkWidget *LeftBox;
GtkWidget *DocumentationMenuItem;
GtkWidget *AboutMenuItem;
GtkWidget *GeneralTabLabel;
GtkWidget *PublicationTabLabel;
GtkWidget *CreateButton;
GtkWidget *LoadFromNetButton;
GtkWidget *ConfigureButton;
GtkWidget *DeleteButton; GtkWidget *DeleteButton;
GtkWidget *LoadFromLocalButton; GtkWidget *ReposBox;
GtkWidget *SwitchPublishButton; GtkWidget *AddEntry;
GtkWidget *CheckDependencesButton; GtkWidget *AddRepoButton;
GtkWidget *SignButton; GtkWidget *TestTree;
GtkWidget *AddPackageButton; GtkListStore *StorageList;
GtkWidget *RemovePackageButton; GtkTreeStore *storages_copy;
GtkWidget *RepoTree; GtkTreeModel *StorageFilter;
GtkWidget *TrustedRepoCheck; } storage_config_window;
GtkWidget *ServerTypeLabel;
GtkWidget *ServerTypeCombo;
GtkWidget *IpAdressLabel;
GtkWidget *IpAdressCombo;
GtkWidget *PortLabel;
GtkWidget *PortSpin;
GtkWidget *OutputEntry;
GtkWidget *CopyButton;
GtkWidget *PublishButton;
GtkWidget *CodeNameLabel;
GtkWidget *CodeNameInfoLabel;
GtkWidget *BranchLabel;
GtkWidget *BranchInfoLabel;
GtkWidget *VersionLabel;
GtkWidget *VersionInfoLabel;
GtkWidget *ArchitectureLabel;
GtkWidget *ArchitectureInfoLabel;
GtkWidget *ComponentsLabel;
GtkWidget *DependencesInfoLabel;
GtkWidget *SignatureLabel;
GtkWidget *SignatureInfoLabel;
GtkWidget *Finder;
GtkWidget *SaveButton;
GtkWidget *NameBox;
GtkWidget *VersionBox;
GtkWidget *ArchitectureBox;
GtkWidget *DependenceBox;
GtkWidget *SignatureBox;
} main_window;
typedef struct { typedef struct {
GtkWidget *Window; GtkWidget *Window;
GtkWidget *NameEntry; GtkWidget *StatusBox;
GtkWidget *BranchesTree; GtkWidget *HeadLabel;
GtkWidget *CancelButton; GtkWidget *CancelButton;
GtkWidget *SaveButton; GtkWidget *ChooseButton;
GtkCellRenderer *BranchCell; GtkWidget *NameEntry;
GtkWidget *repoChooseFolderButton; GtkWidget *FileChooserWidget;
char *root_path;
GtkListStore *BranchesListStore; } file_chooser_window;
GtkWidget *PathLabel;
char *path;
} repo_create_window;
typedef struct { typedef struct {
GtkWidget *Window; GtkWidget *Window;
GtkWidget *HeaderLabel; GtkWidget *StatusBox;
GtkWidget *KeysCombo; GtkWidget *HeadLabel;
GtkWidget *NameEntry;
GtkWidget *CloseButton; GtkWidget *EmailEntry;
GtkWidget *SaveButton; GtkWidget *CommentsEntry;
} repo_sign_window; GtkWidget *EncryptionCombo;
GtkWidget *KeyStrengthSpin;
GtkWidget *ExpireCombo;
GtkWidget *ExpireEntry;
GtkWidget *ExpireButton;
GtkWidget *CancelButton;
GtkWidget *AddButton;
GtkWidget *PasswordEntry;
GtkWidget *PasswordConfirmationEntry;
unsigned long expire_time;
} key_creation_window;
typedef struct { typedef struct {
GtkWidget *Window; GtkWidget *Window;
GtkWidget *StatusBox;
GtkWidget *HeadLabel;
GtkWidget *CancelButton;
GtkWidget *SignButton;
GtkWidget *SignCombo;
} sign_window;
GtkWidget *HatText; main_window *setup_window();
GtkWidget *HeaderText;
GtkWidget *InfoText;
GtkWidget *AlwaysOpenCheck;
GtkWidget *CloseButton; void yon_storage_config_update(storage_config_window *window);
GtkWidget *AcceptButton;
} documentation_confirmation_window;
typedef enum { void yon_storage_config_update(storage_config_window *window);
YON_REPO_LINE_REPO_TYPE,
YON_REPO_LINE_FILE_TYPE,
YON_REPO_LINE_BRANCH_TYPE
} YON_REPO_LINE_TYPE;
main_window *setup_window(); void yon_sign_list_update();
void yon_add_file(main_window *widgets);
GtkTreeIter *yon_repo_append(main_window *widgets, char *name, YON_REPO_LINE_TYPE type); void yon_combo_box_text_set_signs(GtkComboBoxText *target);
void yon_repo_remove_package(main_window *widgets);
void yon_repo_remove(main_window *widgets); void on_storage_changed(GtkWidget *self, storage_config_window *window);
void on_repo_configure_done(GtkWidget *self, dictionary *dict);
config_str yon_tree_store_get_all_at_level(GtkTreeStore *target,GtkTreeIter *parent, int *size, int column, int level);
void on_remove_arch_selection_changed(GtkWidget *self, repo_add_window *window);
void on_repo_add(GtkWidget *self, storage_config_window *window);
void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets);
void yon_config_load_update(main_window *widgets);

@ -1,25 +1,6 @@
#define VERSION_LABEL yon_char_unite(_("Version:")," ",version_application,"\n",NULL)
#define HELP_LABEL yon_char_unite(_("ubl-settings-repomanager version:")," ", version_application,"\n",TITLE_LABEL,"\n",_("Usage:"), " ubl-settings-repomanager ",_("[OPTIONS]"),"\n",_("Options:"),"\n\t--help, -h\t\t\t",_("Show this help"),"\n\t--version, -V\t\t\t",_("Show package version"),"\n\t--lock-help\t\t\t",_("Lock this help menu"),"\n\t--lock-save\t\t\t",_("Lock configuration saving"),"\n\t--lock-save-local\t\t",_("Lock local configration saving"),"\n\t--lock-save-global\t\t",_("Lock global configration saving"),"\n\t--lock-load-global\t\t",_("Lock global configration loading"),"\n",NULL)
#define ROOT_WARNING_LABEL _("Warning! Application was launched without root - root-dependent actions are locked")
#define TITLE_LABEL _("Repository manager") #define TITLE_LABEL _("Repository manager")
#define TITLE_INFO_LABEL _("Repository management and configuring") #define TITLE_INFO_LABEL _("Repository management and configuring")
#define SUCCESS_LABEL _("Operation succeeded")
#define ABOUT_LABEL _("About")
#define DOCUMENTATION_LABEL _("Documentation")
#define SAVE_LOCAL_LABEL _("Save to local configuration")
#define SAVE_GLOBAL_LABEL _("Save to global configuration")
#define SAVE_CONFIGURATION_LABEL _("Save configuration")
#define SAVE_LABEL _("Save")
#define LOAD_LOCAL_LABEL _("Load local configuration")
#define LOAD_GLOBAL_LABEL _("Load global configuration")
#define LOAD_LABEL _("Load")
#define CANCEL_LABEL _("Cancel")
#define HELP_TITLE_LABEL _("Would you like to read documentation in the Web?") #define HELP_TITLE_LABEL _("Would you like to read documentation in the Web?")
#define HELP_INFO_LABEL _("You will be redirected to documentation website where documentation is\ntranslated and supported by community.") #define HELP_INFO_LABEL _("You will be redirected to documentation website where documentation is\ntranslated and supported by community.")
@ -28,6 +9,35 @@
#define PROJECT_HOME_LABEL _("Project Home Page") #define PROJECT_HOME_LABEL _("Project Home Page")
#define NOTHING_CHOSEN_LABEL _("Nothing were chosen") #define NOTHING_CHOSEN_LABEL _("Nothing were chosen")
#define INFORMATION_LABEL _("Information")
#define CHOSE_PACKAGES_TITLE_LABEL _("Choose package(-s)")
#define CHOSE_FOLDER_TITLE_LABEL _("Choose folder")
#define ADD_PACKAGES_TITLE_LABEL _("Add packages")
#define MOVE_PACKAGES_TITLE_LABEL _("Move packages")
#define REMOVE_PACKAGES_TITLE_LABEL _("Remove packages")
#define KEY_CREATION_TITLE_LABEL _("Key creation")
#define EMAIL_LABEL _("Email:")
#define KEY_ADDITIONAL_CONFIGURATION_LABEL _("Key additional configuration")
#define COMMENTS_LABEL _("Commentary:")
#define ENCRYPTION_LABEL _("Encryption type:")
#define KEY_LENGTH_LABEL _("key strength (in bits):")
#define EXPIRE_LABEL _("Expires:")
#define PASSWORD_LABEL _("Password:")
#define PASSWORD_CONFIRMATION_LABEL _("Password confirmation:")
#define TIMELESS_LABEL _("Timeless")
#define UNTIL_LABEL _("Until")
#define ADD_LABEL _("Add")
#define UPDATE_LABEL _("Update")
#define STORAGE_CONFIGURE_TOOLTIP_LABEL _("Configure storages")
#define LAUNCH_UBL_SETTINGS_UPDATE_TOOLTIP_LABEL _("System update")
#define EMPTY_IMPORTANT_LABEL _("Empty important field")
#define KEY_LABEL _("Key creation")
#define LOAD_SUCCESS_LABEL _("Repository data has been loaded successfully") #define LOAD_SUCCESS_LABEL _("Repository data has been loaded successfully")
#define SAVE_SUCCESS_LABEL _("Saving has succeeded") #define SAVE_SUCCESS_LABEL _("Saving has succeeded")
@ -46,6 +56,46 @@
#define SIGNATURE_LABEL _("Signature:") #define SIGNATURE_LABEL _("Signature:")
#define SIGN_LABEL _("Sign") #define SIGN_LABEL _("Sign")
#define MOVE_LABEL _("Move")
#define REMOVE_LABEL _("Remove")
#define STORAGE_SIGN_REPO_LABEL _("Sign repo")
#define STORAGE_REMOVE_REPO_LABEL _("Remove repo")
#define MANAGE_STORAGES_TITLE_LABEL _("Manage storages")
#define STORAGE_LABEL _("Storage:")
#define OPEN_EXISTING_TOOLTIP_LABEL _("Open existing")
#define CREATE_NEW_TOOLTIP_LABEL _("Create new")
#define DISABLE_TOOLTIP_LABEL _("Disable")
#define DELETE_TOOLTIP_LABEL _("Delete")
#define ADD_REPO_TOOLTIP_LABEL _("Add repository")
#define REPOSITORIES_LABEL _("Repository (-ies)")
#define ACCEPT_LABEL _("Accept")
#define REPO_LABEL _("Repository:")
#define SOURCE_LABEL _("Source")
#define TARGET_LABEL _("Target")
#define PACKAGE_SIGN_LABEL _("Packages sign:")
#define REPO_SIGN_LABEL _("Repository sign:")
#define ADD_PACKAGES_LABEL _("Package (-s) to add")
#define REMOVE_PACKAGES_LABEL _("Package (-s) to remove")
#define MOVE_PACKAGES_LABEL _("Package (-s) to move")
#define NAME_COLUMN_LABEL _("Name")
#define PATH_COLUMN_LABEL _("Path")
#define REMOVE_PACKAGE_LABEL _("Remove package")
#define ADD_PACKAGE_LABEL _("Add package")
#define REPO_SIGN_ERROR_LABEL _("Repository sign failed - repository has no packages")
#define DATA_LOADED_LABEL _("Data has been loaded")
#define PACKAGES_ADD_SUCCESS_LABEL _("Packages were added successfully")
#define PACKAGES_REMOVE_SUCCESS_LABEL _("Packages were removed successfully")
#define PACKAGES_MOVE_SUCCESS_LABEL _("Packages were moved successfully")
#define STORAGES_SAVED_LABEL _("Changes saved")
#define KEY_CREATION_SUCCESS_LABEL _("Key was successfully created")
#define KEY_CREATION_FAILURE_LABEL _("Key creation failed")
#define CHOOSE_LABEL _("Choose")
#define CANCEL_LABEL _("Cancel")
#define CREATE_REPO_LABEL _("Open or create repository") #define CREATE_REPO_LABEL _("Open or create repository")
#define OPEN_REPO_LABEL _("Open existing repository") #define OPEN_REPO_LABEL _("Open existing repository")
#define CONFIGURE_REPO_LABEL _("Configure repository") #define CONFIGURE_REPO_LABEL _("Configure repository")
@ -54,8 +104,6 @@
#define ENABLE_DISABLE_REPO_LABEL _("Enable/disable repository publish") #define ENABLE_DISABLE_REPO_LABEL _("Enable/disable repository publish")
#define CHECK_REPO_LABEL _("Check dependences") #define CHECK_REPO_LABEL _("Check dependences")
#define SIGN_REPO_LABEL _("Sign ripository") #define SIGN_REPO_LABEL _("Sign ripository")
#define ADD_PACKAGE_REPO_LABEL _("Add package")
#define REMOVE_PACKAGE_REPO_LABEL _("Remove package")
#define OPEN_LABEL _("Open") #define OPEN_LABEL _("Open")
#define OPERATION_DONE_LABEL _("Operation done") #define OPERATION_DONE_LABEL _("Operation done")
@ -81,5 +129,39 @@
#define PACKAGE_LABEL _("package") #define PACKAGE_LABEL _("package")
#define REPOSITORY_LABEL _("repository") #define REPOSITORY_LABEL _("repository")
#define ALREADY_EXIST _("This package already exists in that repository") #define ALREADY_EXIST_LABEL _("Repeating packages were not added")
#define REPO_ALREADY_EXISTS_LABEL _("This repository has already been added") #define REPO_ALREADY_EXISTS_LABEL _("This repository has already been added")
#define CLOSE_LABEL _("Close")
#define DISABLE_CONFIRMATION_LABEL _("Are you sure want to disable?")
#define REMOVE_CONFIRMATION_LABEL _("Are you sure want to remove?")
#define DO_NOT_SIGN_LABEL _("Do not sign")
#define PACKAGE_NAME_ERROR_LABEL _("Package name error - package has incorrect name pattern")
#define PASSWORD_INCORRECT_LABEL _("Passwords do not match")
#define SEARCH_LABEL _("Package search")
#define STORAGE_PATH_LABEL _("Storage path")
#define REPOS_LABEL _("Repository")
#define ARCHS_LABEL _("Architecture")
#define REPO_NAME_LABEL _("Repository name")
#define SIGNATURE_INFO_LABEL _("Signature")
#define SIGN_STATUS_LABEL _("Signature status")
#define SIGNATURE_TITLE_LABEL _("Sign packages")
#define SIGN_SUCCESS_LABEL _("Packages successfully signed")
#define EMPTY_FOLDER_LABEL _("Folder must contain repositories")
#define FILES_EXIST_LABEL _("Folder must not be empty")

File diff suppressed because it is too large Load Diff

@ -1,367 +0,0 @@
#ifndef UBL_UTILS
#define UBL_UTILS
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <pthread.h>
#include <string.h>
#include <dirent.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <pwd.h>
#include <locale.h>
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include "../compile/ubl-cmake.h"
#ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#endif
#define DesktopPath "/usr/share/applications/"
#define for_dictionaries(obj, obj1) for (obj = obj1->first; obj != NULL; obj = obj->next)
#define new(type) malloc(sizeof(type))
#define new_arr(type,size) malloc(sizeof(type)*size)
#define get_home_dir_command yon_char_unite("getent passwd \"",yon_ubl_root_user_get(),"\" | cut -d: -f6",NULL)
typedef enum
{
#ifdef __GTK_H__
DICTIONARY_GTK_WIDGETS_TYPE,
#endif
DICTIONARY_OTHER_TYPE=0,
DICTIONARY_CHAR_TYPE,
DICTIONARY_INT_TYPE,
DICTIONARY_BOOL_TYPE,
} DICT_TYPE;
typedef struct dictionary
{
char *key;
void *data;
struct dictionary *next;
struct dictionary *prev;
struct dictionary *first;
DICT_TYPE data_type;
int flag1;
} dictionary;
typedef struct apps
{
char *Name;
int Type;
char *Categories;
char *Exec;
char *Icon;
int Pluggable;
int DualPluggable;
} apps;
typedef char** config_str;
static dictionary *__yon__config__strings = NULL;
#define check_config if(__yon__config__strings&&__yon__config__strings->data_type==DICTIONARY_CHAR_TYPE)
#define config(key) yon_config_get_by_key(key)
#define for_config dictionary temp = NULL; for_dictionary(temp,__yon__config__strings)
#define yon_remalloc(pointer, size) (!pointer) ? malloc(size) : realloc(pointer, size)
// dictionary functions
/**yon_dictionary_get_data(dictionary, type)
* [EN]
* Gets data from dictionary.
* [dictionary] is dictionary, from which data should be extracted;
* [type] is type of data, [dictionary] contains.
* [RU]
* Возвращает данные из словаря.
* [dictionary] - словарь из которого достаются данные.
* [type] - тип данных, хранящихся в словаре [dictionary].
*/
#define yon_dictionary_get_data(dictionary, type) ((type)dictionary->data)
/**yon_dictionary_add_or_create_if_exists_with_data(dict,key,data)
* [EN]
*
* [RU]
* Добавляет элемент словаря в конец словаря [dict] c ключом [key] и данными [data].
* Если словарь не существует, создаёт его
*/
#define yon_dictionary_add_or_create_if_exists_with_data(dict,key,data) {if (!dict) dict=yon_dictionary_new_with_data(key,data); \
else dict=yon_dictionary_append_with_data(dict,key,data);}
dictionary *yon_dictionary_new();
dictionary *yon_dictionary_append(dictionary *targetdict);
dictionary *yon_dictionary_get_last(dictionary *dict);
dictionary *yon_dictionary_swap(dictionary *dict, int aim);
void yon_dictionary_make_first(dictionary *dict);
void yon_dictionary_make_nth(dictionary *dict, int nth);
dictionary *yon_dictionary_new_with_data(char *key, void *data);
dictionary *yon_dictionary_append_with_data(dictionary *dict, char *key, void *data);
dictionary *yon_dictionary_connect(dictionary *old, dictionary *toconnect);
dictionary *yon_dictionary_get(dictionary **dict, char *key);
dictionary *yon_dictionary_rip(dictionary *dict);
dictionary *yon_dictionary_get_nth(dictionary *dict, int place);
void *yon_dictionary_free_all(dictionary *dictionary,void (data_manipulation)(void*));
// char functions
int yon_char_find_last(char *source, char find);
char *yon_char_append(char *source, char *append);
char *yon_char_new(char *chr);
char *yon_char_unite(char *source, ...);
char *yon_cut(char *source, int size, int startpos);
char *yon_char_divide(char *source, int dividepos);
char *yon_char_divide_search(char *source, char *dividepos, int delete_divider);
char *yon_char_from_int(int int_to_convert);
char *yon_char_replace(char *source, char *find, char*replace);
char **yon_char_parse(char *parameters, int *size, char *divider);
char **yon_char_parsed_rip(char **char_string, int *size, int item_to_delete);
int yon_char_parsed_check_exist(char **parameters, int size, char *param);
int yon_char_find_count(char *source, char *find);
int yon_char_parsed_includes_char_parsed (config_str source, config_str to_check, int source_size, int check_size);
config_str yon_char_parsed_new (int *size, ...);
void yon_char_parsed_copy(config_str *source, config_str *to_copy);
config_str yon_char_parsed_append(config_str parsed, int *size, char *string);
int yon_ubl_check_root();
char *yon_ubl_root_user_get();
char *yon_ubl_user_get_home_directory();
// parsing functions
config_str philos_list_user(int* size);
apps *yon_apps_scan_and_parse_desktops(int *sizef);
void yon_apps_sort(apps *applist, int size);
apps *yon_apps_get_by_name(apps *applist, char *name, int size);
config_str yon_config_load(char *command, int *str_len);
int yon_config_save_registered(char *command);
char *yon_config_get_parameter(config_str parameters, int size, char *param);
int yon_config_load_register(char *command);
int yon_config_remove_by_key(char *key);
int yon_config_remove_by_data(void *data);
int yon_config_remove_element(char *key, char *deleted);
void *yon_config_get_by_key(char *key);
char *yon_config_get_key_by_data(char *data);
int yon_config_set(char *key, void *data);
int yon_config_clean();
void yon_config_register(char *key, void *data);
config_str yon_config_get_all();
// terminal-using functions
int yon_launch_app_with_arguments(char *name, char *args);
void yon_launch(char *command);
// Gtk functions
#ifdef __GTK_H__
#ifdef VTE_TERMINAL
void yon_terminal_integrated_launch(GtkWidget *place_to_show, char* command, void *endwork_function, void* endwork_function_argument);
void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *endwork_function, void* endwork_function_argument);
#endif
enum YON_TYPE{
YON_TYPE_STRING,
YON_TYPE_STRING_LIST,
YON_TYPE_INT,
YON_TYPE_BOOLEAN,
YON_TYPE_OTHER
};
GtkWidget *yon_ubl_menu_item_about_new(char *buttonname);
GtkWidget *yon_ubl_menu_item_documentation_new(char *buttonname);
/**yon_gtk_builder_get_widget(builder, widget_name)
* [EN]
* Returns GtkWidget from GtkBuilder *[builder].
* [builder] is GtkBuilder*;
* [widget_name] is id of widget;
*/
#define yon_gtk_builder_get_widget(builder, widget_name) GTK_WIDGET(gtk_builder_get_object(builder, widget_name))
typedef struct
{
GtkWidget *Icon;
GtkWidget *Label;
GtkWidget *IconView;
GtkListStore *List;
} expander_icon_view;
void yon_window_config_setup(GtkWindow *window);
int yon_window_config_load(char *path);
config_str yon_window_config_get_section(char *section, gsize *size);
void yon_window_config_add_listener(GtkWidget *widget, char *param_name, char *widget_property, enum YON_TYPE val_type);
void yon_window_config_add_custom_parameter(char *param_name, char *section, void *tracked_value, enum YON_TYPE val_type);
void yon_window_config_erase_custom_parameter(char *param_name, char *section);
int yon_window_config_get_parameter(char *section, char *config_parameter, void *return_value, enum YON_TYPE type);
int yon_gtk_combo_box_fill(GtkWidget *combo, char **parameters,int size);
int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find);
int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment);
int yon_dictionary_gtk_pack_start_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...);
int yon_dictionary_gtk_pack_end_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...);
typedef enum
{
BACKGROUND_IMAGE_SUCCESS_TYPE,
BACKGROUND_IMAGE_FAIL_TYPE
} BACKGROUND_IMAGE_TYPE;
typedef struct {
BACKGROUND_IMAGE_TYPE type;
GtkWidget *icon;
GtkWidget *box;
GtkWidget *label;
char* text_to_render;
} render_data;
/**yon_ubl_status_box_setup(render,icon,box,label)
* [EN]
* Sets up [render] structure of type render_data.
* [icon] is GtkImage widget of status box for showing status icons;
* [box] is GtkBox widget of status box for showing status color;
* [label] is GtkLabel widget of status box for showing status text;
* [RU]
* Настраивает структуру [render] типа render_data.
* [icon] - виджет типа GtkIcon в котором будут отображаться статусные иконки;
* [box] - виджет типа GtkBox в котором будет отображаться цвет статуса;
* [label] - виджет типа GtkLabel в котором будет отображаться текст статусного сообщения;
*/
int yon_ubl_status_box_setup(GtkWidget *icon, GtkWidget *box, GtkWidget *label);
/**yon_ubl_status_box_render(render,text,type)
* [EN]
* Renders message in status box;
* [render] is render_data structure of status box;
* [text] is text to be shown in status box;
* [type] if type of message. Can be BACKGROUND_IMAGE_FAIL_TYPE or BACKGROUND_IMAGE_SUCCESS_TYPE
* [RU]
* Отображает сообщение в статусном окне.
* [render] - структура типа render_data для нужного статусного окна;
* [text] - текст, отображаемый в статусном окне;
* [type] - тип сообщения. Может быть:
* BACKGROUND_IMAGE_FAIL_TYPE (красный фон,иконка - восклицательный знак)
* или
* BACKGROUND_IMAGE_SUCCESS_TYPE (Жёлтный фон, иконка - галка)
*/
void yon_ubl_status_box_render(char *text, BACKGROUND_IMAGE_TYPE type);
#ifdef __cplusplus
/**yon_ubl_header_setup(overlay, head, image, imag_path)
* [EN]
* Sets up header of app.
* [overlay] is overlay for app header;
* [head] is box of header, which connects to [overlay]
* [image] is header background image;
* [imag_path] is path of image, shown in [image]
* [RU]
* Настраивает заголовок приложения.
* [overlay] - оверлей заголовка приложения;
* [head] - шапка заголовка, присоединяемая к [overlay]
* [image] - виджет картинки для заднего фона;
* [imag_path] - путь до картинки, загружаемой в [image]
*/
#define yon_ubl_header_setup(overlay, head, image, imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay.gobj()), GTK_WIDGET(head.gobj()), GTK_WIDGET(image.gobj()), (char *)imag_path)
#else
/**yon_ubl_header_setup(overlay, head, image, imag_path)
* [EN]
* Sets up header of app.
* [overlay] is overlay for app header;
* [head] is box of header, which connects to [overlay]
* [image] is header background image;
* [imag_path] is path of image, shown in [image]
* [RU]
* Настраивает заголовок приложения.
* [overlay] - оверлей заголовка приложения;
* [head] - шапка заголовка, присоединяемая к [overlay]
* [image] - виджет картинки для заднего фона;
* [imag_path] - путь до картинки, загружаемой в [image]
*/
#define yon_ubl_header_setup(overlay, head, image, imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay), GTK_WIDGET(head), GTK_WIDGET(image), (char *)imag_path)
#define yon_ubl_header_setup_resource(overlay, head, image, imag_path) _yon_ubl_header_setup_resource(GTK_WIDGET(overlay), GTK_WIDGET(head), GTK_WIDGET(image), (char *)imag_path)
#endif
void _yon_ubl_header_setup(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path);
void _yon_ubl_header_setup_resource(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path);
void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWidget *right_window, int socket_main_id, int socket_left_id, int socket_right_id);
#ifdef WEBKIT_FOUND
void yon_ubl_browser_window_open(char *link, char *browser_window_name);
#else
void yon_ubl_browser_window_open(char *link, char *browser_window_name);
#endif
#endif
#endif

@ -0,0 +1,664 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-repomanager">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-repomanager.css -->
<object class="GtkListStore" id="PackagesList">
<columns>
<!-- column-name Icon -->
<column type="gchararray"/>
<!-- column-name Name -->
<column type="gchararray"/>
<!-- column-name Path -->
<column type="gchararray"/>
<!-- column-name Status -->
<column type="gint"/>
</columns>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.trash-symbolic</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.increase-symbolic</property>
</object>
<object class="GtkApplicationWindow" id="MainWindow">
<property name="width-request">800</property>
<property name="height-request">600</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Storage:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="StorageCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="RepositoryCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Architecture:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="ArchitectureCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="MoveSourceFrame">
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Storage:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="MoveSourceStorageEntry">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="MoveSourceRepoEntry">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Architecture:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="MoveSourceArchEntry">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Source</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="MoveTargetFrame">
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Storage:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="MoveTargetStorageEntry">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="MoveTargetRepoEntry">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Architecture:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="MoveTargetArchEntry">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Target</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Packages sign:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="PackageSignCombo">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository sign:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="RepoSignCombo">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-top">8</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkButton" id="AddPackageButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image2</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="RemoveButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="PackagesTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">PackagesList</property>
<property name="search-column">1</property>
<property name="enable-grid-lines">both</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Name</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Path</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkLabel" id="InfoLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="PackagesToAddLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Package (-s) to add</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child type="title">
<object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository manager</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
</object>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="AddButton">
<property name="label" translatable="yes">Add</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkSizeGroup">
<widgets>
<widget name="label1"/>
<widget name="label2"/>
</widgets>
</object>
</interface>

@ -0,0 +1,352 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-repomanager">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-repomanager.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.zoom-symbolic</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.increase-symbolic</property>
</object>
<object class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.cancel-uncolored-symbolic</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.trash-symbolic</property>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.increase-symbolic</property>
</object>
<object class="GtkApplicationWindow" id="MainWindow">
<property name="width-request">450</property>
<property name="height-request">300</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Storage:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="StoragePathCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="OpenExistingButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Open existing</property>
<property name="image">image1</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="CreateNewButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Create new</property>
<property name="image">image2</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkButton" id="DisableButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Disable</property>
<property name="image">image3</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkButton" id="DeleteButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Delete</property>
<property name="image">image4</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="shadow-type">none</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox" id="ReposBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkEntry" id="AddEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="AddRepoButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Add repository</property>
<property name="image">image5</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository (-ies)</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child type="title">
<object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository manager</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
</object>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Accept</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkListStore" id="liststore1">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
</columns>
</object>
</interface>

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-repomanager">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-repomanager.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.accept-symbolic</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.cancel-uncolored-symbolic</property>
</object>
<object class="GtkWindow" id="Window">
<property name="can-focus">False</property>
<property name="modal">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkFileChooserWidget" id="FileChooserWidget">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="select-multiple">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="spacing">5</property>
<child>
<object class="GtkEntry" id="NameEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image2</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ChooseButton">
<property name="label" translatable="yes">Choose</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="webHeaderNameLabel2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository manager</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
</object>
</child>
</object>
</child>
</object>
</interface>

@ -0,0 +1,484 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-repomanager">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-repomanager.css -->
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">1024</property>
<property name="upper">4096</property>
<property name="value">2048</property>
<property name="step-increment">512</property>
<property name="page-increment">512</property>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.calendar-symbolic</property>
<property name="icon_size">3</property>
</object>
<object class="GtkApplicationWindow" id="MainWindow">
<property name="width-request">500</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Name:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="NameEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Email:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="EmailEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Commentary:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="CommentsEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Encryption type:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="EncryptionCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">key strength (in bits):</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="KeyStrengthSpin">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="adjustment">adjustment1</property>
<property name="value">2048</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Expires:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="ExpireCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="active">0</property>
<items>
<item translatable="yes">Timeless</item>
<item translatable="yes">Until</item>
</items>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="ExpireEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ExpireButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
<style>
<class name="thin"/>
<class name="nobackground"/>
<class name="noborder"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Password:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="PasswordEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Password confirmation:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="PasswordConfirmationEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Key additional configuration</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child type="title">
<object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Key creation</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
</object>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="AddButton">
<property name="label" translatable="yes">Add</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkSizeGroup">
<widgets>
<widget name="label1"/>
<widget name="label2"/>
</widgets>
</object>
</interface>

@ -0,0 +1,139 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<object class="GtkApplicationWindow" id="repoEditWindow">
<property name="width-request">450</property>
<property name="height-request">200</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">15</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">dialog-information-symbolic</property>
<property name="icon_size">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Please, wait. List of repository packages is currently updating. It can take a while</property>
<property name="wrap">True</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>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">15</property>
<child>
<object class="GtkProgressBar">
<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">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">0%</property>
<property name="yalign">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child type="title">
<object class="GtkLabel" id="webHeaderNameLabel2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository manager</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
</object>
</child>
</object>
</child>
</object>
</interface>

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-repomanager">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-repomanager.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.key-symbolic</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.trash-symbolic</property>
</object>
<object class="GtkBox" id="MainBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkEntry" id="RepoNameEntry">
<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">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Signature:</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>
<child>
<object class="GtkComboBoxText" id="SignatureCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="SignatureButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Sign repo</property>
<property name="image">image1</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkButton" id="RepoRemoveButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Remove repo</property>
<property name="image">image2</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
</object>
</interface>

@ -1,19 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 --> <!-- Generated with glade 3.38.2 -->
<interface> <interface domain="ubl-settings-repomanager">
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<object class="GtkImage" id="image16"> <!-- interface-css-provider-path ubl-settings-repomanager.css -->
<property name="visible">True</property> <object class="GtkApplicationWindow" id="MainWindow">
<property name="can-focus">False</property> <property name="width-request">500</property>
<property name="icon-name">process-stop-symbolic</property>
</object>
<object class="GtkImage" id="image17">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emblem-ok-symbolic</property>
</object>
<object class="GtkApplicationWindow" id="repoSignWindow">
<property name="width-request">450</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property> <property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
@ -21,34 +12,18 @@
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">10</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox" id="StatusBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkComboBoxText" id="repoSignKeysCombo"> <placeholder/>
<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">0</property>
</packing>
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
@ -57,46 +32,49 @@
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">end</property> <property name="margin-start">5</property>
<property name="spacing">5</property> <property name="margin-end">5</property>
<property name="homogeneous">True</property> <property name="margin-top">25</property>
<property name="margin-bottom">25</property>
<property name="orientation">vertical</property>
<child> <child>
<object class="GtkButton" id="repoSignCancelButton"> <object class="GtkBox">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="receives-default">True</property> <property name="spacing">5</property>
<property name="image">image16</property> <child>
<style> <object class="GtkLabel">
<class name="button"/> <property name="visible">True</property>
</style> <property name="can-focus">False</property>
<property name="label" translatable="yes">Packages sign:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="SignCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="repoSignSaveButton">
<property name="label" translatable="yes">Save</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image17</property>
<style>
<class name="button"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
@ -107,12 +85,11 @@
<object class="GtkHeaderBar" id="SettingsBar2"> <object class="GtkHeaderBar" id="SettingsBar2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title"> <child type="title">
<object class="GtkLabel" id="signHeaderNameLabel"> <object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Repository manager</property> <property name="label" translatable="yes">Sign packages</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>
@ -126,6 +103,29 @@
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property> <property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
</object> </object>
</child> </child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="SignButton">
<property name="label" translatable="yes">Sign</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object> </object>
</child> </child>
</object> </object>

@ -1,549 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-repomanager">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-repomanager.css -->
<object class="GtkListStore" id="curRepoEditList">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gboolean1 -->
<column type="gboolean"/>
</columns>
<data>
<row>
<col id="0" translatable="yes">master</col>
<col id="1">True</col>
</row>
</data>
</object>
<object class="GtkImage" id="image14">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">process-stop-symbolic</property>
</object>
<object class="GtkImage" id="image15">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emblem-ok-symbolic</property>
</object>
<object class="GtkApplicationWindow" id="repoCreateWindow">
<property name="width-request">450</property>
<property name="height-request">150</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="repoNameLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Name:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="repoNameEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">4</property>
<child>
<object class="GtkButton" id="repoChooseFolderButton">
<property name="label" translatable="yes">Choose repository folder</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="halign">start</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="repoPathLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="wrap">True</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>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="repoBranchesLabel">
<property name="can-focus">False</property>
<property name="label" translatable="yes">Branches:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hscrollbar-policy">never</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkTreeView" id="curRepoEditTree">
<property name="can-focus">True</property>
<property name="model">curRepoEditList</property>
<property name="headers-visible">False</property>
<property name="reorderable">True</property>
<property name="search-column">0</property>
<property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">column</property>
<child>
<object class="GtkCellRendererText" id="branchTextCell">
<property name="editable">True</property>
<property name="placeholder-text">&lt; Type branch name &gt;</property>
</object>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
<style>
<class name="noborder"/>
</style>
</object>
</child>
<style>
<class name="nobg"/>
</style>
</object>
</child>
<style>
<class name="noborder"/>
<class name="nobg"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="spacing">5</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkButton" id="repoCancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image14</property>
<style>
<class name="button"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="repoSaveButton">
<property name="label" translatable="yes">Save</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image15</property>
<style>
<class name="button"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="webHeaderNameLabel1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository manager</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
</object>
</child>
</object>
</child>
</object>
<object class="GtkImage" id="image16">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">process-stop-symbolic</property>
</object>
<object class="GtkImage" id="image17">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emblem-ok-symbolic</property>
</object>
<object class="GtkApplicationWindow" id="repoEditWindow">
<property name="width-request">450</property>
<property name="height-request">150</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="repoEtitNameLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Name:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="repoEditNameEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="repoEditBranchesLabel">
<property name="can-focus">False</property>
<property name="label" translatable="yes">Branches:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hscrollbar-policy">never</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkTreeView" id="repoEditBranchTree">
<property name="can-focus">True</property>
<property name="model">curRepoEditList</property>
<property name="headers-visible">False</property>
<property name="search-column">0</property>
<property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection">
<property name="mode">none</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">column</property>
<child>
<object class="GtkCellRendererText" id="curEditRepoEditList"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
<style>
<class name="nobackground"/>
<class name="noborder"/>
</style>
</object>
</child>
<style>
<class name="nobg"/>
</style>
</object>
</child>
<style>
<class name="noborder"/>
<class name="nobg"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="spacing">5</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkButton" id="repoEditCancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image16</property>
<style>
<class name="button"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="repoEditSaveButton">
<property name="label" translatable="yes">Save</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image17</property>
<style>
<class name="button"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="webHeaderNameLabel2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository manager</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
</object>
</child>
</object>
</child>
</object>
</interface>

@ -1,4 +1,3 @@
.thin { .thin {
margin:0px; margin:0px;
padding:0px; padding:0px;
@ -46,25 +45,19 @@ background:transparent;
border-left-width:inherit; border-left-width:inherit;
border-right-width:inherit; border-right-width:inherit;
} }
.menuitemtop *{ .menuitemtop >*{
margin:2px 2px 0 2px; margin:4px 2px 0 2px;
padding-top:2px; padding: 3px 10px 3px 5px;
padding-bottom:2px;
/* padding: 5px 0px 3px 5px; */
border:transparent; border:transparent;
} }
.menuitemmiddle *{ .menuitemmiddle >*{
margin:0 2px 0 2px; margin:0 2px 0 2px;
padding-top:2px; padding: 3px 10px 3px 5px;
padding-bottom:2px;
/* padding: 3px 0px 3px 5px; */
border:transparent; border:transparent;
} }
.menuitembottom *{ .menuitembottom >*{
margin:0 2px 2px 2px; margin:0 2px 2px 2px;
padding-top:2px; padding: 3px 10px 3px 5px;
padding-bottom:2px;
/* padding: 3px 0px 5px 5px; */
} }
.menuitemtop:hover { .menuitemtop:hover {
background:@theme_bg_color; background:@theme_bg_color;
@ -87,27 +80,21 @@ background:transparent;
border-right-width:inherit; border-right-width:inherit;
} }
.menuitemtop:hover* { .menuitemtop:hover>* {
margin:2px 2px 0 2px; margin:4px 2px 0 2px;
padding-top:2px; padding: 3px 10px 3px 5px;
padding-bottom:2px;
/* padding: 5px 0 3px 5px; */
background:@theme_selected_bg_color; background:@theme_selected_bg_color;
border-radius:2px; border-radius:2px;
} }
.menuitemmiddle:hover* { .menuitemmiddle:hover>* {
margin:0 2px 0px 2px; margin:0 2px 0 2px;
padding-top:2px; padding: 3px 10px 3px 5px;
padding-bottom:2px;
/* padding: 3px 0px 3px 5px; */
background:@theme_selected_bg_color; background:@theme_selected_bg_color;
border-radius:2px; border-radius:2px;
} }
.menuitembottom:hover* { .menuitembottom:hover>* {
margin:0 2px 2px 2px; margin:0 2px 2px 2px;
padding-top:2px; padding: 3px 10px 3px 5px;
padding-bottom:2px;
/* padding: 3px 0px 5px 5px; */
background:@theme_selected_bg_color; background:@theme_selected_bg_color;
border-radius:2px; border-radius:2px;
} }
@ -118,24 +105,39 @@ background:transparent;
.boxInfoMessOK{ .boxInfoMessOK{
background-color: #f3f0ac; background-color: #f3f0ac;
} }
.invisprogress { .errorBox {
background-color:transparent; border-width: 2px;
color:transparent; border-color: #ea9999;
border-style:solid;
} }
.invisprogress.osd {
background:transparent; .chosenOutline{
color:transparent; transition: 0ms;
border-width: 1px;
border-color: #f3f0ac;
border-style:solid;
} }
.invisprogress.trough * {
background:transparent; .separatorTop{
color:transparent; border-color: darker (@theme_bg_color);
border-top-width:1px;
border-style:solid;
} }
.invisprogress.trough.empty {
background:transparent; .separatorBottom{
color:transparent; border-color: darker (@theme_bg_color);
border-bottom-width:1px;
border-style:solid;
} }
.marginright image{ .marginright image{
margin-right: 2px; margin-right: 2px;
} }
.spinner_image{
-gtk-icon-transform: scale(2);
}
treeview row:nth-child(odd) { background-color: #000000; }
treeview row:nth-child(even) { background-color: #ffffff; }

@ -1,6 +1,6 @@
[Desktop Entry] [Desktop Entry]
Encoding=UTF-8 Encoding=UTF-8
Name=ubl-settings-repomanager Name=Repository manager
Name[ru]=Менеджер репозиториев Name[ru]=Менеджер репозиториев
GenericName=ubl-settings-repomanager GenericName=ubl-settings-repomanager
GenericName[ru]=Менеджер репозиториев GenericName[ru]=Менеджер репозиториев

File diff suppressed because it is too large Load Diff

@ -17,320 +17,510 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: source/ubl-strings.h:1
msgid "Version:"
msgstr ""
#: source/ubl-strings.h:2
msgid "ubl-settings-repomanager version:"
msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:2
msgid "Usage:" msgid "Repository manager"
msgstr "" msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:3
msgid "[OPTIONS]" msgid "Repository management and configuring"
msgstr "" msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:5
msgid "Options:" msgid "Would you like to read documentation in the Web?"
msgstr "" msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:6
msgid "Show this help" msgid ""
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
msgstr "" msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:7
msgid "Show package version" msgid "Always redirect to online documentation"
msgstr "" msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:8
msgid "Lock this help menu" msgid "Open documentation"
msgstr "" msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:9
msgid "Lock configuration saving" msgid "Project Home Page"
msgstr "" msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:10
msgid "Lock local configration saving" msgid "Nothing were chosen"
msgstr "" msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:12
msgid "Lock global configration saving" msgid "Information"
msgstr "" msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:14
msgid "Lock global configration loading" msgid "Choose package(-s)"
msgstr "" msgstr ""
#: source/ubl-strings.h:4 #: source/ubl-strings.h:15
msgid "" msgid "Choose folder"
"Warning! Application was launched without root - root-dependent actions are "
"locked"
msgstr "" msgstr ""
#: source/ubl-strings.h:6 #: source/ubl-strings.h:16
msgid "Repository manager" msgid "Add packages"
msgstr "" msgstr ""
#: source/ubl-strings.h:7 #: source/ubl-strings.h:17
msgid "Repository management and configuring" msgid "Move packages"
msgstr "" msgstr ""
#: source/ubl-strings.h:8 #: source/ubl-strings.h:18
msgid "Operation succeeded" msgid "Remove packages"
msgstr "" msgstr ""
#: source/ubl-strings.h:10 #: source/ubl-strings.h:20 source/ubl-strings.h:39
msgid "About" msgid "Key creation"
msgstr "" msgstr ""
#: source/ubl-strings.h:11 #: source/ubl-strings.h:21
msgid "Documentation" msgid "Email:"
msgstr "" msgstr ""
#: source/ubl-strings.h:13 #: source/ubl-strings.h:22
msgid "Save to local configuration" msgid "Key additional configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:14 #: source/ubl-strings.h:23
msgid "Save to global configuration" msgid "Commentary:"
msgstr "" msgstr ""
#: source/ubl-strings.h:15 #: source/ubl-strings.h:24
msgid "Save configuration" msgid "Encryption type:"
msgstr "" msgstr ""
#: source/ubl-strings.h:16 #: source/ubl-strings.h:25
msgid "Save" msgid "key strength (in bits):"
msgstr "" msgstr ""
#: source/ubl-strings.h:18 #: source/ubl-strings.h:26
msgid "Load local configuration" msgid "Expires:"
msgstr "" msgstr ""
#: source/ubl-strings.h:19 #: source/ubl-strings.h:27
msgid "Load global configuration" msgid "Password:"
msgstr "" msgstr ""
#: source/ubl-strings.h:20 #: source/ubl-strings.h:28
msgid "Load" msgid "Password confirmation:"
msgstr "" msgstr ""
#: source/ubl-strings.h:22 #: source/ubl-strings.h:29
msgid "Cancel" msgid "Timeless"
msgstr "" msgstr ""
#: source/ubl-strings.h:24 #: source/ubl-strings.h:30
msgid "Would you like to read documentation in the Web?" msgid "Until"
msgstr "" msgstr ""
#: source/ubl-strings.h:25 #: source/ubl-strings.h:32
msgid "" msgid "Add"
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
msgstr "" msgstr ""
#: source/ubl-strings.h:26 #: source/ubl-strings.h:34
msgid "Always redirect to online documentation" msgid "Update"
msgstr "" msgstr ""
#: source/ubl-strings.h:27 #: source/ubl-strings.h:35
msgid "Open documentation" msgid "Configure storages"
msgstr "" msgstr ""
#: source/ubl-strings.h:28 #: source/ubl-strings.h:36
msgid "Project Home Page" msgid "System update"
msgstr "" msgstr ""
#: source/ubl-strings.h:29 #: source/ubl-strings.h:38
msgid "Nothing were chosen" msgid "Empty important field"
msgstr "" msgstr ""
#: source/ubl-strings.h:31 #: source/ubl-strings.h:41
msgid "Repository data has been loaded successfully" msgid "Repository data has been loaded successfully"
msgstr "" msgstr ""
#: source/ubl-strings.h:33 #: source/ubl-strings.h:43
msgid "Saving has succeeded" msgid "Saving has succeeded"
msgstr "" msgstr ""
#: source/ubl-strings.h:35 #: source/ubl-strings.h:45
msgid "General" msgid "General"
msgstr "" msgstr ""
#: source/ubl-strings.h:36 #: source/ubl-strings.h:46
msgid "Publication" msgid "Publication"
msgstr "" msgstr ""
#: source/ubl-strings.h:37 #: source/ubl-strings.h:47
msgid "Trusted repository" msgid "Trusted repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:38 #: source/ubl-strings.h:48
msgid "Server type:" msgid "Server type:"
msgstr "" msgstr ""
#: source/ubl-strings.h:39 #: source/ubl-strings.h:49
msgid "IP adress:" msgid "IP adress:"
msgstr "" msgstr ""
#: source/ubl-strings.h:40 #: source/ubl-strings.h:50
msgid "Port:" msgid "Port:"
msgstr "" msgstr ""
#: source/ubl-strings.h:41 #: source/ubl-strings.h:51
msgid "Publish" msgid "Publish"
msgstr "" msgstr ""
#: source/ubl-strings.h:42 #: source/ubl-strings.h:52
msgid "Code name:" msgid "Code name:"
msgstr "" msgstr ""
#: source/ubl-strings.h:43 #: source/ubl-strings.h:53
msgid "Branch:" msgid "Branch:"
msgstr "" msgstr ""
#: source/ubl-strings.h:44 #: source/ubl-strings.h:54
msgid "Architecture:" msgid "Architecture:"
msgstr "" msgstr ""
#: source/ubl-strings.h:45 #: source/ubl-strings.h:55
msgid "Components:" msgid "Components:"
msgstr "" msgstr ""
#: source/ubl-strings.h:46 #: source/ubl-strings.h:56
msgid "Signature:" msgid "Signature:"
msgstr "" msgstr ""
#: source/ubl-strings.h:47 #: source/ubl-strings.h:57
msgid "Sign" msgid "Sign"
msgstr "" msgstr ""
#: source/ubl-strings.h:49 #: source/ubl-strings.h:59
msgid "Move"
msgstr ""
#: source/ubl-strings.h:60
msgid "Remove"
msgstr ""
#: source/ubl-strings.h:62
msgid "Sign repo"
msgstr ""
#: source/ubl-strings.h:63
msgid "Remove repo"
msgstr ""
#: source/ubl-strings.h:64
msgid "Manage storages"
msgstr ""
#: source/ubl-strings.h:65
msgid "Storage:"
msgstr ""
#: source/ubl-strings.h:66
msgid "Open existing"
msgstr ""
#: source/ubl-strings.h:67
msgid "Create new"
msgstr ""
#: source/ubl-strings.h:68
msgid "Disable"
msgstr ""
#: source/ubl-strings.h:69
msgid "Delete"
msgstr ""
#: source/ubl-strings.h:70
msgid "Add repository"
msgstr ""
#: source/ubl-strings.h:71
msgid "Repository (-ies)"
msgstr ""
#: source/ubl-strings.h:72
msgid "Accept"
msgstr ""
#: source/ubl-strings.h:74
msgid "Repository:"
msgstr ""
#: source/ubl-strings.h:75
msgid "Source"
msgstr ""
#: source/ubl-strings.h:76
msgid "Target"
msgstr ""
#: source/ubl-strings.h:77
msgid "Packages sign:"
msgstr ""
#: source/ubl-strings.h:78
msgid "Repository sign:"
msgstr ""
#: source/ubl-strings.h:79
msgid "Package (-s) to add"
msgstr ""
#: source/ubl-strings.h:80
msgid "Package (-s) to remove"
msgstr ""
#: source/ubl-strings.h:81
msgid "Package (-s) to move"
msgstr ""
#: source/ubl-strings.h:82
msgid "Name"
msgstr ""
#: source/ubl-strings.h:83
msgid "Path"
msgstr ""
#: source/ubl-strings.h:84
msgid "Remove package"
msgstr ""
#: source/ubl-strings.h:85
msgid "Add package"
msgstr ""
#: source/ubl-strings.h:87
msgid "Repository sign failed - repository has no packages"
msgstr ""
#: source/ubl-strings.h:88
msgid "Data has been loaded"
msgstr ""
#: source/ubl-strings.h:89
msgid "Packages were added successfully"
msgstr ""
#: source/ubl-strings.h:90
msgid "Packages were removed successfully"
msgstr ""
#: source/ubl-strings.h:91
msgid "Packages were moved successfully"
msgstr ""
#: source/ubl-strings.h:92
msgid "Changes saved"
msgstr ""
#: source/ubl-strings.h:93
msgid "Key was successfully created"
msgstr ""
#: source/ubl-strings.h:94
msgid "Key creation failed"
msgstr ""
#: source/ubl-strings.h:96
msgid "Choose"
msgstr ""
#: source/ubl-strings.h:97
msgid "Cancel"
msgstr ""
#: source/ubl-strings.h:99
msgid "Open or create repository" msgid "Open or create repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:50 #: source/ubl-strings.h:100
msgid "Open existing repository" msgid "Open existing repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:51 #: source/ubl-strings.h:101
msgid "Configure repository" msgid "Configure repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:52 #: source/ubl-strings.h:102
msgid "Delete repository" msgid "Delete repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:53 #: source/ubl-strings.h:103
msgid "" msgid ""
"Add/Remove repository from\n" "Add/Remove repository from\n"
"local package sources" "local package sources"
msgstr "" msgstr ""
#: source/ubl-strings.h:54 #: source/ubl-strings.h:104
msgid "Enable/disable repository publish" msgid "Enable/disable repository publish"
msgstr "" msgstr ""
#: source/ubl-strings.h:55 #: source/ubl-strings.h:105
msgid "Check dependences" msgid "Check dependences"
msgstr "" msgstr ""
#: source/ubl-strings.h:56 #: source/ubl-strings.h:106
msgid "Sign ripository" msgid "Sign ripository"
msgstr "" msgstr ""
#: source/ubl-strings.h:57 #: source/ubl-strings.h:107
msgid "Add package"
msgstr ""
#: source/ubl-strings.h:58
msgid "Remove package"
msgstr ""
#: source/ubl-strings.h:59
msgid "Open" msgid "Open"
msgstr "" msgstr ""
#: source/ubl-strings.h:61 #: source/ubl-strings.h:109
msgid "Operation done" msgid "Operation done"
msgstr "" msgstr ""
#: source/ubl-strings.h:63 #: source/ubl-strings.h:111
msgid "Choose branch or pack in branch to add file!" msgid "Choose branch or pack in branch to add file!"
msgstr "" msgstr ""
#: source/ubl-strings.h:64 #: source/ubl-strings.h:112
msgid "Choose repository or branch!" msgid "Choose repository or branch!"
msgstr "" msgstr ""
#: source/ubl-strings.h:65 #: source/ubl-strings.h:113
msgid "Choose pack to delete!" msgid "Choose pack to delete!"
msgstr "" msgstr ""
#: source/ubl-strings.h:66 #: source/ubl-strings.h:114
msgid "Choose repository to delete!" msgid "Choose repository to delete!"
msgstr "" msgstr ""
#: source/ubl-strings.h:67 #: source/ubl-strings.h:115
msgid "Choose repository or package to sign" msgid "Choose repository or package to sign"
msgstr "" msgstr ""
#: source/ubl-strings.h:69 #: source/ubl-strings.h:117
msgid "Name:" msgid "Name:"
msgstr "" msgstr ""
#: source/ubl-strings.h:70 #: source/ubl-strings.h:118
msgid "Branches:" msgid "Branches:"
msgstr "" msgstr ""
#: source/ubl-strings.h:71 #: source/ubl-strings.h:119
msgid "< Type branch name >" msgid "< Type branch name >"
msgstr "" msgstr ""
#: source/ubl-strings.h:72 #: source/ubl-strings.h:120
msgid "Name must be filled!" msgid "Name must be filled!"
msgstr "" msgstr ""
#: source/ubl-strings.h:73 #: source/ubl-strings.h:121
msgid "Choose path for new repository" msgid "Choose path for new repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:75 #: source/ubl-strings.h:123
msgid "Choose repository folder" msgid "Choose repository folder"
msgstr "" msgstr ""
#: source/ubl-strings.h:76 #: source/ubl-strings.h:124
msgid "Choose repository" msgid "Choose repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:78 #: source/ubl-strings.h:126
msgid "Absent" msgid "Absent"
msgstr "" msgstr ""
#: source/ubl-strings.h:79 #: source/ubl-strings.h:127
msgid "Dependences:" msgid "Dependences:"
msgstr "" msgstr ""
#: source/ubl-strings.h:80 #: source/ubl-strings.h:128
msgid "Digital signature" msgid "Digital signature"
msgstr "" msgstr ""
#: source/ubl-strings.h:82 #: source/ubl-strings.h:130
msgid "package" msgid "package"
msgstr "" msgstr ""
#: source/ubl-strings.h:83 #: source/ubl-strings.h:131
msgid "repository" msgid "repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:84 #: source/ubl-strings.h:132
msgid "This package already exists in that repository" msgid "Repeating packages were not added"
msgstr "" msgstr ""
#: source/ubl-strings.h:84 #: source/ubl-strings.h:133
msgid "This repository has already been added" msgid "This repository has already been added"
msgstr "" msgstr ""
#: source/ubl-strings.h:135
msgid "Close"
msgstr ""
#: source/ubl-strings.h:137
msgid "Are you sure want to disable?"
msgstr ""
#: source/ubl-strings.h:139
msgid "Are you sure want to remove?"
msgstr ""
#: source/ubl-strings.h:141
msgid "Do not sign"
msgstr ""
#: source/ubl-strings.h:143
msgid "Package name error - package has incorrect name pattern"
msgstr ""
#: source/ubl-strings.h:145
msgid "Passwords do not match"
msgstr ""
#: source/ubl-strings.h:147
msgid "Package search"
msgstr ""
#: source/ubl-strings.h:149
msgid "Storage path"
msgstr ""
#: source/ubl-strings.h:151
msgid "Repository"
msgstr ""
#: source/ubl-strings.h:153
msgid "Architecture"
msgstr ""
#: source/ubl-strings.h:155
msgid "Repository name"
msgstr ""
#: source/ubl-strings.h:157
msgid "Signature"
msgstr ""
#: source/ubl-strings.h:159
msgid "Signature status"
msgstr ""
#: source/ubl-strings.h:161
msgid "Sign packages"
msgstr ""
#: source/ubl-strings.h:163
msgid "Packages successfully signed"
msgstr ""
#: source/ubl-strings.h:165
msgid "Folder must contain repositories"
msgstr ""
#: source/ubl-strings.h:167
msgid "Folder must not be empty"
msgstr ""

@ -17,220 +17,347 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: source/ubl-strings.h:1
msgid "Version:"
msgstr "Версия:"
#: source/ubl-strings.h:2
msgid "ubl-settings-repomanager version:"
msgstr "Версия ubl-settings-repomanager: "
#: source/ubl-strings.h:2
msgid "Usage:"
msgstr "Использование:"
#: source/ubl-strings.h:2
msgid "[OPTIONS]"
msgstr "[АРГУМЕНТЫ]"
#: source/ubl-strings.h:2 #: source/ubl-strings.h:2
msgid "Options:" msgid "Repository manager"
msgstr "Аргументы:" msgstr "Менеджер репозиториев"
#: source/ubl-strings.h:2
msgid "Show this help"
msgstr "Показать параметры справки"
#: source/ubl-strings.h:2
msgid "Show package version"
msgstr "Показать текущую версию"
#: source/ubl-strings.h:2
msgid "Lock this help menu"
msgstr "Блокировка вызова справки"
#: source/ubl-strings.h:2
msgid "Lock configuration saving"
msgstr "Блокировка сохранения локальной и глобальной конфигурации"
#: source/ubl-strings.h:2
msgid "Lock local configration saving"
msgstr "Блокировка сохранения локальной конфигурации"
#: source/ubl-strings.h:2 #: source/ubl-strings.h:3
msgid "Lock global configration saving" msgid "Repository management and configuring"
msgstr "Блокировка сохранения глобальной конфигурации" msgstr "Настройка параметров и управление репозиториями системы"
#: source/ubl-strings.h:2 #: source/ubl-strings.h:5
msgid "Lock global configration loading" msgid "Would you like to read documentation in the Web?"
msgstr "Блокировка загрузки глобальной конфигурации" msgstr "Вы хотите прочитать справку в Сети?"
#: source/ubl-strings.h:4 #: source/ubl-strings.h:6
msgid "" msgid ""
"Warning! Application was launched without root - root-dependent actions are " "You will be redirected to documentation website where documentation is\n"
"locked" "translated and supported by community."
msgstr "" msgstr ""
"Внимание! Приложение было запущено без прав суперпользователя - действия, " "Вы будете перенаправлены на сайт с документацией где страницы помощи\n"
"требующие их наличия заблокированы" "переводятся и поддерживаются сообществом."
#: source/ubl-strings.h:6
msgid "Repository manager"
msgstr "Менеджер репозиториев"
#: source/ubl-strings.h:7 #: source/ubl-strings.h:7
msgid "Repository management and configuring" msgid "Always redirect to online documentation"
msgstr "Настройка параметров и управление репозиториями системы" msgstr "Всегда перенаправлять"
#: source/ubl-strings.h:8 #: source/ubl-strings.h:8
msgid "Operation succeeded" msgid "Open documentation"
msgstr "Операция завершена" msgstr "Прочитать справку"
#: source/ubl-strings.h:10 #: source/ubl-strings.h:9
msgid "About" msgid "Project Home Page"
msgstr "О программе" msgstr "Домашняя страница проекта"
#: source/ubl-strings.h:11 #: source/ubl-strings.h:10
msgid "Documentation" msgid "Nothing were chosen"
msgstr "Справка" msgstr "Ничего не выбрано"
#: source/ubl-strings.h:13 #: source/ubl-strings.h:12
msgid "Save to local configuration" msgid "Information"
msgstr "Сохранить в локальную конфигурацию" msgstr "Информация"
#: source/ubl-strings.h:14 #: source/ubl-strings.h:14
msgid "Save to global configuration" msgid "Choose package(-s)"
msgstr "Сохранить в глобальную конфигурацию" msgstr "Выбрать пакеты"
#: source/ubl-strings.h:15 #: source/ubl-strings.h:15
msgid "Save configuration" msgid "Choose folder"
msgstr "Сохранить конфигурацию" msgstr "Выбрать директорию для репозитория"
#: source/ubl-strings.h:16 #: source/ubl-strings.h:16
msgid "Save" msgid "Add packages"
msgstr "Сохранить" msgstr "Добавить пакеты"
#: source/ubl-strings.h:17
msgid "Move packages"
msgstr "Переместить пакеты"
#: source/ubl-strings.h:18 #: source/ubl-strings.h:18
msgid "Load local configuration" msgid "Remove packages"
msgstr "Загрузить локальную конфигуруцию" msgstr "Удалить пакеты"
#: source/ubl-strings.h:19 #: source/ubl-strings.h:20 source/ubl-strings.h:39
msgid "Load global configuration" msgid "Key creation"
msgstr "Загрузить глобальную конфигурацию" msgstr "Создание ключа"
#: source/ubl-strings.h:20 #: source/ubl-strings.h:21
msgid "Load" msgid "Email:"
msgstr "Загрузить" msgstr "Адрес электронной почты:"
#: source/ubl-strings.h:22 #: source/ubl-strings.h:22
msgid "Cancel" msgid "Key additional configuration"
msgstr "Отмена" msgstr "Дополнительные параметры ключа"
#: source/ubl-strings.h:23
msgid "Commentary:"
msgstr "Комментарий:"
#: source/ubl-strings.h:24 #: source/ubl-strings.h:24
msgid "Would you like to read documentation in the Web?" msgid "Encryption type:"
msgstr "Вы хотите прочитать справку в Сети?" msgstr "Тип шифрования:"
#: source/ubl-strings.h:25 #: source/ubl-strings.h:25
msgid "" msgid "key strength (in bits):"
"You will be redirected to documentation website where documentation is\n" msgstr "Стойкость ключа (в битах):"
"translated and supported by community."
msgstr ""
"Вы будете перенаправлены на сайт с документацией где страницы помощи\n"
"переводятся и поддерживаются сообществом."
#: source/ubl-strings.h:26 #: source/ubl-strings.h:26
msgid "Always redirect to online documentation" msgid "Expires:"
msgstr "Всегда перенаправлять" msgstr "Срок действия:"
#: source/ubl-strings.h:27 #: source/ubl-strings.h:27
msgid "Open documentation" msgid "Password:"
msgstr "Прочитать справку" msgstr "Пароль:"
#: source/ubl-strings.h:28 #: source/ubl-strings.h:28
msgid "Project Home Page" msgid "Password confirmation:"
msgstr "Домашняя страница проекта" msgstr "Подтверждение пароля:"
#: source/ubl-strings.h:29 #: source/ubl-strings.h:29
msgid "Nothing were chosen" msgid "Timeless"
msgstr "Ничего не было выбрано" msgstr "Бессрочный"
#: source/ubl-strings.h:31 #: source/ubl-strings.h:30
msgid "Until"
msgstr "До"
#: source/ubl-strings.h:32
msgid "Add"
msgstr "Добавить"
#: source/ubl-strings.h:34
msgid "Update"
msgstr "Обновить"
#: source/ubl-strings.h:35
msgid "Configure storages"
msgstr "Редактировать хранилища"
#: source/ubl-strings.h:36
msgid "System update"
msgstr "Обновление системы"
#: source/ubl-strings.h:38
msgid "Empty important field"
msgstr "Пустое важное поле"
#: source/ubl-strings.h:41
msgid "Repository data has been loaded successfully" msgid "Repository data has been loaded successfully"
msgstr "Информация о пакетах успешно загружена" msgstr "Информация о пакетах успешно загружена"
#: source/ubl-strings.h:33 #: source/ubl-strings.h:43
#, fuzzy
msgid "Saving has succeeded" msgid "Saving has succeeded"
msgstr "Успешно сохранено" msgstr "Успешно сохранено"
#: source/ubl-strings.h:35 #: source/ubl-strings.h:45
msgid "General" msgid "General"
msgstr "Общие" msgstr "Общие"
#: source/ubl-strings.h:36 #: source/ubl-strings.h:46
msgid "Publication" msgid "Publication"
msgstr "Публикация" msgstr "Публикация"
#: source/ubl-strings.h:37 #: source/ubl-strings.h:47
msgid "Trusted repository" msgid "Trusted repository"
msgstr "Доверенный репозиторий" msgstr "Доверенный репозиторий"
#: source/ubl-strings.h:38 #: source/ubl-strings.h:48
msgid "Server type:" msgid "Server type:"
msgstr "Тип сервера:" msgstr "Тип сервера:"
#: source/ubl-strings.h:39 #: source/ubl-strings.h:49
msgid "IP adress:" msgid "IP adress:"
msgstr "IP-адрес:" msgstr "IP-адрес:"
#: source/ubl-strings.h:40 #: source/ubl-strings.h:50
msgid "Port:" msgid "Port:"
msgstr "Порт:" msgstr "Порт:"
#: source/ubl-strings.h:41 #: source/ubl-strings.h:51
msgid "Publish" msgid "Publish"
msgstr "Опубликовать" msgstr "Опубликовать"
#: source/ubl-strings.h:42 #: source/ubl-strings.h:52
msgid "Code name:" msgid "Code name:"
msgstr "Кодовое имя:" msgstr "Кодовое имя:"
#: source/ubl-strings.h:43 #: source/ubl-strings.h:53
msgid "Branch:" msgid "Branch:"
msgstr "Ветка:" msgstr "Ветка:"
#: source/ubl-strings.h:44 #: source/ubl-strings.h:54
msgid "Architecture:" msgid "Architecture:"
msgstr "Архитектура:" msgstr "Архитектура:"
#: source/ubl-strings.h:45 #: source/ubl-strings.h:55
msgid "Components:" msgid "Components:"
msgstr "Компоненты" msgstr "Компоненты"
#: source/ubl-strings.h:46 #: source/ubl-strings.h:56
msgid "Signature:" msgid "Signature:"
msgstr "Подпись:" msgstr "Подпись:"
#: source/ubl-strings.h:47 #: source/ubl-strings.h:57
msgid "Sign" msgid "Sign"
msgstr "Подписать" msgstr "Подписать"
#: source/ubl-strings.h:49 #: source/ubl-strings.h:59
msgid "Move"
msgstr "Переместить"
#: source/ubl-strings.h:60
msgid "Remove"
msgstr "Удалить"
#: source/ubl-strings.h:62
msgid "Sign repo"
msgstr "Подписать репозиторий"
#: source/ubl-strings.h:63
msgid "Remove repo"
msgstr "Удалить репозиторий"
#: source/ubl-strings.h:64
msgid "Manage storages"
msgstr "Управление хранилищами"
#: source/ubl-strings.h:65
msgid "Storage:"
msgstr "Хранилище:"
#: source/ubl-strings.h:66
msgid "Open existing"
msgstr "Открыть существующее хранилище"
#: source/ubl-strings.h:67
msgid "Create new"
msgstr "Создать"
#: source/ubl-strings.h:68
msgid "Disable"
msgstr "Отключить"
#: source/ubl-strings.h:69
msgid "Delete"
msgstr "Удалить"
#: source/ubl-strings.h:70
msgid "Add repository"
msgstr "Добавить репозиторий"
#: source/ubl-strings.h:71
msgid "Repository (-ies)"
msgstr "Репозиторий (-ии)"
#: source/ubl-strings.h:72
msgid "Accept"
msgstr "Принять"
#: source/ubl-strings.h:74
msgid "Repository:"
msgstr "Репозиторий:"
#: source/ubl-strings.h:75
msgid "Source"
msgstr "Источник"
#: source/ubl-strings.h:76
msgid "Target"
msgstr "Назначение"
#: source/ubl-strings.h:77
msgid "Packages sign:"
msgstr "Подпись пакетов:"
#: source/ubl-strings.h:78
msgid "Repository sign:"
msgstr "Подпись репозитория:"
#: source/ubl-strings.h:79
msgid "Package (-s) to add"
msgstr "Пакет(-ы) для добавления"
#: source/ubl-strings.h:80
msgid "Package (-s) to remove"
msgstr "Пакет(-ы) для удаления"
#: source/ubl-strings.h:81
msgid "Package (-s) to move"
msgstr "Пакет(-ы) для перемещения"
#: source/ubl-strings.h:82
msgid "Name"
msgstr "Имя"
#: source/ubl-strings.h:83
msgid "Path"
msgstr "Путь"
#: source/ubl-strings.h:84
msgid "Remove package"
msgstr "Удалить пакет"
#: source/ubl-strings.h:85
msgid "Add package"
msgstr "Добавить пакет"
#: source/ubl-strings.h:87
msgid "Repository sign failed - repository has no packages"
msgstr "Ошибка подписи репозитория - репозиторий не содержит пакетов"
#: source/ubl-strings.h:88
msgid "Data has been loaded"
msgstr "Данные загружены"
#: source/ubl-strings.h:89
msgid "Packages were added successfully"
msgstr "Пакеты успешно добавлены"
#: source/ubl-strings.h:90
msgid "Packages were removed successfully"
msgstr "Пакеты успешно удалены"
#: source/ubl-strings.h:91
msgid "Packages were moved successfully"
msgstr "Пакеты успешно перемещены"
#: source/ubl-strings.h:92
msgid "Changes saved"
msgstr "Изменения сохранены"
#: source/ubl-strings.h:93
msgid "Key was successfully created"
msgstr "Ключ был успешно создан"
#: source/ubl-strings.h:94
msgid "Key creation failed"
msgstr "Ошибка создания ключа"
#: source/ubl-strings.h:96
msgid "Choose"
msgstr "Выбрать"
#: source/ubl-strings.h:97
msgid "Cancel"
msgstr "Отмена"
#: source/ubl-strings.h:99
msgid "Open or create repository" msgid "Open or create repository"
msgstr "Открыть или создать репозиторий" msgstr "Открыть или создать репозиторий"
#: source/ubl-strings.h:50 #: source/ubl-strings.h:100
msgid "Open existing repository" msgid "Open existing repository"
msgstr "Открыть и добавить репозиторий" msgstr "Открыть и добавить репозиторий"
#: source/ubl-strings.h:51 #: source/ubl-strings.h:101
msgid "Configure repository" msgid "Configure repository"
msgstr "Редактировать репозиторий" msgstr "Редактировать репозиторий"
#: source/ubl-strings.h:52 #: source/ubl-strings.h:102
msgid "Delete repository" msgid "Delete repository"
msgstr "Удалить репозиторий" msgstr "Удалить репозиторий"
#: source/ubl-strings.h:53 #: source/ubl-strings.h:103
msgid "" msgid ""
"Add/Remove repository from\n" "Add/Remove repository from\n"
"local package sources" "local package sources"
@ -238,106 +365,174 @@ msgstr ""
"Добавить/удалить репу из\n" "Добавить/удалить репу из\n"
" локальных источников пакетов" " локальных источников пакетов"
#: source/ubl-strings.h:54 #: source/ubl-strings.h:104
msgid "Enable/disable repository publish" msgid "Enable/disable repository publish"
msgstr "Включить/отключить публикацию" msgstr "Включить/отключить публикацию"
#: source/ubl-strings.h:55 #: source/ubl-strings.h:105
msgid "Check dependences" msgid "Check dependences"
msgstr "Проверить на битые зависимости" msgstr "Проверить на битые зависимости"
#: source/ubl-strings.h:56 #: source/ubl-strings.h:106
msgid "Sign ripository" msgid "Sign ripository"
msgstr "Подпись пакетов" msgstr "Подпись пакетов"
#: source/ubl-strings.h:57 #: source/ubl-strings.h:107
msgid "Add package"
msgstr "Добавить пакет"
#: source/ubl-strings.h:58
msgid "Remove package"
msgstr "Удалить пакет"
#: source/ubl-strings.h:59
msgid "Open" msgid "Open"
msgstr "Открыть" msgstr "Открыть"
#: source/ubl-strings.h:61 #: source/ubl-strings.h:109
msgid "Operation done" msgid "Operation done"
msgstr "Операция завершена" msgstr "Операция завершена"
#: source/ubl-strings.h:63 #: source/ubl-strings.h:111
msgid "Choose branch or pack in branch to add file!" msgid "Choose branch or pack in branch to add file!"
msgstr "Выберите ветку чтобы добавить пакет!" msgstr "Выберите ветку чтобы добавить пакет!"
#: source/ubl-strings.h:64 #: source/ubl-strings.h:112
msgid "Choose repository or branch!" msgid "Choose repository or branch!"
msgstr "Выберите репозиторий!" msgstr "Выберите репозиторий!"
#: source/ubl-strings.h:65 #: source/ubl-strings.h:113
msgid "Choose pack to delete!" msgid "Choose pack to delete!"
msgstr "Выберите пакет для удаления!" msgstr "Выберите пакет для удаления!"
#: source/ubl-strings.h:66 #: source/ubl-strings.h:114
msgid "Choose repository to delete!" msgid "Choose repository to delete!"
msgstr "Выберите репозиторий для удаления!" msgstr "Выберите репозиторий для удаления!"
#: source/ubl-strings.h:67 #: source/ubl-strings.h:115
msgid "Choose repository or package to sign" msgid "Choose repository or package to sign"
msgstr "Выберите репозиторий или пакет для подписи" msgstr "Выберите репозиторий или пакет для подписи"
#: source/ubl-strings.h:69 #: source/ubl-strings.h:117
msgid "Name:" msgid "Name:"
msgstr "Название:" msgstr "Название:"
#: source/ubl-strings.h:70 #: source/ubl-strings.h:118
msgid "Branches:" msgid "Branches:"
msgstr "Ветки:" msgstr "Ветки:"
#: source/ubl-strings.h:71 #: source/ubl-strings.h:119
msgid "< Type branch name >" msgid "< Type branch name >"
msgstr "< Введите название ветки >" msgstr "< Введите название ветки >"
#: source/ubl-strings.h:72 #: source/ubl-strings.h:120
msgid "Name must be filled!" msgid "Name must be filled!"
msgstr "Введите название!" msgstr "Введите название!"
#: source/ubl-strings.h:73 #: source/ubl-strings.h:121
msgid "Choose path for new repository" msgid "Choose path for new repository"
msgstr "Выбрать расположение нового репозитория" msgstr "Выбрать расположение нового репозитория"
#: source/ubl-strings.h:75 #: source/ubl-strings.h:123
msgid "Choose repository folder" msgid "Choose repository folder"
msgstr "Выбрать директорию для репозитория" msgstr "Выбрать директорию для репозитория"
#: source/ubl-strings.h:76 #: source/ubl-strings.h:124
msgid "Choose repository" msgid "Choose repository"
msgstr "Выбрать репозиторий" msgstr "Выбрать репозиторий"
#: source/ubl-strings.h:78 #: source/ubl-strings.h:126
msgid "Absent" msgid "Absent"
msgstr "Отсутствует" msgstr "Отсутствует"
#: source/ubl-strings.h:79 #: source/ubl-strings.h:127
msgid "Dependences:" msgid "Dependences:"
msgstr "Зависит от:" msgstr "Зависит от:"
#: source/ubl-strings.h:80 #: source/ubl-strings.h:128
msgid "Digital signature" msgid "Digital signature"
msgstr "Цифровая подпись" msgstr "Цифровая подпись"
#: source/ubl-strings.h:82 #: source/ubl-strings.h:130
msgid "package" msgid "package"
msgstr "пакет" msgstr "пакет"
#: source/ubl-strings.h:83 #: source/ubl-strings.h:131
msgid "repository" msgid "repository"
msgstr "репозиторий" msgstr "репозиторий"
#: source/ubl-strings.h:84 #: source/ubl-strings.h:132
msgid "This package already exists in that repository" msgid "Repeating packages were not added"
msgstr "Этот пакет уже присутствует в выбранном репозитории" msgstr "Дублирующиеся пакеты не были добавлены"
#: source/ubl-strings.h:84 #: source/ubl-strings.h:133
msgid "This repository has already been added" msgid "This repository has already been added"
msgstr "Этот репозиторий уже был добавлен" msgstr "Этот репозиторий уже был добавлен"
#: source/ubl-strings.h:135
msgid "Close"
msgstr "Закрыть"
#: source/ubl-strings.h:137
msgid "Are you sure want to disable?"
msgstr ""
"Внимание! Вы хотите отключить хранилище от управления менеджером "
"репозиториев. При этом будет прекращено управление самим хранилищем и "
"вложенными репозиториями!\n"
"\n"
"Примечание: в дальнейшем Вы можете заново подключить хранилище и управлять "
"им."
#: source/ubl-strings.h:139
msgid "Are you sure want to remove?"
msgstr ""
"Внимание! Вы ходите удалить хранилище При этом хранилище и вложенные "
"репозитории будут безвозвратно удалены!"
#: source/ubl-strings.h:141
msgid "Do not sign"
msgstr "Не подписывать"
#: source/ubl-strings.h:143
msgid "Package name error - package has incorrect name pattern"
msgstr "Ошибка имени пакета - некорректное имя пакета"
#: source/ubl-strings.h:145
msgid "Passwords do not match"
msgstr "Пароли не совпадают"
#: source/ubl-strings.h:147
msgid "Package search"
msgstr "Поиск пакетов"
#: source/ubl-strings.h:149
msgid "Storage path"
msgstr "Расположение хранилища"
#: source/ubl-strings.h:151
msgid "Repository"
msgstr "Репозиторий"
#: source/ubl-strings.h:153
msgid "Architecture"
msgstr "Архитектура"
#: source/ubl-strings.h:155
msgid "Repository name"
msgstr "Имя репозитория"
#: source/ubl-strings.h:157
msgid "Signature"
msgstr "Подпись"
#: source/ubl-strings.h:159
msgid "Signature status"
msgstr "Статус подписи"
#: source/ubl-strings.h:161
msgid "Sign packages"
msgstr "Подписать пакеты"
#: source/ubl-strings.h:163
msgid "Packages successfully signed"
msgstr "Пакеты успешно подписаны"
#: source/ubl-strings.h:165
msgid "Folder must contain repositories"
msgstr "Директория должна содержать репозитории"
#: source/ubl-strings.h:167
msgid "Folder must not be empty"
msgstr "Директория должна быть пустой"

Loading…
Cancel
Save