Merge pull request 'master' (#1) from YanTheKaller/ubl-settings-usergroups:master into develop
Reviewed-on: #1pull/2/head
commit
b2d36243f4
@ -0,0 +1 @@
|
|||||||
|
.vscode/
|
||||||
@ -0,0 +1,154 @@
|
|||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
#SHELL := /bin/bash
|
||||||
|
MAKEFILE_FILEPATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||||
|
MAKEFILE_DIR := $(notdir $(patsubst %/,%,$(dir $(MAKEFILE_FILEPATH))))
|
||||||
|
MAKEFILE_PATH := $(dir $(MAKEFILE_FILEPATH))
|
||||||
|
|
||||||
|
CMAKE_COMMAND = cmake
|
||||||
|
CMAKE_SOURCE_DIR = $(MAKEFILE_PATH)source
|
||||||
|
CMAKE_BUILD_DIR = $(MAKEFILE_PATH)compile
|
||||||
|
#CMAKE_SOURCE_DIR = ./source
|
||||||
|
#CMAKE_BUILD_DIR = ./compile
|
||||||
|
FILE_VERSION = VERSION.md
|
||||||
|
DEPENDS = /bin/cmake
|
||||||
|
PREFIX ?= /usr
|
||||||
|
PKGNAME = $(MAKEFILE_DIR)
|
||||||
|
#PKGNAME = ubl-settings-manager
|
||||||
|
|
||||||
|
default_target: all
|
||||||
|
|
||||||
|
.PHONY: all init depend debug prepare check build uninstall install clean up_ver help
|
||||||
|
|
||||||
|
all: init build
|
||||||
|
|
||||||
|
init:
|
||||||
|
@echo "Initialize ..."; \
|
||||||
|
sed -r "s/(version_application = ).*/\1\"$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2)\";/" -i source/ubl-settings-usergroups.h; \
|
||||||
|
echo "-- Build path: ${CMAKE_BUILD_DIR}"
|
||||||
|
|
||||||
|
depend:
|
||||||
|
@echo "Check depends ..."
|
||||||
|
@for FILE_DEPEND in $(DEPENDS); do \
|
||||||
|
if [ ! -f $${FILE_DEPEND} ]; then \
|
||||||
|
echo "ERROR: Depend '$${FILE_DEPEND}' not found !"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
echo "Check depends: OK"
|
||||||
|
# $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
|
||||||
|
|
||||||
|
debug:
|
||||||
|
@echo "Debug ..."
|
||||||
|
if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
|
||||||
|
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \
|
||||||
|
fi; \
|
||||||
|
echo "Debug: OK"
|
||||||
|
|
||||||
|
prepare:
|
||||||
|
@echo "Prepare ..."; \
|
||||||
|
if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
|
||||||
|
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \
|
||||||
|
fi; \
|
||||||
|
echo "Prepare: OK"
|
||||||
|
|
||||||
|
check:
|
||||||
|
@echo "Check ..."; \
|
||||||
|
if [ -f ${CMAKE_BUILD_DIR}/${PKGNAME} ]; then \
|
||||||
|
echo "Check: OK"; \
|
||||||
|
else \
|
||||||
|
echo "Check: ${CMAKE_BUILD_DIR}/${PKGNAME} not found !"; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
build: depend prepare
|
||||||
|
@echo "Build ..."; \
|
||||||
|
make --directory=${CMAKE_BUILD_DIR}; \
|
||||||
|
echo "Build: OK"
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
@echo "Uninstall ..."
|
||||||
|
@for FILE_PO in $(wildcard *.po); do \
|
||||||
|
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
|
||||||
|
FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
|
||||||
|
PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
|
||||||
|
$(RM) "$${PATH_FILE_MO}"; \
|
||||||
|
done
|
||||||
|
@for SIZE in 16x16 32x32 48x48 scalable; do \
|
||||||
|
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
|
||||||
|
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.png"; \
|
||||||
|
done
|
||||||
|
@for FILE_SVG in $(wildcard *.svg); do \
|
||||||
|
for SIZE in 16x16 32x32 48x48 scalable; do \
|
||||||
|
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \
|
||||||
|
done; \
|
||||||
|
done
|
||||||
|
@$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}"
|
||||||
|
@$(RM) "${DESTDIR}${PREFIX}/share/applications/${PKGNAME}.desktop"
|
||||||
|
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg"
|
||||||
|
@$(RM) -rd "${DESTDIR}${PREFIX}/share/${PKGNAME}"
|
||||||
|
@if [ -z ${DESTDIR} ]; then \
|
||||||
|
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
|
||||||
|
update-desktop-database --quiet &>/dev/null || true; \
|
||||||
|
[ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
|
||||||
|
fi
|
||||||
|
@echo "Uninstall: OK"
|
||||||
|
|
||||||
|
install: check uninstall
|
||||||
|
@echo "Install ..."
|
||||||
|
@for FILE_PO in $(wildcard *.po); do \
|
||||||
|
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
|
||||||
|
install -dm755 "${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES"; \
|
||||||
|
FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
|
||||||
|
PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
|
||||||
|
echo "$${FILE_PO}"; \
|
||||||
|
msgfmt "$${FILE_PO}" -v -f -o "$${PATH_FILE_MO}"; \
|
||||||
|
done
|
||||||
|
@for SIZE in 16 32 48; do \
|
||||||
|
install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
|
||||||
|
rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
|
||||||
|
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 -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 -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}/css/" "${PKGNAME}.css"
|
||||||
|
@if [ -z ${DESTDIR} ]; then \
|
||||||
|
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
|
||||||
|
update-desktop-database --quiet &>/dev/null || true; \
|
||||||
|
[ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
|
||||||
|
fi
|
||||||
|
@echo "Install: OK"
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@echo "Clean ..."
|
||||||
|
@$(RM) -rd ${CMAKE_BUILD_DIR}
|
||||||
|
@if [ -d ${CMAKE_BUILD_DIR} ]; then \
|
||||||
|
echo "Clean: error, compile directory exist ${CMAKE_BUILD_DIR}"; \
|
||||||
|
else \
|
||||||
|
echo "Clean: OK"; \
|
||||||
|
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:
|
||||||
|
@echo "The following are some of the valid targets for this Makefile:"; \
|
||||||
|
echo "... all (the default if no target is provided)"; \
|
||||||
|
echo "... init"; \
|
||||||
|
echo "... debug"; \
|
||||||
|
echo "... prepare"; \
|
||||||
|
echo "... compile"; \
|
||||||
|
echo "... install"; \
|
||||||
|
echo "... uninstall"; \
|
||||||
|
echo "... clean"; \
|
||||||
|
echo "... up_ver"
|
||||||
@ -1,2 +1,28 @@
|
|||||||
# ubl-settings-usergroups
|
# ubl-settings-usergroups
|
||||||
|
# Выполнить
|
||||||
|
# Build
|
||||||
|
In order to build ubl-settings-manager you will need:
|
||||||
|
|
||||||
|
- CMake
|
||||||
|
- C compiler
|
||||||
|
- GTK+ 3 & dependencies
|
||||||
|
|
||||||
|
Once you have all the necessary dependencies, you can use:
|
||||||
|
```sh
|
||||||
|
$ make
|
||||||
|
```
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
After a successful build, just use:
|
||||||
|
```sh
|
||||||
|
$ sudo make install clean
|
||||||
|
```
|
||||||
|
|
||||||
|
# Uninstallation
|
||||||
|
After a successful build, just use:
|
||||||
|
```sh
|
||||||
|
$ sudo make uninstall
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1 @@
|
|||||||
|
VERSION 1.2
|
||||||
|
After Width: | Height: | Size: 210 KiB |
@ -0,0 +1,29 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.7)
|
||||||
|
project(ubl-settings-usergroups)
|
||||||
|
|
||||||
|
find_package(PkgConfig REQUIRED)
|
||||||
|
|
||||||
|
pkg_check_modules(GTK REQUIRED gtk+-3.0)
|
||||||
|
include_directories(${GTK_INCLUDE_DIRS})
|
||||||
|
link_directories(${GTK_LIBRARY_DIRS})
|
||||||
|
add_definitions(${GTK_CFLAGS_OTHER})
|
||||||
|
|
||||||
|
#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 \
|
||||||
|
-O2 -pipe -fno-plt -fexceptions \
|
||||||
|
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
|
||||||
|
-fstack-clash-protection -fcf-protection")
|
||||||
|
|
||||||
|
set(SOURCE_FILES
|
||||||
|
ubl-settings-usergroups.c
|
||||||
|
ubl-settings-usergroups.h)
|
||||||
|
|
||||||
|
set(LIBRARIES
|
||||||
|
${GTK_LIBRARIES}
|
||||||
|
pthread)
|
||||||
|
|
||||||
|
|
||||||
|
add_executable(ubl-settings-usergroups ${SOURCE_FILES})
|
||||||
|
target_link_libraries(ubl-settings-usergroups ${LIBRARIES})
|
||||||
|
install(TARGETS ubl-settings-usergroups DESTINATION bin)
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include "ubl-settings-usergroups.h"
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]){
|
||||||
|
gtk_init(&argc,&argv);
|
||||||
|
|
||||||
|
GtkBuilder *builder=gtk_builder_new_from_file(glade_path);
|
||||||
|
GtkWidget *window=GTK_WIDGET(gtk_builder_get_object(builder,"MainWindow"));
|
||||||
|
gtk_widget_show_all(window);
|
||||||
|
gtk_main();
|
||||||
|
}
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
#define glade_path "/usr/share/ubl-settings-usergroups/ui/ubl-settings-usergroups.glade"
|
||||||
@ -0,0 +1,143 @@
|
|||||||
|
.bannerbackground {
|
||||||
|
background-color: #404040;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thin{
|
||||||
|
padding:0px;
|
||||||
|
margin:0px;
|
||||||
|
transition: 0ms ease-out;
|
||||||
|
}
|
||||||
|
.thin:active {
|
||||||
|
background-color: @theme_selected_bg_color;
|
||||||
|
transition: 10ms ease-out;
|
||||||
|
}
|
||||||
|
.transparent {
|
||||||
|
background:none;
|
||||||
|
border:none;
|
||||||
|
transition: 0ms ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
#GnomeIcon{
|
||||||
|
border-style:solid;
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
border-image: linear-gradient(90deg, alpha(@theme_text_color,0.4) 55%, alpha(@theme_bg_color, 0) 100%);
|
||||||
|
border-image-slice: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#SepIcon{
|
||||||
|
background-color: alpha(@theme_text_color, 0.6);
|
||||||
|
}
|
||||||
|
|
||||||
|
#iconlabel {
|
||||||
|
font-size:14px;
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
|
}
|
||||||
|
.roundborder > * {
|
||||||
|
border-width:0px;
|
||||||
|
}
|
||||||
|
.roundborder:backdrop > * {
|
||||||
|
border-width:0px;
|
||||||
|
border-radius:5px;
|
||||||
|
}
|
||||||
|
.noborder {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menuitembottom{
|
||||||
|
margin-top:0px;
|
||||||
|
margin-bottom:3px;
|
||||||
|
border-color:inherit;
|
||||||
|
border-left-width:inherit;
|
||||||
|
border-right-width:inherit;
|
||||||
|
}
|
||||||
|
.menuitemmiddle{
|
||||||
|
margin-top:0px;
|
||||||
|
margin-bottom:0px;
|
||||||
|
border-color:inherit;
|
||||||
|
border-left-width:inherit;
|
||||||
|
border-right-width:inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menuitemtop{
|
||||||
|
margin-bottom:0px;
|
||||||
|
border-color:inherit;
|
||||||
|
border-top-width:inherit;
|
||||||
|
border-left-width:inherit;
|
||||||
|
border-right-width:inherit;
|
||||||
|
}
|
||||||
|
.menuitemtop *{
|
||||||
|
margin:2px 2px 0 2px;
|
||||||
|
padding: 5px 10px 3px 5px;
|
||||||
|
border:transparent;
|
||||||
|
}
|
||||||
|
.menuitemmiddle *{
|
||||||
|
margin:0 2px 0 2px;
|
||||||
|
padding: 3px 10px 3px 5px;
|
||||||
|
border:transparent;
|
||||||
|
}
|
||||||
|
.menuitembottom *{
|
||||||
|
margin:0 2px 2px 2px;
|
||||||
|
padding: 3px 10px 5px 5px;
|
||||||
|
}
|
||||||
|
.menuitemtop:hover {
|
||||||
|
background:@theme_bg_color;
|
||||||
|
border-color:inherit;
|
||||||
|
border-top-width:inherit;
|
||||||
|
border-left-width:inherit;
|
||||||
|
border-right-width:inherit;
|
||||||
|
}
|
||||||
|
.menuitemmiddle:hover {
|
||||||
|
background:@theme_bg_color;
|
||||||
|
border-color:inherit;
|
||||||
|
border-left-width:inherit;
|
||||||
|
border-right-width:inherit;
|
||||||
|
}
|
||||||
|
.menuitembottom:hover {
|
||||||
|
background:@theme_bg_color;
|
||||||
|
border-color:inherit;
|
||||||
|
border-bottom-width:0px;
|
||||||
|
border-left-width:inherit;
|
||||||
|
border-right-width:inherit;
|
||||||
|
|
||||||
|
}
|
||||||
|
.menuitemtop:hover* {
|
||||||
|
margin:2px 2px 0 2px;
|
||||||
|
padding: 5px 10px 3px 5px;
|
||||||
|
background:@theme_selected_bg_color;
|
||||||
|
border-radius:2px;
|
||||||
|
}
|
||||||
|
.menuitemmiddle:hover* {
|
||||||
|
margin:0 2px 0 2px;
|
||||||
|
padding: 3px 10px 3px 5px;
|
||||||
|
background:@theme_selected_bg_color;
|
||||||
|
border-radius:2px;
|
||||||
|
}
|
||||||
|
.menuitembottom:hover* {
|
||||||
|
margin:0 2px 2px 2px;
|
||||||
|
padding: 3px 10px 5px 5px;
|
||||||
|
background:@theme_selected_bg_color;
|
||||||
|
border-radius:2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.workingbg, #workingbg {
|
||||||
|
background-color:@theme_base_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.workingbg.view.cell:selected {
|
||||||
|
background-color:@theme_selected_bg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.workingbg.view.cell:hover {
|
||||||
|
background-color:darker(@theme_selected_bg_color);
|
||||||
|
color:@theme_selected_text_color;
|
||||||
|
border-radius:3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bkim {
|
||||||
|
transition: 200ms ease-out;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=ubl-settings-usergroups
|
||||||
|
Name[ru]=Настройки пользователей и групп
|
||||||
|
GenericName=ubl-settings-usergroups
|
||||||
|
GenericName[ru]=Настройки пользователей и групп
|
||||||
|
Comment=ubl-settings-usergroups
|
||||||
|
Comment[ru]=Приложение для управления настройками пользователей и групп
|
||||||
|
Type=Application
|
||||||
|
Exec=ubl-settings-usergroups
|
||||||
|
Icon=com.ublinux.ubl-settings-usergroups
|
||||||
|
Terminal=false
|
||||||
|
X-XfcePluggable=true
|
||||||
|
X-UBLPluggable=true
|
||||||
|
Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue