Merge pull request 'unback' (#2) from unback into master

Reviewed-on: YanTheKaller/ubl-settings-repomanager#2
pull/4/head
commit 4663ee8949

6
.gitignore vendored

@ -1,7 +1,11 @@
.vscode/ .vscode/
*# *#
ubl-settings-TEMPLATE ubl-settings-repomanager
ubl-settings-repo-back/ubl-settings-repo-back
*~ *~
build/ build/
compile/ compile/
terminal-commands/ terminal-commands/
source/ubl-cmake.h
.BUILD.md
.updatebuild.sh

@ -8,23 +8,25 @@ MAKEFILE_PATH := $(dir $(MAKEFILE_FILEPATH))
CMAKE_COMMAND = cmake CMAKE_COMMAND = cmake
CMAKE_SOURCE_DIR = $(MAKEFILE_PATH)source CMAKE_SOURCE_DIR = $(MAKEFILE_PATH)source
CMAKE_BUILD_DIR = $(MAKEFILE_PATH)compile CMAKE_BUILD_DIR = $(MAKEFILE_PATH)compile
#CMAKE_SOURCE_DIR = ./source
#CMAKE_BUILD_DIR = ./compile
FILE_VERSION = VERSION.md
DEPENDS = /bin/cmake DEPENDS = /bin/cmake
PREFIX ?= /usr PREFIX ?= /usr/local
PKGNAME = $(MAKEFILE_DIR) PKGNAME = $(MAKEFILE_DIR)
#PKGNAME = ubl-settings-manager FILE_VER = source/${PKGNAME}.h
default_target: all default_target: all
.PHONY: all init depend debug prepare check build uninstall install clean up_ver help .PHONY: all init depend debug prepare check build uninstall install clean help
all: init build all: init build
init: init:
@echo "Initialize ..."; \ @echo "Initialize ..."; \
sed -r "s/(version_application = ).*/\1\"$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2)\";/" -i source/ubl-settings-repomanager.h; \ if [ -d ".git" ]; then \
LATEST_TAG=$$(git describe --abbrev=0 --tags | sed 's/^v//'); \
else \
LATEST_TAG="Development"; \
fi; \
sed -r "s/^(string version_application).*/\1=\"$${LATEST_TAG}\";/" -i ${FILE_VER}; \
echo "-- Build path: ${CMAKE_BUILD_DIR}" echo "-- Build path: ${CMAKE_BUILD_DIR}"
depend: depend:
@ -35,8 +37,8 @@ depend:
exit 1; \ exit 1; \
fi; \ fi; \
done; \ done; \
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B${CMAKE_BUILD_DIR} --check-build-system CMakeFiles/Makefile.cmake 1 || exit 1; \
echo "Check depends: OK" echo "Check depends: OK"
# $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
debug: debug:
@echo "Debug ..." @echo "Debug ..."
@ -63,7 +65,7 @@ check:
build: depend prepare build: depend prepare
@echo "Build ..."; \ @echo "Build ..."; \
make --directory=${CMAKE_BUILD_DIR}; \ $(MAKE_COMMAND) --directory=${CMAKE_BUILD_DIR}; \
echo "Build: OK" echo "Build: OK"
uninstall: uninstall:
@ -88,9 +90,13 @@ uninstall:
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg" @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.checked.svg" @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.checked.svg"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.warning.svg" @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.warning.svg"
@$(RM) -rd "${DESTDIR}${PREFIX}/share/${PKGNAME}/images/${PKGNAME}-banner.png" @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.document-green-symbolic.svg"
@$(RM) -rd "${DESTDIR}${PREFIX}/share/${PKGNAME}" @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.document-red-symbolic.svg"
@$(RM) "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}.policy" @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.document-symbolic.svg"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.folder-symbolic.svg"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.folder-green-symbolic.svg"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.folder-red-symbolic.svg"
@$(RM) "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}.policy"
@if [ -z ${DESTDIR} ]; then \ @if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \ [ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
update-desktop-database --quiet &>/dev/null || true; \ update-desktop-database --quiet &>/dev/null || true; \
@ -112,28 +118,29 @@ install: check uninstall
install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \ 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"; \ 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"; \
done done
@install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg" @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 -dm755 "${DESTDIR}${PREFIX}/share/polkit-1/actions" @install -dm755 "${DESTDIR}${PREFIX}/share/polkit-1/actions"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/polkit-1/actions/" "com.ublinux.${PKGNAME}.policy" @install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "com.ublinux.${PKGNAME}.policy"
@install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}" @install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
@install -dm755 "${DESTDIR}/etc/xdg"
@install -dm755 "${DESTDIR}${PREFIX}/share/applications"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop" @install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
@install -dm755 "${DESTDIR}${PREFIX}/share/${PKGNAME}"/{ui,css,images}
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/ui/" "${PKGNAME}.glade"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/ui/" "${PKGNAME}-windows.glade"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/css/" "${PKGNAME}.css"
@install -dm755 -d "${DESTDIR}${PREFIX}/share/${PKGNAME}/images"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/images/" "${PKGNAME}-banner.png"
@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}.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}.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}.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"
@if [ -z ${DESTDIR} ]; then \ @if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \ [ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
update-desktop-database --quiet &>/dev/null || true; \ update-desktop-database --quiet &>/dev/null || true; \
[ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \ [ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
fi fi
@echo "Install: OK" @echo "Install: OK"
@sed -r "s/^(string version_application=\"*\").*/string version_application;/" -i source/${PKGNAME}.h; \
clean: clean:
@echo "Clean ..." @echo "Clean ..."
@ -144,14 +151,6 @@ clean:
echo "Clean: OK"; \ echo "Clean: OK"; \
fi fi
up_ver:
@CURRENT=$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2); \
MAJOR=$$(cut -d. -f1 <<< $${CURRENT}); \
MINOR=$$(cut -d. -f2 <<< $${CURRENT}); \
VER="$${MAJOR}.$$(($${MINOR}+1))"; \
sed "s/VERSION *[[:digit:]]*.*/VERSION $${VER}/" -i ${FILE_VERSION}; \
echo "Updated version to VERSION.md: $${CURRENT} to $${VER}"
help: help:
@echo "The following are some of the valid targets for this Makefile:"; \ @echo "The following are some of the valid targets for this Makefile:"; \
echo "... all (the default if no target is provided)"; \ echo "... all (the default if no target is provided)"; \
@ -161,5 +160,4 @@ help:
echo "... compile"; \ echo "... compile"; \
echo "... install"; \ echo "... install"; \
echo "... uninstall"; \ echo "... uninstall"; \
echo "... clean"; \ echo "... clean"
echo "... up_ver"

@ -1,7 +1,7 @@
# ubl-settings-repomanager # ubl-settings-repomanager
# Выполнить # Выполнить
# Build # Build
In order to build ubl-settings-TEMPLATE you will need: In order to build ubl-settings-repomanager you will need:
- CMake - CMake
- C compiler - C compiler

@ -1 +0,0 @@
VERSION 1.0

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="16px"
viewBox="0 0 16 16"
width="16px"
version="1.1"
id="svg216"
sodipodi:docname="com.ublinux.ubl-settings-repomanager.document-symbolic-green.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="defs220" />
<sodipodi:namedview
id="namedview218"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="32"
inkscape:cx="5.453125"
inkscape:cy="11.359375"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1">
<path
id="path210"
style="fill:#2e3436"
d="M 2 0 C 1.449219 0 1 0.449219 1 1 L 1 15 C 1 15.550781 1.449219 16 2 16 L 6 16 L 9.328125 16 A 4.7300909 4.7300909 0 0 1 7.9550781 14 L 6 14 L 3 14 L 3 2 L 10.585938 2 L 13 4.4140625 L 13 7.7128906 A 4.7300909 4.7300909 0 0 1 15 8.4550781 L 15 4 C 15 3.734375 14.894531 3.4804688 14.707031 3.2929688 L 11.707031 0.29296875 C 11.519531 0.10546875 11.265625 0 11 0 L 2 0 z " />
<rect
style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd"
id="rect876"
width="7.7469039"
height="0.63823915"
x="4.0275102"
y="5.3000002" />
<path
id="rect876-3"
style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd"
d="M 4.0273438 7.8007812 L 4.0273438 8.4375 L 9.8203125 8.4375 A 4.7300909 4.7300909 0 0 1 11.308594 7.8007812 L 4.0273438 7.8007812 z " />
<path
id="rect876-3-6"
style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd"
d="M 4.0273438 10.300781 L 4.0273438 10.9375 L 7.9042969 10.9375 A 4.7300909 4.7300909 0 0 1 8.1660156 10.300781 L 4.0273438 10.300781 z " />
<path
id="path854"
class="success"
style="color:#00ff00;fill:#00ff00;stroke:none;stroke-width:0;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
d="M 15.998986,12.402457 A 3.6042156,3.6042156 0 0 1 12.39477,16.006673 3.6042156,3.6042156 0 0 1 8.7905531,12.402457 3.6042156,3.6042156 0 0 1 12.39477,8.7982404 3.6042156,3.6042156 0 0 1 15.998986,12.402457 Z" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2" />
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="16px"
viewBox="0 0 16 16"
width="16px"
version="1.1"
id="svg216"
sodipodi:docname="com.ublinux.ubl-settings-repomanager.document-symbolic-red.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="defs220" />
<sodipodi:namedview
id="namedview218"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="32"
inkscape:cx="5.453125"
inkscape:cy="11.359375"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1">
<path
id="path210"
style="fill:#2e3436"
d="M 2 0 C 1.449219 0 1 0.449219 1 1 L 1 15 C 1 15.550781 1.449219 16 2 16 L 6 16 L 9.328125 16 A 4.7300909 4.7300909 0 0 1 7.9550781 14 L 6 14 L 3 14 L 3 2 L 10.585938 2 L 13 4.4140625 L 13 7.7128906 A 4.7300909 4.7300909 0 0 1 15 8.4550781 L 15 4 C 15 3.734375 14.894531 3.4804688 14.707031 3.2929688 L 11.707031 0.29296875 C 11.519531 0.10546875 11.265625 0 11 0 L 2 0 z " />
<rect
style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd"
id="rect876"
width="7.7469039"
height="0.63823915"
x="4.0275102"
y="5.3000002" />
<path
id="rect876-3"
style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd"
d="M 4.0273438 7.8007812 L 4.0273438 8.4375 L 9.8203125 8.4375 A 4.7300909 4.7300909 0 0 1 11.308594 7.8007812 L 4.0273438 7.8007812 z " />
<path
id="rect876-3-6"
style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd"
d="M 4.0273438 10.300781 L 4.0273438 10.9375 L 7.9042969 10.9375 A 4.7300909 4.7300909 0 0 1 8.1660156 10.300781 L 4.0273438 10.300781 z " />
<path
id="path854"
class="error"
style="fill:#ff2a2a;stroke:none;stroke-width:0;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
d="M 15.998986,12.402457 A 3.6042156,3.6042156 0 0 1 12.39477,16.006673 3.6042156,3.6042156 0 0 1 8.7905531,12.402457 3.6042156,3.6042156 0 0 1 12.39477,8.7982404 3.6042156,3.6042156 0 0 1 15.998986,12.402457 Z" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2" />
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="16px"
viewBox="0 0 16 16"
width="16px"
version="1.1"
id="svg216"
sodipodi:docname="com.ublinux.ubl-settings-repomanager.document.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="defs220" />
<sodipodi:namedview
id="namedview218"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="45.254834"
inkscape:cx="9.2807765"
inkscape:cy="7.3583299"
inkscape:window-width="1920"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g214" />
<g
fill="#2e3436"
id="g214">
<path
d="M 1,1 C 1,0.449219 1.449219,0 2,0 h 9 c 0.265625,0 0.519531,0.105469 0.707031,0.292969 l 3,3 C 14.894531,3.480469 15,3.734375 15,4 v 11 c 0,0.550781 -0.449219,1 -1,1 h -4 v -2 h 3 V 4.414062 L 10.585938,2 H 3 v 12 h 3 v 2 H 2 C 1.449219,16 1,15.550781 1,15 Z m 5,13 h 4 v 2 H 6 Z"
fill-rule="evenodd"
id="path210"
sodipodi:nodetypes="sssssssscccccccccsssccccc" />
<rect
style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd"
id="rect876"
width="7.7469039"
height="0.63823915"
x="4.0275102"
y="5.3000002" />
<rect
style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd"
id="rect876-3"
width="7.7469039"
height="0.63823915"
x="4.0279999"
y="7.8000002" />
<rect
style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd"
id="rect876-3-6"
width="7.7469039"
height="0.63823915"
x="4.0279999"
y="10.3"
ry="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M1 1a1 1 0 00-1 1v11s-.014.459.23.947C.476 14.436 1.168 15 2 15h12s.459.014.947-.23C15.436 14.525 16 13.833 16 13V6H3v7H2V6s0-1 1-1h11v-.832A1 1 0 0013 3H8.414L6.707 1.293A1 1 0 006 1z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="#2e3436" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 834 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M1 1a1 1 0 00-1 1v11s-.014.459.23.947C.476 14.436 1.168 15 2 15h12s.459.014.947-.23C15.436 14.525 16 13.833 16 13V6H3v7H2V6s0-1 1-1h11v-.832A1 1 0 0013 3H8.414L6.707 1.293A1 1 0 006 1z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="#2e3436" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 834 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M1 1a1 1 0 00-1 1v11s-.014.459.23.947C.476 14.436 1.168 15 2 15h12s.459.014.947-.23C15.436 14.525 16 13.833 16 13V6H3v7H2V6s0-1 1-1h11v-.832A1 1 0 0013 3H8.414L6.707 1.293A1 1 0 006 1z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="#2e3436" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 834 B

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/com/ublinux/ui">
<file>ubl-settings-repomanager.glade</file>
<file>ubl-settings-repomanager-windows.glade</file>
</gresource>
<gresource prefix="/com/ublinux/css">
<file>ubl-settings-repomanager.css</file>
</gresource>
<gresource prefix="/com/ublinux/images">
<file>ubl-settings-repomanager-banner.png</file>
</gresource>
</gresources>

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

@ -8,6 +8,11 @@ include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS}) link_directories(${GTK_LIBRARY_DIRS})
add_definitions(${GTK_CFLAGS_OTHER}) add_definitions(${GTK_CFLAGS_OTHER})
#pkg_check_modules(VTE291 REQUIRED vte-2.91)
#include_directories(${VTE291_INCLUDE_DIRS})
#link_directories(${VTE291_LIBRARY_DIRS})
#add_definitions(${VTE291_CFLAGS_OTHER})
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0) find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
option(WEBKIT_FOUND "No" OFF) option(WEBKIT_FOUND "No" OFF)
@ -21,13 +26,49 @@ endif()
configure_file(ubl-cmake.in ubl-cmake.h) configure_file(ubl-cmake.in ubl-cmake.h)
file(COPY ${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h DESTINATION ./)
set(GRESOURCE_C resources.c)
set(GRESOURCE_XML gresource.xml)
find_program(GLIB_COMPILE_RESOURCES NAMES glib-compile-resources REQUIRED)
add_custom_target(GLADE ubl-settings-repomanager.glade)
set(DEPENDFILES
../ubl-settings-repomanager.glade
../ubl-settings-repomanager-windows.glade
../gresource.xml
../ubl-settings-repomanager-banner.png
../ubl-settings-repomanager.css
)
file(COPY ${DEPENDFILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
add_custom_command(
OUTPUT ${GRESOURCE_C}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${GLIB_COMPILE_RESOURCES}
ARGS
--generate-source
--target=${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
${GRESOURCE_XML}
VERBATIM
MAIN_DEPENDENCY ${GRESOURCE_XML}
DEPENDS
${GLADE}
)
add_custom_target(
dummy-resource
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
)
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -lm") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -lm")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
-O2 -pipe -fno-plt -fexceptions \ -O2 -pipe -fno-plt -fexceptions \
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \ -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection -g") -fstack-clash-protection -fcf-protection")
set(SOURCE_FILES set(SOURCE_FILES
ubl-settings-repomanager.c ubl-settings-repomanager.c
@ -35,15 +76,22 @@ set(SOURCE_FILES
ubl-strings.h ubl-strings.h
ubl-utils.h ubl-utils.h
ubl-utils.c ubl-utils.c
ubl-cmake.h) ${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h
)
set(LIBRARIES set(LIBRARIES
${GTK_LIBRARIES} ${GTK_LIBRARIES}
${WEBKIT_LIBRARIES} ${WEBKIT_LIBRARIES}
# ${VTE291_LIBRARIES}
pthread) pthread)
add_executable(${PROJECT_NAME} ${SOURCE_FILES}) add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C})
target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES}) target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES})
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR}) target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR})
install(TARGETS ubl-settings-repomanager DESTINATION bin) set_source_files_properties(
${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
PROPERTIES GENERATED TRUE
)
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
add_dependencies(${PROJECT_NAME} dummy-resource)

@ -1 +0,0 @@
/home/superadmin/Документы/ubl-settings-repomanager/compile/ubl-cmake.h

@ -30,7 +30,7 @@ void yon_open_browser(GtkWidget *self, char *link){
*/ */
void on_open_documentation_confirmation(GtkWidget *self, char *link){ void on_open_documentation_confirmation(GtkWidget *self, char *link){
if (main_config.always_open_documentation==0){ if (main_config.always_open_documentation==0){
GtkBuilder *builder = gtk_builder_new_from_file(glade_path); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
documentation_confirmation_window *widgets = malloc(sizeof(documentation_confirmation_window)); documentation_confirmation_window *widgets = malloc(sizeof(documentation_confirmation_window));
widgets->Window = yon_gtk_builder_get_widget(builder,"helpConfirmationWindow"); widgets->Window = yon_gtk_builder_get_widget(builder,"helpConfirmationWindow");
widgets->AcceptButton = yon_gtk_builder_get_widget(builder,"ReadHelpButton"); widgets->AcceptButton = yon_gtk_builder_get_widget(builder,"ReadHelpButton");
@ -84,7 +84,7 @@ void on_link(GtkWidget *self, char* uri, gpointer user_data){
* Присоединять к сигналу "activate" кнопки справки типа MenuItem. * Присоединять к сигналу "activate" кнопки справки типа MenuItem.
*/ */
void on_about(){ void on_about(){
GtkBuilder *builder=gtk_builder_new_from_file(glade_path); GtkBuilder *builder=gtk_builder_new_from_resource(glade_path);
GtkWidget *window=yon_gtk_builder_get_widget(builder,"AboutWindow"); GtkWidget *window=yon_gtk_builder_get_widget(builder,"AboutWindow");
GtkWidget *title=yon_gtk_builder_get_widget(builder,"headerAboutTopic"); GtkWidget *title=yon_gtk_builder_get_widget(builder,"headerAboutTopic");
GtkWidget *hideButtonBox=yon_gtk_builder_get_widget(builder,"buttonBoxHide"); GtkWidget *hideButtonBox=yon_gtk_builder_get_widget(builder,"buttonBoxHide");
@ -98,44 +98,101 @@ void on_about(){
gtk_widget_show(window); gtk_widget_show(window);
} }
void on_save(){
char *command = "repo-manager";
char *remove_command=NULL;
char *add_command=NULL;
char *remove_flagged = NULL;
char *add_flagged = NULL;
char *origin_flagged = NULL;
char *name_flagged = NULL;
GtkTreeIter iter, childIter;
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.tree_store),&iter);
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.tree_store),&iter)){
remove_flagged = NULL;
add_flagged = NULL;
int repostatus=0;
gboolean renamed=0;
char *old_name=NULL;
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&iter,1,&name_flagged,3,&origin_flagged,4,&repostatus,6,&old_name,7,&renamed,-1);
// if (!strstr(name_flagged,".db.tar.gz")) name_flagged = yon_char_append(name_flagged,".db.tar.gz");
remove_command = yon_char_unite(command," remove -d ", origin_flagged, " -r ", name_flagged, NULL);
add_command = yon_char_unite(command," add -d ", origin_flagged, " -r ", name_flagged, NULL);
int valid_child=gtk_tree_model_iter_children(GTK_TREE_MODEL(main_config.tree_store),&childIter,&iter);
for (;valid_child;valid_child=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.tree_store),&childIter)){
int status = 0,deleted = 0;
char *path=NULL;
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&childIter,3,&path,4,&status,5,&deleted,-1);
gtk_tree_store_set(main_config.tree_store,&childIter,4,0,5,0,-1);
if (status==-1) { remove_flagged = yon_char_unite(remove_flagged ? yon_char_append(remove_flagged,",") : " -p ",path,NULL); /*gtk_tree_store_remove(main_config.tree_store,&childIter);*/}
else if (status == 1&&deleted==0) { add_flagged = yon_char_unite(add_flagged ? yon_char_append(add_flagged,",") : " -p ",path,NULL);gtk_tree_store_set(main_config.tree_store,&childIter,0,"com.ublinux.ubl-settings-repomanager.document-symbolic",-1); }
}
if (origin_flagged)
remove_command = remove_flagged ? yon_char_unite(remove_command,remove_flagged,NULL) : NULL;
add_command = add_flagged ? yon_char_unite(add_command, add_flagged,NULL) : add_command;
printf("%s\n%s\n",remove_command,add_command);
if (remove_command) system(remove_command);
if (add_command) system(add_command);
}
}
void on_search(GtkCellEditable *self, main_window *widgets){
GtkTreeIter iter, childIter;
char *name=NULL;
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.tree_store),&iter);
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.tree_store),&iter)){
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&iter,1,&name,-1);
if (strstr(name,gtk_entry_get_text(GTK_ENTRY(widgets->Finder)))) {
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&iter);
return;
}
gtk_tree_view_expand_row(GTK_TREE_VIEW(widgets->RepoTree),gtk_tree_model_get_path(GTK_TREE_MODEL(main_config.tree_store),&iter),1);
int child_valid = gtk_tree_model_iter_children(GTK_TREE_MODEL(main_config.tree_store),&childIter,&iter);
for (;child_valid;child_valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.tree_store),&childIter)){
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&childIter,1,&name,-1);
if (strstr(name,gtk_entry_get_text(GTK_ENTRY(widgets->Finder)))) {
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&childIter);
return;
}
}
gtk_tree_view_expand_row(GTK_TREE_VIEW(widgets->RepoTree),gtk_tree_model_get_path(GTK_TREE_MODEL(main_config.tree_store),&iter),0);
}
}
void on_tree_selection_changed(GtkWidget *self,main_window *widgets){ void on_tree_selection_changed(GtkWidget *self,main_window *widgets){
GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store); GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store);
GtkTreeIter *iter=NULL; GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){
char *codeName,*branch,*version,*architecture,*components,*signature,*ipAdress,*port; char *codeName=NULL,*version=NULL,*architecture=NULL;
int serverType=0,trusted=0,published=0; int serverType=0,trusted=0,published=0;
gtk_tree_model_get(model,iter,3,&codeName,4,&branch,5,&version,6,&architecture,7,&components,8,&signature,9,&trusted,10,&serverType,11,&ipAdress,12,&port,13,published,-1); gtk_tree_model_get(model,&iter,11,&codeName,12,&version,13,&architecture,-1);
// gtk_label_set_text(GTK_LABEL(widgets->srgbe),) gtk_label_set_text(GTK_LABEL(widgets->CodeNameInfoLabel),codeName ? codeName : "");
gtk_label_set_text(GTK_LABEL(widgets->VersionInfoLabel),version ? version : "");
gtk_label_set_text(GTK_LABEL(widgets->ArchitectureInfoLabel),architecture ? architecture : "");
} }
} }
int yon_add_branches(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, void *dct){ int yon_char_find_last(char *source, char find){
printf("%d\n",1); int size = strlen(source);
dictionary *dict=(dictionary*)dct; int i=size;
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); for (;source[i]!=find&&i>0;i--);
repo_create_window *window = yon_dictionary_get_data(dict->first->next,repo_create_window*); return i;
char *name=NULL;
gtk_tree_model_get(model,iter,0,&name,-1);
if(name){
printf("%s\n",name);
GtkTreeIter ITER,iters;
if(gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&ITER)){
gtk_tree_store_append(main_config.tree_store,&iters,&ITER);
gtk_tree_store_set(main_config.tree_store,&iters,1,name,-1);
}
}
return 0;
} }
void on_repo_add_new(GtkWidget *self, dictionary *dict){ void on_repo_add_new(GtkWidget *self, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
repo_create_window *window = yon_dictionary_get_data(dict->first->next,repo_create_window*); repo_create_window *window = yon_dictionary_get_data(dict->first->next,repo_create_window*);
char *name = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry))); if (!window->path){ yon_ubl_status_box_render(CHOOSE_PATH_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); return;}
char *name=NULL;
name = window->path;
window->path = yon_char_divide(name,yon_char_find_last(window->path, '/'));
if (!name||strcmp(name,"")!=0){ if (!name||strcmp(name,"")!=0){
on_close_subwindow(self);
GtkTreeIter *iter = yon_repo_append(widgets, name, YON_REPO_LINE_REPO_TYPE); GtkTreeIter *iter = yon_repo_append(widgets, name, YON_REPO_LINE_REPO_TYPE);
gtk_tree_store_set(main_config.tree_store,iter,2,window->BranchesListStore,-1); gtk_tree_store_set(main_config.tree_store,iter,0,"com.ublinux.ubl-settings-repomanager.folder-green-symbolic",2,window->BranchesListStore,3,window->path,-1);
gtk_tree_model_foreach(GTK_TREE_MODEL(window->BranchesListStore),yon_add_branches,dict);
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} else { } else {
yon_ubl_status_box_render(EMPTY_NAME_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_render(EMPTY_NAME_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
@ -156,28 +213,27 @@ void on_branch_add(GtkCellRendererText *self, char*path,char *new_text, repo_cre
} }
} }
char *on_choose_repo_folder(GtkWidget *self,repo_create_window *window){
GtkFileFilter *file_filter = gtk_file_filter_new();
gtk_file_filter_add_pattern(file_filter,"*db.tar.gz");
GtkWidget *chooser = gtk_file_chooser_dialog_new(ADD_PACKAGE_REPO_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser),file_filter);
int res = gtk_dialog_run(GTK_DIALOG(chooser));
if (res==GTK_RESPONSE_ACCEPT){
char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));
window->path=yon_char_new(filename);
}
on_close_subwindow(chooser);
}
void on_repo_new (GtkWidget *self, main_window *widgets){ void on_repo_new (GtkWidget *self, main_window *widgets){
GtkBuilder *builder = gtk_builder_new_from_file(glade_repo_path);
repo_create_window *window = new(repo_create_window); repo_create_window *window = new(repo_create_window);
window->Window=yon_gtk_builder_get_widget(builder,"repoCreateWindow"); window->path=NULL;
window->NameEntry=yon_gtk_builder_get_widget(builder,"repoNameEntry"); on_choose_repo_folder(self,window);
window->CancelButton=yon_gtk_builder_get_widget(builder,"repoCancelButton"); dictionary *dict = yon_dictionary_new_with_data("",widgets);
window->SaveButton=yon_gtk_builder_get_widget(builder,"repoSaveButton"); dict = yon_dictionary_append_with_data(dict,"",window);
window->BranchesTree=yon_gtk_builder_get_widget(builder,"curRepoEditTree"); on_repo_add_new(self,dict);
window->BranchCell=GTK_CELL_RENDERER(gtk_builder_get_object(builder,"branchTextCell"));
window->BranchesListStore=GTK_LIST_STORE(gtk_builder_get_object(builder,"curRepoEditList"));
gtk_widget_show(window->Window);
GtkTreeIter iter;
gtk_list_store_append(window->BranchesListStore,&iter);
dictionary *dict = yon_dictionary_create_with_data("",widgets);
dict = yon_dictionary_create_with_data_connected(dict,"",window);
GValue *val = g_malloc0(sizeof(GValue));
g_object_get_property(G_OBJECT(window->BranchCell),"placeholder-text",val);
g_value_set_string(val,TYPE_BRANCH_NAME_LABEL);
g_object_set_property(G_OBJECT(window->BranchCell),"placeholder-text",val);
g_signal_connect(G_OBJECT(window->BranchCell),"edited",G_CALLBACK(on_branch_add),window);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_repo_add_new),dict);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
} }
void on_repo_add_file(GtkWidget *self, main_window *widgets){ void on_repo_add_file(GtkWidget *self, main_window *widgets){
@ -196,7 +252,7 @@ void on_repo_configure(GtkWidget *self, main_window *widgets){
GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store); GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store);
GtkTreeIter iter; GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){
GtkBuilder *builder = gtk_builder_new_from_file(glade_repo_path); GtkBuilder *builder = gtk_builder_new_from_resource(glade_repo_path);
repo_create_window *window = new(repo_create_window); repo_create_window *window = new(repo_create_window);
window->Window=yon_gtk_builder_get_widget(builder,"repoEditWindow"); window->Window=yon_gtk_builder_get_widget(builder,"repoEditWindow");
window->NameEntry=yon_gtk_builder_get_widget(builder,"repoEditNameEntry"); window->NameEntry=yon_gtk_builder_get_widget(builder,"repoEditNameEntry");
@ -205,31 +261,39 @@ void on_repo_configure(GtkWidget *self, main_window *widgets){
window->BranchesTree=yon_gtk_builder_get_widget(builder,"repoEditBranchTree"); window->BranchesTree=yon_gtk_builder_get_widget(builder,"repoEditBranchTree");
window->BranchesListStore=GTK_LIST_STORE(gtk_builder_get_object(builder,"curRepoEditList")); window->BranchesListStore=GTK_LIST_STORE(gtk_builder_get_object(builder,"curRepoEditList"));
gtk_widget_show(window->Window); gtk_widget_show(window->Window);
dictionary *dict = yon_dictionary_create_with_data("",widgets); dictionary *dict = yon_dictionary_new_with_data("",widgets);
dict = yon_dictionary_create_with_data_connected(dict,"",window); dict = yon_dictionary_append_with_data(dict,"",window);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_repo_configure_done),dict); g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_repo_configure_done),dict);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
gtk_list_store_clear(window->BranchesListStore); gtk_list_store_clear(window->BranchesListStore);
// GtkListStore *branches;
// gtk_tree_model_get(model,&iter,2,branches,-1);
// gtk_tree_view_set_model(GTK_TREE_VIEW(window->BranchesTree),GTK_TREE_MODEL(branches));
} else yon_ubl_status_box_render(NOTHING_CHOSEN_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); } else yon_ubl_status_box_render(NOTHING_CHOSEN_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
} }
void on_repo_configure_done(GtkWidget *self, dictionary *dict){ void on_repo_configure_done(GtkWidget *self, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
repo_create_window *window = yon_dictionary_get_data(dict->first->next,repo_create_window*); repo_create_window *window = yon_dictionary_get_data(dict->first->next,repo_create_window*);
GtkTreeIter iter; GtkTreeIter iter, parentIter;
GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store); GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){
if (gtk_tree_model_iter_parent(GTK_TREE_MODEL(main_config.tree_store),&parentIter,&iter))
iter=parentIter;
char *oldname=NULL;
int status=0;
char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry)); char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry));
gtk_tree_model_get(model,&iter,1,&oldname,4,&status,-1);
if (status==0)
gtk_tree_store_set(main_config.tree_store,&iter,1,name,6,oldname,7,1,-1);
else if (status==1)
gtk_tree_store_set(main_config.tree_store,&iter,1,name,-1); gtk_tree_store_set(main_config.tree_store,&iter,1,name,-1);
} }
on_close_subwindow(self); on_close_subwindow(self);
} }
void on_repo_load_local(GtkWidget *self, main_window *widgets){ void on_repo_load_local(GtkWidget *self, main_window *widgets){
GtkFileFilter *file_filter = gtk_file_filter_new();
gtk_file_filter_add_pattern(file_filter,"*db.tar.gz");
GtkWidget *chooser = gtk_file_chooser_dialog_new(ADD_PACKAGE_REPO_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_OPEN,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL); GtkWidget *chooser = gtk_file_chooser_dialog_new(ADD_PACKAGE_REPO_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_OPEN,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser),file_filter);
int res = gtk_dialog_run(GTK_DIALOG(chooser)); int res = gtk_dialog_run(GTK_DIALOG(chooser));
if (res==GTK_RESPONSE_ACCEPT){ if (res==GTK_RESPONSE_ACCEPT){
@ -248,60 +312,42 @@ GtkTreeIter *yon_repo_append(main_window *widgets, char *name, YON_REPO_LINE_TYP
GtkTreeIter iter,parentIter; GtkTreeIter iter,parentIter;
GdkPixbuf *icon = NULL; GdkPixbuf *icon = NULL;
GtkIconTheme *theme = gtk_icon_theme_get_default(); GtkIconTheme *theme = gtk_icon_theme_get_default();
char *name_short = yon_char_new(name);
gboolean fls = 0;
while(1){
yon_char_divide_search(name_short,"/",-1);
if (!strstr(name_short,"/")) break;
}
GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store); GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&parentIter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&parentIter)){
if (type==YON_REPO_LINE_REPO_TYPE){ if (type==YON_REPO_LINE_REPO_TYPE){
icon = gtk_icon_theme_load_icon_for_scale(theme,"folder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL); icon = gtk_icon_theme_load_icon_for_scale(theme,"com.ublinux.ubl-settings-repomanager.folder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL);
gtk_tree_store_append(main_config.tree_store,&iter,NULL); gtk_tree_store_append(main_config.tree_store,&iter,NULL);
gtk_tree_store_set(main_config.tree_store,&iter,0, icon, 1, name,-1); gtk_tree_store_set(main_config.tree_store,&iter,0, "com.ublinux.ubl-settings-repomanager.folder-symbolic", 1, name_short,3,name,4,1,5,fls,-1);
retIter = gtk_tree_iter_copy(&iter); retIter = gtk_tree_iter_copy(&iter);
} }
else if (type==YON_REPO_LINE_BRANCH_TYPE){ else if (type==YON_REPO_LINE_FILE_TYPE){
icon = NULL;
if (gtk_tree_model_iter_parent(model,&iter,&parentIter)){
GtkTreeIter branch; GtkTreeIter branch;
if (!gtk_tree_model_iter_parent(model,&branch,&iter)){ icon = gtk_icon_theme_load_icon_for_scale(theme,"com.ublinux.ubl-settings-repomanager.follder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL);
gtk_tree_store_append(main_config.tree_store,&iter,&parentIter); if (gtk_tree_model_iter_parent(model,&branch,&parentIter)){
gtk_tree_store_set(main_config.tree_store,&iter,0, icon, 1, name,-1); GtkTreeIter repo;
retIter = gtk_tree_iter_copy(&iter);
} else {
gtk_tree_store_append(main_config.tree_store,&iter,&branch); gtk_tree_store_append(main_config.tree_store,&iter,&branch);
gtk_tree_store_set(main_config.tree_store,&iter,0, icon, 1, name,-1); gtk_tree_store_set(main_config.tree_store,&iter,0, "com.ublinux.ubl-settings-repomanager.document-symbolic", 1, name_short,3,name,4,1,5,fls,-1);
retIter = gtk_tree_iter_copy(&iter);
}
} else {
gtk_tree_store_append(main_config.tree_store,&iter,&parentIter);
gtk_tree_store_set(main_config.tree_store,&iter,0, icon, 1, name,-1);
retIter = gtk_tree_iter_copy(&iter); retIter = gtk_tree_iter_copy(&iter);
}
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
}
else if (type==YON_REPO_LINE_FILE_TYPE){
icon = gtk_icon_theme_load_icon_for_scale(theme,"network-server-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL);
if (gtk_tree_model_iter_parent(model,&iter,&parentIter)){
GtkTreeIter branch;
if (gtk_tree_model_iter_parent(model,&branch,&iter)){
GtkTreeIter repo;
if (!gtk_tree_model_iter_parent(model,&repo,&branch)){
gtk_tree_store_append(main_config.tree_store,&branch,&iter);
gtk_tree_store_set(main_config.tree_store,&branch,0, icon, 1, name,-1);
retIter = gtk_tree_iter_copy(&branch);
}
} else { } else {
gtk_tree_store_append(main_config.tree_store,&iter,&parentIter); gtk_tree_store_append(main_config.tree_store,&iter,&parentIter);
gtk_tree_store_set(main_config.tree_store,&iter,0, icon, 1, name,-1); gtk_tree_store_set(main_config.tree_store,&iter,0, "com.ublinux.ubl-settings-repomanager.document-symbolic", 1, name_short,3,name,4,1,5,fls,-1);
retIter = gtk_tree_iter_copy(&iter); retIter = gtk_tree_iter_copy(&iter);
} }
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} else yon_ubl_status_box_render(CHOOSE_BRANCH_PACK_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
} }
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&iter); gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&iter);
} }
else if (type==YON_REPO_LINE_REPO_TYPE){ else if (type==YON_REPO_LINE_REPO_TYPE){
icon = gtk_icon_theme_load_icon_for_scale(theme,"folder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL); icon = gtk_icon_theme_load_icon_for_scale(theme,"com.ublinux.ubl-settings-repomanager.folder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL);
gtk_tree_store_append(main_config.tree_store,&iter,NULL); gtk_tree_store_append(main_config.tree_store,&iter,NULL);
gtk_tree_store_set(main_config.tree_store,&iter,0, icon, 1, name,-1); gtk_tree_store_set(main_config.tree_store,&iter,0, "com.ublinux.ubl-settings-repomanager.folder-symbolic", 1, name_short,3,name,4,1,5,fls,-1);
retIter = gtk_tree_iter_copy(&iter); retIter = gtk_tree_iter_copy(&iter);
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&iter); gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&iter);
} else { } else {
@ -316,53 +362,52 @@ void yon_repo_remove_package(main_window *widgets){
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){
GtkTreeIter iterparent; GtkTreeIter iterparent;
if (gtk_tree_model_iter_parent(model,&iterparent,&iter)){ if (gtk_tree_model_iter_parent(model,&iterparent,&iter)){
GtkTreeIter parentparent; // gtk_tree_store_remove(main_config.tree_store,&iter);
if (gtk_tree_model_iter_parent(model,&parentparent,&iterparent)){ int status = 0;
gtk_tree_store_remove(main_config.tree_store,&iter); gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&iter,4,&status,-1);
if (status != 1){
gtk_tree_store_set(main_config.tree_store,&iter,4,-1,-1);
gtk_tree_store_set(main_config.tree_store,&iter,0,"com.ublinux.ubl-settings-repomanager.document-red-symbolic",-1);
} else gtk_tree_store_remove(main_config.tree_store,&iter);
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
}else yon_ubl_status_box_render(CHOOSE_PACK_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); }else yon_ubl_status_box_render(CHOOSE_PACK_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
} }
} }
}
void yon_repo_remove(main_window *widgets){ void yon_repo_remove(main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store); GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){
if(gtk_tree_store_iter_depth(main_config.tree_store,&iter)==0){ if(gtk_tree_store_iter_depth(main_config.tree_store,&iter)==0){
gtk_tree_store_remove(main_config.tree_store,&iter); gtk_tree_store_set(main_config.tree_store,&iter,4,-1,0,"com.ublinux.ubl-settings-repomanager.folder-red-symbolic",-1);
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
}else yon_ubl_status_box_render(CHOOSE_REPO_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); }else yon_ubl_status_box_render(CHOOSE_REPO_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
} else yon_ubl_status_box_render(NOTHING_CHOSEN_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); } else yon_ubl_status_box_render(NOTHING_CHOSEN_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
} }
void yon_repo_configure(main_window *widgets){
GtkBuilder *builder = gtk_builder_new_from_file(glade_repo_path);
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){
GtkTreeIter iterparent;
if (gtk_tree_model_iter_parent(model,&iterparent,&iter)){
GtkTreeIter parentparent;
if (gtk_tree_model_iter_parent(model,&parentparent,&iterparent)){
gtk_tree_store_remove(main_config.tree_store,&iter);
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} else yon_ubl_status_box_render(CHOOSE_PACK_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
}
}
}
void yon_add_file(main_window *widgets){ void yon_add_file(main_window *widgets){
GtkFileFilter *file_filter = gtk_file_filter_new();
gtk_file_filter_add_pattern(file_filter,"*.pkg.tar.zst");
gtk_file_filter_set_name(file_filter,"*.pkg.tar.zst");
GtkWidget *chooser = gtk_file_chooser_dialog_new(ADD_PACKAGE_REPO_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_OPEN,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL); GtkWidget *chooser = gtk_file_chooser_dialog_new(ADD_PACKAGE_REPO_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_OPEN,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser),file_filter);
int res = gtk_dialog_run(GTK_DIALOG(chooser)); int res = gtk_dialog_run(GTK_DIALOG(chooser));
if (res==GTK_RESPONSE_ACCEPT){ if (res==GTK_RESPONSE_ACCEPT){
char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));
while (1){ FILE *file = popen(yon_char_unite("LC_ALL=EN pacman -Q --info --file ",filename," |grep -E \"Name|Version|Architecture\" |sed -e 's/ *//g'",NULL),"r");
char *ret = yon_char_divide_search(filename,"/",-1); char *cur_string=g_malloc0(sizeof(char)*4096);
if (strcmp(ret,filename)==0) break; char *packname=NULL, *packver=NULL, *packarch=NULL;
while (fgets(cur_string,4096,file)){
cur_string = yon_char_divide_search(cur_string,"\n",-1);
char *p = yon_char_divide_search(cur_string,":",-1);
if (strstr(p,"Name")) packname = yon_char_new(cur_string);
else if (strstr(p,"Version")) packver = yon_char_new(cur_string);
else if (strstr(p,"Architecture")) packarch = yon_char_new(cur_string);
} }
yon_repo_append(widgets,filename,YON_REPO_LINE_FILE_TYPE); GtkTreeIter *iter = yon_repo_append(widgets,filename,YON_REPO_LINE_FILE_TYPE);
gtk_tree_store_set(main_config.tree_store,iter,0,"com.ublinux.ubl-settings-repomanager.document-green-symbolic",11,packname,12,packver,13,packarch,-1);
} }
on_close_subwindow(chooser); on_close_subwindow(chooser);
@ -391,7 +436,7 @@ void config_init(){
main_window *setup_window(){ main_window *setup_window(){
/* Widgets getting | Получение виджетов */ /* Widgets getting | Получение виджетов */
main_window *widgets = malloc(sizeof(main_window)); main_window *widgets = malloc(sizeof(main_window));
GtkBuilder *builder = gtk_builder_new_from_file(glade_path); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
widgets->Window = yon_gtk_builder_get_widget(builder,"MainWindow"); widgets->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
widgets->HatLabel = yon_gtk_builder_get_widget(builder,"headerTopic"); widgets->HatLabel = yon_gtk_builder_get_widget(builder,"headerTopic");
widgets->PlugBox = yon_gtk_builder_get_widget(builder,"plugBox"); widgets->PlugBox = yon_gtk_builder_get_widget(builder,"plugBox");
@ -417,8 +462,8 @@ main_window *setup_window(){
widgets->LoadLocalMenuItem = yon_gtk_builder_get_widget(builder,"LoadLocalConfigurationMenuItem"); widgets->LoadLocalMenuItem = yon_gtk_builder_get_widget(builder,"LoadLocalConfigurationMenuItem");
widgets->LeftBox = yon_gtk_builder_get_widget(builder,"HeaderLeftBox"); widgets->LeftBox = yon_gtk_builder_get_widget(builder,"HeaderLeftBox");
widgets->DocumentationMenuItem = yon_gtk_builder_get_widget(builder,"DocumentationMenuItem"); // widgets->DocumentationMenuItem = yon_gtk_builder_get_widget(builder,"DocumentationMenuItem");
widgets->AboutMenuItem = yon_gtk_builder_get_widget(builder,"AboutMenuItem"); // widgets->AboutMenuItem = yon_gtk_builder_get_widget(builder,"AboutMenuItem");
widgets->GeneralTabLabel = yon_gtk_builder_get_widget(builder,"GeneralTabLabel"); widgets->GeneralTabLabel = yon_gtk_builder_get_widget(builder,"GeneralTabLabel");
widgets->PublicationTabLabel = yon_gtk_builder_get_widget(builder,"PublicationTabLabel"); widgets->PublicationTabLabel = yon_gtk_builder_get_widget(builder,"PublicationTabLabel");
@ -455,9 +500,19 @@ main_window *setup_window(){
widgets->ComponentsInfoLabel = yon_gtk_builder_get_widget(builder,"ComponentsInfoLabel"); widgets->ComponentsInfoLabel = yon_gtk_builder_get_widget(builder,"ComponentsInfoLabel");
widgets->SignatureLabel = yon_gtk_builder_get_widget(builder,"SignatureLabel"); widgets->SignatureLabel = yon_gtk_builder_get_widget(builder,"SignatureLabel");
widgets->SignatureInfoLabel = yon_gtk_builder_get_widget(builder,"SignatureInfoLabel"); widgets->SignatureInfoLabel = yon_gtk_builder_get_widget(builder,"SignatureInfoLabel");
widgets->Finder = yon_gtk_builder_get_widget(builder,"SignatureInfoLabel"); widgets->Finder = yon_gtk_builder_get_widget(builder,"RepoFinder");
widgets->SaveButton = yon_gtk_builder_get_widget(builder,"mainSaveButton");
main_config.tree_store = GTK_TREE_STORE(gtk_builder_get_object(builder,"RepoStore")); main_config.tree_store = GTK_TREE_STORE(gtk_builder_get_object(builder,"RepoStore"));
widgets->DocumentationMenuItem = yon_ubl_menu_item_documentation_new(DOCUMENTATION_LABEL); // yon_gtk_builder_get_widget(builder,"DocumentationMenuItem");
widgets->AboutMenuItem = yon_ubl_menu_item_about_new(ABOUT_LABEL); // yon_gtk_builder_get_widget(builder,"AboutMenuItem");
gtk_window_set_title(GTK_WINDOW(widgets->Window),TITLE_LABEL);
GtkWidget *menu = yon_gtk_builder_get_widget(builder,"menu2");
gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->DocumentationMenuItem);
gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->AboutMenuItem);
if (main_config.lock_load_global == 1){ if (main_config.lock_load_global == 1){
gtk_widget_set_sensitive(widgets->LoadGlobalMenuItem,0); gtk_widget_set_sensitive(widgets->LoadGlobalMenuItem,0);
} }
@ -484,9 +539,12 @@ main_window *setup_window(){
g_signal_connect(G_OBJECT(widgets->DeleteButton),"clicked",G_CALLBACK(on_repo_remove),widgets); g_signal_connect(G_OBJECT(widgets->DeleteButton),"clicked",G_CALLBACK(on_repo_remove),widgets);
g_signal_connect(G_OBJECT(widgets->LoadFromLocalButton),"clicked",G_CALLBACK(on_repo_load_local),widgets); g_signal_connect(G_OBJECT(widgets->LoadFromLocalButton),"clicked",G_CALLBACK(on_repo_load_local),widgets);
g_signal_connect(G_OBJECT(widgets->ConfigureButton),"clicked",G_CALLBACK(on_repo_configure),widgets); g_signal_connect(G_OBJECT(widgets->ConfigureButton),"clicked",G_CALLBACK(on_repo_configure),widgets);
g_signal_connect(G_OBJECT(widgets->SaveButton),"clicked",G_CALLBACK(on_save),widgets);
g_signal_connect(G_OBJECT(widgets->RepoTree),"cursor-changed",G_CALLBACK(on_tree_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->Finder),"changed",G_CALLBACK(on_search),widgets);
/* Localisation | Локализация */ /* Localisation | Локализация */
gtk_widget_show_all(widgets->Window); gtk_widget_show(widgets->Window);
return widgets; return widgets;
@ -498,6 +556,7 @@ int main(int argc, char *argv[]){
config_init(); config_init();
int option_index=0; int option_index=0;
int show_help=0; int show_help=0;
int debug_mode=0;
{ {
struct option long_options[] = { struct option long_options[] = {
{"help", 0, 0, 'h'}, {"help", 0, 0, 'h'},
@ -510,10 +569,11 @@ int main(int argc, char *argv[]){
{"socket-id", 1, 0, 's'}, {"socket-id", 1, 0, 's'},
{"socket-ext-id", 1,0, 'e'}, {"socket-ext-id", 1,0, 'e'},
{"socket-trd-id", 1,0, 't'}, {"socket-trd-id", 1,0, 't'},
{"debug", 0,0, 'd'},
{ NULL, 0, NULL, 0 } { NULL, 0, NULL, 0 }
}; };
for (int i=0;i<argc;i++){ for (int i=0;i<argc;i++){
int argument=getopt_long(argc,argv,"hVvs:e:t:",long_options,&option_index); int argument=getopt_long(argc,argv,"hVvs:e:t:d",long_options,&option_index);
switch(argument){ switch(argument){
case 'h': case 'h':
show_help=1; show_help=1;
@ -559,19 +619,24 @@ int main(int argc, char *argv[]){
} }
} }
if (getuid()!=0){
main_config.lock_load_global=1;
main_config.lock_save_global=1;
main_config.lock_save_local=1;
}
gtk_init(&argc,&argv); gtk_init(&argc,&argv);
main_window *widgets = setup_window(); main_window *widgets = setup_window();
yon_ubl_header_setup(widgets->HeadOverlay,widgets->HeadBox,widgets->HeadImage,banner_path); yon_ubl_header_setup_resource(widgets->HeadOverlay,widgets->HeadBox,widgets->HeadImage,banner_path);
if (yon_ubl_status_box_setup(widgets->StatusIcon,widgets->StatusBox,widgets->StatusLabel)) yon_ubl_status_box_setup(widgets->StatusIcon,widgets->StatusBox,widgets->StatusLabel);
yon_ubl_status_box_render(TITLE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(TITLE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
yon_ubl_setup_sockets(widgets->PlugBox,widgets->LeftBox,widgets->RightBox,main_config.socket_id,main_config.load_socket_id,main_config.save_socket_id); yon_ubl_setup_sockets(widgets->PlugBox,widgets->LeftBox,widgets->RightBox,main_config.socket_id,main_config.load_socket_id,main_config.save_socket_id);
yon_window_config_setup(GTK_WINDOW(widgets->Window));
yon_window_config_load(config_path);
GtkCssProvider *css=gtk_css_provider_new(); GtkCssProvider *css=gtk_css_provider_new();
gtk_css_provider_load_from_path(css,CssPath,NULL); gtk_css_provider_load_from_resource(css,CssPath);
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
GTK_STYLE_PROVIDER(css), GTK_STYLE_PROVIDER(css),
-1); -1);

@ -8,7 +8,9 @@
#include <libintl.h> #include <libintl.h>
#include <getopt.h> #include <getopt.h>
#include <libintl.h> #include <libintl.h>
#include "ubl-cmake.h" #include <sys/types.h>
#include <fcntl.h>
#include "../compile/ubl-cmake.h"
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h> #include <webkit2/webkit2.h>
#endif #endif
@ -18,10 +20,11 @@
#define _(String) gettext(String) #define _(String) gettext(String)
#define glade_path "/usr/share/ubl-settings-repomanager/ui/ubl-settings-repomanager.glade" #define glade_path "/com/ublinux/ui/ubl-settings-repomanager.glade"
#define glade_repo_path "/usr/share/ubl-settings-repomanager/ui/ubl-settings-repomanager-windows.glade" #define glade_repo_path "/com/ublinux/ui/ubl-settings-repomanager-windows.glade"
#define banner_path "/usr/share/ubl-settings-repomanager/images/ubl-settings-repomanager-banner.png" #define banner_path "/com/ublinux/images/ubl-settings-repomanager-banner.png"
#define CssPath "/usr/share/ubl-settings-repomanager/css/ubl-settings-repomanager.css" #define CssPath "/com/ublinux/css/ubl-settings-repomanager.css"
#define config_path yon_char_unite("/home/",yon_ubl_root_user_get(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
#define LocalePath "/usr/share/locale" #define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-repomanager" #define LocaleName "ubl-settings-repomanager"
@ -113,6 +116,7 @@ typedef struct {
GtkWidget *SignatureLabel; GtkWidget *SignatureLabel;
GtkWidget *SignatureInfoLabel; GtkWidget *SignatureInfoLabel;
GtkWidget *Finder; GtkWidget *Finder;
GtkWidget *SaveButton;
} main_window; } main_window;
typedef struct { typedef struct {
@ -122,8 +126,11 @@ typedef struct {
GtkWidget *CancelButton; GtkWidget *CancelButton;
GtkWidget *SaveButton; GtkWidget *SaveButton;
GtkCellRenderer *BranchCell; GtkCellRenderer *BranchCell;
GtkWidget *repoChooseFolderButton;
GtkListStore *BranchesListStore; GtkListStore *BranchesListStore;
GtkWidget *PathLabel;
char *path;
} repo_create_window; } repo_create_window;
typedef struct { typedef struct {

@ -3,13 +3,16 @@
#define TITLE_LABEL _("Repository manager") #define TITLE_LABEL _("Repository manager")
#define TITLE_INFO_LABEL _("Repository management and configuring") #define TITLE_INFO_LABEL _("Repository management and configuring")
#define SUCCESS_LABEL _("Operation succeeded")
#define ABOUT_LABEL _("About") #define ABOUT_LABEL _("About")
#define DOCUMENTATION_LABEL _("Documentation") #define DOCUMENTATION_LABEL _("Documentation")
#define SAVE_LOCAL_LABEL _("Save to local configuration") #define SAVE_LOCAL_LABEL _("Save to local configuration")
#define SAVE_GLOBAL_LABEL _("Save to global configuration") #define SAVE_GLOBAL_LABEL _("Save to global configuration")
#define SAVE_CONFIGURATION_LABEL _("Save configuration") #define SAVE_CONFIGURATION_LABEL _("Save configuration")
#define SAVE_LABEL _("Save") #define SAVE_LABEL _("Save")
#define LOAD_LOCAL_LABEL _("Load local configuration") #define LOAD_LOCAL_LABEL _("Load local configuration")
#define LOAD_GLOBAL_LABEL _("Load global configuration") #define LOAD_GLOBAL_LABEL _("Load global configuration")
#define LOAD_LABEL _("Load") #define LOAD_LABEL _("Load")
@ -23,7 +26,14 @@
#define PROJECT_HOME_LABEL _("Project Home Page") #define PROJECT_HOME_LABEL _("Project Home Page")
#define NOTHING_CHOSEN_LABEL _("Nothing were chosen") #define NOTHING_CHOSEN_LABEL _("Nothing were chosen")
#define GLOBAL_LOAD_SUCCESS_LABEL _("Global configuration loading succseeded.")
#define LOCAL_LOAD_SUCCESS_LABEL _("Local configuration loading succseeded.")
#define LOAD_FAILED_LABEL _("Config loading failed")
#define GLOBAL_LOCAL_SAVE_SUCCESS_LABEL _("Local and global configuration saving succseeded.")
#define GLOBAL_SAVE_SUCCESS_LABEL _("Global configuration saving succseeded.")
#define LOCAL_SAVE_SUCCESS_LABEL _("Local configuration saving succseeded.")
#define SAVE_FAILED_LABEL
#define GLOBAL_LOAD_SUCCESS _("Global configuration loading succseeded.") #define GLOBAL_LOAD_SUCCESS _("Global configuration loading succseeded.")
#define LOCAL_LOAD_SUCCESS _("Local configuration loading succseeded.") #define LOCAL_LOAD_SUCCESS _("Local configuration loading succseeded.")
@ -67,3 +77,4 @@
#define BRANCHES_LABEL _("Branches:") #define BRANCHES_LABEL _("Branches:")
#define TYPE_BRANCH_NAME_LABEL _("< Type branch name >") #define TYPE_BRANCH_NAME_LABEL _("< Type branch name >")
#define EMPTY_NAME_LABEL _("Name must be filled!") #define EMPTY_NAME_LABEL _("Name must be filled!")
#define CHOOSE_PATH_LABEL _("Choose path for new repository")

File diff suppressed because it is too large Load Diff

@ -7,11 +7,13 @@
#include <pthread.h> #include <pthread.h>
#include <string.h> #include <string.h>
#include <dirent.h> #include <dirent.h>
#include <unistd.h>
#include <sys/stat.h>
#include <locale.h> #include <locale.h>
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <gtk/gtkx.h> #include <gtk/gtkx.h>
#include "ubl-cmake.h" #include "../compile/ubl-cmake.h"
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h> #include <webkit2/webkit2.h>
#endif #endif
@ -22,32 +24,19 @@
#define new(type) malloc(sizeof(type)) #define new(type) malloc(sizeof(type))
#define new_arr(type,size) malloc(sizeof(type)*size) #define new_arr(type,size) malloc(sizeof(type)*size)
#define yon_ubl_set_config_save_data_pointer(command) config_commands.config_save_data = command
#define yon_ubl_load_global_config(command, size_pointer) yon_config_load(command, size_pointer)
#define yon_ubl_load_local_config(command, size_pointer) yon_config_load(command, size_pointer)
#define yon_ubl_save_global_config(command) yon_config_save(command)
#define yon_ubl_save_local_config(command) yon_config_save(command)
#define for_liststore_each(liststore) GtkTreeIter iter;\
for (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(liststore),&iter);gtk_list_store_iter_is_valid(liststore,&iter);gtk_tree_model_iter_next(GTK_TREE_MODEL(liststore),&iter))
typedef enum typedef enum
{ {
#ifdef __GTK_H__ #ifdef __GTK_H__
DICTIONARY_GTK_WIDGETS_TYPE, DICTIONARY_GTK_WIDGETS_TYPE,
#endif #endif
DICTIONARY_OTHER_TYPE DICTIONARY_OTHER_TYPE=0,
DICTIONARY_CHAR_TYPE,
DICTIONARY_INT_TYPE,
DICTIONARY_BOOL_TYPE,
} DICT_TYPE; } DICT_TYPE;
typedef struct
{
char *command;
int *exitcode;
} thread_output;
typedef struct dictionary typedef struct dictionary
{ {
char *key; char *key;
@ -56,6 +45,7 @@ typedef struct dictionary
struct dictionary *prev; struct dictionary *prev;
struct dictionary *first; struct dictionary *first;
DICT_TYPE data_type; DICT_TYPE data_type;
int flag1;
} dictionary; } dictionary;
typedef struct apps typedef struct apps
@ -70,6 +60,15 @@ typedef struct apps
} apps; } apps;
typedef char** config_str; 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 // dictionary functions
/**yon_dictionary_get_data(dictionary, type) /**yon_dictionary_get_data(dictionary, type)
@ -83,28 +82,36 @@ typedef char** config_str;
* [type] - тип данных, хранящихся в словаре [dictionary]. * [type] - тип данных, хранящихся в словаре [dictionary].
*/ */
#define yon_dictionary_get_data(dictionary, type) ((type)dictionary->data) #define yon_dictionary_get_data(dictionary, type) ((type)dictionary->data)
#define yon_dictionary_add_or_create_if_exists_with_data(dict,key,data) {if (!dict) dict=yon_dictionary_create_with_data(key,data); \
else dict=yon_dictionary_create_with_data_connected(dict,key,data);}
dictionary *yon_dictionary_create_empty(); /**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_create_conneced(dictionary *targetdict); dictionary *yon_dictionary_append(dictionary *targetdict);
dictionary *yon_dictionary_get_last(dictionary *dict); dictionary *yon_dictionary_get_last(dictionary *dict);
dictionary *yon_dictionary_switch_places(dictionary *dict, int aim); dictionary *yon_dictionary_swap(dictionary *dict, int aim);
void yon_dictionary_make_first(dictionary *dict); void yon_dictionary_make_first(dictionary *dict);
void yon_dictionary_make_nth(dictionary *dict, int nth); void yon_dictionary_make_nth(dictionary *dict, int nth);
dictionary *yon_dictionary_create_with_data(char *key, void *data); dictionary *yon_dictionary_new_with_data(char *key, void *data);
dictionary *yon_dictionary_create_with_data_connected(dictionary *dict, 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_connect(dictionary *old, dictionary *toconnect);
dictionary *yon_dictionary_find(dictionary **dict, char *key); dictionary *yon_dictionary_get(dictionary **dict, char *key);
dictionary *yon_dictionary_rip(dictionary *dict); dictionary *yon_dictionary_rip(dictionary *dict);
@ -114,7 +121,7 @@ void *yon_dictionary_free_all(dictionary *dictionary,void (data_manipulation)(vo
// char functions // char functions
char *yon_char_get_augumented(char *source, char *append); char *yon_char_append(char *source, char *append);
char *yon_char_new(char *chr); char *yon_char_new(char *chr);
@ -132,7 +139,7 @@ char *yon_char_replace(char *source, char *find, char*replace);
char **yon_char_parse(char *parameters, int *size, char *divider); char **yon_char_parse(char *parameters, int *size, char *divider);
char **yon_char_parsed_shrink(char **char_string, int *size, int item_to_delete); 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_parsed_check_exist(char **parameters, int size, char *param);
@ -140,10 +147,20 @@ 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); 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 (config_str old, int *old_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();
// parsing functions // parsing functions
config_str philos_list_user(int* size);
apps *yon_apps_scan_and_parse_desktops(int *sizef); apps *yon_apps_scan_and_parse_desktops(int *sizef);
void yon_apps_sort(apps *applist, int size); void yon_apps_sort(apps *applist, int size);
@ -152,31 +169,49 @@ apps *yon_apps_get_by_name(apps *applist, char *name, int size);
config_str yon_config_load(char *command, int *str_len); config_str yon_config_load(char *command, int *str_len);
int yon_config_save(char *command); int yon_config_save_registered(char *command);
char *yon_config_get_parameter(config_str parameters, int size, char *param); char *yon_config_get_parameter(config_str parameters, int size, char *param);
char *yon_config_make_save_parameter_with_multiple_arguments(char *parameter_string, char *config_parameter, char *divider); int yon_config_load_register(char *command);
// terminal-using functions 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_launch_app(char *name); 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); int yon_launch_app_with_arguments(char *name, char *args);
int yon_launch(thread_output *thread); void yon_launch(char *command);
// Gtk functions // Gtk functions
#ifdef __GTK_H__ #ifdef __GTK_H__
#ifdef VTE_TERMINAL #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_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 #endif
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) /**yon_gtk_builder_get_widget(builder, widget_name)
* [EN] * [EN]
* Returns GtkWidget from GtkBuilder *[builder]. * Returns GtkWidget from GtkBuilder *[builder].
@ -193,11 +228,9 @@ typedef struct
GtkListStore *List; GtkListStore *List;
} expander_icon_view; } expander_icon_view;
// GtkWidget *yon_gtk_app_chooser_apps_create(); void yon_window_config_setup(GtkWindow *window);
// dictionary *yon_gtk_app_chooser_create();
// expander_icon_view yon_gtk_icon_view_expander_create(GtkWidget *pack, ...); int yon_window_config_load(char *path);
int yon_gtk_combo_box_fill(GtkWidget *combo, char **parameters,int size); int yon_gtk_combo_box_fill(GtkWidget *combo, char **parameters,int size);
@ -205,8 +238,9 @@ 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_gtk_icon_view_hide_empty(dictionary *icon_view_segment);
int yon_dictionary_gtk_pack_start_multiple_widgets(dictionary *dict, GtkWidget *destination, gboolean expand, gboolean fill, int padding); int yon_dictionary_gtk_pack_start_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...);
int yon_dictionary_gtk_pack_end_multiple_widgets(dictionary *dict, GtkWidget *destination, gboolean expand, gboolean fill, int padding);
int yon_dictionary_gtk_pack_end_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...);
@ -290,10 +324,13 @@ void yon_ubl_status_box_render(char *text, BACKGROUND_IMAGE_TYPE type);
* [imag_path] - путь до картинки, загружаемой в [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(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 #endif
void _yon_ubl_header_setup(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path); 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); 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 #ifdef WEBKIT_FOUND

Binary file not shown.

@ -87,6 +87,46 @@
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </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> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -94,7 +134,6 @@
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkLabel" id="repoBranchesLabel"> <object class="GtkLabel" id="repoBranchesLabel">
<property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Branches:</property> <property name="label" translatable="yes">Branches:</property>
<property name="xalign">0</property> <property name="xalign">0</property>
@ -109,7 +148,7 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -129,7 +168,6 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<child> <child>
<object class="GtkTreeView" id="curRepoEditTree"> <object class="GtkTreeView" id="curRepoEditTree">
<property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="model">curRepoEditList</property> <property name="model">curRepoEditList</property>
<property name="headers-visible">False</property> <property name="headers-visible">False</property>
@ -154,7 +192,6 @@
</object> </object>
</child> </child>
<style> <style>
<class name="nobackground"/>
<class name="noborder"/> <class name="noborder"/>
</style> </style>
</object> </object>
@ -342,7 +379,6 @@
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkLabel" id="repoEditBranchesLabel"> <object class="GtkLabel" id="repoEditBranchesLabel">
<property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Branches:</property> <property name="label" translatable="yes">Branches:</property>
<property name="xalign">0</property> <property name="xalign">0</property>
@ -377,14 +413,15 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<child> <child>
<object class="GtkTreeView" id="repoEditBranchTree"> <object class="GtkTreeView" id="repoEditBranchTree">
<property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="model">curRepoEditList</property> <property name="model">curRepoEditList</property>
<property name="headers-visible">False</property> <property name="headers-visible">False</property>
<property name="search-column">0</property> <property name="search-column">0</property>
<property name="show-expanders">False</property> <property name="show-expanders">False</property>
<child internal-child="selection"> <child internal-child="selection">
<object class="GtkTreeSelection"/> <object class="GtkTreeSelection">
<property name="mode">none</property>
</object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">

@ -48,17 +48,23 @@ background:transparent;
} }
.menuitemtop *{ .menuitemtop *{
margin:2px 2px 0 2px; margin:2px 2px 0 2px;
padding: 5px 10px 3px 5px; padding-top:2px;
padding-bottom:2px;
/* padding: 5px 0px 3px 5px; */
border:transparent; border:transparent;
} }
.menuitemmiddle *{ .menuitemmiddle *{
margin:0 2px 0 2px; margin:0 2px 0 2px;
padding: 3px 10px 3px 5px; padding-top:2px;
padding-bottom:2px;
/* padding: 3px 0px 3px 5px; */
border:transparent; border:transparent;
} }
.menuitembottom *{ .menuitembottom *{
margin:0 2px 2px 2px; margin:0 2px 2px 2px;
padding: 3px 10px 5px 5px; padding-top:2px;
padding-bottom:2px;
/* padding: 3px 0px 5px 5px; */
} }
.menuitemtop:hover { .menuitemtop:hover {
background:@theme_bg_color; background:@theme_bg_color;
@ -83,19 +89,25 @@ background:transparent;
} }
.menuitemtop:hover* { .menuitemtop:hover* {
margin:2px 2px 0 2px; margin:2px 2px 0 2px;
padding: 5px 10px 3px 5px; padding-top:2px;
padding-bottom:2px;
/* padding: 5px 0 3px 5px; */
background:@theme_selected_bg_color; background:@theme_selected_bg_color;
border-radius:2px; border-radius:2px;
} }
.menuitemmiddle:hover* { .menuitemmiddle:hover* {
margin:0 2px 0 2px; margin:0 2px 0px 2px;
padding: 3px 10px 3px 5px; padding-top:2px;
padding-bottom:2px;
/* padding: 3px 0px 3px 5px; */
background:@theme_selected_bg_color; background:@theme_selected_bg_color;
border-radius:2px; border-radius:2px;
} }
.menuitembottom:hover* { .menuitembottom:hover* {
margin:0 2px 2px 2px; margin:0 2px 2px 2px;
padding: 3px 10px 5px 5px; padding-top:2px;
padding-bottom:2px;
/* padding: 3px 0px 5px 5px; */
background:@theme_selected_bg_color; background:@theme_selected_bg_color;
border-radius:2px; border-radius:2px;
} }

@ -193,11 +193,33 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<object class="GtkTreeStore" id="RepoStore"> <object class="GtkTreeStore" id="RepoStore">
<columns> <columns>
<!-- column-name Picture --> <!-- column-name Picture -->
<column type="GdkPixbuf"/> <column type="gchararray"/>
<!-- column-name DisplayName --> <!-- column-name DisplayName -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name BranchList --> <!-- column-name BranchList -->
<column type="gpointer"/> <column type="gpointer"/>
<!-- column-name Path -->
<column type="gchararray"/>
<!-- column-name Status -->
<column type="gint"/>
<!-- column-name HideDeleted -->
<column type="gboolean"/>
<!-- column-name OldName -->
<column type="gchararray"/>
<!-- column-name Renamed -->
<column type="gboolean"/>
<!-- column-name OldRepo -->
<column type="gchararray"/>
<!-- column-name NewRepo -->
<column type="gchararray"/>
<!-- column-name Moved -->
<column type="gboolean"/>
<!-- column-name PackageName -->
<column type="gchararray"/>
<!-- column-name PackageVersion -->
<column type="gchararray"/>
<!-- column-name PackageArch -->
<column type="gchararray"/>
</columns> </columns>
</object> </object>
<object class="GtkAdjustment" id="adjustment1"> <object class="GtkAdjustment" id="adjustment1">
@ -210,11 +232,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">document-new-symbolic</property> <property name="icon-name">document-new-symbolic</property>
</object> </object>
<object class="GtkImage" id="image10">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">document-edit-symbolic</property>
</object>
<object class="GtkImage" id="image11"> <object class="GtkImage" id="image11">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -238,28 +255,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<object class="GtkImage" id="image3"> <object class="GtkImage" id="image3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">preferences-other-symbolic</property> <property name="icon-name">system-run-symbolic</property>
</object> </object>
<object class="GtkImage" id="image4"> <object class="GtkImage" id="image4">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">user-trash-symbolic</property> <property name="icon-name">user-trash-symbolic</property>
</object> </object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">system-shutdown-symbolic</property>
</object>
<object class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">document-send-symbolic</property>
</object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emblem-synchronizing-symbolic</property>
</object>
<object class="GtkImage" id="image8"> <object class="GtkImage" id="image8">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -491,28 +493,6 @@ translated and supported by community.</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="take-focus">False</property> <property name="take-focus">False</property>
<property name="reserve-toggle-size">False</property> <property name="reserve-toggle-size">False</property>
<child>
<object class="GtkMenuItem" id="DocumentationMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Documentation</property>
<property name="use-underline">True</property>
<style>
<class name="menuitemtop"/>
</style>
</object>
</child>
<child>
<object class="GtkMenuItem" id="AboutMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">About</property>
<style>
<class name="menuitemsolo"/>
<class name="menuitembottom"/>
</style>
</object>
</child>
</object> </object>
<object class="GtkMenu" id="menu3"> <object class="GtkMenu" id="menu3">
<property name="visible">True</property> <property name="visible">True</property>
@ -703,10 +683,18 @@ translated and supported by community.</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkPaned">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="position">395</property>
<property name="position-set">True</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
@ -743,7 +731,7 @@ translated and supported by community.</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="LoadNetButton"> <object class="GtkButton" id="LoadLocalButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
@ -804,86 +792,6 @@ translated and supported by community.</property>
<property name="position">5</property> <property name="position">5</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="LoadLocalButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Add/Remove repository from
local package sources</property>
<property name="image">image6</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing>
</child>
<child>
<object class="GtkButton" id="SwitchPublishButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Enable/disable repository publish</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">7</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
</packing>
</child>
<child>
<object class="GtkButton" id="CheckDependencesButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Check dependences</property>
<property name="image">image7</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">9</property>
</packing>
</child>
<child>
<object class="GtkButton" id="SignButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Sign ripository</property>
<property name="image">image10</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">10</property>
</packing>
</child>
<child> <child>
<object class="GtkButton" id="AddPackageButton"> <object class="GtkButton" id="AddPackageButton">
<property name="visible">True</property> <property name="visible">True</property>
@ -939,6 +847,15 @@ local package sources</property>
<property name="bottom-padding">5</property> <property name="bottom-padding">5</property>
<property name="left-padding">5</property> <property name="left-padding">5</property>
<property name="right-padding">5</property> <property name="right-padding">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> <child>
<object class="GtkTreeView" id="RepoTree"> <object class="GtkTreeView" id="RepoTree">
<property name="visible">True</property> <property name="visible">True</property>
@ -946,6 +863,7 @@ local package sources</property>
<property name="model">RepoStore</property> <property name="model">RepoStore</property>
<property name="headers-visible">False</property> <property name="headers-visible">False</property>
<property name="expander-column">treeviewcolumn2</property> <property name="expander-column">treeviewcolumn2</property>
<property name="search-column">0</property>
<child internal-child="selection"> <child internal-child="selection">
<object class="GtkTreeSelection"/> <object class="GtkTreeSelection"/>
</child> </child>
@ -960,7 +878,15 @@ local package sources</property>
<child> <child>
<object class="GtkCellRendererPixbuf"/> <object class="GtkCellRendererPixbuf"/>
<attributes> <attributes>
<attribute name="pixbuf">0</attribute> <attribute name="icon-name">0</attribute>
</attributes>
</child>
<child>
<object class="GtkCellRendererText">
<property name="text">[D]</property>
</object>
<attributes>
<attribute name="visible">5</attribute>
</attributes> </attributes>
</child> </child>
<child> <child>
@ -975,16 +901,16 @@ local package sources</property>
</child> </child>
</object> </object>
</child> </child>
<child type="label_item"> </object>
<placeholder/>
</child> </child>
</object> </object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child> </child>
<child type="label_item">
<placeholder/>
</child>
<style>
<class name="workingbg"/>
</style>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -994,19 +920,23 @@ local package sources</property>
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="resize">False</property>
<property name="fill">True</property> <property name="shrink">True</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkNotebook"> <object class="GtkNotebook">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="show-tabs">False</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property> <property name="margin-start">5</property>
<property name="margin-end">5</property> <property name="margin-end">5</property>
<property name="margin-top">5</property> <property name="margin-top">5</property>
@ -1038,7 +968,6 @@ local package sources</property>
<object class="GtkLabel" id="CodeNameInfoLabel"> <object class="GtkLabel" id="CodeNameInfoLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">extend</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1055,7 +984,6 @@ local package sources</property>
</child> </child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="spacing">20</property> <property name="spacing">20</property>
<child> <child>
@ -1078,7 +1006,6 @@ local package sources</property>
<object class="GtkLabel" id="BranchInfoLabel"> <object class="GtkLabel" id="BranchInfoLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">stable</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1118,7 +1045,6 @@ local package sources</property>
<object class="GtkLabel" id="VersionInfoLabel"> <object class="GtkLabel" id="VersionInfoLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">2204</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1158,7 +1084,6 @@ local package sources</property>
<object class="GtkLabel" id="ArchitectureInfoLabel"> <object class="GtkLabel" id="ArchitectureInfoLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">amd64</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1175,7 +1100,6 @@ local package sources</property>
</child> </child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="spacing">20</property> <property name="spacing">20</property>
<child> <child>
@ -1198,7 +1122,6 @@ local package sources</property>
<object class="GtkLabel" id="ComponentsInfoLabel"> <object class="GtkLabel" id="ComponentsInfoLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">main contrib non-free</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1215,7 +1138,6 @@ local package sources</property>
</child> </child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="spacing">20</property> <property name="spacing">20</property>
<child> <child>
@ -1238,7 +1160,6 @@ local package sources</property>
<object class="GtkLabel" id="SignatureInfoLabel"> <object class="GtkLabel" id="SignatureInfoLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">signed</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1269,6 +1190,8 @@ local package sources</property>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property> <property name="margin-start">5</property>
<property name="margin-end">5</property> <property name="margin-end">5</property>
<property name="margin-top">5</property> <property name="margin-top">5</property>
@ -1359,9 +1282,8 @@ local package sources</property>
<item translatable="yes">192.168.1.110</item> <item translatable="yes">192.168.1.110</item>
</items> </items>
<child internal-child="entry"> <child internal-child="entry">
<object class="GtkEntry" id="entry1"> <object class="GtkEntry">
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="text" translatable="yes">192.168.1.110</property>
</object> </object>
</child> </child>
</object> </object>
@ -1400,6 +1322,7 @@ local package sources</property>
<object class="GtkSpinButton" id="PortSpin"> <object class="GtkSpinButton" id="PortSpin">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="text" translatable="yes">0</property>
<property name="adjustment">adjustment1</property> <property name="adjustment">adjustment1</property>
</object> </object>
<packing> <packing>
@ -1486,6 +1409,12 @@ local package sources</property>
</packing> </packing>
</child> </child>
</object> </object>
<packing>
<property name="resize">True</property>
<property name="shrink">True</property>
</packing>
</child>
</object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
@ -1500,6 +1429,13 @@ local package sources</property>
</packing> </packing>
</child> </child>
</object> </object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
@ -1555,7 +1491,6 @@ local package sources</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<child> <child>
<object class="GtkMenuButton"> <object class="GtkMenuButton">
<property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="focus-on-click">False</property> <property name="focus-on-click">False</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
@ -1617,9 +1552,23 @@ local package sources</property>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="mainSaveButton">
<property name="label" translatable="yes">Save</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="pack-type">end</property> <property name="pack-type">end</property>
@ -1628,7 +1577,6 @@ local package sources</property>
</child> </child>
<child> <child>
<object class="GtkBox" id="HeaderLeftBox"> <object class="GtkBox" id="HeaderLeftBox">
<property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<child> <child>
<object class="GtkMenuButton"> <object class="GtkMenuButton">
@ -1685,28 +1633,4 @@ local package sources</property>
</object> </object>
</child> </child>
</object> </object>
<object class="GtkSizeGroup" id="PubSizeGroupCol1">
<widgets>
<widget name="ServerLabel"/>
<widget name="IpAdresslabel"/>
<widget name="PortLabel"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="PubSizeGroupCol2">
<widgets>
<widget name="ServerCombo"/>
<widget name="IpAdressCombo"/>
<widget name="PortSpin"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="ed">
<widgets>
<widget name="SignatureLabel"/>
<widget name="ComponentsLabel"/>
<widget name="ArchitectureLabel"/>
<widget name="VersionLabel"/>
<widget name="BranchLabel"/>
<widget name="CodeNameLabel"/>
</widgets>
</object>
</interface> </interface>

@ -73,214 +73,230 @@ msgstr ""
msgid "Repository management and configuring" msgid "Repository management and configuring"
msgstr "" msgstr ""
#: source/ubl-strings.h:7 #: source/ubl-strings.h:6
msgid "Operation succeeded"
msgstr ""
#: source/ubl-strings.h:9
msgid "About" msgid "About"
msgstr "" msgstr ""
#: source/ubl-strings.h:8 #: source/ubl-strings.h:10
msgid "Documentation" msgid "Documentation"
msgstr "" msgstr ""
#: source/ubl-strings.h:9 #: source/ubl-strings.h:12
msgid "Save to local configuration" msgid "Save to local configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:10 #: source/ubl-strings.h:13
msgid "Save to global configuration" msgid "Save to global configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:11 #: source/ubl-strings.h:14
msgid "Save configuration" msgid "Save configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:12 #: source/ubl-strings.h:15
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: source/ubl-strings.h:13 #: source/ubl-strings.h:17
msgid "Load local configuration" msgid "Load local configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:14 #: source/ubl-strings.h:18
msgid "Load global configuration" msgid "Load global configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:15 #: source/ubl-strings.h:19
msgid "Load" msgid "Load"
msgstr "" msgstr ""
#: source/ubl-strings.h:17 #: source/ubl-strings.h:21
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: source/ubl-strings.h:19 #: source/ubl-strings.h:23
msgid "Would you like to read documentation in the Web?" msgid "Would you like to read documentation in the Web?"
msgstr "" msgstr ""
#: source/ubl-strings.h:20 #: source/ubl-strings.h:24
msgid "" msgid ""
"You will be redirected to documentation website where documentation is\n" "You will be redirected to documentation website where documentation is\n"
"translated and supported by community." "translated and supported by community."
msgstr "" msgstr ""
#: source/ubl-strings.h:21 #: source/ubl-strings.h:25
msgid "Always redirect to online documentation" msgid "Always redirect to online documentation"
msgstr "" msgstr ""
#: source/ubl-strings.h:22 #: source/ubl-strings.h:26
msgid "Open documentation" msgid "Open documentation"
msgstr "" msgstr ""
#: source/ubl-strings.h:23 #: source/ubl-strings.h:27
msgid "Project Home Page" msgid "Project Home Page"
msgstr "" msgstr ""
#: source/ubl-strings.h:24 #: source/ubl-strings.h:28
msgid "Nothing were chosen" msgid "Nothing were chosen"
msgstr "" msgstr ""
#: source/ubl-strings.h:27 #: source/ubl-strings.h:30 source/ubl-strings.h:38
msgid "Global configuration loading succseeded." msgid "Global configuration loading succseeded."
msgstr "" msgstr ""
#: source/ubl-strings.h:28 #: source/ubl-strings.h:31 source/ubl-strings.h:39
msgid "Local configuration loading succseeded." msgid "Local configuration loading succseeded."
msgstr "" msgstr ""
#: source/ubl-strings.h:30 #: source/ubl-strings.h:32
msgid "Config loading failed"
msgstr ""
#: source/ubl-strings.h:34 source/ubl-strings.h:41
msgid "Local and global configuration saving succseeded." msgid "Local and global configuration saving succseeded."
msgstr "" msgstr ""
#: source/ubl-strings.h:31 #: source/ubl-strings.h:35 source/ubl-strings.h:42
msgid "Global configuration saving succseeded." msgid "Global configuration saving succseeded."
msgstr "" msgstr ""
#: source/ubl-strings.h:32 #: source/ubl-strings.h:36 source/ubl-strings.h:43
msgid "Local configuration saving succseeded." msgid "Local configuration saving succseeded."
msgstr "" msgstr ""
#: source/ubl-strings.h:34 #: source/ubl-strings.h:45
msgid "General" msgid "General"
msgstr "" msgstr ""
#: source/ubl-strings.h:35 #: source/ubl-strings.h:46
msgid "Publication" msgid "Publication"
msgstr "" msgstr ""
#: source/ubl-strings.h:36 #: source/ubl-strings.h:47
msgid "Trusted repository" msgid "Trusted repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:37 #: source/ubl-strings.h:48
msgid "Server type:" msgid "Server type:"
msgstr "" msgstr ""
#: source/ubl-strings.h:38 #: source/ubl-strings.h:49
msgid "IP adress:" msgid "IP adress:"
msgstr "" msgstr ""
#: source/ubl-strings.h:39 #: source/ubl-strings.h:50
msgid "Port:" msgid "Port:"
msgstr "" msgstr ""
#: source/ubl-strings.h:40 #: source/ubl-strings.h:51
msgid "Publish" msgid "Publish"
msgstr "" msgstr ""
#: source/ubl-strings.h:41 #: source/ubl-strings.h:52
msgid "Code name:" msgid "Code name:"
msgstr "" msgstr ""
#: source/ubl-strings.h:42 #: source/ubl-strings.h:53
msgid "Branch:" msgid "Branch:"
msgstr "" msgstr ""
#: source/ubl-strings.h:43 #: source/ubl-strings.h:54
msgid "Architecture:" msgid "Architecture:"
msgstr "" msgstr ""
#: source/ubl-strings.h:44 #: source/ubl-strings.h:55
msgid "Components:" msgid "Components:"
msgstr "" msgstr ""
#: source/ubl-strings.h:45 #: source/ubl-strings.h:56
msgid "Signature:" msgid "Signature:"
msgstr "" msgstr ""
#: source/ubl-strings.h:47 #: source/ubl-strings.h:58
msgid "Create repository" msgid "Create repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:48 #: source/ubl-strings.h:59
msgid "Open existing repository" msgid "Open existing repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:49 #: source/ubl-strings.h:60
msgid "Configure repository" msgid "Configure repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:50 #: source/ubl-strings.h:61
msgid "Delete repository" msgid "Delete repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:51 #: source/ubl-strings.h:62
msgid "" msgid ""
"Add/Remove repository from\n" "Add/Remove repository from\n"
"local package sources" "local package sources"
msgstr "" msgstr ""
#: source/ubl-strings.h:52 #: source/ubl-strings.h:63
msgid "Enable/disable repository publish" msgid "Enable/disable repository publish"
msgstr "" msgstr ""
#: source/ubl-strings.h:53 #: source/ubl-strings.h:64
msgid "Check dependences" msgid "Check dependences"
msgstr "" msgstr ""
#: source/ubl-strings.h:54 #: source/ubl-strings.h:65
msgid "Sign ripository" msgid "Sign ripository"
msgstr "" msgstr ""
#: source/ubl-strings.h:55 #: source/ubl-strings.h:66
msgid "Add package" msgid "Add package"
msgstr "" msgstr ""
#: source/ubl-strings.h:56 #: source/ubl-strings.h:67
msgid "Remove package" msgid "Remove package"
msgstr "" msgstr ""
#: source/ubl-strings.h:57 #: source/ubl-strings.h:68
msgid "Open" msgid "Open"
msgstr "" msgstr ""
#: source/ubl-strings.h:59 #: source/ubl-strings.h:70
msgid "Operation done" msgid "Operation done"
msgstr "" msgstr ""
#: source/ubl-strings.h:61 #: source/ubl-strings.h:72
msgid "Choose branch or pack in branch to add file!" msgid "Choose branch or pack in branch to add file!"
msgstr "" msgstr ""
#: source/ubl-strings.h:62 #: source/ubl-strings.h:73
msgid "Choose repository or branch!" msgid "Choose repository or branch!"
msgstr "" msgstr ""
#: source/ubl-strings.h:63 #: source/ubl-strings.h:74
msgid "Choose pack to delete!" msgid "Choose pack to delete!"
msgstr "" msgstr ""
#: source/ubl-strings.h:64 #: source/ubl-strings.h:75
msgid "Choose repository to delete!" msgid "Choose repository to delete!"
msgstr "" msgstr ""
#: source/ubl-strings.h:66 #: source/ubl-strings.h:77
msgid "Name:" msgid "Name:"
msgstr "" msgstr ""
#: source/ubl-strings.h:67 #: source/ubl-strings.h:78
msgid "Branches:" msgid "Branches:"
msgstr "" msgstr ""
#: source/ubl-strings.h:68 #: source/ubl-strings.h:79
msgid "< Type branch name >" msgid "< Type branch name >"
msgstr "" msgstr ""
#: source/ubl-strings.h:80
msgid "Name must be filled!"
msgstr ""
#: source/ubl-strings.h:81
msgid "Choose path for new repository"
msgstr ""

@ -74,51 +74,56 @@ msgstr "Менеджер репозиториев"
msgid "Repository management and configuring" msgid "Repository management and configuring"
msgstr "Настройка параметров и управление репозиториями системы" msgstr "Настройка параметров и управление репозиториями системы"
#: source/ubl-strings.h:7 #: source/ubl-strings.h:6
#, fuzzy
msgid "Operation succeeded"
msgstr "Операция завершена"
#: source/ubl-strings.h:9
msgid "About" msgid "About"
msgstr "О программе" msgstr "О программе"
#: source/ubl-strings.h:8 #: source/ubl-strings.h:10
msgid "Documentation" msgid "Documentation"
msgstr "Справка" msgstr "Справка"
#: source/ubl-strings.h:9 #: source/ubl-strings.h:12
msgid "Save to local configuration" msgid "Save to local configuration"
msgstr "Сохранить в локальную конфигурацию" msgstr "Сохранить в локальную конфигурацию"
#: source/ubl-strings.h:10 #: source/ubl-strings.h:13
msgid "Save to global configuration" msgid "Save to global configuration"
msgstr "Сохранить в глобальную конфигурацию" msgstr "Сохранить в глобальную конфигурацию"
#: source/ubl-strings.h:11 #: source/ubl-strings.h:14
msgid "Save configuration" msgid "Save configuration"
msgstr "Сохранить конфигурацию" msgstr "Сохранить конфигурацию"
#: source/ubl-strings.h:12 #: source/ubl-strings.h:15
msgid "Save" msgid "Save"
msgstr "Сохранить" msgstr "Сохранить"
#: source/ubl-strings.h:13 #: source/ubl-strings.h:17
msgid "Load local configuration" msgid "Load local configuration"
msgstr "Загрузить локальную конфигуруцию" msgstr "Загрузить локальную конфигуруцию"
#: source/ubl-strings.h:14 #: source/ubl-strings.h:18
msgid "Load global configuration" msgid "Load global configuration"
msgstr "Загрузить глобальную конфигурацию" msgstr "Загрузить глобальную конфигурацию"
#: source/ubl-strings.h:15 #: source/ubl-strings.h:19
msgid "Load" msgid "Load"
msgstr "Загрузить" msgstr "Загрузить"
#: source/ubl-strings.h:17 #: source/ubl-strings.h:21
msgid "Cancel" msgid "Cancel"
msgstr "Отмена" msgstr "Отмена"
#: source/ubl-strings.h:19 #: source/ubl-strings.h:23
msgid "Would you like to read documentation in the Web?" msgid "Would you like to read documentation in the Web?"
msgstr "Вы хотите прочитать справку в Сети?" msgstr "Вы хотите прочитать справку в Сети?"
#: source/ubl-strings.h:20 #: source/ubl-strings.h:24
msgid "" msgid ""
"You will be redirected to documentation website where documentation is\n" "You will be redirected to documentation website where documentation is\n"
"translated and supported by community." "translated and supported by community."
@ -126,107 +131,111 @@ msgstr ""
"Вы будете перенаправлены на сайт с документацией где страницы помощи\n" "Вы будете перенаправлены на сайт с документацией где страницы помощи\n"
"переводятся и поддерживаются сообществом." "переводятся и поддерживаются сообществом."
#: source/ubl-strings.h:21 #: source/ubl-strings.h:25
msgid "Always redirect to online documentation" msgid "Always redirect to online documentation"
msgstr "Всегда перенаправлять" msgstr "Всегда перенаправлять"
#: source/ubl-strings.h:22 #: source/ubl-strings.h:26
msgid "Open documentation" msgid "Open documentation"
msgstr "Прочитать справку" msgstr "Прочитать справку"
#: source/ubl-strings.h:23 #: source/ubl-strings.h:27
msgid "Project Home Page" msgid "Project Home Page"
msgstr "Домашняя страница проекта" msgstr "Домашняя страница проекта"
#: source/ubl-strings.h:24 #: source/ubl-strings.h:28
msgid "Nothing were chosen" msgid "Nothing were chosen"
msgstr "Ничего не было выбрано" msgstr "Ничего не было выбрано"
#: source/ubl-strings.h:27 #: source/ubl-strings.h:30 source/ubl-strings.h:38
msgid "Global configuration loading succseeded." msgid "Global configuration loading succseeded."
msgstr "Успешно загружена глобальная конфигурация" msgstr "Успешно загружена глобальная конфигурация"
#: source/ubl-strings.h:28 #: source/ubl-strings.h:31 source/ubl-strings.h:39
msgid "Local configuration loading succseeded." msgid "Local configuration loading succseeded."
msgstr "Успешно загружена локальная конфигурация" msgstr "Успешно загружена локальная конфигурация"
#: source/ubl-strings.h:30 #: source/ubl-strings.h:32
msgid "Config loading failed"
msgstr ""
#: source/ubl-strings.h:34 source/ubl-strings.h:41
msgid "Local and global configuration saving succseeded." msgid "Local and global configuration saving succseeded."
msgstr "Успешно записаны локальная и глобальная конфигурация" msgstr "Успешно записаны локальная и глобальная конфигурация"
#: source/ubl-strings.h:31 #: source/ubl-strings.h:35 source/ubl-strings.h:42
msgid "Global configuration saving succseeded." msgid "Global configuration saving succseeded."
msgstr "Успешно записана глобальная конфигурация" msgstr "Успешно записана глобальная конфигурация"
#: source/ubl-strings.h:32 #: source/ubl-strings.h:36 source/ubl-strings.h:43
msgid "Local configuration saving succseeded." msgid "Local configuration saving succseeded."
msgstr "Успешно записана локальная конфигурация" msgstr "Успешно записана локальная конфигурация"
#: source/ubl-strings.h:34 #: source/ubl-strings.h:45
msgid "General" msgid "General"
msgstr "Общие" msgstr "Общие"
#: source/ubl-strings.h:35 #: source/ubl-strings.h:46
msgid "Publication" msgid "Publication"
msgstr "Публикация" msgstr "Публикация"
#: source/ubl-strings.h:36 #: source/ubl-strings.h:47
msgid "Trusted repository" msgid "Trusted repository"
msgstr "Доверенный репозиторий" msgstr "Доверенный репозиторий"
#: source/ubl-strings.h:37 #: source/ubl-strings.h:48
msgid "Server type:" msgid "Server type:"
msgstr "Тип сервера:" msgstr "Тип сервера:"
#: source/ubl-strings.h:38 #: source/ubl-strings.h:49
msgid "IP adress:" msgid "IP adress:"
msgstr "IP-адрес:" msgstr "IP-адрес:"
#: source/ubl-strings.h:39 #: source/ubl-strings.h:50
msgid "Port:" msgid "Port:"
msgstr "Порт:" msgstr "Порт:"
#: source/ubl-strings.h:40 #: source/ubl-strings.h:51
msgid "Publish" msgid "Publish"
msgstr "Опубликовать" msgstr "Опубликовать"
#: source/ubl-strings.h:41 #: source/ubl-strings.h:52
msgid "Code name:" msgid "Code name:"
msgstr "Кодовое имя:" msgstr "Кодовое имя:"
#: source/ubl-strings.h:42 #: source/ubl-strings.h:53
msgid "Branch:" msgid "Branch:"
msgstr "Ветка:" msgstr "Ветка:"
#: source/ubl-strings.h:43 #: source/ubl-strings.h:54
msgid "Architecture:" msgid "Architecture:"
msgstr "Архитектура:" msgstr "Архитектура:"
#: source/ubl-strings.h:44 #: source/ubl-strings.h:55
msgid "Components:" msgid "Components:"
msgstr "Компоненты" msgstr "Компоненты"
#: source/ubl-strings.h:45 #: source/ubl-strings.h:56
msgid "Signature:" msgid "Signature:"
msgstr "Подпись" msgstr "Подпись"
#: source/ubl-strings.h:47 #: source/ubl-strings.h:58
msgid "Create repository" msgid "Create repository"
msgstr "Создать репозиторий" msgstr "Создать репозиторий"
#: source/ubl-strings.h:48 #: source/ubl-strings.h:59
msgid "Open existing repository" msgid "Open existing repository"
msgstr "Открыть и добавить репозиторий" msgstr "Открыть и добавить репозиторий"
#: source/ubl-strings.h:49 #: source/ubl-strings.h:60
msgid "Configure repository" msgid "Configure repository"
msgstr "Редактировать репозиторий" msgstr "Редактировать репозиторий"
#: source/ubl-strings.h:50 #: source/ubl-strings.h:61
msgid "Delete repository" msgid "Delete repository"
msgstr "Удалить репозиторий" msgstr "Удалить репозиторий"
#: source/ubl-strings.h:51 #: source/ubl-strings.h:62
msgid "" msgid ""
"Add/Remove repository from\n" "Add/Remove repository from\n"
"local package sources" "local package sources"
@ -234,59 +243,68 @@ msgstr ""
"Добавить/удалить репу из\n" "Добавить/удалить репу из\n"
" локальных источников пакетов" " локальных источников пакетов"
#: source/ubl-strings.h:52 #: source/ubl-strings.h:63
msgid "Enable/disable repository publish" msgid "Enable/disable repository publish"
msgstr "Включить/отключить публикацию" msgstr "Включить/отключить публикацию"
#: source/ubl-strings.h:53 #: source/ubl-strings.h:64
msgid "Check dependences" msgid "Check dependences"
msgstr "Проверить на битые зависимости" msgstr "Проверить на битые зависимости"
#: source/ubl-strings.h:54 #: source/ubl-strings.h:65
msgid "Sign ripository" msgid "Sign ripository"
msgstr "Подпись пакетов" msgstr "Подпись пакетов"
#: source/ubl-strings.h:55 #: source/ubl-strings.h:66
msgid "Add package" msgid "Add package"
msgstr "Добавить пакет" msgstr "Добавить пакет"
#: source/ubl-strings.h:56 #: source/ubl-strings.h:67
msgid "Remove package" msgid "Remove package"
msgstr "Удалить пакет" msgstr "Удалить пакет"
#: source/ubl-strings.h:57 #: source/ubl-strings.h:68
msgid "Open" msgid "Open"
msgstr "Открыть" msgstr "Открыть"
#: source/ubl-strings.h:59 #: source/ubl-strings.h:70
msgid "Operation done" msgid "Operation done"
msgstr "Операция завершена" msgstr "Операция завершена"
#: source/ubl-strings.h:61 #: source/ubl-strings.h:72
msgid "Choose branch or pack in branch to add file!" msgid "Choose branch or pack in branch to add file!"
msgstr "Выберите ветку чтобы добавить пакет!" msgstr "Выберите ветку чтобы добавить пакет!"
#: source/ubl-strings.h:62 #: source/ubl-strings.h:73
msgid "Choose repository or branch!" msgid "Choose repository or branch!"
msgstr "Выберите репозиторий!" msgstr "Выберите репозиторий!"
#: source/ubl-strings.h:63 #: source/ubl-strings.h:74
msgid "Choose pack to delete!" msgid "Choose pack to delete!"
msgstr "Выберите пакет для удаления!" msgstr "Выберите пакет для удаления!"
#: source/ubl-strings.h:64 #: source/ubl-strings.h:75
msgid "Choose repository to delete!" msgid "Choose repository to delete!"
msgstr "Выберите репозиторий для удаления!" msgstr "Выберите репозиторий для удаления!"
#: source/ubl-strings.h:66 #: source/ubl-strings.h:77
msgid "Name:" msgid "Name:"
msgstr "Название:" msgstr "Название:"
#: source/ubl-strings.h:67 #: source/ubl-strings.h:78
#, fuzzy #, fuzzy
msgid "Branches:" msgid "Branches:"
msgstr "Ветки:" msgstr "Ветки:"
#: source/ubl-strings.h:68 #: source/ubl-strings.h:79
msgid "< Type branch name >" msgid "< Type branch name >"
msgstr "< Введите название ветки >" msgstr "< Введите название ветки >"
#: source/ubl-strings.h:80
msgid "Name must be filled!"
msgstr "Введите название!"
#: source/ubl-strings.h:81
#, fuzzy
msgid "Choose path for new repository"
msgstr "Выбрать расположение нового репозитория"

Loading…
Cancel
Save