Localisation. Loading and saving return (WIP); services config interactions; Fixes of tables fulling

pull/28/head
parent 87282e7e0d
commit 7f2753d726

@ -60,37 +60,211 @@ void on_config_global_save(){
}
void on_config_autostart_clicked(){
}
void on_activate(GtkTreeView *self, main_window *widgets){
if (self&&widgets){};
}
void on_config_autostart_clicked(GtkWidget *self, main_window *widgets){
if (self){};
GtkTreeIter iter;
GtkTreeModel *model;
GtkWidget *Tree;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
Tree = widgets->SystemUnitsTree;
} else {
model = GTK_TREE_MODEL(widgets->UserList);
Tree = widgets->UserUnitsTree;
}
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){
gboolean status = 0;
char *name;
gtk_tree_model_get(model,&iter,0,&status,5,&name,-1);
char *parsed_name = yon_char_divide(name, yon_char_find_last(name,'.'));
free(name);
name=parsed_name;
gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,!status,-1);
char *config_sting = yon_config_get_by_key("SERVICES_ENABLE");
int size;
config_str parsed = yon_char_parse(config_sting,&size,",");
int place = yon_char_parsed_check_exist(parsed,size,name);
if (status==0){
if (place ==-1){
if (!yon_config_append("SERVICES_ENABLE",name,",")){
yon_config_register("SERVICES_ENABLE",SERVICES_ENABLE_get_command,name);
}
}
} else {
if (place !=-1){
parsed = yon_char_parsed_rip(parsed,&size,place);
if (parsed)
yon_config_set("SERVICES_ENABLE",yon_char_parsed_to_string(parsed,size,","));
else yon_config_remove_by_key("SERVICES_ENABLE");
}
}
yon_char_parsed_free(parsed,size);
}
}
void on_config_autostop_clicked(){
void on_config_autostop_clicked(GtkWidget *self, main_window *widgets){
if (self){};
GtkTreeIter iter;
GtkTreeModel *model;
GtkWidget *Tree;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
Tree = widgets->SystemUnitsTree;
} else {
model = GTK_TREE_MODEL(widgets->UserList);
Tree = widgets->UserUnitsTree;
}
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){
gboolean status = 0;
char *name;
gtk_tree_model_get(model,&iter,1,&status,5,&name,-1);
char *parsed_name = yon_char_divide(name, yon_char_find_last(name,'.'));
free(name);
name=parsed_name;
gtk_list_store_set(GTK_LIST_STORE(model),&iter,1,!status,-1);
char *config_sting = yon_config_get_by_key("SERVICES_DISABLE");
int size;
config_str parsed = yon_char_parse(config_sting,&size,",");
int place = yon_char_parsed_check_exist(parsed,size,name);
if (status==0){
if (place ==-1){
if (!yon_config_append("SERVICES_DISABLE",name,",")){
yon_config_register("SERVICES_DISABLE",SERVICES_DISABLE_get_command,name);
}
}
} else {
if (place !=-1){
parsed = yon_char_parsed_rip(parsed,&size,place);
if (parsed)
yon_config_set("SERVICES_DISABLE",yon_char_parsed_to_string(parsed,size,","));
else yon_config_remove_by_key("SERVICES_DISABLE");
}
}
yon_char_parsed_free(parsed,size);
}
}
void on_config_block_clicked(){
void on_config_block_clicked(GtkWidget *self, main_window *widgets){
if (self){};
GtkTreeIter iter;
GtkTreeModel *model;
GtkWidget *Tree;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
Tree = widgets->SystemUnitsTree;
} else {
model = GTK_TREE_MODEL(widgets->UserList);
Tree = widgets->UserUnitsTree;
}
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){
gboolean status = 0;
char *name;
gtk_tree_model_get(model,&iter,2,&status,5,&name,-1);
char *parsed_name = yon_char_divide(name, yon_char_find_last(name,'.'));
free(name);
name=parsed_name;
gtk_list_store_set(GTK_LIST_STORE(model),&iter,2,!status,-1);
char *config_sting = yon_config_get_by_key("SERVICES_MASK");
int size;
config_str parsed = yon_char_parse(config_sting,&size,",");
int place = yon_char_parsed_check_exist(parsed,size,name);
if (status==0){
if (place ==-1){
if (!yon_config_append("SERVICES_MASK",name,",")){
yon_config_register("SERVICES_MASK",SERVICES_MASK_get_command,name);
}
}
} else {
if (place !=-1){
parsed = yon_char_parsed_rip(parsed,&size,place);
if (parsed)
yon_config_set("SERVICES_MASK",yon_char_parsed_to_string(parsed,size,","));
else yon_config_remove_by_key("SERVICES_MASK");
}
}
yon_char_parsed_free(parsed,size);
}
}
void on_system_autostart_clicked(){
void on_system_autostart_clicked(GtkWidget *self, main_window *widgets){
if (self){};
GtkTreeIter iter;
GtkTreeModel *model;
GtkWidget *Tree;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
Tree = widgets->SystemUnitsTree;
} else {
model = GTK_TREE_MODEL(widgets->UserList);
Tree = widgets->UserUnitsTree;
}
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){
gboolean status = 0;
char *service_name;
gtk_tree_model_get(model,&iter,3,&status,5,&service_name,-1);
gtk_list_store_set(GTK_LIST_STORE(model),&iter,3,!status,-1);
yon_launch((!status)==1 ? service_enable_command(service_name) : \
service_disable_command(service_name));
}
}
void on_system_kill_confirmed(GtkWidget *self,char *service_name){
if (self&&service_name){};
if (self){};
char *command = service_kill_command(service_name);
yon_launch(command);
}
void on_system_launch_clicked(){
void on_system_launch_clicked(GtkWidget *self, main_window *widgets){
if (self){};
GtkTreeIter iter;
GtkTreeModel *model;
GtkWidget *Tree;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
Tree = widgets->SystemUnitsTree;
} else {
model = GTK_TREE_MODEL(widgets->UserList);
Tree = widgets->UserUnitsTree;
}
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){
gboolean status = 0;
char *service_name;
gtk_tree_model_get(model,&iter,4,&status,5,&service_name,-1);
yon_launch((!status)==1 ? service_start_command(service_name) : \
service_stop_command(service_name));
int size;
config_str result = yon_config_load(service_check_active_command(service_name),&size);
yon_char_remove_last_symbol(result[0],'\n');
if (size>0){
if (!strcmp(result[0],"active")){
if (status){
dialog_confirmation_data data;
data.action_text=STOP_SERVICE_WARMING_LABEL(service_name);
data.function=(void*)(void*)on_system_kill_confirmed;
data.data=service_name;
int answer = yon_confirmation_dialog_call(self,&data);
if (answer)
gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,0,-1);
} else {
gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,1,-1);
}
} else {
gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,0,-1);
}
}
yon_char_parsed_free(result,size);
}
}
void on_system_restart_clicked(){
void on_system_restart_clicked(GtkWidget *self, main_window *widgets){
if (self&&widgets){};
}
void on_source_show(){
@ -301,9 +475,7 @@ void on_system_status_clicked(GtkWidget *self, main_window *widgets){
void on_system_filter_changed(GtkWidget *self, main_window *widgets){
if (self){}
if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
}
}
@ -311,9 +483,7 @@ void on_system_filter_changed(GtkWidget *self, main_window *widgets){
void on_system_search(GtkWidget *self, main_window *widgets){
if (self){}
if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
}
}
@ -321,9 +491,7 @@ void on_system_search(GtkWidget *self, main_window *widgets){
void on_system_inactive_toggled(GtkWidget *self, main_window *widgets){
if (self){}
if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
}
}
@ -331,9 +499,7 @@ void on_system_inactive_toggled(GtkWidget *self, main_window *widgets){
void on_system_unloaded_toggled(GtkWidget *self, main_window *widgets){
if (self){}
if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
}
}
@ -443,9 +609,7 @@ void on_user_status_clicked(GtkWidget *self, main_window *widgets){
void on_user_filter_changed(GtkWidget *self, main_window *widgets){
if (self){}
if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
}
}
@ -453,9 +617,7 @@ void on_user_filter_changed(GtkWidget *self, main_window *widgets){
void on_user_search(GtkWidget *self, main_window *widgets){
if (self){}
if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
}
}
@ -463,9 +625,7 @@ void on_user_search(GtkWidget *self, main_window *widgets){
void on_user_inactive_toggled(GtkWidget *self, main_window *widgets){
if (self){}
if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
}
}
@ -473,9 +633,7 @@ void on_user_inactive_toggled(GtkWidget *self, main_window *widgets){
void on_user_unloaded_toggled(GtkWidget *self, main_window *widgets){
if (self){}
if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
}
}
@ -524,9 +682,6 @@ void on_config_edit_clicked(GtkWidget *self, main_window *widgets){
void on_session_start_clicked(GtkWidget *self, main_window *widgets){
if (self){}
if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
}
}
@ -534,9 +689,7 @@ void on_session_start_clicked(GtkWidget *self, main_window *widgets){
void on_session_stop_clicked(GtkWidget *self, main_window *widgets){
if (self){}
if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
}
}
@ -544,9 +697,6 @@ void on_session_stop_clicked(GtkWidget *self, main_window *widgets){
void on_session_lock_clicked(GtkWidget *self, main_window *widgets){
if (self){}
if (widgets){
log_window *window = yon_log_window_new();
gtk_widget_show(window->Window);
}
@ -626,6 +776,11 @@ void on_timers_list_status(GtkWidget *self, main_window *widgets){
gboolean yon_interface_update(main_window *widgets){
if (widgets){
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SystemUnitsTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->UserUnitsTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ConfigMainTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SessionMainTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->TimersMainTree),NULL);
int system_size;
config_str system_services = yon_config_load(load_services_command,&system_size);
int user_size;
@ -642,7 +797,7 @@ gboolean yon_interface_update(main_window *widgets){
if (system_services[i][strlen(system_services[i])-1]=='\n') system_services[i][strlen(system_services[i])-1] = '\0';
int size;
config_str parsed = yon_char_parse(system_services[i],&size,";");
if (parsed&&strstr(parsed[0],".service")){
if (parsed){
gtk_list_store_append(widgets->SystemList,&iter);
gtk_list_store_set(widgets->SystemList,&iter,4,strcmp(parsed[2],"active")?0:1,5,parsed[0],6,parsed[4],-1);
}
@ -653,7 +808,7 @@ gboolean yon_interface_update(main_window *widgets){
if (user_services[i][strlen(user_services[i])-1]=='\n') user_services[i][strlen(user_services[i])-1] = '\0';
int size;
config_str parsed = yon_char_parse(user_services[i],&size,";");
if (strstr(parsed[0],".service")){
if (parsed){
gtk_list_store_append(widgets->UserList,&iter);
gtk_list_store_set(widgets->UserList,&iter,4,strcmp(parsed[2],"active")?0:1,5,parsed[0],6,parsed[4],-1);
}
@ -675,14 +830,16 @@ gboolean yon_interface_update(main_window *widgets){
GtkTreeIter iter;
int size;
config_str parsed = yon_char_parse(sessions[i],&size," ");
if (!strcmp(parsed[1],"\001")) parsed[1]=ACTIVE_LABEL;
else parsed[1]=INACTIVE_LABEL;
if (parsed&&size>4){
gtk_list_store_append(widgets->SessionsList,&iter);
gtk_list_store_set(widgets->SessionsList,&iter,0,atoi(parsed[0]),1,atoi(parsed[1]),2,parsed[2],3,parsed[3],4,parsed[4],-1);
gtk_list_store_set(widgets->SessionsList,&iter,0,atoi(parsed[0]),1,parsed[1],2,atoi(parsed[2]),3,parsed[3],4,parsed[4],-1);
}
}
for (size_t i=0;i<json_object_array_length(jsobject);i++){
struct json_object *item_obj = json_object_array_get_idx(jsobject, i);
const char *unit="",*next="",*left="",*last="'",*passed="",*activates="";
const char *unit="",*next="",*left="",*last="",*passed="",*activates="";
// Получение значений по ключам
struct json_object *unit_obj;
if (json_object_object_get_ex(item_obj, "unit", &unit_obj)) {
@ -715,18 +872,169 @@ gboolean yon_interface_update(main_window *widgets){
}
GtkTreeIter iter;
gtk_list_store_append(widgets->TimersList,&iter);
GDateTime *datetime = g_date_time_new_from_unix_local(atoi(next));
next = g_date_time_format(datetime,"%Y.%m.%d H:M:s");
g_date_time_unref(datetime);
datetime = g_date_time_new_from_unix_local(atoi(left));
left = g_date_time_format(datetime,"%Y.%m.%d H:M:s");
g_date_time_unref(datetime);
datetime = g_date_time_new_from_unix_local(atoi(last));
last = g_date_time_format(datetime,"%Y.%m.%d H:M:s");
GDateTime *datetime=NULL;
if (atol(next)!=0){
datetime = g_date_time_new_from_unix_local(atol(next)/1000000);
next = g_date_time_format(datetime,"%Y.%m.%d %H:%M:%S");
g_date_time_unref(datetime);
} else {
next="";
}
if (atol(left)!=0){
datetime = g_date_time_new_from_unix_local(atol(left)/1000000);
GDateTime *now = g_date_time_new_now_local();
left = g_date_time_format(datetime,"%Y.%m.%d %H:%M:%S");
gint64 left_microseconds = 0;
left_microseconds = g_date_time_difference(datetime,now);
left_microseconds/=1000000;
long days = (long)((left_microseconds/60)/60)/24;
long hours = (long)(left_microseconds/60)/60%60;
long minutes = (long)left_microseconds/60%60;
long seconds = (long)left_microseconds%60;
g_date_time_unref(datetime);
left = yon_char_unite(days?yon_char_from_long(days):"",days?" ":"",days?DAYS_LABEL:"",days?" ":"",hours?yon_char_from_long(hours):"",hours?" ":"",hours?HOURS_LABEL:"",hours?" ":"",minutes?yon_char_from_long(minutes):"",minutes?" ":"",minutes?MINUTES_LABEL:"",minutes?" ":"",seconds?yon_char_from_long(seconds):"",seconds?" ":"",seconds?SECONDS_LABEL:"",NULL);
} else {
left="";
}
if (atol(last)!=0){
datetime = g_date_time_new_from_unix_local(atol(last)/1000000);
last = g_date_time_format(datetime,"%Y.%m.%d %H:%M:%S");
g_date_time_unref(datetime);
} else {
last="";
}
if (atol(passed)!=0){
datetime = g_date_time_new_from_unix_local(atol(passed)/1000000);
passed = g_date_time_format(datetime,"%Y.%m.%d %H:%M:%S");
g_date_time_unref(datetime);
} else {
passed="";
}
gtk_list_store_set(widgets->TimersList,&iter,0,unit,1,next,2,left,3,last,4,passed,5,activates,-1);
}
}
{
int parsed_size;
char *enabled = yon_config_get_by_key(SERVICES_ENABLE_PARAMETER);
config_str parsed = yon_char_parse(enabled,&parsed_size,",");
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->UserList);
int valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
gtk_list_store_set(widgets->UserList,&iter,0,0,-1);
}
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
for (int i=0;i<parsed_size;i++){
if (strstr(name,parsed[i])) gtk_list_store_set(widgets->UserList,&iter,0,1,-1);
}
}
yon_char_parsed_free(parsed,parsed_size);
char *disabled = yon_config_get_by_key(SERVICES_DISABLE_PARAMETER);
parsed = yon_char_parse(disabled,&parsed_size,",");
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
gtk_list_store_set(widgets->UserList,&iter,1,0,-1);
}
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
for (int i=0;i<parsed_size;i++){
if (strstr(name,parsed[i])) gtk_list_store_set(widgets->UserList,&iter,1,1,-1);
}
}
yon_char_parsed_free(parsed,parsed_size);
char *masked = yon_config_get_by_key(SERVICES_MASK_PARAMETER);
parsed = yon_char_parse(masked,&parsed_size,",");
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
gtk_list_store_set(widgets->UserList,&iter,2,0,-1);
}
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
for (int i=0;i<parsed_size;i++){
if (strstr(name,parsed[i])) gtk_list_store_set(widgets->UserList,&iter,2,1,-1);
}
}
}
{
int parsed_size;
char *enabled = yon_config_get_by_key(SERVICES_ENABLE_PARAMETER);
config_str parsed = yon_char_parse(enabled,&parsed_size,",");
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->UserList);
int valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
gtk_list_store_set(widgets->UserList,&iter,0,0,-1);
}
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
for (int i=0;i<parsed_size;i++){
if (strstr(name,parsed[i])) gtk_list_store_set(widgets->UserList,&iter,0,1,-1);
}
}
yon_char_parsed_free(parsed,parsed_size);
char *disabled = yon_config_get_by_key(SERVICES_DISABLE_PARAMETER);
parsed = yon_char_parse(disabled,&parsed_size,",");
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
gtk_list_store_set(widgets->UserList,&iter,1,0,-1);
}
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
for (int i=0;i<parsed_size;i++){
if (strstr(name,parsed[i])) gtk_list_store_set(widgets->UserList,&iter,1,1,-1);
}
}
yon_char_parsed_free(parsed,parsed_size);
char *masked = yon_config_get_by_key(SERVICES_MASK_PARAMETER);
parsed = yon_char_parse(masked,&parsed_size,",");
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
gtk_list_store_set(widgets->UserList,&iter,2,0,-1);
}
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
{
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
for (int i=0;i<parsed_size;i++){
if (strstr(name,parsed[i])) gtk_list_store_set(widgets->UserList,&iter,2,1,-1);
}
}
}
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SystemUnitsTree),GTK_TREE_MODEL(widgets->SystemList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->UserUnitsTree),GTK_TREE_MODEL(widgets->UserList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ConfigMainTree),GTK_TREE_MODEL(widgets->ConfigList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SessionMainTree),GTK_TREE_MODEL(widgets->SessionsList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->TimersMainTree),GTK_TREE_MODEL(widgets->TimersList));
return 0;
}
@ -831,10 +1139,10 @@ void yon_main_window_complete(main_window *widgets){
AUTOSTART_LABEL,start_icon_path,on_system_autostart_clicked,widgets,
LAUNCHED_LABEL,launch_icon_path,on_system_launch_clicked,widgets,
RESTART_LABEL,update_icon_path,on_system_restart_clicked,widgets,
STATUS_LABEL,status_icon_path,on_status_show,widgets,
SHOW_LOG_LABEL,log_icon_path,on_log_show,widgets,
SHOW_SOURCE_LABEL,source_icon_path,on_source_show,widgets,
PROPERTIES_LABEL,properties_icon_path,on_properties_show,widgets,
STATUS_LABEL,status_icon_path,on_system_info_clicked,widgets,
SHOW_LOG_LABEL,log_icon_path,on_system_log_clicked,widgets,
SHOW_SOURCE_LABEL,source_icon_path,on_system_edit_clicked,widgets,
PROPERTIES_LABEL,properties_icon_path,on_system_status_clicked,widgets,
NULL);
widgets->UserSearchEntry=yon_gtk_builder_get_widget(builder,"UserSearchEntry");
@ -860,10 +1168,10 @@ void yon_main_window_complete(main_window *widgets){
AUTOSTART_LABEL,start_icon_path,on_system_autostart_clicked,widgets,
LAUNCHED_LABEL,launch_icon_path,on_system_launch_clicked,widgets,
RESTART_LABEL,update_icon_path,on_system_restart_clicked,widgets,
STATUS_LABEL,status_icon_path,on_status_show,widgets,
SHOW_LOG_LABEL,log_icon_path,on_log_show,widgets,
SHOW_SOURCE_LABEL,source_icon_path,on_source_show,widgets,
PROPERTIES_LABEL,properties_icon_path,on_properties_show,widgets,
STATUS_LABEL,status_icon_path,on_user_info_clicked,widgets,
SHOW_LOG_LABEL,log_icon_path,on_user_log_clicked,widgets,
SHOW_SOURCE_LABEL,source_icon_path,on_user_edit_clicked,widgets,
PROPERTIES_LABEL,properties_icon_path,on_user_status_clicked,widgets,
NULL);
widgets->ConfigEditButton=yon_gtk_builder_get_widget(builder,"ConfigEditButton");

