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}"; \
done
@for SIZE in 16 32 48; do \
install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
install -dm755 "${DESTDIR}/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}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
done
@install -Dm644 -t "${DESTDIR}${PREFIX}/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}${PREFIX}/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}${PREFIX}/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}${PREFIX}/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}${PREFIX}/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}${PREFIX}/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/apps/" "com.ublinux.${PKGNAME}.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.document-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/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-red-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/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}.folder-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/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-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 -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"
@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 \
[ -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; \
[ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
[ -d "${DESTDIR}/usr/share/applications" ] && touch "${DESTDIR}/usr/share/applications" &>/dev/null || true; \
fi
@echo "Install: OK"

@ -0,0 +1,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" />
</linearGradient>
<path
class="success"
id="path493"
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="success"
style="fill:#1a1a1a;stroke-width:1.899"
id="rect2334"
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>
<gresource prefix="/com/ublinux/ui">
<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>
</gresource>
<gresource prefix="/com/ublinux/css">

@ -8,6 +8,11 @@ include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
add_definitions(${GTK_CFLAGS_OTHER})
pkg_check_modules(VTE291 REQUIRED vte-2.91)
include_directories(${VTE291_INCLUDE_DIRS})
link_directories(${VTE291_LIBRARY_DIRS})
add_definitions(${VTE291_CFLAGS_OTHER})
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
option(WEBKIT_FOUND "No" OFF)
@ -31,8 +36,12 @@ add_custom_target(GLADE ubl-settings-repomanager.glade)
set(DEPENDFILES
../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-repo-block.glade
../gresource.xml
../ubl-settings-repomanager-banner.png
../ubl-settings-repomanager.css
@ -70,15 +79,17 @@ set(SOURCE_FILES
ubl-settings-repomanager.c
ubl-settings-repomanager.h
ubl-strings.h
ubl-utils.h
ubl-utils.c
${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h
)
set(LIBRARIES
${GTK_LIBRARIES}
${WEBKIT_LIBRARIES}
pthread)
${VTE291_LIBRARIES}
pthread
ublsettings
ublsettings-gtk3
ublsettingsui-gtk3)
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/gtkx.h>
#include "ubl-utils.h"
#include <locale.h>
#include <stdio.h>
#include <unistd.h>
@ -10,7 +9,9 @@
#include <libintl.h>
#include <sys/types.h>
#include <fcntl.h>
#include "../compile/ubl-cmake.h"
#include <libublsettings.h>
#include <libublsettings-gtk3.h>
#include <libublsettingsui-gtk3.h>
#ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#endif
@ -21,171 +22,259 @@
#define _(String) gettext(String)
#define glade_path "/com/ublinux/ui/ubl-settings-repomanager.glade"
#define glade_repo_path "/com/ublinux/ui/ubl-settings-repomanager-windows.glade"
#define glade_sign_path "/com/ublinux/ui/ubl-settings-repomanager-sign.glade"
#define glade_path_repo_add "/com/ublinux/ui/ubl-settings-repomanager-add.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 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 icon_path "com.ublinux.ubl-settings-repomanager"
#define folder_no_edits "com.ublinux.ubl-settings-repomanager.folder-symbolic"
#define folder_deleted "com.ublinux.ubl-settings-repomanager.folder-red-symbolic"
#define folder_added "com.ublinux.ubl-settings-repomanager.folder-green-symbolic"
#define document_no_edits "com.ublinux.ubl-settings-repomanager.document-symbolic"
#define document_deleted "com.ublinux.ubl-settings-repomanager.document-red-symbolic"
#define document_added "com.ublinux.ubl-settings-repomanager.document-green-symbolic"
#define folder_no_edits "com.ublinux.libublsettingsui-gtk3.folder-symbolic"
#define document_no_edits "com.ublinux.libublsettingsui-gtk3.key-symbolic"
#define document_deleted "com.ublinux.ubl-settings-repomanager.key-red-symbolic"
#define document_added "com.ublinux.ubl-settings-repomanager.key-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 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;
#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_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 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 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 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;
char *local;
typedef struct {
template_config_fields
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;
config_str signs;
int signs_size;
char *last_selection;
} config;
typedef struct {
GtkWidget *Window;
GtkWidget *HatLabel;
GtkWidget *PlugBox;
template_window_fields
GtkWidget *UpdateButton;
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;
GtkWidget *HeadImage;
GtkWidget *HeadBox;
GtkWidget *HeadTitleLabel;
GtkWidget *HeadInfoLabel;
dictionary *added_packages_archs;
dictionary *removed_packages_archs;
} repo_add_window;
typedef struct {
GtkWidget *MainWindow;
GtkWidget *HeadLabel;
GtkWidget *CancelButton;
GtkWidget *AcceptButton;
GtkWidget *StatusBox;
GtkWidget *StatusIcon;
GtkWidget *StatusLabel;
GtkWidget *SaveLabel;
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 *StoragePathCombo;
GtkWidget *OpenExistingButton;
GtkWidget *CreateNewButton;
GtkWidget *DisableButton;
GtkWidget *DeleteButton;
GtkWidget *LoadFromLocalButton;
GtkWidget *SwitchPublishButton;
GtkWidget *CheckDependencesButton;
GtkWidget *SignButton;
GtkWidget *AddPackageButton;
GtkWidget *RemovePackageButton;
GtkWidget *RepoTree;
GtkWidget *TrustedRepoCheck;
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;
GtkWidget *ReposBox;
GtkWidget *AddEntry;
GtkWidget *AddRepoButton;
GtkWidget *TestTree;
GtkListStore *StorageList;
GtkTreeStore *storages_copy;
GtkTreeModel *StorageFilter;
} storage_config_window;
typedef struct {
GtkWidget *Window;
GtkWidget *NameEntry;
GtkWidget *BranchesTree;
GtkWidget *StatusBox;
GtkWidget *HeadLabel;
GtkWidget *CancelButton;
GtkWidget *SaveButton;
GtkCellRenderer *BranchCell;
GtkWidget *repoChooseFolderButton;
GtkListStore *BranchesListStore;
GtkWidget *PathLabel;
char *path;
} repo_create_window;
GtkWidget *ChooseButton;
GtkWidget *NameEntry;
GtkWidget *FileChooserWidget;
char *root_path;
} file_chooser_window;
typedef struct {
GtkWidget *Window;
GtkWidget *HeaderLabel;
GtkWidget *KeysCombo;
GtkWidget *CloseButton;
GtkWidget *SaveButton;
} repo_sign_window;
GtkWidget *StatusBox;
GtkWidget *HeadLabel;
GtkWidget *NameEntry;
GtkWidget *EmailEntry;
GtkWidget *CommentsEntry;
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 {
GtkWidget *Window;
GtkWidget *StatusBox;
GtkWidget *HeadLabel;
GtkWidget *CancelButton;
GtkWidget *SignButton;
GtkWidget *SignCombo;
} sign_window;
GtkWidget *HatText;
GtkWidget *HeaderText;
GtkWidget *InfoText;
GtkWidget *AlwaysOpenCheck;
main_window *setup_window();
GtkWidget *CloseButton;
GtkWidget *AcceptButton;
} documentation_confirmation_window;
void yon_storage_config_update(storage_config_window *window);
typedef enum {
YON_REPO_LINE_REPO_TYPE,
YON_REPO_LINE_FILE_TYPE,
YON_REPO_LINE_BRANCH_TYPE
} YON_REPO_LINE_TYPE;
void yon_storage_config_update(storage_config_window *window);
main_window *setup_window();
void yon_add_file(main_window *widgets);
GtkTreeIter *yon_repo_append(main_window *widgets, char *name, YON_REPO_LINE_TYPE type);
void yon_repo_remove_package(main_window *widgets);
void yon_repo_remove(main_window *widgets);
void on_repo_configure_done(GtkWidget *self, dictionary *dict);
void yon_sign_list_update();
void yon_combo_box_text_set_signs(GtkComboBoxText *target);
void on_storage_changed(GtkWidget *self, storage_config_window *window);
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_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_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 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 SAVE_SUCCESS_LABEL _("Saving has succeeded")
@ -46,6 +56,46 @@
#define SIGNATURE_LABEL _("Signature:")
#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 OPEN_REPO_LABEL _("Open existing repository")
#define CONFIGURE_REPO_LABEL _("Configure repository")
@ -54,8 +104,6 @@
#define ENABLE_DISABLE_REPO_LABEL _("Enable/disable repository publish")
#define CHECK_REPO_LABEL _("Check dependences")
#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 OPERATION_DONE_LABEL _("Operation done")
@ -81,5 +129,39 @@
#define PACKAGE_LABEL _("package")
#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 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"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<interface domain="ubl-settings-repomanager">
<requires lib="gtk+" version="3.24"/>
<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="repoSignWindow">
<property name="width-request">450</property>
<!-- interface-css-provider-path ubl-settings-repomanager.css -->
<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>
@ -21,34 +12,18 @@
<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">
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkComboBoxText" id="repoSignKeysCombo">
<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>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
@ -57,36 +32,32 @@
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">25</property>
<property name="margin-bottom">25</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>
<property name="homogeneous">True</property>
<child>
<object class="GtkButton" id="repoSignCancelButton">
<property name="label" translatable="yes">Cancel</property>
<object class="GtkLabel">
<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>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Packages sign:</property>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="repoSignSaveButton">
<property name="label" translatable="yes">Save</property>
<object class="GtkComboBoxText" id="SignCombo">
<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>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
@ -98,6 +69,13 @@
<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>
@ -107,12 +85,11 @@
<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="signHeaderNameLabel">
<object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository manager</property>
<property name="label" translatable="yes">Sign packages</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@ -126,6 +103,29 @@
<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="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>
</child>
</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 {
margin:0px;
padding:0px;
@ -46,25 +45,19 @@ background:transparent;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitemtop *{
margin:2px 2px 0 2px;
padding-top:2px;
padding-bottom:2px;
/* padding: 5px 0px 3px 5px; */
.menuitemtop >*{
margin:4px 2px 0 2px;
padding: 3px 10px 3px 5px;
border:transparent;
}
.menuitemmiddle *{
.menuitemmiddle >*{
margin:0 2px 0 2px;
padding-top:2px;
padding-bottom:2px;
/* padding: 3px 0px 3px 5px; */
padding: 3px 10px 3px 5px;
border:transparent;
}
.menuitembottom *{
.menuitembottom >*{
margin:0 2px 2px 2px;
padding-top:2px;
padding-bottom:2px;
/* padding: 3px 0px 5px 5px; */
padding: 3px 10px 3px 5px;
}
.menuitemtop:hover {
background:@theme_bg_color;
@ -87,27 +80,21 @@ background:transparent;
border-right-width:inherit;
}
.menuitemtop:hover* {
margin:2px 2px 0 2px;
padding-top:2px;
padding-bottom:2px;
/* padding: 5px 0 3px 5px; */
.menuitemtop:hover>* {
margin:4px 2px 0 2px;
padding: 3px 10px 3px 5px;
background:@theme_selected_bg_color;
border-radius:2px;
}
.menuitemmiddle:hover* {
margin:0 2px 0px 2px;
padding-top:2px;
padding-bottom:2px;
/* padding: 3px 0px 3px 5px; */
.menuitemmiddle:hover>* {
margin:0 2px 0 2px;
padding: 3px 10px 3px 5px;
background:@theme_selected_bg_color;
border-radius:2px;
}
.menuitembottom:hover* {
.menuitembottom:hover>* {
margin:0 2px 2px 2px;
padding-top:2px;
padding-bottom:2px;
/* padding: 3px 0px 5px 5px; */
padding: 3px 10px 3px 5px;
background:@theme_selected_bg_color;
border-radius:2px;
}
@ -118,24 +105,39 @@ background:transparent;
.boxInfoMessOK{
background-color: #f3f0ac;
}
.invisprogress {
background-color:transparent;
color:transparent;
.errorBox {
border-width: 2px;
border-color: #ea9999;
border-style:solid;
}
.invisprogress.osd {
background:transparent;
color:transparent;
.chosenOutline{
transition: 0ms;
border-width: 1px;
border-color: #f3f0ac;
border-style:solid;
}
.invisprogress.trough * {
background:transparent;
color:transparent;
.separatorTop{
border-color: darker (@theme_bg_color);
border-top-width:1px;
border-style:solid;
}
.invisprogress.trough.empty {
background:transparent;
color:transparent;
.separatorBottom{
border-color: darker (@theme_bg_color);
border-bottom-width:1px;
border-style:solid;
}
.marginright image{
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]
Encoding=UTF-8
Name=ubl-settings-repomanager
Name=Repository manager
Name[ru]=Менеджер репозиториев
GenericName=ubl-settings-repomanager
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-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
msgid "Usage:"
msgid "Repository manager"
msgstr ""
#: source/ubl-strings.h:2
msgid "[OPTIONS]"
#: source/ubl-strings.h:3
msgid "Repository management and configuring"
msgstr ""
#: source/ubl-strings.h:2
msgid "Options:"
#: source/ubl-strings.h:5
msgid "Would you like to read documentation in the Web?"
msgstr ""
#: source/ubl-strings.h:2
msgid "Show this help"
#: source/ubl-strings.h:6
msgid ""
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
msgstr ""
#: source/ubl-strings.h:2
msgid "Show package version"
#: source/ubl-strings.h:7
msgid "Always redirect to online documentation"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock this help menu"
#: source/ubl-strings.h:8
msgid "Open documentation"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock configuration saving"
#: source/ubl-strings.h:9
msgid "Project Home Page"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock local configration saving"
#: source/ubl-strings.h:10
msgid "Nothing were chosen"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock global configration saving"
#: source/ubl-strings.h:12
msgid "Information"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock global configration loading"
#: source/ubl-strings.h:14
msgid "Choose package(-s)"
msgstr ""
#: source/ubl-strings.h:4
msgid ""
"Warning! Application was launched without root - root-dependent actions are "
"locked"
#: source/ubl-strings.h:15
msgid "Choose folder"
msgstr ""
#: source/ubl-strings.h:6
msgid "Repository manager"
#: source/ubl-strings.h:16
msgid "Add packages"
msgstr ""
#: source/ubl-strings.h:7
msgid "Repository management and configuring"
#: source/ubl-strings.h:17
msgid "Move packages"
msgstr ""
#: source/ubl-strings.h:8
msgid "Operation succeeded"
#: source/ubl-strings.h:18
msgid "Remove packages"
msgstr ""
#: source/ubl-strings.h:10
msgid "About"
#: source/ubl-strings.h:20 source/ubl-strings.h:39
msgid "Key creation"
msgstr ""
#: source/ubl-strings.h:11
msgid "Documentation"
#: source/ubl-strings.h:21
msgid "Email:"
msgstr ""
#: source/ubl-strings.h:13
msgid "Save to local configuration"
#: source/ubl-strings.h:22
msgid "Key additional configuration"
msgstr ""
#: source/ubl-strings.h:14
msgid "Save to global configuration"
#: source/ubl-strings.h:23
msgid "Commentary:"
msgstr ""
#: source/ubl-strings.h:15
msgid "Save configuration"
#: source/ubl-strings.h:24
msgid "Encryption type:"
msgstr ""
#: source/ubl-strings.h:16
msgid "Save"
#: source/ubl-strings.h:25
msgid "key strength (in bits):"
msgstr ""
#: source/ubl-strings.h:18
msgid "Load local configuration"
#: source/ubl-strings.h:26
msgid "Expires:"
msgstr ""
#: source/ubl-strings.h:19
msgid "Load global configuration"
#: source/ubl-strings.h:27
msgid "Password:"
msgstr ""
#: source/ubl-strings.h:20
msgid "Load"
#: source/ubl-strings.h:28
msgid "Password confirmation:"
msgstr ""
#: source/ubl-strings.h:22
msgid "Cancel"
#: source/ubl-strings.h:29
msgid "Timeless"
msgstr ""
#: source/ubl-strings.h:24
msgid "Would you like to read documentation in the Web?"
#: source/ubl-strings.h:30
msgid "Until"
msgstr ""
#: source/ubl-strings.h:25
msgid ""
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
#: source/ubl-strings.h:32
msgid "Add"
msgstr ""
#: source/ubl-strings.h:26
msgid "Always redirect to online documentation"
#: source/ubl-strings.h:34
msgid "Update"
msgstr ""
#: source/ubl-strings.h:27
msgid "Open documentation"
#: source/ubl-strings.h:35
msgid "Configure storages"
msgstr ""
#: source/ubl-strings.h:28
msgid "Project Home Page"
#: source/ubl-strings.h:36
msgid "System update"
msgstr ""
#: source/ubl-strings.h:29
msgid "Nothing were chosen"
#: source/ubl-strings.h:38
msgid "Empty important field"
msgstr ""
#: source/ubl-strings.h:31
#: source/ubl-strings.h:41
msgid "Repository data has been loaded successfully"
msgstr ""
#: source/ubl-strings.h:33
#: source/ubl-strings.h:43
msgid "Saving has succeeded"
msgstr ""
#: source/ubl-strings.h:35
#: source/ubl-strings.h:45
msgid "General"
msgstr ""
#: source/ubl-strings.h:36
#: source/ubl-strings.h:46
msgid "Publication"
msgstr ""
#: source/ubl-strings.h:37
#: source/ubl-strings.h:47
msgid "Trusted repository"
msgstr ""
#: source/ubl-strings.h:38
#: source/ubl-strings.h:48
msgid "Server type:"
msgstr ""
#: source/ubl-strings.h:39
#: source/ubl-strings.h:49
msgid "IP adress:"
msgstr ""
#: source/ubl-strings.h:40
#: source/ubl-strings.h:50
msgid "Port:"
msgstr ""
#: source/ubl-strings.h:41
#: source/ubl-strings.h:51
msgid "Publish"
msgstr ""
#: source/ubl-strings.h:42
#: source/ubl-strings.h:52
msgid "Code name:"
msgstr ""
#: source/ubl-strings.h:43
#: source/ubl-strings.h:53
msgid "Branch:"
msgstr ""
#: source/ubl-strings.h:44
#: source/ubl-strings.h:54
msgid "Architecture:"
msgstr ""
#: source/ubl-strings.h:45
#: source/ubl-strings.h:55
msgid "Components:"
msgstr ""
#: source/ubl-strings.h:46
#: source/ubl-strings.h:56
msgid "Signature:"
msgstr ""
#: source/ubl-strings.h:47
#: source/ubl-strings.h:57
msgid "Sign"
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"
msgstr ""
#: source/ubl-strings.h:50
#: source/ubl-strings.h:100
msgid "Open existing repository"
msgstr ""
#: source/ubl-strings.h:51
#: source/ubl-strings.h:101
msgid "Configure repository"
msgstr ""
#: source/ubl-strings.h:52
#: source/ubl-strings.h:102
msgid "Delete repository"
msgstr ""
#: source/ubl-strings.h:53
#: source/ubl-strings.h:103
msgid ""
"Add/Remove repository from\n"
"local package sources"
msgstr ""
#: source/ubl-strings.h:54
#: source/ubl-strings.h:104
msgid "Enable/disable repository publish"
msgstr ""
#: source/ubl-strings.h:55
#: source/ubl-strings.h:105
msgid "Check dependences"
msgstr ""
#: source/ubl-strings.h:56
#: source/ubl-strings.h:106
msgid "Sign ripository"
msgstr ""
#: source/ubl-strings.h:57
msgid "Add package"
msgstr ""
#: source/ubl-strings.h:58
msgid "Remove package"
msgstr ""
#: source/ubl-strings.h:59
#: source/ubl-strings.h:107
msgid "Open"
msgstr ""
#: source/ubl-strings.h:61
#: source/ubl-strings.h:109
msgid "Operation done"
msgstr ""
#: source/ubl-strings.h:63
#: source/ubl-strings.h:111
msgid "Choose branch or pack in branch to add file!"
msgstr ""
#: source/ubl-strings.h:64
#: source/ubl-strings.h:112
msgid "Choose repository or branch!"
msgstr ""
#: source/ubl-strings.h:65
#: source/ubl-strings.h:113
msgid "Choose pack to delete!"
msgstr ""
#: source/ubl-strings.h:66
#: source/ubl-strings.h:114
msgid "Choose repository to delete!"
msgstr ""
#: source/ubl-strings.h:67
#: source/ubl-strings.h:115
msgid "Choose repository or package to sign"
msgstr ""
#: source/ubl-strings.h:69
#: source/ubl-strings.h:117
msgid "Name:"
msgstr ""
#: source/ubl-strings.h:70
#: source/ubl-strings.h:118
msgid "Branches:"
msgstr ""
#: source/ubl-strings.h:71
#: source/ubl-strings.h:119
msgid "< Type branch name >"
msgstr ""
#: source/ubl-strings.h:72
#: source/ubl-strings.h:120
msgid "Name must be filled!"
msgstr ""
#: source/ubl-strings.h:73
#: source/ubl-strings.h:121
msgid "Choose path for new repository"
msgstr ""
#: source/ubl-strings.h:75
#: source/ubl-strings.h:123
msgid "Choose repository folder"
msgstr ""
#: source/ubl-strings.h:76
#: source/ubl-strings.h:124
msgid "Choose repository"
msgstr ""
#: source/ubl-strings.h:78
#: source/ubl-strings.h:126
msgid "Absent"
msgstr ""
#: source/ubl-strings.h:79
#: source/ubl-strings.h:127
msgid "Dependences:"
msgstr ""
#: source/ubl-strings.h:80
#: source/ubl-strings.h:128
msgid "Digital signature"
msgstr ""
#: source/ubl-strings.h:82
#: source/ubl-strings.h:130
msgid "package"
msgstr ""
#: source/ubl-strings.h:83
#: source/ubl-strings.h:131
msgid "repository"
msgstr ""
#: source/ubl-strings.h:84
msgid "This package already exists in that repository"
#: source/ubl-strings.h:132
msgid "Repeating packages were not added"
msgstr ""
#: source/ubl-strings.h:84
#: source/ubl-strings.h:133
msgid "This repository has already been added"
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-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
msgid "Options:"
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 "Блокировка сохранения локальной конфигурации"
msgid "Repository manager"
msgstr "Менеджер репозиториев"
#: source/ubl-strings.h:2
msgid "Lock global configration saving"
msgstr "Блокировка сохранения глобальной конфигурации"
#: source/ubl-strings.h:3
msgid "Repository management and configuring"
msgstr "Настройка параметров и управление репозиториями системы"
#: source/ubl-strings.h:2
msgid "Lock global configration loading"
msgstr "Блокировка загрузки глобальной конфигурации"
#: source/ubl-strings.h:5
msgid "Would you like to read documentation in the Web?"
msgstr "Вы хотите прочитать справку в Сети?"
#: source/ubl-strings.h:4
#: source/ubl-strings.h:6
msgid ""
"Warning! Application was launched without root - root-dependent actions are "
"locked"
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
msgstr ""
"Внимание! Приложение было запущено без прав суперпользователя - действия, "
"требующие их наличия заблокированы"
#: source/ubl-strings.h:6
msgid "Repository manager"
msgstr "Менеджер репозиториев"
"Вы будете перенаправлены на сайт с документацией где страницы помощи\n"
"переводятся и поддерживаются сообществом."
#: source/ubl-strings.h:7
msgid "Repository management and configuring"
msgstr "Настройка параметров и управление репозиториями системы"
msgid "Always redirect to online documentation"
msgstr "Всегда перенаправлять"
#: source/ubl-strings.h:8
msgid "Operation succeeded"
msgstr "Операция завершена"
msgid "Open documentation"
msgstr "Прочитать справку"
#: source/ubl-strings.h:10
msgid "About"
msgstr "О программе"
#: source/ubl-strings.h:9
msgid "Project Home Page"
msgstr "Домашняя страница проекта"
#: source/ubl-strings.h:11
msgid "Documentation"
msgstr "Справка"
#: source/ubl-strings.h:10
msgid "Nothing were chosen"
msgstr "Ничего не выбрано"
#: source/ubl-strings.h:13
msgid "Save to local configuration"
msgstr "Сохранить в локальную конфигурацию"
#: source/ubl-strings.h:12
msgid "Information"
msgstr "Информация"
#: source/ubl-strings.h:14
msgid "Save to global configuration"
msgstr "Сохранить в глобальную конфигурацию"
msgid "Choose package(-s)"
msgstr "Выбрать пакеты"
#: source/ubl-strings.h:15
msgid "Save configuration"
msgstr "Сохранить конфигурацию"
msgid "Choose folder"
msgstr "Выбрать директорию для репозитория"
#: source/ubl-strings.h:16
msgid "Save"
msgstr "Сохранить"
msgid "Add packages"
msgstr "Добавить пакеты"
#: source/ubl-strings.h:17
msgid "Move packages"
msgstr "Переместить пакеты"
#: source/ubl-strings.h:18
msgid "Load local configuration"
msgstr "Загрузить локальную конфигуруцию"
msgid "Remove packages"
msgstr "Удалить пакеты"
#: source/ubl-strings.h:19
msgid "Load global configuration"
msgstr "Загрузить глобальную конфигурацию"
#: source/ubl-strings.h:20 source/ubl-strings.h:39
msgid "Key creation"
msgstr "Создание ключа"
#: source/ubl-strings.h:20
msgid "Load"
msgstr "Загрузить"
#: source/ubl-strings.h:21
msgid "Email:"
msgstr "Адрес электронной почты:"
#: source/ubl-strings.h:22
msgid "Cancel"
msgstr "Отмена"
msgid "Key additional configuration"
msgstr "Дополнительные параметры ключа"
#: source/ubl-strings.h:23
msgid "Commentary:"
msgstr "Комментарий:"
#: source/ubl-strings.h:24
msgid "Would you like to read documentation in the Web?"
msgstr "Вы хотите прочитать справку в Сети?"
msgid "Encryption type:"
msgstr "Тип шифрования:"
#: source/ubl-strings.h:25
msgid ""
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
msgstr ""
"Вы будете перенаправлены на сайт с документацией где страницы помощи\n"
"переводятся и поддерживаются сообществом."
msgid "key strength (in bits):"
msgstr "Стойкость ключа (в битах):"
#: source/ubl-strings.h:26
msgid "Always redirect to online documentation"
msgstr "Всегда перенаправлять"
msgid "Expires:"
msgstr "Срок действия:"
#: source/ubl-strings.h:27
msgid "Open documentation"
msgstr "Прочитать справку"
msgid "Password:"
msgstr "Пароль:"
#: source/ubl-strings.h:28
msgid "Project Home Page"
msgstr "Домашняя страница проекта"
msgid "Password confirmation:"
msgstr "Подтверждение пароля:"
#: source/ubl-strings.h:29
msgid "Nothing were chosen"
msgstr "Ничего не было выбрано"
msgid "Timeless"
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"
msgstr "Информация о пакетах успешно загружена"
#: source/ubl-strings.h:33
#, fuzzy
#: source/ubl-strings.h:43
msgid "Saving has succeeded"
msgstr "Успешно сохранено"
#: source/ubl-strings.h:35
#: source/ubl-strings.h:45
msgid "General"
msgstr "Общие"
#: source/ubl-strings.h:36
#: source/ubl-strings.h:46
msgid "Publication"
msgstr "Публикация"
#: source/ubl-strings.h:37
#: source/ubl-strings.h:47
msgid "Trusted repository"
msgstr "Доверенный репозиторий"
#: source/ubl-strings.h:38
#: source/ubl-strings.h:48
msgid "Server type:"
msgstr "Тип сервера:"
#: source/ubl-strings.h:39
#: source/ubl-strings.h:49
msgid "IP adress:"
msgstr "IP-адрес:"
#: source/ubl-strings.h:40
#: source/ubl-strings.h:50
msgid "Port:"
msgstr "Порт:"
#: source/ubl-strings.h:41
#: source/ubl-strings.h:51
msgid "Publish"
msgstr "Опубликовать"
#: source/ubl-strings.h:42
#: source/ubl-strings.h:52
msgid "Code name:"
msgstr "Кодовое имя:"
#: source/ubl-strings.h:43
#: source/ubl-strings.h:53
msgid "Branch:"
msgstr "Ветка:"
#: source/ubl-strings.h:44
#: source/ubl-strings.h:54
msgid "Architecture:"
msgstr "Архитектура:"
#: source/ubl-strings.h:45
#: source/ubl-strings.h:55
msgid "Components:"
msgstr "Компоненты"
#: source/ubl-strings.h:46
#: source/ubl-strings.h:56
msgid "Signature:"
msgstr "Подпись:"
#: source/ubl-strings.h:47
#: source/ubl-strings.h:57
msgid "Sign"
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"
msgstr "Открыть или создать репозиторий"
#: source/ubl-strings.h:50
#: source/ubl-strings.h:100
msgid "Open existing repository"
msgstr "Открыть и добавить репозиторий"
#: source/ubl-strings.h:51
#: source/ubl-strings.h:101
msgid "Configure repository"
msgstr "Редактировать репозиторий"
#: source/ubl-strings.h:52
#: source/ubl-strings.h:102
msgid "Delete repository"
msgstr "Удалить репозиторий"
#: source/ubl-strings.h:53
#: source/ubl-strings.h:103
msgid ""
"Add/Remove repository from\n"
"local package sources"
@ -238,106 +365,174 @@ msgstr ""
"Добавить/удалить репу из\n"
" локальных источников пакетов"
#: source/ubl-strings.h:54
#: source/ubl-strings.h:104
msgid "Enable/disable repository publish"
msgstr "Включить/отключить публикацию"
#: source/ubl-strings.h:55
#: source/ubl-strings.h:105
msgid "Check dependences"
msgstr "Проверить на битые зависимости"
#: source/ubl-strings.h:56
#: source/ubl-strings.h:106
msgid "Sign ripository"
msgstr "Подпись пакетов"
#: source/ubl-strings.h:57
msgid "Add package"
msgstr "Добавить пакет"
#: source/ubl-strings.h:58
msgid "Remove package"
msgstr "Удалить пакет"
#: source/ubl-strings.h:59
#: source/ubl-strings.h:107
msgid "Open"
msgstr "Открыть"
#: source/ubl-strings.h:61
#: source/ubl-strings.h:109
msgid "Operation done"
msgstr "Операция завершена"
#: source/ubl-strings.h:63
#: source/ubl-strings.h:111
msgid "Choose branch or pack in branch to add file!"
msgstr "Выберите ветку чтобы добавить пакет!"
#: source/ubl-strings.h:64
#: source/ubl-strings.h:112
msgid "Choose repository or branch!"
msgstr "Выберите репозиторий!"
#: source/ubl-strings.h:65
#: source/ubl-strings.h:113
msgid "Choose pack to delete!"
msgstr "Выберите пакет для удаления!"
#: source/ubl-strings.h:66
#: source/ubl-strings.h:114
msgid "Choose repository to delete!"
msgstr "Выберите репозиторий для удаления!"
#: source/ubl-strings.h:67
#: source/ubl-strings.h:115
msgid "Choose repository or package to sign"
msgstr "Выберите репозиторий или пакет для подписи"
#: source/ubl-strings.h:69
#: source/ubl-strings.h:117
msgid "Name:"
msgstr "Название:"
#: source/ubl-strings.h:70
#: source/ubl-strings.h:118
msgid "Branches:"
msgstr "Ветки:"
#: source/ubl-strings.h:71
#: source/ubl-strings.h:119
msgid "< Type branch name >"
msgstr "< Введите название ветки >"
#: source/ubl-strings.h:72
#: source/ubl-strings.h:120
msgid "Name must be filled!"
msgstr "Введите название!"
#: source/ubl-strings.h:73
#: source/ubl-strings.h:121
msgid "Choose path for new repository"
msgstr "Выбрать расположение нового репозитория"
#: source/ubl-strings.h:75
#: source/ubl-strings.h:123
msgid "Choose repository folder"
msgstr "Выбрать директорию для репозитория"
#: source/ubl-strings.h:76
#: source/ubl-strings.h:124
msgid "Choose repository"
msgstr "Выбрать репозиторий"
#: source/ubl-strings.h:78
#: source/ubl-strings.h:126
msgid "Absent"
msgstr "Отсутствует"
#: source/ubl-strings.h:79
#: source/ubl-strings.h:127
msgid "Dependences:"
msgstr "Зависит от:"
#: source/ubl-strings.h:80
#: source/ubl-strings.h:128
msgid "Digital signature"
msgstr "Цифровая подпись"
#: source/ubl-strings.h:82
#: source/ubl-strings.h:130
msgid "package"
msgstr "пакет"
#: source/ubl-strings.h:83
#: source/ubl-strings.h:131
msgid "repository"
msgstr "репозиторий"
#: source/ubl-strings.h:84
msgid "This package already exists in that repository"
msgstr "Этот пакет уже присутствует в выбранном репозитории"
#: source/ubl-strings.h:132
msgid "Repeating packages were not added"
msgstr "Дублирующиеся пакеты не были добавлены"
#: source/ubl-strings.h:84
#: source/ubl-strings.h:133
msgid "This repository has already been added"
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