master #2
Merged
asmeron
merged 55 commits from Igor1/ubl-settings-resourcequota:master
into develop
2 years ago
@ -0,0 +1,5 @@
|
|||||||
|
.vscode/
|
||||||
|
ubl-settings-resourcequota.glade~
|
||||||
|
ubl-settings-resourcequota_ru.po~
|
||||||
|
source/ubl-cmake.h
|
||||||
|
ubl-settings-resourcequota
|
@ -0,0 +1,161 @@
|
|||||||
|
#!/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-resourcequota.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}/images/${PKGNAME}-banner.png"
|
||||||
|
@$(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
|
||||||
|
@cc source/my_device.c source/my_device.h source/filters.c source/filters.h source/ubl-cmake.h source/view_edit.h source/view_edit.c source/view_add.h source/view_add.c source/ubl-utils.h source/ubl-utils.c source/ubl-strings.h source/ubl-settings-resourcequota.h source/ubl-settings-resourcequota.c -o ubl-settings-resourcequota `pkg-config --cflags --libs gtk+-3.0 vte-2.91 webkit2gtk-4.0 webkit2gtk-web-extension-4.0` -g
|
||||||
|
@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"
|
||||||
|
@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}.warning.svg"
|
||||||
|
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.ubl-settings-resourcequota.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"
|
||||||
|
|
||||||
|
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 @@
|
|||||||
|
VERSION 1.0
|
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 235 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 72 KiB |
@ -0,0 +1,61 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.23)
|
||||||
|
project(ubl-settings-resourcequota)
|
||||||
|
|
||||||
|
find_package(PkgConfig REQUIRED)
|
||||||
|
|
||||||
|
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
|
||||||
|
include_directories(${GTK3_INCLUDE_DIRS})
|
||||||
|
link_directories(${GTK3_LIBRARY_DIRS})
|
||||||
|
add_definitions(${GTK3_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.h.in ubl-cmake.h)
|
||||||
|
|
||||||
|
#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-resourcequota.c
|
||||||
|
ubl-settings-resourcequota.h
|
||||||
|
my_device.c
|
||||||
|
my_device.h
|
||||||
|
filters.c
|
||||||
|
filters.h
|
||||||
|
view_add.c
|
||||||
|
view_add.h
|
||||||
|
view_edit.c
|
||||||
|
view_edit.h
|
||||||
|
ubl-strings.h
|
||||||
|
ubl-utils.h
|
||||||
|
ubl-utils.c
|
||||||
|
ubl-cmake.h)
|
||||||
|
|
||||||
|
set(LIBRARIES
|
||||||
|
${GTK3_LIBRARIES}
|
||||||
|
${WEBKIT_LIBRARIES}
|
||||||
|
${VTE291_LIBRARIES}
|
||||||
|
pthread)
|
||||||
|
|
||||||
|
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
|
||||||
|
target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES})
|
||||||
|
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR})
|
||||||
|
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
@ -0,0 +1,90 @@
|
|||||||
|
#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_file(glade_path);
|
||||||
|
filters_widgets->Window = yon_gtk_builder_get_widget(builder,"wndFilters");
|
||||||
|
filters_widgets->chbFilterTypeQouota = yon_gtk_builder_get_widget(builder,"chbFilterTypeQouota");
|
||||||
|
filters_widgets->chbQuotaVolume = yon_gtk_builder_get_widget(builder,"chbQuotaVolume");
|
||||||
|
filters_widgets->chbSoftLimit = yon_gtk_builder_get_widget(builder,"chbSoftLimit");
|
||||||
|
filters_widgets->chbHardLimit = yon_gtk_builder_get_widget(builder,"chbHardLimit");
|
||||||
|
filters_widgets->chbSwapFileLimit = yon_gtk_builder_get_widget(builder,"chbSwapFileLimit");
|
||||||
|
filters_widgets->chbIOLimitWrite = yon_gtk_builder_get_widget(builder,"chbIOLimitWrite");
|
||||||
|
filters_widgets->chbCPULimit = yon_gtk_builder_get_widget(builder,"chbCPULimit");
|
||||||
|
filters_widgets->chbIOLimitRead = yon_gtk_builder_get_widget(builder,"chbIOLimitRead");
|
||||||
|
filters_widgets->btnFiltersCancel = yon_gtk_builder_get_widget(builder,"btnFiltersCancel");
|
||||||
|
filters_widgets->btnFiltersSave = yon_gtk_builder_get_widget(builder,"btnFiltersSave");
|
||||||
|
filters_event(filters_widgets);
|
||||||
|
}
|
||||||
|
filters_set_flag();
|
||||||
|
return filters_widgets;
|
||||||
|
}
|
||||||
|
|
||||||
|
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->chbFilterTypeQouota));
|
||||||
|
flag_filters[1] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbQuotaVolume));
|
||||||
|
flag_filters[2] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbSoftLimit));
|
||||||
|
flag_filters[3] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbHardLimit));
|
||||||
|
flag_filters[4] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbSwapFileLimit));
|
||||||
|
flag_filters[5] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbCPULimit));
|
||||||
|
flag_filters[6] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbIOLimitWrite));
|
||||||
|
flag_filters[7] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbIOLimitRead));
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
void filters_set_flag() {
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterTypeQouota),flag_filters[0] );
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbQuotaVolume), flag_filters[1]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbSoftLimit), flag_filters[2]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbHardLimit), flag_filters[3]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbSwapFileLimit), flag_filters[4]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbCPULimit), flag_filters[5]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbIOLimitWrite), flag_filters[6]);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbIOLimitRead), flag_filters[7]);
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
#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>
|
||||||
|
|
||||||
|
|
||||||
|
// Переменные
|
||||||
|
typedef struct {
|
||||||
|
GtkWidget* Window;
|
||||||
|
GtkWidget* btnFiltersSave;
|
||||||
|
GtkWidget* btnFiltersCancel;
|
||||||
|
GtkWidget* chbFilterTypeQouota;
|
||||||
|
GtkWidget* chbCPULimit;
|
||||||
|
GtkWidget* chbIOLimitRead;
|
||||||
|
GtkWidget* chbIOLimitWrite;
|
||||||
|
GtkWidget* chbSwapFileLimit;
|
||||||
|
GtkWidget* chbHardLimit;
|
||||||
|
GtkWidget* chbSoftLimit;
|
||||||
|
GtkWidget* chbQuotaVolume;
|
||||||
|
} 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();
|
||||||
|
#endif
|
@ -0,0 +1,58 @@
|
|||||||
|
#include "my_device.h"
|
||||||
|
|
||||||
|
device_config obj_device_config;
|
||||||
|
|
||||||
|
device_config* get_device_cfg() {
|
||||||
|
return &obj_device_config;
|
||||||
|
}
|
||||||
|
|
||||||
|
void device_disk_parsed() {
|
||||||
|
char* cmd = "lsblk --fs --raw --output PATH,FSTYPE --exclude 7,11,253";
|
||||||
|
int size = 0;
|
||||||
|
char** responce = yon_config_load(cmd, &size);
|
||||||
|
char* disk = NULL;
|
||||||
|
obj_device_config.size_disk = 0;
|
||||||
|
char* split_simvol = " ";
|
||||||
|
for (int index = 1; index < size; index++ ) {
|
||||||
|
disk = yon_char_divide_search(responce[index], "\n", -1);
|
||||||
|
if (yon_char_find_count(disk, " ") != 0) {
|
||||||
|
char* name_disk = yon_char_divide_search(disk, " ", -1);
|
||||||
|
obj_device_config.name_disk = yon_char_parsed_append(obj_device_config.name_disk, &obj_device_config.size_disk, name_disk);
|
||||||
|
obj_device_config.size_disk--;
|
||||||
|
obj_device_config.file_system = yon_char_parsed_append(obj_device_config.file_system, &obj_device_config.size_disk, disk);
|
||||||
|
obj_device_config.size_disk--;
|
||||||
|
obj_device_config.mounted = yon_char_parsed_append(obj_device_config.mounted, &obj_device_config.size_disk, "");
|
||||||
|
obj_device_config.size_disk--;
|
||||||
|
obj_device_config.type_dick = yon_char_parsed_append(obj_device_config.type_dick, &obj_device_config.size_disk, "");
|
||||||
|
obj_device_config.size_disk--;
|
||||||
|
char* description_disk = yon_char_unite(name_disk,
|
||||||
|
split_simvol,
|
||||||
|
disk,
|
||||||
|
NULL);
|
||||||
|
obj_device_config.description_disk = yon_char_parsed_append(obj_device_config.description_disk, &obj_device_config.size_disk, description_disk);
|
||||||
|
free(description_disk);
|
||||||
|
free(name_disk);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
obj_device_config.name_disk = yon_char_parsed_append(obj_device_config.name_disk, &obj_device_config.size_disk, disk);
|
||||||
|
obj_device_config.size_disk--;
|
||||||
|
obj_device_config.file_system = yon_char_parsed_append(obj_device_config.file_system, &obj_device_config.size_disk, "");
|
||||||
|
obj_device_config.size_disk--;
|
||||||
|
obj_device_config.mounted = yon_char_parsed_append(obj_device_config.mounted, &obj_device_config.size_disk, "");
|
||||||
|
obj_device_config.size_disk--;
|
||||||
|
obj_device_config.type_dick = yon_char_parsed_append(obj_device_config.type_dick, &obj_device_config.size_disk, "");
|
||||||
|
obj_device_config.size_disk--;
|
||||||
|
char* description_disk = yon_char_unite(disk,
|
||||||
|
split_simvol,
|
||||||
|
NULL);
|
||||||
|
obj_device_config.description_disk = yon_char_parsed_append(obj_device_config.description_disk, &obj_device_config.size_disk, description_disk);
|
||||||
|
free(description_disk);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
void device_fill_disk(GtkWidget* combo_box_text) {
|
||||||
|
for (int index = 0; index < obj_device_config.size_disk; index++) {
|
||||||
|
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box_text), obj_device_config.description_disk[index]);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
#ifndef MY_DEVICE_H
|
||||||
|
#define MY_DEVICE_H
|
||||||
|
#include "ubl-utils.h"
|
||||||
|
#include <locale.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
typedef struct {
|
||||||
|
char** name_disk;
|
||||||
|
char** file_system;
|
||||||
|
char** mounted;
|
||||||
|
char** type_dick;
|
||||||
|
char** description_disk;
|
||||||
|
int size_disk;
|
||||||
|
} device_config;
|
||||||
|
|
||||||
|
void device_disk_parsed();
|
||||||
|
device_config* get_device_cfg();
|
||||||
|
void device_fill_disk(GtkWidget* combo_box_text);
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1 @@
|
|||||||
|
#cmakedefine WEBKIT_FOUND
|
@ -0,0 +1,39 @@
|
|||||||
|
#define VERSION_LABEL yon_char_unite(_("Version:")," ",version_application,"\n",NULL)
|
||||||
|
#define HELP_LABEL yon_char_unite(_("ubl-settings-resourcequota version:")," ", version_application,"\n",_("CPU and RAM quotas settings"),"\n",_("Usage:"), " ubl-settings-resourcequota ",_("[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 _("CPU and RAM quotas")
|
||||||
|
#define TITLE_INFO_LABEL _("System resource quota settings management")
|
||||||
|
|
||||||
|
#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 STR_USER _("User")
|
||||||
|
#define STR_GROUP _("Group")
|
||||||
|
#define STR_PROCESS _("Process")
|
||||||
|
#define STR_SLICE _("Slice")
|
||||||
|
|
||||||
|
#define GLOBAL_LOAD_SUCCESS _("Global configuration loading succseeded.")
|
||||||
|
#define LOCAL_LOAD_SUCCESS _("Local configuration loading succseeded.")
|
||||||
|
|
||||||
|
#define GLOBAL_LOCAL_SAVE_SUCCESS _("Local and global configuration saving succseeded.")
|
||||||
|
#define GLOBAL_SAVE_SUCCESS _("Global configuration saving succseeded.")
|
||||||
|
#define LOCAL_SAVE_SUCCESS _("Local configuration saving succseeded.")
|
||||||
|
#define STR_DEL_TABLE _("Quota deleted")
|
||||||
|
#define STR_NO_SELECT_TABLE _("Quota deleted")
|
||||||
|
#define STR_QUOTAS_ADD _("Quota deleted")
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,298 @@
|
|||||||
|
#include "view_add.h"
|
||||||
|
|
||||||
|
add_window *add_widgets = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
add_window *add_setup_window(char* glade_path) {
|
||||||
|
if (add_widgets == NULL) {
|
||||||
|
add_widgets = malloc(sizeof(add_window));
|
||||||
|
GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
|
||||||
|
add_widgets->Window = yon_gtk_builder_get_widget(builder,"wndQuotasAdding");
|
||||||
|
add_widgets->btnSaveAddSave = yon_gtk_builder_get_widget(builder,"btnSaveAddSave");
|
||||||
|
add_widgets->btnAddCancel = yon_gtk_builder_get_widget(builder,"btnAddCancel");
|
||||||
|
|
||||||
|
add_widgets->entryAddCmd = yon_gtk_builder_get_widget(builder,"entryAddCmd");
|
||||||
|
add_widgets->cbxAddQuotaObj = yon_gtk_builder_get_widget(builder,"cbxAddQuotaObj");
|
||||||
|
add_widgets->cbxAddQuotaLevel2 = yon_gtk_builder_get_widget(builder,"cbxAddQuotaLevel2");
|
||||||
|
add_widgets->cbtAddDevice = yon_gtk_builder_get_widget(builder,"cbtAddDevice");
|
||||||
|
add_widgets->lblCPULimitAdd = yon_gtk_builder_get_widget(builder,"lblCPULimitAdd");
|
||||||
|
add_widgets->spinCPULimitAdd = yon_gtk_builder_get_widget(builder,"spinCPULimitAdd");
|
||||||
|
add_widgets->chkCPULimitAdd = yon_gtk_builder_get_widget(builder,"chkCPULimitAdd");
|
||||||
|
|
||||||
|
add_widgets->chkPaddingFLAdd = yon_gtk_builder_get_widget(builder,"chkPaddingFLAdd");
|
||||||
|
add_widgets->spinPaddingFLAdd = yon_gtk_builder_get_widget(builder,"spinPaddingFLAdd");
|
||||||
|
add_widgets->cmbPaddingFLAdd = yon_gtk_builder_get_widget(builder,"cmbPaddingFLAdd");
|
||||||
|
|
||||||
|
add_widgets->chkSevereRestrictionAdd = yon_gtk_builder_get_widget(builder,"chkSevereRestrictionAdd");
|
||||||
|
add_widgets->spinSevereRestrictionAdd = yon_gtk_builder_get_widget(builder,"spinSevereRestrictionAdd");
|
||||||
|
add_widgets->cmbSevereRestrictionAdd = yon_gtk_builder_get_widget(builder,"cmbSevereRestrictionAdd");
|
||||||
|
|
||||||
|
add_widgets->chkSoftRestrictionAdd = yon_gtk_builder_get_widget(builder,"chkSoftRestrictionAdd");
|
||||||
|
add_widgets->spiSevereRestrictionAdd = yon_gtk_builder_get_widget(builder,"spiSevereRestrictionAdd");
|
||||||
|
add_widgets->cmSevereRestrictionAdd = yon_gtk_builder_get_widget(builder,"cmSevereRestrictionAdd");
|
||||||
|
|
||||||
|
add_widgets->chbAddRead = yon_gtk_builder_get_widget(builder,"chbAddRead");
|
||||||
|
add_widgets->spinAddRead = yon_gtk_builder_get_widget(builder,"spinAddRead");
|
||||||
|
add_widgets->cbtAddRead = yon_gtk_builder_get_widget(builder,"cbtAddRead");
|
||||||
|
|
||||||
|
add_widgets->spinAddWrite = yon_gtk_builder_get_widget(builder,"spinAddWrite");
|
||||||
|
add_widgets->chbAddWrite = yon_gtk_builder_get_widget(builder,"chbAddWrite");
|
||||||
|
add_widgets->cbtAddWrite = yon_gtk_builder_get_widget(builder,"cbtAddWrite");
|
||||||
|
|
||||||
|
device_fill_disk(add_widgets->cbtAddDevice);
|
||||||
|
add_event(add_widgets);
|
||||||
|
add_init_windows();
|
||||||
|
add_localization(add_widgets);
|
||||||
|
}
|
||||||
|
|
||||||
|
return add_widgets;
|
||||||
|
}
|
||||||
|
|
||||||
|
void add_init_windows() {
|
||||||
|
add_set_active_widgets(add_widgets->chkSoftRestrictionAdd, add_widgets->spiSevereRestrictionAdd, add_widgets->cmSevereRestrictionAdd);
|
||||||
|
add_set_active_widgets(add_widgets->chkSevereRestrictionAdd, add_widgets->spinSevereRestrictionAdd, add_widgets->cmbSevereRestrictionAdd);
|
||||||
|
add_set_active_widgets(add_widgets->chkPaddingFLAdd, add_widgets->spinPaddingFLAdd, add_widgets->cmbPaddingFLAdd);
|
||||||
|
add_set_active_widgets(add_widgets->chkCPULimitAdd, add_widgets->spinCPULimitAdd, add_widgets->lblCPULimitAdd);
|
||||||
|
add_set_active_widgets(add_widgets->chbAddWrite, add_widgets->spinAddWrite, add_widgets->cbtAddWrite);
|
||||||
|
add_set_active_widgets(add_widgets->chbAddRead, add_widgets->spinAddRead, add_widgets->cbtAddRead);
|
||||||
|
add_generate_cmd();
|
||||||
|
}
|
||||||
|
|
||||||
|
void add_event(add_window *widgets) {
|
||||||
|
g_signal_connect(G_OBJECT(widgets->btnAddCancel),"clicked",G_CALLBACK(add_on_destroy_subwindow),NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(add_destroy), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->chkSoftRestrictionAdd), "toggled", G_CALLBACK(add_init_windows), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->chkSevereRestrictionAdd), "toggled", G_CALLBACK(add_init_windows), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->chkPaddingFLAdd), "toggled", G_CALLBACK(add_init_windows), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->chkCPULimitAdd), "toggled", G_CALLBACK(add_init_windows), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->chbAddRead), "toggled", G_CALLBACK(add_init_windows), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->chbAddWrite), "toggled", G_CALLBACK(add_init_windows), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cbxAddQuotaObj),"changed",G_CALLBACK(add_update_combo_box), NULL);
|
||||||
|
|
||||||
|
g_signal_connect(G_OBJECT(widgets->spiSevereRestrictionAdd),"value-changed",G_CALLBACK(add_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->spinSevereRestrictionAdd),"value-changed",G_CALLBACK(add_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->spinPaddingFLAdd),"value-changed",G_CALLBACK(add_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->spinCPULimitAdd),"value-changed",G_CALLBACK(add_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->spinAddRead),"value-changed",G_CALLBACK(add_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->spinAddWrite),"value-changed",G_CALLBACK(add_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cmSevereRestrictionAdd),"changed",G_CALLBACK(add_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cmbSevereRestrictionAdd),"changed",G_CALLBACK(add_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cmbPaddingFLAdd),"changed",G_CALLBACK(add_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cbtAddRead),"changed",G_CALLBACK(add_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cbtAddWrite),"changed",G_CALLBACK(add_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cbtAddDevice),"changed",G_CALLBACK(add_generate_cmd), NULL);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void add_destroy(GtkWidget *self) {
|
||||||
|
add_widgets = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void add_set_active_widgets(GtkWidget *self, GtkWidget *entry, GtkWidget *label) {
|
||||||
|
gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self));
|
||||||
|
gtk_widget_set_sensitive(entry, active);
|
||||||
|
gtk_widget_set_sensitive(label, active);
|
||||||
|
}
|
||||||
|
|
||||||
|
void add_localization(add_window *widgets) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void add_on_destroy_subwindow(GtkWidget *self) {
|
||||||
|
gtk_widget_destroy(gtk_widget_get_toplevel(self));
|
||||||
|
add_widgets = NULL;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
add_window *get_widget_add() {
|
||||||
|
return add_widgets;
|
||||||
|
}
|
||||||
|
|
||||||
|
void add_show(GtkWidget *self, char* glade_path) {
|
||||||
|
if (add_widgets != NULL) {
|
||||||
|
add_update_combo_box();
|
||||||
|
gtk_widget_show_all(add_widgets->Window);
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
add_setup_window(glade_path);
|
||||||
|
add_update_combo_box();
|
||||||
|
gtk_widget_show_all(add_widgets->Window);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
char* add_get_select_device_to_level_2() {
|
||||||
|
char* text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbxAddQuotaLevel2));
|
||||||
|
if (text != NULL) {
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
char* str = (char*)malloc(sizeof(char*)*2);
|
||||||
|
str[0] = '-';
|
||||||
|
str[1] = '\0';
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
char* add_get_select_device() {
|
||||||
|
char* text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice));
|
||||||
|
if (text != NULL) {
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
char* str = (char*)malloc(sizeof(char*)*2);
|
||||||
|
str[0] = '-';
|
||||||
|
str[1] = '\0';
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int add_get_read_device_size() {
|
||||||
|
return gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead));
|
||||||
|
}
|
||||||
|
int add_get_write_device_size() {
|
||||||
|
return gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddWrite));
|
||||||
|
}
|
||||||
|
int add_get_soft_size() {
|
||||||
|
return gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cmSevereRestrictionAdd));
|
||||||
|
}
|
||||||
|
int add_get_hard_size() {
|
||||||
|
return gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cmbSevereRestrictionAdd));
|
||||||
|
}
|
||||||
|
int add_get_limit_cpu_size() {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
int add_get_limit_swap_size() {
|
||||||
|
return gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cmbPaddingFLAdd));
|
||||||
|
}
|
||||||
|
int add_get_quota_object_size() {
|
||||||
|
return gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbxAddQuotaObj));
|
||||||
|
}
|
||||||
|
char* add_get_read_device() {
|
||||||
|
return philos_get_size_bite(add_widgets->chbAddRead, add_widgets->spinAddRead,
|
||||||
|
add_widgets->cbtAddRead);
|
||||||
|
}
|
||||||
|
char* add_get_write_device() {
|
||||||
|
return philos_get_size_bite(add_widgets->chbAddWrite, add_widgets->spinAddWrite,
|
||||||
|
add_widgets->cbtAddWrite);
|
||||||
|
}
|
||||||
|
char* add_get_soft() {
|
||||||
|
return philos_get_size_bite(add_widgets->chkSoftRestrictionAdd, add_widgets->spiSevereRestrictionAdd,
|
||||||
|
add_widgets->cmSevereRestrictionAdd);
|
||||||
|
}
|
||||||
|
char* add_get_hard() {
|
||||||
|
return philos_get_size_bite(add_widgets->chkSevereRestrictionAdd, add_widgets->spinSevereRestrictionAdd,
|
||||||
|
add_widgets->cmbSevereRestrictionAdd);
|
||||||
|
}
|
||||||
|
char* add_get_limit_cpu() {
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chkCPULimitAdd))) {
|
||||||
|
int size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinCPULimitAdd));
|
||||||
|
return yon_char_from_int(size_bite);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
char* str = (char*)malloc(sizeof(char*)*2);
|
||||||
|
str[0] = '-';
|
||||||
|
str[1] = '\0';
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
char* add_get_limit_swap() {
|
||||||
|
return philos_get_size_bite(add_widgets->chkPaddingFLAdd, add_widgets->spinPaddingFLAdd,
|
||||||
|
add_widgets->cmbPaddingFLAdd);
|
||||||
|
}
|
||||||
|
char* add_get_quota_object() {
|
||||||
|
return gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbxAddQuotaObj));
|
||||||
|
}
|
||||||
|
void add_update_combo_box() {
|
||||||
|
int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbxAddQuotaObj));
|
||||||
|
char* cmd = NULL;
|
||||||
|
config_str fill_cmb_2 = NULL;
|
||||||
|
int size = 0;
|
||||||
|
if (menu_id == 0) {
|
||||||
|
fill_cmb_2 = philos_list_user(&size);
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (menu_id == 1) {
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (menu_id == 2) {
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (menu_id == 3) {
|
||||||
|
|
||||||
|
}
|
||||||
|
if (menu_id >= 0) {
|
||||||
|
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(add_widgets->cbxAddQuotaLevel2));
|
||||||
|
philos_fill_combo_box_text(add_widgets->cbxAddQuotaLevel2, fill_cmb_2, size);
|
||||||
|
// yon_terminal_integrated_launch(widgets->vteProcesses, cmd, NULL, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void add_generate_cmd() {
|
||||||
|
char* str_cmd = "";
|
||||||
|
char* split_simvol = g_malloc0(sizeof(char)*2);
|
||||||
|
int size_bite = 0;
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chkSoftRestrictionAdd))) {
|
||||||
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spiSevereRestrictionAdd));
|
||||||
|
str_cmd = yon_char_unite(str_cmd,
|
||||||
|
"MemoryHigh=",
|
||||||
|
yon_char_from_int(size_bite),
|
||||||
|
philos_str_size_pow_byte(add_widgets->cmSevereRestrictionAdd), NULL);
|
||||||
|
split_simvol[0] = ',';
|
||||||
|
split_simvol[1] = '\0';
|
||||||
|
}
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chkSevereRestrictionAdd))) {
|
||||||
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinSevereRestrictionAdd));
|
||||||
|
str_cmd = yon_char_unite(str_cmd, split_simvol,
|
||||||
|
"MemoryMax=",
|
||||||
|
yon_char_from_int(size_bite),
|
||||||
|
philos_str_size_pow_byte(add_widgets->cmbSevereRestrictionAdd), NULL);
|
||||||
|
split_simvol[0] = ',';
|
||||||
|
split_simvol[1] = '\0';
|
||||||
|
}
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chkPaddingFLAdd))) {
|
||||||
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinPaddingFLAdd));
|
||||||
|
str_cmd = yon_char_unite(str_cmd, split_simvol,
|
||||||
|
"MemorySwapMax=",
|
||||||
|
yon_char_from_int(size_bite),
|
||||||
|
philos_str_size_pow_byte(add_widgets->cmbPaddingFLAdd), NULL);
|
||||||
|
split_simvol[0] = ',';
|
||||||
|
split_simvol[1] = '\0';
|
||||||
|
}
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chkCPULimitAdd))) {
|
||||||
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinCPULimitAdd));
|
||||||
|
str_cmd = yon_char_unite(str_cmd, split_simvol,
|
||||||
|
"CPUQuota=",
|
||||||
|
yon_char_from_int(size_bite),
|
||||||
|
"\%", NULL);
|
||||||
|
split_simvol[0] = ',';
|
||||||
|
split_simvol[1] = '\0';
|
||||||
|
}
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead))) {
|
||||||
|
int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddDevice));
|
||||||
|
if (menu_id != -1) {
|
||||||
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinAddRead));
|
||||||
|
str_cmd = yon_char_unite(str_cmd, split_simvol,
|
||||||
|
"IOReadBandwidthMax=\"",
|
||||||
|
get_device_cfg()->name_disk[menu_id],
|
||||||
|
" ",
|
||||||
|
yon_char_from_int(size_bite),
|
||||||
|
philos_str_size_pow_byte(add_widgets->cbtAddRead),"\"", NULL);
|
||||||
|
}
|
||||||
|
split_simvol[0] = ',';
|
||||||
|
split_simvol[1] = '\0';
|
||||||
|
|
||||||
|
}
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite))) {
|
||||||
|
int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddDevice));
|
||||||
|
if (menu_id != -1) {
|
||||||
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinAddWrite));
|
||||||
|
str_cmd = yon_char_unite(str_cmd, split_simvol,
|
||||||
|
"IOWriteBandwidthMax=\"",
|
||||||
|
get_device_cfg()->name_disk[menu_id],
|
||||||
|
" ",
|
||||||
|
yon_char_from_int(size_bite),
|
||||||
|
philos_str_size_pow_byte(add_widgets->cbtAddWrite),"\"", NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(add_widgets->entryAddCmd), str_cmd);
|
||||||
|
free(split_simvol);
|
||||||
|
}
|
@ -0,0 +1,81 @@
|
|||||||
|
#ifndef VIEW_ADD_H
|
||||||
|
#define VIEW_ADD_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 "my_device.h"
|
||||||
|
|
||||||
|
// Переменные
|
||||||
|
typedef struct {
|
||||||
|
GtkWidget* Window;
|
||||||
|
GtkWidget* btnSaveAddSave;
|
||||||
|
GtkWidget* btnAddCancel;
|
||||||
|
|
||||||
|
GtkWidget* entryAddCmd;
|
||||||
|
GtkWidget* chbAddRead;
|
||||||
|
GtkWidget* spinAddRead;
|
||||||
|
GtkWidget* cbtAddRead;
|
||||||
|
|
||||||
|
GtkWidget* chbAddWrite;
|
||||||
|
GtkWidget* spinAddWrite;
|
||||||
|
GtkWidget* cbtAddWrite;
|
||||||
|
|
||||||
|
GtkWidget* chkSoftRestrictionAdd;
|
||||||
|
GtkWidget* spiSevereRestrictionAdd;
|
||||||
|
GtkWidget* cmSevereRestrictionAdd;
|
||||||
|
|
||||||
|
GtkWidget* chkSevereRestrictionAdd;
|
||||||
|
GtkWidget* spinSevereRestrictionAdd;
|
||||||
|
GtkWidget* cmbSevereRestrictionAdd;
|
||||||
|
|
||||||
|
GtkWidget* chkPaddingFLAdd;
|
||||||
|
GtkWidget* spinPaddingFLAdd;
|
||||||
|
GtkWidget* cmbPaddingFLAdd;
|
||||||
|
|
||||||
|
GtkWidget* chkCPULimitAdd;
|
||||||
|
GtkWidget* spinCPULimitAdd;
|
||||||
|
GtkWidget* lblCPULimitAdd;
|
||||||
|
|
||||||
|
GtkWidget* cbtAddDevice;
|
||||||
|
GtkWidget* cbxAddQuotaObj;
|
||||||
|
GtkWidget* cbxAddQuotaLevel2;
|
||||||
|
} add_window;
|
||||||
|
// Функции
|
||||||
|
add_window *add_setup_window(char* glade_path);
|
||||||
|
void add_event(add_window *widgets);
|
||||||
|
void add_localization(add_window *widgets);
|
||||||
|
void add_on_destroy_subwindow(GtkWidget *self);
|
||||||
|
add_window *get_widget_add();
|
||||||
|
void add_show(GtkWidget *self, char* glade_path);
|
||||||
|
void add_destroy(GtkWidget *self);
|
||||||
|
void add_set_active_widgets(GtkWidget *self, GtkWidget *entry, GtkWidget *label);
|
||||||
|
void add_init_windows();
|
||||||
|
void add_update_combo_box();
|
||||||
|
char* add_get_select_device();
|
||||||
|
char* add_get_read_device();
|
||||||
|
char* add_get_write_device();
|
||||||
|
char* add_get_soft();
|
||||||
|
char* add_get_hard();
|
||||||
|
char* add_get_limit_cpu();
|
||||||
|
char* add_get_limit_swap();
|
||||||
|
char* add_get_quota_object();
|
||||||
|
|
||||||
|
int add_get_read_device_size();
|
||||||
|
int add_get_write_device_size();
|
||||||
|
int add_get_soft_size();
|
||||||
|
int add_get_hard_size();
|
||||||
|
int add_get_limit_cpu_size();
|
||||||
|
int add_get_limit_swap_size();
|
||||||
|
int add_get_quota_object_size();
|
||||||
|
|
||||||
|
char* add_get_select_device_to_level_2();
|
||||||
|
void add_generate_cmd();
|
||||||
|
#endif
|
@ -0,0 +1,298 @@
|
|||||||
|
#include "view_edit.h"
|
||||||
|
|
||||||
|
edit_window *edit_widgets = NULL;
|
||||||
|
|
||||||
|
edit_window *edit_setup_window(char* glade_path){
|
||||||
|
if (edit_widgets == NULL) {
|
||||||
|
edit_widgets = malloc(sizeof(edit_window));
|
||||||
|
GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
|
||||||
|
edit_widgets->Window = yon_gtk_builder_get_widget(builder,"wndQuotasEdit");
|
||||||
|
edit_widgets->btnEditCancel = yon_gtk_builder_get_widget(builder,"btnEditCancel");
|
||||||
|
edit_widgets->btnSaveEditSave = yon_gtk_builder_get_widget(builder,"btnSaveEditSave");
|
||||||
|
|
||||||
|
edit_widgets->cbtEditDevice = yon_gtk_builder_get_widget(builder,"cbtEditDevice");
|
||||||
|
edit_widgets->lblCPULimitEdit = yon_gtk_builder_get_widget(builder,"lblCPULimitEdit");
|
||||||
|
edit_widgets->spinCPULimitEdit = yon_gtk_builder_get_widget(builder,"spinCPULimitEdit");
|
||||||
|
edit_widgets->chkCPULimitEdit = yon_gtk_builder_get_widget(builder,"chkCPULimitEdit");
|
||||||
|
|
||||||
|
edit_widgets->chkPaddingFLEdit = yon_gtk_builder_get_widget(builder,"chkPaddingFLEdit");
|
||||||
|
edit_widgets->spinPaddingFLEdit = yon_gtk_builder_get_widget(builder,"spinPaddingFLEdit");
|
||||||
|
edit_widgets->cmbPaddingFLEdit = yon_gtk_builder_get_widget(builder,"cmbPaddingFLEdit");
|
||||||
|
|
||||||
|
edit_widgets->chkSevereRestrictionEdit = yon_gtk_builder_get_widget(builder,"chkSevereRestrictionEdit");
|
||||||
|
edit_widgets->spinSevereRestrictionEdit = yon_gtk_builder_get_widget(builder,"spinSevereRestrictionEdit");
|
||||||
|
edit_widgets->cmbSevereRestrictionEdit = yon_gtk_builder_get_widget(builder,"cmbSevereRestrictionEdit");
|
||||||
|
|
||||||
|
edit_widgets->chkSoftRestrictionEdit = yon_gtk_builder_get_widget(builder,"chkSoftRestrictionEdit");
|
||||||
|
edit_widgets->spiSevereRestrictionEdit = yon_gtk_builder_get_widget(builder,"spiSevereRestrictionEdit");
|
||||||
|
edit_widgets->cmSevereRestrictionEdit = yon_gtk_builder_get_widget(builder,"cmSevereRestrictionEdit");
|
||||||
|
|
||||||
|
edit_widgets->chbEditRead = yon_gtk_builder_get_widget(builder,"chbEditRead");
|
||||||
|
edit_widgets->spinEditRead = yon_gtk_builder_get_widget(builder,"spinEditRead");
|
||||||
|
edit_widgets->cbtEditRead = yon_gtk_builder_get_widget(builder,"cbtEditRead");
|
||||||
|
|
||||||
|
edit_widgets->spinEditWrite = yon_gtk_builder_get_widget(builder,"spinEditWrite");
|
||||||
|
edit_widgets->chbEditWrite = yon_gtk_builder_get_widget(builder,"chbEditWrite");
|
||||||
|
edit_widgets->cbtEditWrite = yon_gtk_builder_get_widget(builder,"cbtEditWrite");
|
||||||
|
edit_widgets->entryEditCmd = yon_gtk_builder_get_widget(builder,"entryEditCmd");
|
||||||
|
device_fill_disk(edit_widgets->cbtEditDevice);
|
||||||
|
edit_event(edit_widgets);
|
||||||
|
edit_localization(edit_widgets);
|
||||||
|
}
|
||||||
|
return edit_widgets;
|
||||||
|
}
|
||||||
|
|
||||||
|
void edit_event(edit_window *widgets) {
|
||||||
|
g_signal_connect(G_OBJECT(widgets->btnEditCancel),"clicked",G_CALLBACK(edit_on_hide_subwindow),NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(edit_destroy), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->chkSoftRestrictionEdit), "toggled", G_CALLBACK(edit_init_windows), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->chkSevereRestrictionEdit), "toggled", G_CALLBACK(edit_init_windows), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->chkPaddingFLEdit), "toggled", G_CALLBACK(edit_init_windows), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->chkCPULimitEdit), "toggled", G_CALLBACK(edit_init_windows), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->chbEditRead), "toggled", G_CALLBACK(edit_init_windows), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->chbEditWrite), "toggled", G_CALLBACK(edit_init_windows), NULL);
|
||||||
|
|
||||||
|
g_signal_connect(G_OBJECT(widgets->spiSevereRestrictionEdit),"value-changed",G_CALLBACK(edit_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->spinSevereRestrictionEdit),"value-changed",G_CALLBACK(edit_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->spinPaddingFLEdit),"value-changed",G_CALLBACK(edit_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->spinCPULimitEdit),"value-changed",G_CALLBACK(edit_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->spinEditRead),"value-changed",G_CALLBACK(edit_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->spinEditWrite),"value-changed",G_CALLBACK(edit_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cmSevereRestrictionEdit),"changed",G_CALLBACK(edit_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cmbSevereRestrictionEdit),"changed",G_CALLBACK(edit_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cmbPaddingFLEdit),"changed",G_CALLBACK(edit_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cbtEditRead),"changed",G_CALLBACK(edit_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cbtEditWrite),"changed",G_CALLBACK(edit_generate_cmd), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(widgets->cbtEditDevice),"changed",G_CALLBACK(edit_generate_cmd), NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void edit_destroy(GtkWidget *self) {
|
||||||
|
edit_widgets = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void edit_localization(edit_window *widgets) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void edit_on_hide_subwindow(GtkWidget *self) {
|
||||||
|
gtk_widget_destroy(gtk_widget_get_toplevel(self));
|
||||||
|
edit_widgets = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
edit_window *get_widget_edit() {
|
||||||
|
return edit_widgets;
|
||||||
|
}
|
||||||
|
|
||||||
|
void edit_show(GtkWidget *self, char* glade_path) {
|
||||||
|
if (edit_widgets != NULL) {
|
||||||
|
gtk_widget_show_all(edit_widgets->Window);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
edit_setup_window(glade_path);
|
||||||
|
gtk_widget_show_all(edit_widgets->Window);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void edit_init_windows() {
|
||||||
|
edit_generate_cmd();
|
||||||
|
edit_set_active_widgets(edit_widgets->chkSoftRestrictionEdit, edit_widgets->spiSevereRestrictionEdit, edit_widgets->cmSevereRestrictionEdit);
|
||||||
|
edit_set_active_widgets(edit_widgets->chkSevereRestrictionEdit, edit_widgets->spinSevereRestrictionEdit, edit_widgets->cmbSevereRestrictionEdit);
|
||||||
|
edit_set_active_widgets(edit_widgets->chkPaddingFLEdit, edit_widgets->spinPaddingFLEdit, edit_widgets->cmbPaddingFLEdit);
|
||||||
|
edit_set_active_widgets(edit_widgets->chkCPULimitEdit, edit_widgets->spinCPULimitEdit, edit_widgets->lblCPULimitEdit);
|
||||||
|
edit_set_active_widgets(edit_widgets->chbEditWrite, edit_widgets->spinEditWrite, edit_widgets->cbtEditWrite);
|
||||||
|
edit_set_active_widgets(edit_widgets->chbEditRead, edit_widgets->spinEditRead, edit_widgets->cbtEditRead);
|
||||||
|
}
|
||||||
|
|
||||||
|
void edit_set_active_widgets(GtkWidget *self, GtkWidget *entry, GtkWidget *label) {
|
||||||
|
gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self));
|
||||||
|
gtk_widget_set_sensitive(entry, active);
|
||||||
|
gtk_widget_set_sensitive(label, active);
|
||||||
|
}
|
||||||
|
|
||||||
|
char* edit_get_select_device() {
|
||||||
|
char* text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(edit_widgets->cbtEditDevice));
|
||||||
|
if (text != NULL) {
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
char* str = (char*)malloc(sizeof(char*)*2);
|
||||||
|
str[0] = '-';
|
||||||
|
str[1] = '\0';
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int edit_get_read_device_size() {
|
||||||
|
return gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cbtEditRead));
|
||||||
|
}
|
||||||
|
int edit_get_write_device_size() {
|
||||||
|
return gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cbtEditWrite));
|
||||||
|
}
|
||||||
|
int edit_get_soft_size() {
|
||||||
|
return gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cmSevereRestrictionEdit));
|
||||||
|
}
|
||||||
|
int edit_get_hard_size() {
|
||||||
|
return gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cmbSevereRestrictionEdit));
|
||||||
|
}
|
||||||
|
int edit_get_limit_cpu_size() {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
int edit_get_limit_swap_size() {
|
||||||
|
return gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cmbPaddingFLEdit));
|
||||||
|
}
|
||||||
|
|
||||||
|
char* edit_get_read_device() {
|
||||||
|
return philos_get_size_bite(edit_widgets->chbEditRead, edit_widgets->spinEditRead,
|
||||||
|
edit_widgets->cbtEditRead);
|
||||||
|
}
|
||||||
|
char* edit_get_write_device() {
|
||||||
|
return philos_get_size_bite(edit_widgets->chbEditWrite, edit_widgets->spinEditWrite,
|
||||||
|
edit_widgets->cbtEditWrite);
|
||||||
|
}
|
||||||
|
char* edit_get_soft() {
|
||||||
|
return philos_get_size_bite(edit_widgets->chkSoftRestrictionEdit, edit_widgets->spiSevereRestrictionEdit,
|
||||||
|
edit_widgets->cmSevereRestrictionEdit);
|
||||||
|
}
|
||||||
|
char* edit_get_hard() {
|
||||||
|
return philos_get_size_bite(edit_widgets->chkSevereRestrictionEdit, edit_widgets->spinSevereRestrictionEdit,
|
||||||
|
edit_widgets->cmbSevereRestrictionEdit);
|
||||||
|
}
|
||||||
|
char* edit_get_limit_cpu() {
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(edit_widgets->chkCPULimitEdit))) {
|
||||||
|
int size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(edit_widgets->spinCPULimitEdit));
|
||||||
|
return yon_char_from_int(size_bite);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
char* str = (char*)malloc(sizeof(char*)*2);
|
||||||
|
str[0] = '-';
|
||||||
|
str[1] = '\0';
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
char* edit_get_limit_swap() {
|
||||||
|
return philos_get_size_bite(edit_widgets->chkPaddingFLEdit, edit_widgets->spinPaddingFLEdit,
|
||||||
|
edit_widgets->cmbPaddingFLEdit);
|
||||||
|
}
|
||||||
|
|
||||||
|
// =================================================================
|
||||||
|
void edit_set_select_device(char* str_value, int pow_mem) {
|
||||||
|
puts(str_value);
|
||||||
|
}
|
||||||
|
void edit_set_read_device(char* str_value, int pow_mem) {
|
||||||
|
edit_temp_set(str_value,pow_mem, edit_widgets->chbEditRead,
|
||||||
|
edit_widgets->spinEditRead,
|
||||||
|
edit_widgets->cbtEditRead);
|
||||||
|
}
|
||||||
|
void edit_set_write_device(char* str_value, int pow_mem) {
|
||||||
|
edit_temp_set(str_value,pow_mem, edit_widgets->chbEditWrite,
|
||||||
|
edit_widgets->spinEditWrite,
|
||||||
|
edit_widgets->cbtEditWrite);
|
||||||
|
}
|
||||||
|
void edit_set_soft(char* str_value, int pow_mem) {
|
||||||
|
edit_temp_set(str_value,pow_mem, edit_widgets->chkSoftRestrictionEdit,
|
||||||
|
edit_widgets->spiSevereRestrictionEdit,
|
||||||
|
edit_widgets->cmSevereRestrictionEdit);
|
||||||
|
}
|
||||||
|
void edit_set_hard(char* str_value, int pow_mem) {
|
||||||
|
edit_temp_set(str_value,pow_mem, edit_widgets->chkSevereRestrictionEdit,
|
||||||
|
edit_widgets->spinSevereRestrictionEdit,
|
||||||
|
edit_widgets->cmbSevereRestrictionEdit);
|
||||||
|
}
|
||||||
|
void edit_set_limit_cpu(char* str_value, int pow_mem) {
|
||||||
|
edit_temp_set(str_value,pow_mem, edit_widgets->chkCPULimitEdit,
|
||||||
|
edit_widgets->spinCPULimitEdit,
|
||||||
|
edit_widgets->lblCPULimitEdit);
|
||||||
|
}
|
||||||
|
void edit_set_limit_swap(char* str_value, int pow_mem) {
|
||||||
|
edit_temp_set(str_value,pow_mem, edit_widgets->chkPaddingFLEdit,
|
||||||
|
edit_widgets->spinPaddingFLEdit,
|
||||||
|
edit_widgets->cmbPaddingFLEdit);
|
||||||
|
}
|
||||||
|
void edit_temp_set(char* str_value, int pow_mem, GtkWidget* cheek, GtkWidget* spin, GtkWidget* combo_box_text) {
|
||||||
|
char* search = "-";
|
||||||
|
char* mem_size_pow = yon_char_new(str_value);
|
||||||
|
if (yon_char_find_count(mem_size_pow, search) == 0) {
|
||||||
|
int value = atoi(yon_char_divide_search(mem_size_pow, " ", -1));
|
||||||
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), value);
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cheek), 1);
|
||||||
|
if (combo_box_text != NULL) {
|
||||||
|
// Todo: add code
|
||||||
|
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_text), pow_mem);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cheek), 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void edit_generate_cmd() {
|
||||||
|
char* str_cmd = "";
|
||||||
|
char* split_simvol = g_malloc0(sizeof(char)*2);
|
||||||
|
int size_bite = 0;
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(edit_widgets->chkSoftRestrictionEdit))) {
|
||||||
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(edit_widgets->spiSevereRestrictionEdit));
|
||||||
|
str_cmd = yon_char_unite(str_cmd,
|
||||||
|
"MemoryHigh=",
|
||||||
|
yon_char_from_int(size_bite),
|
||||||
|
philos_str_size_pow_byte(edit_widgets->cmSevereRestrictionEdit), NULL);
|
||||||
|
split_simvol[0] = ',';
|
||||||
|
split_simvol[1] = '\0';
|
||||||
|
}
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(edit_widgets->chkSevereRestrictionEdit))) {
|
||||||
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(edit_widgets->spinSevereRestrictionEdit));
|
||||||
|
str_cmd = yon_char_unite(str_cmd, split_simvol,
|
||||||
|
"MemoryMax=",
|
||||||
|
yon_char_from_int(size_bite),
|
||||||
|
philos_str_size_pow_byte(edit_widgets->cmbSevereRestrictionEdit), NULL);
|
||||||
|
split_simvol[0] = ',';
|
||||||
|
split_simvol[1] = '\0';
|
||||||
|
}
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(edit_widgets->chkPaddingFLEdit))) {
|
||||||
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(edit_widgets->spinPaddingFLEdit));
|
||||||
|
str_cmd = yon_char_unite(str_cmd, split_simvol,
|
||||||
|
"MemorySwapMax=",
|
||||||
|
yon_char_from_int(size_bite),
|
||||||
|
philos_str_size_pow_byte(edit_widgets->cmbPaddingFLEdit), NULL);
|
||||||
|
split_simvol[0] = ',';
|
||||||
|
split_simvol[1] = '\0';
|
||||||
|
}
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(edit_widgets->chkCPULimitEdit))) {
|
||||||
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(edit_widgets->spinCPULimitEdit));
|
||||||
|
str_cmd = yon_char_unite(str_cmd, split_simvol,
|
||||||
|
"CPUQuota=",
|
||||||
|
yon_char_from_int(size_bite),
|
||||||
|
"\%", NULL);
|
||||||
|
split_simvol[0] = ',';
|
||||||
|
split_simvol[1] = '\0';
|
||||||
|
}
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(edit_widgets->chbEditRead))) {
|
||||||
|
int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cbtEditDevice));
|
||||||
|
if (menu_id != -1) {
|
||||||
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(edit_widgets->spinEditRead));
|
||||||
|
str_cmd = yon_char_unite(str_cmd, split_simvol,
|
||||||
|
"IOReadBandwidthMax=\"",
|
||||||
|
get_device_cfg()->name_disk[menu_id],
|
||||||
|
" ",
|
||||||
|
yon_char_from_int(size_bite),
|
||||||
|
philos_str_size_pow_byte(edit_widgets->cbtEditRead),"\"", NULL);
|
||||||
|
}
|
||||||
|
split_simvol[0] = ',';
|
||||||
|
split_simvol[1] = '\0';
|
||||||
|
|
||||||
|
}
|
||||||
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(edit_widgets->chbEditWrite))) {
|
||||||
|
int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cbtEditDevice));
|
||||||
|
if (menu_id != -1) {
|
||||||
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(edit_widgets->spinEditWrite));
|
||||||
|
str_cmd = yon_char_unite(str_cmd, split_simvol,
|
||||||
|
"IOWriteBandwidthMax=\"",
|
||||||
|
get_device_cfg()->name_disk[menu_id],
|
||||||
|
" ",
|
||||||
|
yon_char_from_int(size_bite),
|
||||||
|
philos_str_size_pow_byte(edit_widgets->cbtEditWrite),"\"", NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(edit_widgets->entryEditCmd), str_cmd);
|
||||||
|
free(split_simvol);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,83 @@
|
|||||||
|
#ifndef VIEW_EDIT_H
|
||||||
|
#define VIEW_EDIT_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 "my_device.h"
|
||||||
|
|
||||||
|
// Переменные
|
||||||
|
typedef struct {
|
||||||
|
GtkWidget* Window;
|
||||||
|
GtkWidget* btnSaveEditSave;
|
||||||
|
GtkWidget* btnEditCancel;
|
||||||
|
|
||||||
|
GtkWidget* entryEditCmd;
|
||||||
|
GtkWidget* chbEditRead;
|
||||||
|
GtkWidget* spinEditRead;
|
||||||
|
GtkWidget* cbtEditRead;
|
||||||
|
|
||||||
|
GtkWidget* chbEditWrite;
|
||||||
|
GtkWidget* spinEditWrite;
|
||||||
|
GtkWidget* cbtEditWrite;
|
||||||
|
|
||||||
|
GtkWidget* chkSoftRestrictionEdit;
|
||||||
|
GtkWidget* spiSevereRestrictionEdit;
|
||||||
|
GtkWidget* cmSevereRestrictionEdit;
|
||||||
|
|
||||||
|
GtkWidget* chkSevereRestrictionEdit;
|
||||||
|
GtkWidget* spinSevereRestrictionEdit;
|
||||||
|
GtkWidget* cmbSevereRestrictionEdit;
|
||||||
|
|
||||||
|
GtkWidget* chkPaddingFLEdit;
|
||||||
|
GtkWidget* spinPaddingFLEdit;
|
||||||
|
GtkWidget* cmbPaddingFLEdit;
|
||||||
|
|
||||||
|
GtkWidget* chkCPULimitEdit;
|
||||||
|
GtkWidget* spinCPULimitEdit;
|
||||||
|
GtkWidget* lblCPULimitEdit;
|
||||||
|
GtkWidget* cbtEditDevice;
|
||||||
|
} edit_window;
|
||||||
|
|
||||||
|
// Функции
|
||||||
|
edit_window *edit_setup_window(char* glade_path);
|
||||||
|
void edit_event(edit_window *widgets);
|
||||||
|
void edit_localization(edit_window *widgets);
|
||||||
|
void edit_on_hide_subwindow(GtkWidget *self);
|
||||||
|
edit_window *get_widget_edit();
|
||||||
|
void edit_show(GtkWidget *self, char* glade_path);
|
||||||
|
void edit_destroy(GtkWidget *self);
|
||||||
|
void edit_init_windows();
|
||||||
|
void edit_set_active_widgets(GtkWidget *self, GtkWidget *entry, GtkWidget *label);
|
||||||
|
char* edit_get_select_device();
|
||||||
|
char* edit_get_read_device();
|
||||||
|
char* edit_get_write_device();
|
||||||
|
char* edit_get_soft();
|
||||||
|
char* edit_get_hard();
|
||||||
|
char* edit_get_limit_cpu();
|
||||||
|
char* edit_get_limit_swap();
|
||||||
|
void edit_generate_cmd();
|
||||||
|
void wrapper_edit_show();
|
||||||
|
void edit_set_select_device(char* str_value, int pow_mem);
|
||||||
|
void edit_set_read_device(char* str_value, int pow_mem);
|
||||||
|
void edit_set_write_device(char* str_value, int pow_mem);
|
||||||
|
void edit_set_soft(char* str_value, int pow_mem);
|
||||||
|
void edit_set_hard(char* str_value, int pow_mem);
|
||||||
|
void edit_set_limit_cpu(char* str_value, int pow_mem);
|
||||||
|
void edit_set_limit_swap(char* str_value, int pow_mem);
|
||||||
|
void edit_temp_set(char* str_value, int pow_mem, GtkWidget* cheek, GtkWidget* spin, GtkWidget* combo_box_text);
|
||||||
|
|
||||||
|
int edit_get_read_device_size();
|
||||||
|
int edit_get_write_device_size();
|
||||||
|
int edit_get_soft_size();
|
||||||
|
int edit_get_hard_size();
|
||||||
|
int edit_get_limit_cpu_size();
|
||||||
|
int edit_get_limit_swap_size();
|
||||||
|
#endif
|
After Width: | Height: | Size: 33 KiB |
@ -0,0 +1,156 @@
|
|||||||
|
.textHead{
|
||||||
|
text-shadow: 2px 2px @theme_bg_color;
|
||||||
|
color: @theme_text_color;
|
||||||
|
}
|
||||||
|
.boxInfoMessError{
|
||||||
|
background-color: #ea9999;
|
||||||
|
}
|
||||||
|
.boxInfoMessOK{
|
||||||
|
background-color: #f3f0ac;
|
||||||
|
}
|
||||||
|
.bannerbackground {
|
||||||
|
background-color: #404040;
|
||||||
|
}
|
||||||
|
.view_app {
|
||||||
|
background-color: @theme_bg_color;
|
||||||
|
}
|
||||||
|
.view_app.view.cell:selected {
|
||||||
|
background-color:@theme_selected_bg_color;
|
||||||
|
color:@theme_selected_text_color;
|
||||||
|
transition: 10ms ease-out;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
#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;
|
||||||
|
border-radius:5px;
|
||||||
|
}
|
||||||
|
.noborder {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.menu:hover {
|
||||||
|
border-color:alpha(@theme_text_color, 0.01);
|
||||||
|
}
|
||||||
|
.menu {
|
||||||
|
border-color:alpha(@theme_text_color, 0.01);
|
||||||
|
}
|
||||||
|
.menu:hover >* {
|
||||||
|
border-color:alpha(@theme_text_color, 0.01);
|
||||||
|
}
|
||||||
|
.menuitembottom{
|
||||||
|
margin-top:0px;
|
||||||
|
margin-bottom:3px;
|
||||||
|
}
|
||||||
|
.menuitemmiddle{
|
||||||
|
margin-top:0px;
|
||||||
|
margin-bottom:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menuitemtop{
|
||||||
|
margin-bottom:0px;
|
||||||
|
}
|
||||||
|
.menuitemtop *{
|
||||||
|
margin:2px 2px 0 2px;
|
||||||
|
padding: 5px 10px 3px 5px;
|
||||||
|
}
|
||||||
|
.menuitemmiddle *{
|
||||||
|
margin:0 2px 0 2px;
|
||||||
|
padding: 3px 10px 3px 5px;
|
||||||
|
}
|
||||||
|
.menuitembottom *{
|
||||||
|
margin:0 2px 2px 2px;
|
||||||
|
padding: 3px 10px 5px 5px;
|
||||||
|
}
|
||||||
|
.menuitemtop:hover {
|
||||||
|
background:@theme_bg_color;
|
||||||
|
border-color: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-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;
|
||||||
|
}
|
||||||
|
.noborder{
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bkim{
|
||||||
|
opacity:0.99;
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bkim_no_plug{
|
||||||
|
background-color: transparent;
|
||||||
|
opacity:0.99;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.thin{
|
||||||
|
margin:0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
.nobg{
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
.addbg * {
|
||||||
|
background-color: @theme_bg_color;
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,240 @@
|
|||||||
|
# Language translations for ubl-settings-diskquota package.
|
||||||
|
# Copyright (C) 2022, UBTech LLC
|
||||||
|
# This file is distributed under the same license as the ubl-settings-diskquota package.
|
||||||
|
# UBLinux Team <info@ublinux.com>, 2022
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2023-04-10 16:09+0000\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
msgid "User"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Group"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Process"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Slice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Documentation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save to local configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:10
|
||||||
|
msgid "Save to global configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:11
|
||||||
|
msgid "Save configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Kb"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Mb"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Gb"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Tb"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Type quota"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Quota volume"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Soft RAM limit, (volume)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Hard RAM limit, (volume)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Swap file limit (volume)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "CPU limit (%)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "I/O limit (read)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "I/O limit (write)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Filters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "List quotas"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Dispatcher"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Processes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Information"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "seconds"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Update every"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Core streams"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "All groups including empty"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "View properties for"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Setting resource quotas"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "CPU and RAM quotas"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Information"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Add"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Error saved local and global configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"GTK settings disk quota for UBLinux\n"
|
||||||
|
"\n"
|
||||||
|
"Usage: ubl-settings-diskquota [OPTIONS...]\n"
|
||||||
|
"Options:\n"
|
||||||
|
" -h, --help\t Show this help\n"
|
||||||
|
" -V, --version\t Show package version\n"
|
||||||
|
" --lock-help Lock utility help\n"
|
||||||
|
" --lock-save Lock saving local and global configuration\n"
|
||||||
|
" --lock-save-local Lock save global configuration\n"
|
||||||
|
" --lock-save-global Lock load global configuration\n"
|
||||||
|
" --lock-load-global Lock load global configuration\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Global configuration read error"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Global configuration write error"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Nothing to save!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Project Home Page"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save in global and local configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save in global configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save in local configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Global configuration downloaded successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Load"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Load global configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Load local configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Local configuration downloaded successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Local configuration reading error"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Local configuration successfully written"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Local configuration write error"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Help"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "About"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Settings quotas - Editing"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Quota object"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "RAM limit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Soft Restriction"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Severe Restriction"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Paging file limit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "CPU limit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Input/Output limit of block devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Device:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Write"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Manual input (for advanced users)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Settings quotas - Adding"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
|
Loading…
Reference in new issue
Заменить на актуальную.
Исправил.
8a88026373