@ -33,11 +33,11 @@
#define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-services"
#define load_services_command "systemctl list-units --type=service --type=socket --no-pager --all --plain --no-legend |sed -E 's/(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*)/\\1;\\2;\\3;\\4;\\5/'"
#define load_user_services_command yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-units --type=service --type=socket --no-pager --all --plain --no-legend |sed -E 's/(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*)/\\1;\\2;\\3;\\4;\\5/'",NULL)
#define load_system_services_command "systemctl --system list-units --type=service --type=socket --no-pager --all |grep -E \"^ \" |grep -v \"UNIT\" |sed -e 's/ */;/g' -e 's/^;//g' |cut -f1 -d';'"
#define load_enabled_command "systemctl list-unit-files --type=service --type=socket --no-pager --state=enabled --all |sed -e 's/ */:/g' -e 's/ *: */:/g'|cut -f1 -d:"
#define load_launched_command "systemctl list-units --type=service --type=socket --no-pager --state=active --all --no-legend|sed -e 's/^ //g' -e 's/ */:/g' |cut -f1 -d:"
#define load_services_command "systemctl list-units --no-pager --all --plain --no-legend |sed -E 's/(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*)/\\1;\\2;\\3;\\4;\\5/'"
#define load_user_services_command yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-units --no-pager --all --plain --no-legend |sed -E 's/(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*)/\\1;\\2;\\3;\\4;\\5/'",NULL)
#define load_system_services_command "systemctl --system list-units --no-pager --all |grep -E \"^ \" |grep -v \"UNIT\" |sed -e 's/ */;/g' -e 's/^;//g' |cut -f1 -d';'"
#define load_enabled_command "systemctl list-unit-files --no-pager --state=enabled --all |sed -e 's/ */:/g' -e 's/ *: */:/g'|cut -f1 -d:"
#define load_launched_command "systemctl list-units --no-pager --state=active --all --no-legend|sed -e 's/^ //g' -e 's/ */:/g' |cut -f1 -d:"
#define service_start_command(target) yon_char_append("systemctl start --no-pager ",target)
#define service_stop_command(target) yon_char_append("systemctl stop --no-pager ",target)
#define service_enable_command(target) yon_char_append("systemctl enable --no-pager ",target)
@ -74,7 +74,7 @@
#define config_get_command(target) yon_char_append("cat ",target)
#define config_get_local_command "ubconfig --source system get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK"
#define config_get_global_command "ubconfig --source global get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK"
#define config_get_global_command yon_char_new("ubconfig --source global get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK")
#define config_get_default_command ""
#define config_get_global_only_parameters ""
@ -102,6 +102,10 @@
#define reload_systemd_user_command "systemctl --user daemon-reload"
#define reexec_systemd_user_command "systemctl --user daemon-reexec"
#define SERVICES_ENABLE_PARAMETER "SERVICES_ENABLE"
#define SERVICES_DISABLE_PARAMETER "SERVICES_DISABLE"
#define SERVICES_MASK_PARAMETER "SERVICES_MASK"
typedef char* string;
string version_application;
@ -262,21 +266,21 @@ gboolean on_context_menu_open(GtkWidget *self,GdkEventButton *event, main_window
GtkWidget *yon_menu_separator_create();
void on_config_autostart_clicked();
void on_config_autostart_clicked(GtkWidget *self, main_window *widgets);
void on_activate(GtkTreeView *self, main_window *widgets);
void on_config_autostop_clicked();
void on_config_autostop_clicked(GtkWidget *self, main_window *widgets);
void on_config_block_clicked();
void on_config_block_clicked(GtkWidget *self, main_window *widgets);
void on_system_autostart_clicked();
void on_system_autostart_clicked(GtkWidget *self, main_window *widgets);
void on_system_kill_confirmed(GtkWidget *self,char *service_name);
void on_system_launch_clicked();
void on_system_launch_clicked(GtkWidget *self, main_window *widgets);
void on_system_restart_clicked();
void on_system_restart_clicked(GtkWidget *self, main_window *widgets);
void on_source_show();

@ -60,3 +60,57 @@
#define SWITCH_OFF_ERROR_LABEL _("Service were not stopped")
#define STOP_SERVICE_WARMING_LABEL(target) yon_char_unite(_("Are you sure want to stop "),target,"?\n",_("The stop will be forced.\nThe system may become unstable."),NULL)
#define DAYS_LABEL _("Days")
#define HOURS_LABEL _("Hours")
#define MINUTES_LABEL _("Minutes")
#define SECONDS_LABEL _("Seconds")
#define ACTIVE_LABEL _("Active")
#define INACTIVE_LABEL _("Inactive")
#define SYSTEM_UNITS_LABEL _("System units")
#define USER_UNITS_LABEL _("User units")
#define CONFIG_FILES_LABEL _("Config files")
#define SESSIONS__LABEL _("Sessions")
#define TIMERS_LABEL _("Timers")
#define SYSTEM_STATUS_LABEL _("System services status")
#define USER_STATUS_LABEL _("User services status")
#define INSTALLED_UNIT_LABEL _("Installed unit files")
#define UNITS_LIST_LABEL _("Units and status list")
#define SOCKETS_LIST_LABEL _("Sockets and status list")
#define TIMERS_LIST_LABEL _("Timers and status list")
#define UNIT_LABEL _("Unit")
#define RELAUNCH_SYSTEMCTL_LABEL _("Relaunch systemctl")
#define REEXEC_SYSTEMCTL_LABEL _("Reexec systemctl")
#define SHOW_SERVICE_INFO_LABEL _("Show service information")
#define SHOW_SERVICE_LOG_LABEL _("Show service log")
#define SHOW_SERVICE_SOURCE_LABEL _("Show service source file")
#define SHOW_SERVICE_PROPERTIES_LABEL _("Show service properties")
#define SHOW_LABEL _("Show...")
#define SHOW_INACTIVE_LABEL _("Show inactive")
#define SHOW_UNLOADED_LABEL _("Show unloaded")
#define FILE_LABEL _("File")
#define CHANGE_DATE_LABEL _("Change date")
#define DESCRIPTION_TAB_LABEL _("Description")
#define EDIT_LABEL _("Edit")
#define SESSION_ID_LABEL _("Session ID")
#define USER_ID_LABEL _("User ID")
#define USER_NAME_LABEL _("User name")
#define SEAT_ID_LABEL _("Seat ID")
#define SESSION_START_LABEL _("Start session")
#define SESSION_END_LABEL _("Stop session")
#define SESSION_LOCK_LABEL _("Lock session")
#define TIMER_LABEL _("Timer")
#define NEXT_LABEL _("Next")
#define LEFT_LABEL _("Left")
#define LAST_LABEL _("Last")
#define PASSED_LABEL _("Passed")
#define ACTIVATES_LABEL _("Activates")

@ -549,6 +549,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostart</property>
<child>
<object class="GtkCellRendererToggle"/>
@ -562,6 +563,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostop</property>
<child>
<object class="GtkCellRendererToggle"/>
@ -575,6 +577,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Block</property>
<child>
<object class="GtkCellRendererToggle"/>
@ -588,6 +591,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostart</property>
<child>
<object class="GtkCellRendererToggle"/>
@ -601,6 +605,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Launched</property>
<child>
<object class="GtkCellRendererToggle"/>
@ -614,7 +619,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="fixed-width">10</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Unit</property>
<child>
<object class="GtkCellRendererText"/>
@ -627,6 +632,7 @@
<child>
<object class="GtkTreeViewColumn">
<property name="sizing">autosize</property>
<property name="min-width">20</property>
<property name="title" translatable="yes"> </property>
<property name="expand">True</property>
<child>
@ -1050,6 +1056,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostart</property>
<child>
<object class="GtkCellRendererToggle"/>
@ -1063,6 +1070,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostop</property>
<child>
<object class="GtkCellRendererToggle"/>
@ -1076,6 +1084,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Block</property>
<child>
<object class="GtkCellRendererToggle"/>
@ -1089,6 +1098,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostart</property>
<child>
<object class="GtkCellRendererToggle"/>
@ -1102,6 +1112,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Launched</property>
<child>
<object class="GtkCellRendererToggle"/>
@ -1115,7 +1126,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="fixed-width">10</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Unit</property>
<child>
<object class="GtkCellRendererText"/>
@ -1128,6 +1139,7 @@
<child>
<object class="GtkTreeViewColumn">
<property name="sizing">autosize</property>
<property name="min-width">20</property>
<property name="title" translatable="yes"> </property>
<property name="expand">True</property>
<child>
@ -1331,7 +1343,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">File</property>
<child>
<object class="GtkCellRendererText"/>
@ -1345,7 +1357,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Change date</property>
<child>
<object class="GtkCellRendererText"/>
@ -1357,7 +1369,7 @@
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Description</property>
<property name="expand">True</property>
<child>
@ -1490,7 +1502,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Session ID</property>
<child>
<object class="GtkCellRendererText"/>
@ -1504,7 +1516,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Status</property>
<child>
<object class="GtkCellRendererText"/>
@ -1518,7 +1530,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">User ID</property>
<child>
<object class="GtkCellRendererText"/>
@ -1532,7 +1544,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">User name</property>
<child>
<object class="GtkCellRendererText"/>
@ -1544,7 +1556,7 @@
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Seat ID</property>
<property name="expand">True</property>
<child>
@ -1616,7 +1628,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Timer</property>
<child>
<object class="GtkCellRendererText"/>
@ -1630,7 +1642,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Next</property>
<child>
<object class="GtkCellRendererText"/>
@ -1644,7 +1656,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Previous</property>
<child>
<object class="GtkCellRendererText"/>
@ -1658,7 +1670,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Last</property>
<child>
<object class="GtkCellRendererText"/>
@ -1672,7 +1684,7 @@
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Passed</property>
<child>
<object class="GtkCellRendererText"/>
@ -1684,7 +1696,7 @@
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="min-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Activates</property>
<property name="expand">True</property>
<child>

@ -18,199 +18,367 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: source/ubl-strings.h:1
msgid "Version:"
msgstr ""
#: source/ubl-strings.h:2
msgid "ubl-settings-services version:"
msgstr ""
#: source/ubl-strings.h:2
msgid "Usage:"
msgstr ""
#: source/ubl-strings.h:2
msgid "[OPTIONS]"
msgstr ""
#: source/ubl-strings.h:2
msgid "Options:"
msgstr ""
#: source/ubl-strings.h:2
msgid "Show this help"
msgstr ""
#: source/ubl-strings.h:2
msgid "Show package version"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock this help menu"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock configuration saving"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock local configration saving"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock global configration saving"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock global configration loading"
msgstr ""
#: source/ubl-strings.h:2
msgid "Reset application settings"
msgstr ""
#: source/ubl-strings.h:4
msgid "Services and processes systemd"
msgstr ""
#: source/ubl-strings.h:5
#: source/ubl-strings.h:2
msgid "System services and processes configuration"
msgstr ""
#: source/ubl-strings.h:6
#: source/ubl-strings.h:3
msgid "Services and processes - service information"
msgstr ""
#: source/ubl-strings.h:8 source/ubl-strings.h:40
#: source/ubl-strings.h:5 source/ubl-strings.h:37
msgid "Configure in configuration"
msgstr ""
#: source/ubl-strings.h:9 source/ubl-strings.h:44
#: source/ubl-strings.h:6 source/ubl-strings.h:41
msgid "Autostart"
msgstr ""
#: source/ubl-strings.h:10 source/ubl-strings.h:45
#: source/ubl-strings.h:7 source/ubl-strings.h:42
msgid "Autostop"
msgstr ""
#: source/ubl-strings.h:11 source/ubl-strings.h:46
#: source/ubl-strings.h:8 source/ubl-strings.h:43
msgid "Block"
msgstr ""
#: source/ubl-strings.h:12 source/ubl-strings.h:41
#: source/ubl-strings.h:9 source/ubl-strings.h:38
msgid "Configure in system"
msgstr ""
#: source/ubl-strings.h:13 source/ubl-strings.h:47
#: source/ubl-strings.h:10 source/ubl-strings.h:44
msgid "Launched"
msgstr ""
#: source/ubl-strings.h:14
#: source/ubl-strings.h:11
msgid "Reload"
msgstr ""
#: source/ubl-strings.h:15
#: source/ubl-strings.h:12
msgid "Show status"
msgstr ""
#: source/ubl-strings.h:16
#: source/ubl-strings.h:13
msgid "Update"
msgstr ""
#: source/ubl-strings.h:18
#: source/ubl-strings.h:15
msgid "All services"
msgstr ""
#: source/ubl-strings.h:19
#: source/ubl-strings.h:16
msgid "System services only"
msgstr ""
#: source/ubl-strings.h:20
#: source/ubl-strings.h:17
msgid "User services only"
msgstr ""
#: source/ubl-strings.h:22
#: source/ubl-strings.h:19
msgid "All"
msgstr ""
#: source/ubl-strings.h:23
#: source/ubl-strings.h:20
msgid "Services"
msgstr ""
#: source/ubl-strings.h:24
#: source/ubl-strings.h:21
msgid "Sockets"
msgstr ""
#: source/ubl-strings.h:25
#: source/ubl-strings.h:22
msgid "Autolaunch in configuration"
msgstr ""
#: source/ubl-strings.h:26
#: source/ubl-strings.h:23
msgid "Stopped in configuration"
msgstr ""
#: source/ubl-strings.h:27
#: source/ubl-strings.h:24
msgid "Blocked in configuration"
msgstr ""
#: source/ubl-strings.h:29
#: source/ubl-strings.h:26
msgid "Toggle autostart at configuration"
msgstr ""
#: source/ubl-strings.h:30
#: source/ubl-strings.h:27
msgid "Toggle autostop at configuration"
msgstr ""
#: source/ubl-strings.h:31
#: source/ubl-strings.h:28
msgid "Toggle service blocking at configuration"
msgstr ""
#: source/ubl-strings.h:32
#: source/ubl-strings.h:29
msgid "Toggle autostart at system"
msgstr ""
#: source/ubl-strings.h:33
#: source/ubl-strings.h:30
msgid "Launch/Stop service"
msgstr ""
#: source/ubl-strings.h:34
#: source/ubl-strings.h:31
msgid "Check service status"
msgstr ""
#: source/ubl-strings.h:35
#: source/ubl-strings.h:32
msgid "Check service log"
msgstr ""
#: source/ubl-strings.h:37
#: source/ubl-strings.h:34
msgid "Service:"
msgstr ""
#: source/ubl-strings.h:38
#: source/ubl-strings.h:35
msgid "Description:"
msgstr ""
#: source/ubl-strings.h:42
#: source/ubl-strings.h:39
msgid "Service"
msgstr ""
#: source/ubl-strings.h:48
#: source/ubl-strings.h:45
msgid "Service list is loading"
msgstr ""
#: source/ubl-strings.h:49
#: source/ubl-strings.h:46
msgid "Status"
msgstr ""
#: source/ubl-strings.h:47
msgid "Restart with new configuration"
msgstr ""
#: source/ubl-strings.h:48
msgid "Show log"
msgstr ""
#: source/ubl-strings.h:49
msgid "Show source"
msgstr ""
#: source/ubl-strings.h:50
msgid "Properties"
msgstr ""
#: source/ubl-strings.h:51
msgid "Service were not stopped"
msgid "Activate session"
msgstr ""
#: source/ubl-strings.h:52
msgid "End session"
msgstr ""
#: source/ubl-strings.h:53
msgid "Block session"
msgstr ""
#: source/ubl-strings.h:55
msgid "Service source were not loaded"
msgstr ""
#: source/ubl-strings.h:57
msgid "Saving..."
msgstr ""
#: source/ubl-strings.h:58
msgid "Saved"
msgstr ""
#: source/ubl-strings.h:59
msgid "Error has occured"
msgstr ""
#: source/ubl-strings.h:61
msgid "Service were not stopped"
msgstr ""
#: source/ubl-strings.h:62
msgid "Are you sure want to stop "
msgstr ""
#: source/ubl-strings.h:52
#: source/ubl-strings.h:62
msgid ""
"The stop will be forced.\n"
"The system may become unstable."
msgstr ""
#: source/ubl-strings.h:63
msgid "Days"
msgstr ""
#: source/ubl-strings.h:64
msgid "Hours"
msgstr ""
#: source/ubl-strings.h:65
msgid "Minutes"
msgstr ""
#: source/ubl-strings.h:66
msgid "Seconds"
msgstr ""
#: source/ubl-strings.h:68
msgid "Active"
msgstr ""
#: source/ubl-strings.h:69
msgid "Inactive"
msgstr ""
#: source/ubl-strings.h:71
msgid "System units"
msgstr ""
#: source/ubl-strings.h:72
msgid "User units"
msgstr ""
#: source/ubl-strings.h:73
msgid "Config files"
msgstr ""
#: source/ubl-strings.h:74
msgid "Sessions"
msgstr ""
#: source/ubl-strings.h:75
msgid "Timers"
msgstr ""
#: source/ubl-strings.h:77
msgid "System services status"
msgstr ""
#: source/ubl-strings.h:78
msgid "User services status"
msgstr ""
#: source/ubl-strings.h:79
msgid "Installed unit files"
msgstr ""
#: source/ubl-strings.h:80
msgid "Units and status list"
msgstr ""
#: source/ubl-strings.h:81
msgid "Sockets and status list"
msgstr ""
#: source/ubl-strings.h:82
msgid "Timers and status list"
msgstr ""
#: source/ubl-strings.h:84
msgid "Unit"
msgstr ""
#: source/ubl-strings.h:86
msgid "Relaunch systemctl"
msgstr ""
#: source/ubl-strings.h:87
msgid "Reexec systemctl"
msgstr ""
#: source/ubl-strings.h:88
msgid "Show service information"
msgstr ""
#: source/ubl-strings.h:89
msgid "Show service log"
msgstr ""
#: source/ubl-strings.h:90
msgid "Show service source file"
msgstr ""
#: source/ubl-strings.h:91
msgid "Show service properties"
msgstr ""
#: source/ubl-strings.h:92
msgid "Show..."
msgstr ""
#: source/ubl-strings.h:94
msgid "Show inactive"
msgstr ""
#: source/ubl-strings.h:95
msgid "Show unloaded"
msgstr ""
#: source/ubl-strings.h:97
msgid "File"
msgstr ""
#: source/ubl-strings.h:98
msgid "Change date"
msgstr ""
#: source/ubl-strings.h:99
msgid "Description"
msgstr ""
#: source/ubl-strings.h:100
msgid "Edit"
msgstr ""
#: source/ubl-strings.h:102
msgid "Session ID"
msgstr ""
#: source/ubl-strings.h:103
msgid "User ID"
msgstr ""
#: source/ubl-strings.h:104
msgid "User name"
msgstr ""
#: source/ubl-strings.h:105
msgid "Seat ID"
msgstr ""
#: source/ubl-strings.h:107
msgid "Start session"
msgstr ""
#: source/ubl-strings.h:108
msgid "Stop session"
msgstr ""
#: source/ubl-strings.h:109
msgid "Lock session"
msgstr ""
#: source/ubl-strings.h:111
msgid "Timer"
msgstr ""
#: source/ubl-strings.h:112
msgid "Next"
msgstr ""
#: source/ubl-strings.h:113
msgid "Left"
msgstr ""
#: source/ubl-strings.h:114
msgid "Last"
msgstr ""
#: source/ubl-strings.h:115
msgid "Passed"
msgstr ""
#: source/ubl-strings.h:116
msgid "Activates"
msgstr ""

@ -18,201 +18,370 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: source/ubl-strings.h:1
msgid "Version:"
msgstr "Версия:"
#: source/ubl-strings.h:2
msgid "ubl-settings-services version:"
msgstr "Версия ubl-settings-services: "
#: source/ubl-strings.h:2
msgid "Usage:"
msgstr "Использование:"
#: source/ubl-strings.h:2
msgid "[OPTIONS]"
msgstr "[АРГУМЕНТЫ]"
#: source/ubl-strings.h:2
msgid "Options:"
msgstr "Аргументы:"
#: source/ubl-strings.h:2
msgid "Show this help"
msgstr "Показать параметры справки"
#: source/ubl-strings.h:2
msgid "Show package version"
msgstr "Показать текущую версию"
#: source/ubl-strings.h:2
msgid "Lock this help menu"
msgstr "Блокировка вызова справки"
#: source/ubl-strings.h:2
msgid "Lock configuration saving"
msgstr "Блокировка сохранения локальной и глобальной конфигурации"
#: source/ubl-strings.h:2
msgid "Lock local configration saving"
msgstr "Блокировка сохранения локальной конфигурации"
#: source/ubl-strings.h:2
msgid "Lock global configration saving"
msgstr "Блокировка сохранения глобальной конфигурации"
#: source/ubl-strings.h:2
msgid "Lock global configration loading"
msgstr "Блокировка загрузки глобальной конфигурации"
#: source/ubl-strings.h:2
msgid "Reset application settings"
msgstr "Сбросить настройки утилиты"
#: source/ubl-strings.h:4
msgid "Services and processes systemd"
msgstr "Сервисы и процессы systemd"
#: source/ubl-strings.h:5
#: source/ubl-strings.h:2
msgid "System services and processes configuration"
msgstr "Настройка работы служб и процессов системы"
#: source/ubl-strings.h:6
#: source/ubl-strings.h:3
msgid "Services and processes - service information"
msgstr "Сервисы и процессы - статус"
#: source/ubl-strings.h:8 source/ubl-strings.h:40
#: source/ubl-strings.h:5 source/ubl-strings.h:37
msgid "Configure in configuration"
msgstr "Настройка в конфигурации"
#: source/ubl-strings.h:9 source/ubl-strings.h:44
#: source/ubl-strings.h:6 source/ubl-strings.h:41
msgid "Autostart"
msgstr "Автостарт"
#: source/ubl-strings.h:10 source/ubl-strings.h:45
#: source/ubl-strings.h:7 source/ubl-strings.h:42
msgid "Autostop"
msgstr "Автостоп"
#: source/ubl-strings.h:11 source/ubl-strings.h:46
#: source/ubl-strings.h:8 source/ubl-strings.h:43
msgid "Block"
msgstr "Блокировать"
#: source/ubl-strings.h:12 source/ubl-strings.h:41
#: source/ubl-strings.h:9 source/ubl-strings.h:38
msgid "Configure in system"
msgstr "Настройка в системе"
#: source/ubl-strings.h:13 source/ubl-strings.h:47
#: source/ubl-strings.h:10 source/ubl-strings.h:44
msgid "Launched"
msgstr "Запущено"
#: source/ubl-strings.h:14
#: source/ubl-strings.h:11
msgid "Reload"
msgstr "Перезагрузить"
#: source/ubl-strings.h:15
#: source/ubl-strings.h:12
msgid "Show status"
msgstr "Показать статус"
#: source/ubl-strings.h:16
#: source/ubl-strings.h:13
msgid "Update"
msgstr "Обновить"
#: source/ubl-strings.h:18
#: source/ubl-strings.h:15
msgid "All services"
msgstr "Все сервисы"
#: source/ubl-strings.h:19
#: source/ubl-strings.h:16
msgid "System services only"
msgstr "Только системные сервисы"
#: source/ubl-strings.h:20
#: source/ubl-strings.h:17
msgid "User services only"
msgstr "Только сервисы пользователя"
#: source/ubl-strings.h:22
#: source/ubl-strings.h:19
msgid "All"
msgstr "Все"
#: source/ubl-strings.h:23
#: source/ubl-strings.h:20
msgid "Services"
msgstr "Сервисы"
#: source/ubl-strings.h:24
#: source/ubl-strings.h:21
msgid "Sockets"
msgstr "Сокеты"
#: source/ubl-strings.h:25
#: source/ubl-strings.h:22
msgid "Autolaunch in configuration"
msgstr "Автозапуск в конфигурации"
#: source/ubl-strings.h:26
#: source/ubl-strings.h:23
msgid "Stopped in configuration"
msgstr "Остановлено в конфигурации"
#: source/ubl-strings.h:27
#: source/ubl-strings.h:24
msgid "Blocked in configuration"
msgstr "Заблокированные в конфигурации"
#: source/ubl-strings.h:29
#: source/ubl-strings.h:26
msgid "Toggle autostart at configuration"
msgstr "Переключить автозапуск в конфигурации"
#: source/ubl-strings.h:30
#: source/ubl-strings.h:27
msgid "Toggle autostop at configuration"
msgstr "Переключить автостоп в конфигурации"
#: source/ubl-strings.h:31
#: source/ubl-strings.h:28
msgid "Toggle service blocking at configuration"
msgstr "Переключить блокирование в конфигурации"
#: source/ubl-strings.h:32
#: source/ubl-strings.h:29
msgid "Toggle autostart at system"
msgstr "Переключить автозапуск в системе"
#: source/ubl-strings.h:33
#: source/ubl-strings.h:30
msgid "Launch/Stop service"
msgstr "Запустить/Остановить сервис"
#: source/ubl-strings.h:34
#: source/ubl-strings.h:31
msgid "Check service status"
msgstr "Проверить статус сервиса"
#: source/ubl-strings.h:35
#: source/ubl-strings.h:32
msgid "Check service log"
msgstr "Открыть лог сервиса"
#: source/ubl-strings.h:37
#: source/ubl-strings.h:34
msgid "Service:"
msgstr "Сервис:"
#: source/ubl-strings.h:38
#: source/ubl-strings.h:35
#, fuzzy
msgid "Description:"
msgstr "Описание:"
#: source/ubl-strings.h:42
#: source/ubl-strings.h:39
msgid "Service"
msgstr "Сервис"
#: source/ubl-strings.h:48
#: source/ubl-strings.h:45
msgid "Service list is loading"
msgstr "Список сервисов загружается"
#: source/ubl-strings.h:49
#: source/ubl-strings.h:46
msgid "Status"
msgstr "Статус"
#: source/ubl-strings.h:47
msgid "Restart with new configuration"
msgstr "Перезагрузить с новой конфигурацией"
#: source/ubl-strings.h:48
msgid "Show log"
msgstr "Показать логи"
#: source/ubl-strings.h:49
msgid "Show source"
msgstr "Открыть конфигурационный файл"
#: source/ubl-strings.h:50
msgid "Properties"
msgstr "Свойства"
#: source/ubl-strings.h:51
msgid "Activate session"
msgstr "Активировать сессию"
#: source/ubl-strings.h:52
msgid "End session"
msgstr "Завершить сессию"
#: source/ubl-strings.h:53
msgid "Block session"
msgstr "Заблокировать сессию"
#: source/ubl-strings.h:55
msgid "Service source were not loaded"
msgstr "Сервис не был загружен"
#: source/ubl-strings.h:57
msgid "Saving..."
msgstr "Сохранение..."
#: source/ubl-strings.h:58
msgid "Saved"
msgstr "Сохранено"
#: source/ubl-strings.h:59
msgid "Error has occured"
msgstr "Произошла ошибка"
#: source/ubl-strings.h:61
msgid "Service were not stopped"
msgstr "Сервис не был остановлен"
#: source/ubl-strings.h:52
#: source/ubl-strings.h:62
msgid "Are you sure want to stop "
msgstr "Вы уверены что хотите остановить "
#: source/ubl-strings.h:52
#: source/ubl-strings.h:62
msgid ""
"The stop will be forced.\n"
"The system may become unstable."
msgstr "Остановка будет произведена принудительно.\n"
msgstr ""
"Остановка будет произведена принудительно.\n"
"Возможна нестабильная работа системы."
#: source/ubl-strings.h:63
msgid "Days"
msgstr "Дней"
#: source/ubl-strings.h:64
msgid "Hours"
msgstr "Часов"
#: source/ubl-strings.h:65
msgid "Minutes"
msgstr "Минут"
#: source/ubl-strings.h:66
msgid "Seconds"
msgstr "Секунд"
#: source/ubl-strings.h:68
msgid "Active"
msgstr "Активна"
#: source/ubl-strings.h:69
msgid "Inactive"
msgstr "Неактивна"
#: source/ubl-strings.h:71
msgid "System units"
msgstr "Системные юниты"
#: source/ubl-strings.h:72
msgid "User units"
msgstr "Пользовательские юниты"
#: source/ubl-strings.h:73
msgid "Config files"
msgstr "Конфигурационные файлы"
#: source/ubl-strings.h:74
msgid "Sessions"
msgstr "Сессии"
#: source/ubl-strings.h:75
msgid "Timers"
msgstr "Таймеры"
#: source/ubl-strings.h:77
msgid "System services status"
msgstr "Статус сервисов системы"
#: source/ubl-strings.h:78
msgid "User services status"
msgstr "Статус сервисов пользователя"
#: source/ubl-strings.h:79
msgid "Installed unit files"
msgstr "Установленные юнит-файлы"
#: source/ubl-strings.h:80
msgid "Units and status list"
msgstr "Список юнитов и состояния"
#: source/ubl-strings.h:81
msgid "Sockets and status list"
msgstr "Список сокетов и состояния"
#: source/ubl-strings.h:82
msgid "Timers and status list"
msgstr "Список таймеров и состояния"
#: source/ubl-strings.h:84
msgid "Unit"
msgstr "Юнит"
#: source/ubl-strings.h:86
msgid "Relaunch systemctl"
msgstr "Перезагрузить systemctl"
#: source/ubl-strings.h:87
msgid "Reexec systemctl"
msgstr "Перезапустить systemctl"
#: source/ubl-strings.h:88
msgid "Show service information"
msgstr "Показать информацию о сервисе"
#: source/ubl-strings.h:89
msgid "Show service log"
msgstr "Открыть лог сервиса"
#: source/ubl-strings.h:90
msgid "Show service source file"
msgstr "Показать конфигурационный файл сервиса"
#: source/ubl-strings.h:91
msgid "Show service properties"
msgstr "Открыть свойства сервиса"
#: source/ubl-strings.h:92
msgid "Show..."
msgstr "Показать..."
#: source/ubl-strings.h:94
msgid "Show inactive"
msgstr "Показать неактивные"
#: source/ubl-strings.h:95
msgid "Show unloaded"
msgstr "Показать незагруженные"
#: source/ubl-strings.h:97
msgid "File"
msgstr "Файл"
#: source/ubl-strings.h:98
msgid "Change date"
msgstr "Изменён"
#: source/ubl-strings.h:99
msgid "Description"
msgstr "Описание"
#: source/ubl-strings.h:100
msgid "Edit"
msgstr "Редактировать"
#: source/ubl-strings.h:102
msgid "Session ID"
msgstr "ID сессии"
#: source/ubl-strings.h:103
msgid "User ID"
msgstr "ID пользователя"
#: source/ubl-strings.h:104
msgid "User name"
msgstr "Имя пользователя"
#: source/ubl-strings.h:105
msgid "Seat ID"
msgstr "Seat ID"
#: source/ubl-strings.h:107
msgid "Start session"
msgstr "Запустить сессию"
#: source/ubl-strings.h:108
msgid "Stop session"
msgstr "Остановить сессию"
#: source/ubl-strings.h:109
msgid "Lock session"
msgstr "Заблокировать сессию"
#: source/ubl-strings.h:111
msgid "Timer"
msgstr "Таймер"
#: source/ubl-strings.h:112
msgid "Next"
msgstr "Следующий"
#: source/ubl-strings.h:113
msgid "Left"
msgstr "Осталось времени"
#: source/ubl-strings.h:114
msgid "Last"
msgstr "Последний"
#: source/ubl-strings.h:115
msgid "Passed"
msgstr "Пройденный"
#: source/ubl-strings.h:116
msgid "Activates"
msgstr "Активируется"

Loading…
Cancel
Save