parent
de96957bc0
commit
70c38db5cb
@ -0,0 +1,9 @@
|
|||||||
|
.vscode/
|
||||||
|
ubl-settings-TEMPLATE
|
||||||
|
*~
|
||||||
|
build/
|
||||||
|
compile/
|
||||||
|
*#
|
||||||
|
terminal-commands/
|
||||||
|
source/ubl-cmake.h
|
||||||
|
vgcore*
|
@ -0,0 +1,168 @@
|
|||||||
|
#!/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
|
||||||
|
DEPENDS = /bin/cmake
|
||||||
|
PREFIX ?= /usr
|
||||||
|
PKGNAME = $(MAKEFILE_DIR)
|
||||||
|
#PKGNAME = ubl-settings-manager
|
||||||
|
LATEST_TAG=
|
||||||
|
default_target: all
|
||||||
|
|
||||||
|
.PHONY: all init depend debug prepare check build uninstall install clean help
|
||||||
|
|
||||||
|
all: init build
|
||||||
|
|
||||||
|
init:
|
||||||
|
@echo "Initialize ..."; \
|
||||||
|
if [ -d ".git" ]; then \
|
||||||
|
LATEST_TAG=$$(git describe --tags | sed 's/^v//'|grep -oE "^[0-9]{1,}.[0-9]{1,}"); \
|
||||||
|
else \
|
||||||
|
LATEST_TAG="0.0"; \
|
||||||
|
fi; \
|
||||||
|
sed -r "s/^(string version_application).*/\1=\"$${LATEST_TAG}\";/" -i source/${PKGNAME}.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: init build
|
||||||
|
@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 "${CMAKE_BUILD_DIR}/${PKGNAME}"; \
|
||||||
|
cp ${CMAKE_BUILD_DIR}/${PKGNAME} ./; \
|
||||||
|
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) "${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/polkit-1/actions/com.ublinux.${PKGNAME}.policy"
|
||||||
|
@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 ..."
|
||||||
|
#################################################### УДАЛИТЬ ПЕРЕД КОММИТОМ ################################################################################
|
||||||
|
@gcc source/ubl-cmake.h compile/resources.c compile/ubl-cmake.h source/controler.h source/controler.c source/model/philos_utils.h source/model/philos_utils.c source/model/my_device.h source/model/save.h source/model/save.c source/model/my_device.c source/model/model.h source/model/load.h source/model/load.c source/model/model.c source/ubl-settings-diskquota.c source/ubl-settings-diskquota.h source/ubl-strings.h source/model/ubl-utils.c source/model/ubl-utils.h -o ubl-settings-diskquota `pkg-config --cflags --libs gtk+-3.0 vte-2.91 webkit2gtk-4.0 webkit2gtk-web-extension-4.0` -g
|
||||||
|
#################################################### УДАЛИТЬ ПЕРЕД КОММИТОМ ################################################################################
|
||||||
|
@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 "${DESTDIR}${PREFIX}/share/polkit-1/actions"
|
||||||
|
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/polkit-1/actions/" "com.ublinux.${PKGNAME}.policy"
|
||||||
|
@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/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}.funnel.svg"
|
||||||
|
@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"
|
||||||
|
@sed -r "s/^(string version_application=\"*\").*/string version_application;/" -i source/${PKGNAME}.h; \
|
||||||
|
|
||||||
|
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"
|
@ -0,0 +1,29 @@
|
|||||||
|
# ubl-settings-diskquota
|
||||||
|
# Выполнить
|
||||||
|
# Build
|
||||||
|
In order to build ubl-settings-diskquota you will need:
|
||||||
|
|
||||||
|
- CMake
|
||||||
|
- C compiler
|
||||||
|
- GTK+ 3 & dependencies
|
||||||
|
- webkit2gtk (optional)
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 218 KiB |
After Width: | Height: | Size: 2.1 KiB |
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<gresources>
|
||||||
|
<gresource prefix="/com/ublinux/ui">
|
||||||
|
<file>ubl-settings-diskquota.glade</file>
|
||||||
|
</gresource>
|
||||||
|
<gresource prefix="/com/ublinux/css">
|
||||||
|
<file>ubl-settings-diskquota.css</file>
|
||||||
|
</gresource>
|
||||||
|
<gresource prefix="/com/ublinux/images">
|
||||||
|
<file>ubl-settings-diskquota-banner.png</file>
|
||||||
|
</gresource>
|
||||||
|
</gresources>
|
After Width: | Height: | Size: 76 KiB |
@ -0,0 +1,108 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.7)
|
||||||
|
project(ubl-settings-diskquota)
|
||||||
|
|
||||||
|
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})
|
||||||
|
|
||||||
|
#pkg_check_modules(VTE291 REQUIRED vte-2.91)
|
||||||
|
#include_directories(${VTE291_INCLUDE_DIRS})
|
||||||
|
#link_directories(${VTE291_LIBRARY_DIRS})
|
||||||
|
#add_definitions(${VTE291_CFLAGS_OTHER})
|
||||||
|
|
||||||
|
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
|
||||||
|
|
||||||
|
option(WEBKIT_FOUND "No" OFF)
|
||||||
|
if(WEBKIT_LIBRARIES_FOUND)
|
||||||
|
option(WEBKIT_FOUND "Yes" ON)
|
||||||
|
PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
|
||||||
|
include_directories(${WEBKIT_INCLUDE_DIRS})
|
||||||
|
link_directories(${WEBKIT_LIBRARY_DIRS})
|
||||||
|
add_definitions(${WEBKIT_CFLAGS_OTHER})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
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-diskquota.glade)
|
||||||
|
|
||||||
|
set(DEPENDFILES
|
||||||
|
../ubl-settings-diskquota.glade
|
||||||
|
../gresource.xml
|
||||||
|
../ubl-settings-diskquota-banner.png
|
||||||
|
../ubl-settings-diskquota.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 -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
|
||||||
|
controler.h
|
||||||
|
controler.c
|
||||||
|
ubl-strings.h
|
||||||
|
model/ubl-utils.h
|
||||||
|
model/ubl-utils.c
|
||||||
|
model/model.h
|
||||||
|
model/model.c
|
||||||
|
model/load.h
|
||||||
|
model/load.c
|
||||||
|
model/my_device.h
|
||||||
|
model/my_device.c
|
||||||
|
model/philos_utils.h
|
||||||
|
model/philos_utils.c
|
||||||
|
model/save.h
|
||||||
|
model/save.c
|
||||||
|
ubl-settings-diskquota.c
|
||||||
|
ubl-settings-diskquota.h
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h
|
||||||
|
)
|
||||||
|
|
||||||
|
set(LIBRARIES
|
||||||
|
${GTK_LIBRARIES}
|
||||||
|
${WEBKIT_LIBRARIES}
|
||||||
|
# ${VTE291_LIBRARIES}
|
||||||
|
pthread)
|
||||||
|
|
||||||
|
|
||||||
|
add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C})
|
||||||
|
target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES})
|
||||||
|
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR})
|
||||||
|
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)
|
@ -0,0 +1,174 @@
|
|||||||
|
#include "controler.h"
|
||||||
|
|
||||||
|
void fill_tree_view_u_g_p(custom_window* _config_gui, config_u_g_p* _config, int start, int flag_gui_add) {
|
||||||
|
GtkTreeModel *model = GTK_TREE_MODEL(_config_gui->list);
|
||||||
|
if (flag_gui_add == 0) {
|
||||||
|
g_object_ref(_config_gui->list);
|
||||||
|
gtk_list_store_clear(_config_gui->list);
|
||||||
|
}
|
||||||
|
for (int index = start; index < _config->size; index++) {
|
||||||
|
GtkTreeIter iter;
|
||||||
|
gtk_list_store_append(_config_gui->list,&iter);
|
||||||
|
if (strcmp(_config->type_arr[index], "project") != 0) {
|
||||||
|
gtk_list_store_set(_config_gui->list,&iter,
|
||||||
|
0,_config->name[index],
|
||||||
|
1,_config->quota[index],
|
||||||
|
2,_config->files[index],
|
||||||
|
3,philos_format_cfg_str_size_memory("", _config->soft_restriction_size[index],_config->soft_restriction_size_pow[index]),
|
||||||
|
4,philos_format_cfg_str_size_memory("", _config->soft_restriction_file[index],_config->soft_restriction_file_pow[index]),
|
||||||
|
5,philos_format_cfg_str_size_memory("", _config->severe_limitation_size[index],_config->severe_limitation_size_pow[index]),
|
||||||
|
6,philos_format_cfg_str_size_memory("", _config->severe_limitation_file[index], _config->severe_limitation_file_pow[index]),
|
||||||
|
7,philos_format_cfg_str_size_memory("", _config->deferring_size[index], _config->deferring_size_pow[index]),
|
||||||
|
8,philos_format_cfg_str_size_memory("", _config->deferring_file[index], _config->deferring_file_pow[index]),
|
||||||
|
-1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
gtk_list_store_set(_config_gui->list,&iter,
|
||||||
|
0,_config->id[index],
|
||||||
|
1,_config->name[index],
|
||||||
|
2,_config->quota[index],
|
||||||
|
3,_config->files[index],
|
||||||
|
4,philos_format_cfg_str_size_memory("", _config->soft_restriction_size[index],_config->soft_restriction_size_pow[index]),
|
||||||
|
5,philos_format_cfg_str_size_memory("", _config->soft_restriction_file[index],_config->soft_restriction_file_pow[index]),
|
||||||
|
6,philos_format_cfg_str_size_memory("", _config->severe_limitation_size[index],_config->severe_limitation_size_pow[index]),
|
||||||
|
7,philos_format_cfg_str_size_memory("", _config->severe_limitation_file[index], _config->severe_limitation_file_pow[index]),
|
||||||
|
8,philos_format_cfg_str_size_memory("", _config->deferring_size[index], _config->deferring_size_pow[index]),
|
||||||
|
9,philos_format_cfg_str_size_memory("", _config->deferring_file[index], _config->deferring_file_pow[index]),
|
||||||
|
-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (flag_gui_add != 0) {
|
||||||
|
gtk_tree_view_set_model(GTK_TREE_VIEW(_config_gui->treeViewMain), model);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void fill_tree_view_u_g(custom_window* _config_gui, config_u_g_p* _config, int start,int flag_gui_add) {
|
||||||
|
GtkTreeModel *model = GTK_TREE_MODEL(_config_gui->list);
|
||||||
|
if (flag_gui_add == 0) {
|
||||||
|
g_object_ref(_config_gui->list);
|
||||||
|
gtk_list_store_clear(_config_gui->list);
|
||||||
|
}
|
||||||
|
for (int index = start; index < _config->size; index++) {
|
||||||
|
GtkTreeIter iter;
|
||||||
|
gtk_list_store_append(_config_gui->list,&iter);
|
||||||
|
if (strcmp(_config->type_arr[index], "project") != 0) { // Баг
|
||||||
|
gtk_list_store_set(_config_gui->list,&iter, -1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (flag_gui_add != 0) {
|
||||||
|
gtk_tree_view_set_model(GTK_TREE_VIEW(_config_gui->treeViewMain), model);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void load_system_cfg() {
|
||||||
|
cfg_u_g_p->flag_load = 0;
|
||||||
|
load_template_load_cfg(cfg_u_g_p, CMD_LOAD_SYSTEM);
|
||||||
|
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL, BACKGROUND_IMAGE_SUCCESS_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void load_global_cfg() {
|
||||||
|
cfg_u_g_p->flag_load = 1;
|
||||||
|
load_template_load_cfg(cfg_u_g_p, CMD_LOAD_GLOBAL);
|
||||||
|
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void control_event(main_window* _config_main_gui, custom_window* _config_custom_gui) {
|
||||||
|
g_signal_connect(G_OBJECT(_config_main_gui->LoadLocalMenuItem), "activate", G_CALLBACK(load_system_cfg), NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]){
|
||||||
|
local=setlocale(LC_ALL, "");
|
||||||
|
textdomain (LocaleName);
|
||||||
|
config_init();
|
||||||
|
int option_index=0;
|
||||||
|
int show_help=0;
|
||||||
|
int debug_mode=0;
|
||||||
|
{
|
||||||
|
struct option long_options[] = {
|
||||||
|
{"help", 0, 0, 'h'},
|
||||||
|
{"version", 0, 0, 'V'},
|
||||||
|
{"lock-help", 0,0, 1},
|
||||||
|
{"lock-save", 0,0, 2},
|
||||||
|
{"lock-save-local", 0,0, 3},
|
||||||
|
{"lock-save-global", 0,0, 4},
|
||||||
|
{"lock-load-global", 0,0, 5},
|
||||||
|
{"socket-id", 1, 0, 's'},
|
||||||
|
{"socket-ext-id", 1,0, 'e'},
|
||||||
|
{"socket-trd-id", 1,0, 't'},
|
||||||
|
{"debug", 0,0, 'd'},
|
||||||
|
{ NULL, 0, NULL, 0 }
|
||||||
|
};
|
||||||
|
for (int i=0;i<argc;i++){
|
||||||
|
int argument=getopt_long(argc,argv,"hVvs:e:t:d",long_options,&option_index);
|
||||||
|
switch(argument){
|
||||||
|
case 'h':
|
||||||
|
show_help=1;
|
||||||
|
break;
|
||||||
|
case 'v':
|
||||||
|
case 'V':
|
||||||
|
printf("%s\n",VERSION_LABEL);
|
||||||
|
exit(0);
|
||||||
|
break;
|
||||||
|
case 's':
|
||||||
|
if(optarg)
|
||||||
|
main_config.socket_id=atoi(optarg);
|
||||||
|
break;
|
||||||
|
case 'e':
|
||||||
|
if(optarg)
|
||||||
|
main_config.load_socket_id=atoi(optarg);
|
||||||
|
break;
|
||||||
|
case 't':
|
||||||
|
if(optarg)
|
||||||
|
main_config.save_socket_id=atoi(optarg);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
main_config.lock_help=1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
main_config.lock_save_local=1;
|
||||||
|
main_config.lock_save_global=1;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
main_config.lock_save_local=1;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
main_config.lock_save_global=1;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
main_config.lock_load_global=1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (show_help==1&&main_config.lock_help!=1){
|
||||||
|
printf("%s\n",HELP_LABEL);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
|
||||||
|
main_window *widgets = setup_window(cfg_main_gui);
|
||||||
|
//control_event(&cfg_main_gui, &cfg_custom_gui);
|
||||||
|
yon_ubl_header_setup_resource(widgets->HeadOverlay,widgets->HeadBox,widgets->HeadImage,banner_path);
|
||||||
|
|
||||||
|
yon_ubl_status_box_setup(widgets->StatusIcon,widgets->StatusBox,widgets->StatusLabel);
|
||||||
|
if (getuid()!=0)
|
||||||
|
yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
||||||
|
else
|
||||||
|
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_window_config_setup(GTK_WINDOW(widgets->Window));
|
||||||
|
yon_window_config_load(config_path);
|
||||||
|
GtkCssProvider *css=gtk_css_provider_new();
|
||||||
|
gtk_css_provider_load_from_resource(css,CssPath);
|
||||||
|
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
|
||||||
|
GTK_STYLE_PROVIDER(css),
|
||||||
|
-1);
|
||||||
|
gtk_main();
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
#include "ubl-settings-diskquota.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]);
|
||||||
|
void load_global_cfg();
|
||||||
|
void load_system_cfg();
|
||||||
|
void control_event(main_window* _config_main_gui, custom_window* _config_custom_gui);
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,127 @@
|
|||||||
|
#ifndef PHILOS_UTILS_H
|
||||||
|
#define PHILOS_UTILS_H
|
||||||
|
#include "ubl-utils.h"
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <dirent.h>
|
||||||
|
#include <locale.h>
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <gtk/gtkx.h>
|
||||||
|
#ifdef VTE_TERMINAL
|
||||||
|
#include <vte/vte.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <pwd.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include "my_device.h"
|
||||||
|
|
||||||
|
#define catch(x) ExitJmp:if(__HadError)
|
||||||
|
#define throw(x) {__HadError=true;goto ExitJmp;}
|
||||||
|
#define file_source_login_min_max "/etc/login.defs"
|
||||||
|
static char** array_size_pow;
|
||||||
|
typedef struct {
|
||||||
|
char** disk_read;
|
||||||
|
char** disk_write;
|
||||||
|
int* i_o_limit_read;
|
||||||
|
int* i_o_limit_write;
|
||||||
|
int* i_o_limit_read_size;
|
||||||
|
int* i_o_limit_write_size;
|
||||||
|
int size;
|
||||||
|
int size_disk;
|
||||||
|
} temp_config;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
|
||||||
|
GtkWidget* Window;
|
||||||
|
GtkWidget* btnSaveTempSave;
|
||||||
|
GtkWidget* btnTempCancel;
|
||||||
|
|
||||||
|
GtkWidget* entryTempCmd;
|
||||||
|
GtkWidget* chbTempRead;
|
||||||
|
GtkWidget* spinTempRead;
|
||||||
|
GtkWidget* cbtTempRead;
|
||||||
|
|
||||||
|
GtkWidget* chbTempWrite;
|
||||||
|
GtkWidget* spinTempWrite;
|
||||||
|
GtkWidget* cbtTempWrite;
|
||||||
|
|
||||||
|
GtkWidget* chkSoftRestrictionTemp;
|
||||||
|
GtkWidget* spiSevereRestrictionTemp;
|
||||||
|
GtkWidget* cmSevereRestrictionTemp;
|
||||||
|
|
||||||
|
GtkWidget* chkSevereRestrictionTemp;
|
||||||
|
GtkWidget* spinSevereRestrictionTemp;
|
||||||
|
GtkWidget* cmbSevereRestrictionTemp;
|
||||||
|
|
||||||
|
GtkWidget* chkPaddingFLTemp;
|
||||||
|
GtkWidget* spinPaddingFLTemp;
|
||||||
|
GtkWidget* cmbPaddingFLTemp;
|
||||||
|
|
||||||
|
GtkWidget* chkCPULimitTemp;
|
||||||
|
GtkWidget* spinCPULimitTemp;
|
||||||
|
GtkWidget* lblCPULimitTemp;
|
||||||
|
|
||||||
|
GtkWidget* cbtTempDevice;
|
||||||
|
GtkWidget* cbxTempQuotaObj;
|
||||||
|
GtkWidget* cbxTempQuotaLevel2;
|
||||||
|
GtkWidget* boxBlockGui;
|
||||||
|
} temp_set_window;
|
||||||
|
void philos_array_string_remove_char(char*** array, char* str_remove, int size);
|
||||||
|
void philos_set_pow_size_memory(char* str_find, int** array_size,int index, char** array_size_pow);
|
||||||
|
void philos_set_size_memory_integer_char(char* str_find, char*** array_data, int index);
|
||||||
|
void philos_free_string_array(char ***array, int size);
|
||||||
|
void philos_free_string_array_n3(char ****array, int size);
|
||||||
|
void philos_free_int_array(int **array, int size);
|
||||||
|
void philos_free_int_array_n2(int ***array, int size);
|
||||||
|
config_str philos_list_group(int* size);
|
||||||
|
unsigned short philos_read_uid_min_max(char* filename, char* search);
|
||||||
|
config_str philos_list_user(int* size);
|
||||||
|
char* philos_str_size_pow_byte(GtkWidget *combo_box_text);
|
||||||
|
char* philos_str_remove(char *str, const char *sub);
|
||||||
|
void philos_split_size_memory(char* str_value, int* size, char* pow_memory);
|
||||||
|
char* philos_format_cfg_str_size_memory(char* str_key, int value, int pow_size_memory);
|
||||||
|
char** philos_str_split(char *parameters, int *size, char *divider);
|
||||||
|
void philos_array_str_copy(char*** source, char*** copy);
|
||||||
|
void philos_set_pow_size_memory_device(char* str_find, int** array_size,int index, char** array_size_pow);
|
||||||
|
void philos_array_int_copy(int** source, int** copy);
|
||||||
|
char** philos_pars_terminal_systemd_cgls(char* CMD_GET_SLICE_SERVICE, char* str_find, int* size_array_data);
|
||||||
|
char* philos_pard_array_add_cmd(char* cmd, temp_config* _config, char* key, int* array_io, int* array_io_pow_size, char** disk, int size);
|
||||||
|
int philos_check_activ_disk(temp_set_window *widgets, temp_config* _config);
|
||||||
|
void philos_temp_generate_cmd(temp_set_window *widgets, temp_config* _config);
|
||||||
|
void philos_temp_del_disk(temp_set_window *widgets, temp_config* _config, int flag_check_array);
|
||||||
|
void philos_temp_config_init(temp_config* _config);
|
||||||
|
void philos_update_device_to_entry(temp_set_window *widgets, temp_config* _config, int flag_check_array);
|
||||||
|
void philos_temp_add_disk(temp_set_window *widgets, temp_config* _config, int flag_check_array);
|
||||||
|
int* philos_int_append(int* array, int* size, int value);
|
||||||
|
int* remove_element_int_array(int* array, int* size, int item_to_delete);
|
||||||
|
int** remove_element_int_array_n3(int** array, int* size, int item_to_delete);
|
||||||
|
char* philos_get_size_bite(GtkWidget* chk_button, GtkWidget* spin, GtkWidget* combo_box_text);
|
||||||
|
void philos_fill_combo_box_text(GtkWidget *cbt, config_str list_data, int size);
|
||||||
|
void philos_set_spin_adjustment(GtkWidget *check, GtkWidget *spin, GtkWidget *combo, size_t value);
|
||||||
|
void philos_set_active_widgets(GtkWidget *check, GtkWidget *spin, GtkWidget *combo, int flag_cpu, char* cmd);
|
||||||
|
size_t get_resurs_total(char* cmd);
|
||||||
|
float get_size_pow_memory(size_t size_memory, int size);
|
||||||
|
void philos_set_active_widgets_device_io(GtkWidget* combo_to_l2,GtkWidget *check, GtkWidget *spin, GtkWidget *combo);
|
||||||
|
char *yon_char_get_augumented(char *source, char *append);
|
||||||
|
dictionary *yon_dictionary_create_with_data_connected(dictionary *dict, char *key, void *data);
|
||||||
|
char **yon_char_parsed_shrink(char **char_string, int *size, int item_to_delete);
|
||||||
|
char*** yon_char_parsed_shrink_n3(char ***char_string, int *size, int item_to_delete);
|
||||||
|
dictionary *yon_dictionary_create_empty();
|
||||||
|
void yon_terminal_integrated_launch(GtkWidget *terminal, char* command, void *endwork_function, void* endwork_function_argument);
|
||||||
|
dictionary *yon_dictionary_create_conneced(dictionary *targetdict);
|
||||||
|
void yon_int_array_append(int **source, int append);
|
||||||
|
#ifdef VTE_TERMINAL
|
||||||
|
static void child_ready(VteTerminal *terminal, GPid pid, GError *error, gpointer user_data);
|
||||||
|
#endif
|
||||||
|
int philos_config_save(char *command);
|
||||||
|
void philos_array_int_pars_to(int** array, int to);
|
||||||
|
void philos_array_char_pars_to(char*** array, char* to);
|
||||||
|
int find_null_array(temp_config* _config);
|
||||||
|
void init_device_disk(temp_config* _config);
|
||||||
|
char** philos_char_parsed_append(char** parsed, int *size, char *string);
|
||||||
|
void philos_set_size_memory_integer(char* str_find, int** array_data, int index);
|
||||||
|
#endif
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
|||||||
|
#cmakedefine WEBKIT_FOUND
|
@ -0,0 +1,62 @@
|
|||||||
|
#include <locale.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <gtk/gtkx.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
#define _(String) gettext(String)
|
||||||
|
|
||||||
|
|
||||||
|
#define HELP_LABEL yon_char_unite(_("ubl-settings-diskquota version:")," ", version_application,"\n",_(""),"\n",_("Usage:"), " ubl-settings-diskquota ",_("[OPTIONS]"),"\n",_("Options:"),"\n\t--help, -h\t\t\t",_("Show this help"),"\n\t--version, -V\t\t\t",_("Show package version"),"\n\t--lock-help\t\t\t",_("Lock this help menu"),"\n\t--lock-save\t\t\t",_("Lock configuration saving"),"\n\t--lock-save-local\t\t",_("Lock local configration saving"),"\n\t--lock-save-global\t\t",_("Lock global configration saving"),"\n\t--lock-load-global\t\t",_("Lock global configration loading"),"\n",NULL)
|
||||||
|
|
||||||
|
#define TITLE_LABEL _("")
|
||||||
|
#define TITLE_INFO_LABEL _("")
|
||||||
|
|
||||||
|
#define SUCCESS_LABEL _("Operation succeeded")
|
||||||
|
#define ROOT_WARNING_LABEL _("Warning! Application was launched without root - root-dependent actions are locked")
|
||||||
|
|
||||||
|
#define ABOUT_LABEL _("About")
|
||||||
|
#define DOCUMENTATION_LABEL _("Documentation")
|
||||||
|
|
||||||
|
#define SAVE_LOCAL_LABEL _("Save to local configuration")
|
||||||
|
#define SAVE_GLOBAL_LABEL _("Save to global configuration")
|
||||||
|
#define SAVE_CONFIGURATION_LABEL _("Save configuration")
|
||||||
|
#define SAVE_LABEL _("Save")
|
||||||
|
|
||||||
|
#define LOAD_LOCAL_LABEL _("Load local configuration")
|
||||||
|
#define LOAD_GLOBAL_LABEL _("Load global configuration")
|
||||||
|
#define LOAD_LABEL _("Load")
|
||||||
|
|
||||||
|
#define CANCEL_LABEL _("Cancel")
|
||||||
|
|
||||||
|
#define HELP_TITLE_LABEL _("Would you like to read documentation in the Web?")
|
||||||
|
#define HELP_INFO_LABEL _("You will be redirected to documentation website where documentation is\ntranslated and supported by community.")
|
||||||
|
#define HELP_ALWAYS_OPEN_LABEL _("Always redirect to online documentation")
|
||||||
|
#define OPEN_HELP_LABEL _("Open documentation")
|
||||||
|
#define PROJECT_HOME_LABEL _("Project Home Page")
|
||||||
|
#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 STR_KB _("Kb")
|
||||||
|
#define STR_MB _("Mb")
|
||||||
|
#define STR_GB _("Gb")
|
||||||
|
#define STR_TB _("Tb")
|
||||||
|
|
||||||
|
|
||||||
|
#define CMD_LOAD_GLOBAL "ubconfig --default --source global get security DISK_QUOTA[*]"
|
||||||
|
#define CMD_LOAD_SYSTEM "ubconfig --default --source system get security DISK_QUOTA[*]"
|
||||||
|
#define CMD_SAVE_GLOBAL "ubconfig --default --target global set security"
|
||||||
|
#define CMD_SAVE_SYSTEM "ubconfig --default --target system set security"
|
||||||
|
#define CMD_ALL_SAVE "ubconfig set security "
|
||||||
|
#define CMD_ALL_REMOVE "ubconfig remove security "
|
||||||
|
#define CMD_REMOVE_GLOBAL "ubconfig --target global --noexecute remove security "
|
||||||
|
#define CMD_REMOVE_SYSTEM "ubconfig --target system remove security "
|
@ -0,0 +1,109 @@
|
|||||||
|
#include "filters.h"
|
||||||
|
|
||||||
|
filters_window *filters_widgets = NULL;
|
||||||
|
gboolean flag_filters[8];
|
||||||
|
filters_window *filters_setup_window(char* glade_path){
|
||||||
|
if (filters_widgets == NULL) {
|
||||||
|
filters_widgets = malloc(sizeof(filters_window));
|
||||||
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
|
||||||
|
filters_widgets->Window = yon_gtk_builder_get_widget(builder,"wndFilters");
|
||||||
|
filters_widgets->chbFilterName = yon_gtk_builder_get_widget(builder,"chbFilterName");
|
||||||
|
filters_widgets->chbFilterSoftLimitFile = yon_gtk_builder_get_widget(builder,"chbFilterSoftLimitFile");
|
||||||
|
filters_widgets->chbFilterFiles = yon_gtk_builder_get_widget(builder,"chbFilterFiles");
|
||||||
|
filters_widgets->chbFilterHardLimitSizeDelay = yon_gtk_builder_get_widget(builder,"chbFilterHardLimitSizeDelay");
|
||||||
|
filters_widgets->chbFilterHardLimitSize = yon_gtk_builder_get_widget(builder,"chbFilterHardLimitSize");
|
||||||
|
filters_widgets->chbFilterSoftLimitSize = yon_gtk_builder_get_widget(builder,"chbFilterSoftLimitSize");
|
||||||
|
filters_widgets->chbFilterQuotas = yon_gtk_builder_get_widget(builder,"chbFilterQuotas");
|
||||||
|
filters_widgets->chbFilterSize = yon_gtk_builder_get_widget(builder,"chbFilterSize");
|
||||||
|
filters_widgets->btnFiltersCancel = yon_gtk_builder_get_widget(builder,"btnFiltersCancel");
|
||||||
|
filters_widgets->btnFiltersSave = yon_gtk_builder_get_widget(builder,"btnFiltersSave");
|
||||||
|
filters_widgets->chbFilterHardLimitFile = yon_gtk_builder_get_widget(builder,"chbFilterHardLimitFile");
|
||||||
|
filters_widgets->chbFilterHardLimitFileDelay = yon_gtk_builder_get_widget(builder,"chbFilterHardLimitFileDelay");
|
||||||
|
filters_widgets->chbTemplate = yon_gtk_builder_get_widget(builder,"chbTemplate");
|
||||||
|
if (filters_widgets->name == "Project") {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
filters_event(filters_widgets);
|
||||||
|
}
|
||||||
|
filters_set_flag();
|
||||||
|
return filters_widgets;
|
||||||
|
}
|
||||||
|
void filters_set_name(string name) {
|
||||||
|
if (name == "Project") {
|
||||||
|
filters_widgets->name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void filters_event(filters_window *widgets) {
|
||||||
|
g_signal_connect(G_OBJECT(widgets->btnFiltersCancel), "clicked",G_CALLBACK(filters_on_hide_subwindow),NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(filters_destroy), NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void filters_destroy(GtkWidget *self) {
|
||||||
|
filters_widgets = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void filters_localization(filters_window *widgets) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void filters_on_hide_subwindow(GtkWidget *self) {
|
||||||
|
gtk_widget_destroy(gtk_widget_get_toplevel(self));
|
||||||
|
filters_widgets = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
filters_window *get_widget_filters() {
|
||||||
|
return filters_widgets;
|
||||||
|
}
|
||||||
|
|
||||||
|
void filters_show(GtkWidget *self, char* glade_path) {
|
||||||
|
if (filters_widgets != NULL) {
|
||||||
|
gtk_widget_show_all(filters_widgets->Window);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
filters_setup_window(glade_path);
|
||||||
|
gtk_widget_show_all(filters_widgets->Window);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean* filters_get_flag() {
|
||||||
|
flag_filters[0] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterName));
|
||||||
|
flag_filters[1] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitFile));
|
||||||
|
flag_filters[2] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterFiles));
|
||||||
|
flag_filters[3] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSizeDelay));
|
||||||
|
flag_filters[4] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSize));
|
||||||
|
flag_filters[5] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterQuotas));
|
||||||
|
flag_filters[6] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitSize));
|
||||||
|
flag_filters[7] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSize));
|
||||||
|
flag_filters[8] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFile));
|
||||||
|
flag_filters[9] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFileDelay));
|
||||||
|
return flag_filters;
|
||||||
|
}
|
||||||
|
|
||||||
|
void filters_init_flag() {
|
||||||
|
flag_filters[0] = 1;
|
||||||
|
flag_filters[1] = 1;
|
||||||
|
flag_filters[2] = 1;
|
||||||
|
flag_filters[3] = 1;
|
||||||
|
flag_filters[4] = 1;
|
||||||
|
flag_filters[5] = 1;
|
||||||
|
flag_filters[6] = 1;
|
||||||
|
flag_filters[7] = 1;
|
||||||
|
flag_filters[8] = 1;
|
||||||
|
flag_filters[9] = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void filters_set_flag() {
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterName),flag_filters[0] );
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitFile), flag_filters[1]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterFiles), flag_filters[2]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSizeDelay), flag_filters[3]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSize), flag_filters[4]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterQuotas), flag_filters[5]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitSize), flag_filters[6]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSize), flag_filters[7]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFile), flag_filters[8]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFileDelay), flag_filters[9]);
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
#ifndef FILTERS_H
|
||||||
|
#define FILTERS_H
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <gtk/gtkx.h>
|
||||||
|
#include "ubl-utils.h"
|
||||||
|
#include "ubl-strings.h"
|
||||||
|
#include <locale.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
#include <getopt.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
#include "philos_utils.h"
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
// Переменные
|
||||||
|
typedef struct {
|
||||||
|
GtkWidget* Window;
|
||||||
|
GtkWidget* btnFiltersSave;
|
||||||
|
GtkWidget* btnFiltersCancel;
|
||||||
|
GtkWidget* chbFilterName;
|
||||||
|
GtkWidget* chbFilterQuotas;
|
||||||
|
GtkWidget* chbFilterSize;
|
||||||
|
GtkWidget* chbFilterSoftLimitSize;
|
||||||
|
GtkWidget* chbFilterHardLimitSize;
|
||||||
|
GtkWidget* chbFilterHardLimitSizeDelay;
|
||||||
|
GtkWidget* chbFilterFiles;
|
||||||
|
GtkWidget* chbFilterSoftLimitFile;
|
||||||
|
GtkWidget* chbFilterHardLimitFile;
|
||||||
|
GtkWidget* chbFilterHardLimitFileDelay;
|
||||||
|
GtkWidget* chbTemplate;
|
||||||
|
string *name;
|
||||||
|
} filters_window;
|
||||||
|
|
||||||
|
// Функции
|
||||||
|
filters_window *filters_setup_window(char* glade_path);
|
||||||
|
void filters_event(filters_window *widgets);
|
||||||
|
void filters_localization(filters_window *widgets);
|
||||||
|
void filters_on_hide_subwindow(GtkWidget *self);
|
||||||
|
filters_window *get_widget_filters();
|
||||||
|
void filters_show(GtkWidget *self, char* glade_path);
|
||||||
|
void filters_destroy(GtkWidget *self);
|
||||||
|
int* filters_get_flag();
|
||||||
|
void filters_init_flag();
|
||||||
|
void filters_set_flag();
|
||||||
|
void filters_set_name(char *name)
|
||||||
|
#endif
|
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
@ -0,0 +1,108 @@
|
|||||||
|
|
||||||
|
.thin {
|
||||||
|
margin:0px;
|
||||||
|
padding:0px;
|
||||||
|
}
|
||||||
|
.noborder {
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
|
.nobackground {
|
||||||
|
background:transparent;
|
||||||
|
}
|
||||||
|
.nobackground:active {
|
||||||
|
background:transparent;
|
||||||
|
}
|
||||||
|
.textHead{
|
||||||
|
text-shadow: 2px 2px @theme_bg_color;
|
||||||
|
color: @theme_text_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.inherited>* {
|
||||||
|
border:none;
|
||||||
|
background:inherit;
|
||||||
|
}
|
||||||
|
.workingbg {
|
||||||
|
background:@theme_base_color;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.boxInfoMessError{
|
||||||
|
background-color: #ea9999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxInfoMessOK{
|
||||||
|
background-color: #f3f0ac;
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=ubl-settings-diskquota
|
||||||
|
Name[ru]=TEMPLATE
|
||||||
|
GenericName=ubl-settings-diskquota
|
||||||
|
GenericName[ru]=TEMPLATE
|
||||||
|
Comment=ubl-settings-diskquota
|
||||||
|
Comment[ru]=Приложение для TEMPLATE
|
||||||
|
Type=Application
|
||||||
|
Exec=pkexec ubl-settings-diskquota
|
||||||
|
Icon=com.ublinux.ubl-settings-diskquota
|
||||||
|
Terminal=false
|
||||||
|
X-XfcePluggable=true
|
||||||
|
X-UBLPluggable=true
|
||||||
|
Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;X-UBL-SettingsManager;X-UBL-Personal-Settings;
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue