Shutdown rework finished

pull/235/head
parent 8b3fd02f48
commit 42124f4463

@ -85,6 +85,7 @@ void on_additional_settings_changed(GtkWidget *self, ubl_settings_usergroups_add
// if (window->user_boot>-1||window->user_boot>-1) // if (window->user_boot>-1||window->user_boot>-1)
// yon_config_register(USERADD_SYNC_parameter,USERADD_SYNC_parameter_command,sync); // yon_config_register(USERADD_SYNC_parameter,USERADD_SYNC_parameter_command,sync);
// } // }
on_useradd_sync_changed(window);
} }
void on_additional_settings_user_sync_add(GtkWidget *self, ubl_settings_usergroups_additional_settings_window *window){ void on_additional_settings_user_sync_add(GtkWidget *self, ubl_settings_usergroups_additional_settings_window *window){
@ -121,8 +122,8 @@ void on_additional_settings_changed(GtkWidget *self, ubl_settings_usergroups_add
} }
} }
void on_additional_settings_group_sync_add(GtkWidget *, ubl_settings_usergroups_additional_settings_window *window){ void on_additional_settings_group_sync_add(GtkWidget *, ubl_settings_usergroups_additional_settings_window *){
on_useradd_sync_changed(window); // on_useradd_sync_changed(window);
} }
void on_additional_settings_group_sync_remove(GtkWidget *, ubl_settings_usergroups_additional_settings_window *window){ void on_additional_settings_group_sync_remove(GtkWidget *, ubl_settings_usergroups_additional_settings_window *window){
@ -135,7 +136,7 @@ void on_additional_settings_changed(GtkWidget *self, ubl_settings_usergroups_add
gtk_list_store_remove(window->GroupsShutdownList,&iter); gtk_list_store_remove(window->GroupsShutdownList,&iter);
} }
} }
on_useradd_sync_changed(window); // on_useradd_sync_changed(window);
} }
void on_additional_settings_cell_toggled(GtkCellRenderer *self, char *path, ubl_settings_usergroups_additional_settings_window *window){ void on_additional_settings_cell_toggled(GtkCellRenderer *self, char *path, ubl_settings_usergroups_additional_settings_window *window){
@ -163,7 +164,7 @@ void on_additional_settings_cell_toggled(GtkCellRenderer *self, char *path, ubl_
i++; i++;
} }
} }
on_useradd_sync_changed(window); // on_useradd_sync_changed(window);
} }
void on_additional_settings_cell_edited(GtkCellRenderer *self, char *path, char *new_text, ubl_settings_usergroups_additional_settings_window *window){ void on_additional_settings_cell_edited(GtkCellRenderer *self, char *path, char *new_text, ubl_settings_usergroups_additional_settings_window *window){
@ -202,7 +203,7 @@ GtkTreeIter iter;
} }
} }
gtk_list_store_set(GTK_LIST_STORE(model),&iter,place_to_set,new_text,place_to_set==2?3:2,old_val,-1); gtk_list_store_set(GTK_LIST_STORE(model),&iter,place_to_set,new_text,place_to_set==2?3:2,old_val,-1);
on_useradd_sync_changed(window); // on_useradd_sync_changed(window);
} }
void on_adiitional_settings_tree_selection_changed(GtkWidget *self, ubl_settings_usergroups_additional_settings_window *window){ void on_adiitional_settings_tree_selection_changed(GtkWidget *self, ubl_settings_usergroups_additional_settings_window *window){
@ -235,16 +236,22 @@ void on_useradd_sync_changed(ubl_settings_usergroups_additional_settings_window
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck))){
useradd_sync = yon_char_new("boot"); useradd_sync = yon_char_new("boot");
} }
if (gtk_switch_get_active(GTK_SWITCH(window->UsersShutdownSwitch))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsersShutdownCheck))){
char *temp = yon_char_unite(useradd_sync,!yon_char_is_empty(useradd_sync)?",":"","shutdown",NULL);
if(!yon_char_is_empty(useradd_sync)) free(useradd_sync);
useradd_sync = temp;
}
GtkTreeIter iter; GtkTreeIter iter;
for_iter(window->UsersShutdownList,&iter){ for_iter(window->UsersShutdownList,&iter){
int active; int active;
char *min_str, max_str; char *min_str, *max_str;
int sensitive; int sensitive;
char *parameter; char *parameter;
gtk_tree_model_get(GTK_TREE_MODEL(window->UsersShutdownList),&iter,0,&active,2,&min_str,3,&max_str,6,&sensitive,9,&parameter,-1); gtk_tree_model_get(GTK_TREE_MODEL(window->UsersShutdownList),&iter,0,&active,2,&min_str,3,&max_str,6,&sensitive,9,&parameter,-1);
if (active&&sensitive){ if (active&&sensitive){
if (!strcmp(parameter,"shutdown@all")){ if (!strcmp(parameter,"shutdown@all")){
char *temp = yon_char_unite(useradd_sync,!yon_char_is_empty(useradd_sync)?",":"",parameter,NULL); char *temp = yon_char_unite(useradd_sync,!yon_char_is_empty(useradd_sync)?",":"",parameter,NULL);
@ -273,7 +280,6 @@ void on_useradd_sync_changed(ubl_settings_usergroups_additional_settings_window
} }
} }
} }
}
if (!yon_char_is_empty(useradd_sync)){ if (!yon_char_is_empty(useradd_sync)){
yon_config_register(USERADD_SYNC_parameter,USERADD_SYNC_get_command,useradd_sync); yon_config_register(USERADD_SYNC_parameter,USERADD_SYNC_get_command,useradd_sync);
} else { } else {
@ -284,15 +290,18 @@ void on_useradd_sync_changed(ubl_settings_usergroups_additional_settings_window
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck))){
groupadd_sync = yon_char_new("boot"); groupadd_sync = yon_char_new("boot");
} }
if (gtk_switch_get_active(GTK_SWITCH(window->UsersShutdownSwitch))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsersShutdownCheck))){
GtkTreeIter iter; char *temp = yon_char_unite(groupadd_sync,!yon_char_is_empty(groupadd_sync)?",":"","shutdown",NULL);
for_iter(window->UsersShutdownList,&iter){ if(!yon_char_is_empty(groupadd_sync)) free(groupadd_sync);
groupadd_sync = temp;
}
for_iter(window->GroupsShutdownList,&iter){
int active; int active;
char *min_str, max_str; char *min_str, *max_str;
int sensitive; int sensitive;
char *parameter; char *parameter;
gtk_tree_model_get(GTK_TREE_MODEL(window->UsersShutdownList),&iter,0,&active,2,&min_str,3,&max_str,6,&sensitive,9,&parameter,-1); gtk_tree_model_get(GTK_TREE_MODEL(window->GroupsShutdownList),&iter,0,&active,2,&min_str,3,&max_str,6,&sensitive,9,&parameter,-1);
if (active&&sensitive){ if (active&&sensitive){
if (!strcmp(parameter,"shutdown@all")){ if (!strcmp(parameter,"shutdown@all")){
char *temp = yon_char_unite(groupadd_sync,!yon_char_is_empty(groupadd_sync)?",":"",parameter,NULL); char *temp = yon_char_unite(groupadd_sync,!yon_char_is_empty(groupadd_sync)?",":"",parameter,NULL);
@ -321,12 +330,12 @@ void on_useradd_sync_changed(ubl_settings_usergroups_additional_settings_window
} }
} }
} }
}
if (!yon_char_is_empty(useradd_sync)){ if (!yon_char_is_empty(useradd_sync)){
yon_config_register(GROUPADD_SYNC_parameter,GROUPADD_SYNC_parameter_command,groupadd_sync); yon_config_register(GROUPADD_SYNC_parameter,GROUPADD_SYNC_parameter_command,groupadd_sync);
} else { } else {
yon_config_remove_by_key(GROUPADD_SYNC_parameter); yon_config_remove_by_key(GROUPADD_SYNC_parameter);
} }
on_subwindow_close(window->Window);
} }
ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_additional_settings_new(){ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_additional_settings_new(){
@ -347,13 +356,15 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton"); window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton");
window->AcceptButton=yon_gtk_builder_get_widget(builder,"AcceptButton"); window->AcceptButton=yon_gtk_builder_get_widget(builder,"AcceptButton");
window->UsersBootCheck=yon_gtk_builder_get_widget(builder,"UsersBootCheck"); window->UsersBootCheck=yon_gtk_builder_get_widget(builder,"UsersBootCheck");
window->UsersShutdownSwitch=yon_gtk_builder_get_widget(builder,"UsersShutdownSwitch"); window->UsersShutdownCheck=yon_gtk_builder_get_widget(builder,"UsersShutdownCheck");
window->UsersShutdownExpander=yon_gtk_builder_get_widget(builder,"UsersShutdownExpander");
window->UserShutdownRevealer=yon_gtk_builder_get_widget(builder,"UserShutdownRevealer"); window->UserShutdownRevealer=yon_gtk_builder_get_widget(builder,"UserShutdownRevealer");
window->UsersTree=yon_gtk_builder_get_widget(builder,"UsersTree"); window->UsersTree=yon_gtk_builder_get_widget(builder,"UsersTree");
window->UserAddButton=yon_gtk_builder_get_widget(builder,"UserAddButton"); window->UserAddButton=yon_gtk_builder_get_widget(builder,"UserAddButton");
window->UserRemoveButton=yon_gtk_builder_get_widget(builder,"UserRemoveButton"); window->UserRemoveButton=yon_gtk_builder_get_widget(builder,"UserRemoveButton");
window->GroupsBootCheck=yon_gtk_builder_get_widget(builder,"GroupsBootCheck"); window->GroupsBootCheck=yon_gtk_builder_get_widget(builder,"GroupsBootCheck");
window->GroupsShutdownSwitch=yon_gtk_builder_get_widget(builder,"GroupsShutdownSwitch"); window->GroupsShutdownCheck=yon_gtk_builder_get_widget(builder,"GroupsShutdownCheck");
window->GroupsShutdownExpander=yon_gtk_builder_get_widget(builder,"GroupShutdownExpander");
window->GroupShutdownRevealer=yon_gtk_builder_get_widget(builder,"GroupShutdownRevealer"); window->GroupShutdownRevealer=yon_gtk_builder_get_widget(builder,"GroupShutdownRevealer");
window->GroupsTree=yon_gtk_builder_get_widget(builder,"GroupsTree"); window->GroupsTree=yon_gtk_builder_get_widget(builder,"GroupsTree");
window->GroupAddButton=yon_gtk_builder_get_widget(builder,"GroupAddButton"); window->GroupAddButton=yon_gtk_builder_get_widget(builder,"GroupAddButton");
@ -367,6 +378,9 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
window->GroupMinCell=GTK_CELL_RENDERER(gtk_builder_get_object(builder,"GroupMinCell")); window->GroupMinCell=GTK_CELL_RENDERER(gtk_builder_get_object(builder,"GroupMinCell"));
window->GroupMaxCell=GTK_CELL_RENDERER(gtk_builder_get_object(builder,"GroupMaxCell")); window->GroupMaxCell=GTK_CELL_RENDERER(gtk_builder_get_object(builder,"GroupMaxCell"));
yon_gtk_revealer_set_from_expander(GTK_REVEALER(window->UserShutdownRevealer),GTK_EXPANDER(window->UsersShutdownExpander));
yon_gtk_revealer_set_from_expander(GTK_REVEALER(window->GroupShutdownRevealer),GTK_EXPANDER(window->GroupsShutdownExpander));
window->default_password=NULL; window->default_password=NULL;
window->default_root_password=NULL; window->default_root_password=NULL;
window->default_user_name=NULL; window->default_user_name=NULL;
@ -396,22 +410,26 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
} }
int uid_set=0, maxmin_set=0; int uid_set=0, maxmin_set=0;
for (int i=0;i<useradd_sync_size;i++){ for (int i=0;i<useradd_sync_size;i++){
gtk_expander_set_expanded(GTK_EXPANDER(window->UsersShutdownExpander),1);
gtk_revealer_set_reveal_child(GTK_REVEALER(window->UserShutdownRevealer),1);
if (!strcmp(parsed[i],"boot")){ if (!strcmp(parsed[i],"boot")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck),1);
} else if (!strcmp(parsed[i],"shutdown@all")){ } else if (!strcmp(parsed[i],"shutdown@all")){
gtk_tree_model_get_iter_first(model,&iter); gtk_tree_model_get_iter_first(model,&iter);
gtk_list_store_set(window->UsersShutdownList,&iter,0,1,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,1,-1);
gtk_expander_set_expanded(GTK_EXPANDER(window->UsersShutdownExpander),0);
gtk_revealer_set_reveal_child(GTK_REVEALER(window->UserShutdownRevealer),0);
} else if (!strcmp(parsed[i],"shutdown@users")){ } else if (!strcmp(parsed[i],"shutdown@users")){
gtk_tree_model_get_iter_first(model,&iter); gtk_tree_model_get_iter_first(model,&iter);
gtk_list_store_set(window->UsersShutdownList,&iter,0,0,5,0,6,0,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,0,5,0,6,0,-1);
gtk_tree_model_get_iter_from_string(model,&iter,"1"); gtk_tree_model_get_iter_from_string(model,&iter,"1");
gtk_list_store_set(window->UsersShutdownList,&iter,0,1,5,1,6,1,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,1,5,1,6,1,7,1,8,1,-1);
} else if (!strcmp(parsed[i],"shutdown@systems")){ } else if (!strcmp(parsed[i],"shutdown@systems")){
gtk_tree_model_get_iter_first(model,&iter); gtk_tree_model_get_iter_first(model,&iter);
gtk_list_store_set(window->UsersShutdownList,&iter,0,0,5,0,6,0,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,0,5,0,6,0,-1);
gtk_tree_model_get_iter_from_string(model,&iter,"2"); gtk_tree_model_get_iter_from_string(model,&iter,"2");
gtk_list_store_set(window->UsersShutdownList,&iter,0,1,5,1,6,1,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,1,5,1,6,1,7,1,8,1,-1);
} else if (strstr(parsed[i],"-")){ } else if (strstr(parsed[i],"-")){
on_additional_settings_cell_toggled(window->UserActiveCell,"0",window); on_additional_settings_cell_toggled(window->UserActiveCell,"0",window);
@ -427,7 +445,7 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
free(yon_char_divide_search(temp,"@",-1)); free(yon_char_divide_search(temp,"@",-1));
char *min = yon_char_divide_search(temp,"-",-1); char *min = yon_char_divide_search(temp,"-",-1);
gtk_list_store_set(window->UsersShutdownList,&iter,0,1,2,min,3,temp,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,1,2,min,3,temp,6,1,7,1,8,1,-1);
} else if (strstr(parsed[i],"shutdown@")) { } else if (strstr(parsed[i],"shutdown@")) {
gtk_tree_model_get_iter_first(model,&iter); gtk_tree_model_get_iter_first(model,&iter);
@ -442,14 +460,14 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
} }
char *temp = yon_char_new(parsed[i]); char *temp = yon_char_new(parsed[i]);
free(yon_char_divide_search(temp,"@",-1)); free(yon_char_divide_search(temp,"@",-1));
gtk_list_store_set(window->UsersShutdownList,&iter,0,1,2,temp,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,1,2,temp,6,1,7,1,8,1,-1);
} else if (!strcmp(parsed[i],"shutdown")){ } else if (!strcmp(parsed[i],"shutdown")){
gtk_tree_model_get_iter_first(model,&iter); gtk_tree_model_get_iter_first(model,&iter);
gtk_list_store_set(window->UsersShutdownList,&iter,0,0,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,0,-1);
gtk_tree_model_get_iter_from_string(model,&iter,"1"); gtk_tree_model_get_iter_from_string(model,&iter,"1");
gtk_list_store_set(window->UsersShutdownList,&iter,0,1,5,1,6,1,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,1,5,1,6,1,7,1,8,1,-1);
gtk_tree_model_get_iter_from_string(model,&iter,"2"); gtk_tree_model_get_iter_from_string(model,&iter,"2");
gtk_list_store_set(window->UsersShutdownList,&iter,0,1,5,1,6,1,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,1,5,1,6,1,7,1,8,1,-1);
} }
} }
@ -471,6 +489,8 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
} }
} }
} }
gtk_expander_set_expanded(GTK_EXPANDER(window->GroupsShutdownExpander),1);
gtk_revealer_set_reveal_child(GTK_REVEALER(window->GroupShutdownRevealer),1);
int uid_set=0, maxmin_set=0; int uid_set=0, maxmin_set=0;
for (int i=0;i<useradd_sync_size;i++){ for (int i=0;i<useradd_sync_size;i++){
if (!strcmp(parsed[i],"boot")){ if (!strcmp(parsed[i],"boot")){
@ -478,19 +498,21 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
} else if (!strcmp(parsed[i],"shutdown@all")){ } else if (!strcmp(parsed[i],"shutdown@all")){
gtk_tree_model_get_iter_first(model,&iter); gtk_tree_model_get_iter_first(model,&iter);
gtk_list_store_set(window->GroupsShutdownList,&iter,0,1,-1); gtk_list_store_set(window->GroupsShutdownList,&iter,0,1,-1);
gtk_expander_set_expanded(GTK_EXPANDER(window->GroupsShutdownExpander),0);
gtk_revealer_set_reveal_child(GTK_REVEALER(window->GroupShutdownRevealer),0);
} else if (!strcmp(parsed[i],"shutdown@users")){ } else if (!strcmp(parsed[i],"shutdown@users")){
gtk_tree_model_get_iter_first(model,&iter); gtk_tree_model_get_iter_first(model,&iter);
gtk_list_store_set(window->GroupsShutdownList,&iter,0,0,-1); gtk_list_store_set(window->GroupsShutdownList,&iter,0,0,-1);
gtk_tree_model_get_iter_from_string(model,&iter,"1"); gtk_tree_model_get_iter_from_string(model,&iter,"1");
gtk_list_store_set(window->UsersShutdownList,&iter,0,1,5,1,6,1,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,1,5,1,6,1,7,1,8,1,-1);
} else if (!strcmp(parsed[i],"shutdown@systems")){ } else if (!strcmp(parsed[i],"shutdown@systems")){
gtk_tree_model_get_iter_first(model,&iter); gtk_tree_model_get_iter_first(model,&iter);
gtk_list_store_set(window->GroupsShutdownList,&iter,0,0,-1); gtk_list_store_set(window->GroupsShutdownList,&iter,0,0,-1);
gtk_tree_model_get_iter_from_string(model,&iter,"2"); gtk_tree_model_get_iter_from_string(model,&iter,"2");
gtk_list_store_set(window->UsersShutdownList,&iter,0,1,5,1,6,1,-1); gtk_list_store_set(window->GroupsShutdownList,&iter,0,1,5,1,6,1,7,1,8,1,-1);
} else if (!strstr(parsed[i],"-")){ } else if (strstr(parsed[i],"-")){
gtk_tree_model_get_iter_first(model,&iter); gtk_tree_model_get_iter_first(model,&iter);
gtk_list_store_set(window->GroupsShutdownList,&iter,0,0,-1); gtk_list_store_set(window->GroupsShutdownList,&iter,0,0,-1);
if (!maxmin_set){ if (!maxmin_set){
@ -505,7 +527,7 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
free(yon_char_divide_search(temp,"@",-1)); free(yon_char_divide_search(temp,"@",-1));
char *min = yon_char_divide_search(temp,"-",-1); char *min = yon_char_divide_search(temp,"-",-1);
gtk_list_store_set(window->GroupsShutdownList,&iter,0,1,2,min,3,temp,-1); gtk_list_store_set(window->GroupsShutdownList,&iter,0,1,2,min,3,temp,6,1,7,1,8,1,-1);
} else if (strstr(parsed[i],"shutdown@")){ } else if (strstr(parsed[i],"shutdown@")){
gtk_tree_model_get_iter_first(model,&iter); gtk_tree_model_get_iter_first(model,&iter);
@ -525,9 +547,9 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
gtk_tree_model_get_iter_first(model,&iter); gtk_tree_model_get_iter_first(model,&iter);
gtk_list_store_set(window->GroupsShutdownList,&iter,0,0,-1); gtk_list_store_set(window->GroupsShutdownList,&iter,0,0,-1);
gtk_tree_model_get_iter_from_string(model,&iter,"1"); gtk_tree_model_get_iter_from_string(model,&iter,"1");
gtk_list_store_set(window->UsersShutdownList,&iter,0,1,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,1,6,1,7,1,8,1,-1);
gtk_tree_model_get_iter_from_string(model,&iter,"2"); gtk_tree_model_get_iter_from_string(model,&iter,"2");
gtk_list_store_set(window->UsersShutdownList,&iter,0,1,-1); gtk_list_store_set(window->UsersShutdownList,&iter,0,1,6,1,7,1,8,1,-1);
} }
} }
@ -545,23 +567,40 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
g_signal_connect(G_OBJECT(window->GroupMinCell),"edited",G_CALLBACK(on_additional_settings_cell_edited),window); g_signal_connect(G_OBJECT(window->GroupMinCell),"edited",G_CALLBACK(on_additional_settings_cell_edited),window);
g_signal_connect(G_OBJECT(window->GroupMaxCell),"edited",G_CALLBACK(on_additional_settings_cell_edited),window); g_signal_connect(G_OBJECT(window->GroupMaxCell),"edited",G_CALLBACK(on_additional_settings_cell_edited),window);
g_signal_connect(G_OBJECT(window->UsersShutdownSwitch),"activate",G_CALLBACK(on_additional_settings_changed),window); g_signal_connect(G_OBJECT(window->UsersShutdownExpander),"activate",G_CALLBACK(on_additional_settings_changed),window);
g_signal_connect(G_OBJECT(window->GroupsShutdownSwitch),"activate",G_CALLBACK(on_additional_settings_changed),window); g_signal_connect(G_OBJECT(window->GroupsShutdownExpander),"activate",G_CALLBACK(on_additional_settings_changed),window);
g_signal_connect(G_OBJECT(window->UsersShutdownCheck),"toggled",G_CALLBACK(on_additional_settings_changed),window);
g_signal_connect(G_OBJECT(window->GroupsShutdownCheck),"toggled",G_CALLBACK(on_additional_settings_changed),window);
g_signal_connect(G_OBJECT(window->UsersTree),"cursor-changed",G_CALLBACK(on_adiitional_settings_tree_selection_changed),window); g_signal_connect(G_OBJECT(window->UsersTree),"cursor-changed",G_CALLBACK(on_adiitional_settings_tree_selection_changed),window);
g_signal_connect(G_OBJECT(window->GroupsTree),"cursor-changed",G_CALLBACK(on_adiitional_settings_tree_selection_changed),window); g_signal_connect(G_OBJECT(window->GroupsTree),"cursor-changed",G_CALLBACK(on_adiitional_settings_tree_selection_changed),window);
yon_gtk_revealer_set_from_switch(GTK_REVEALER(window->UserShutdownRevealer),GTK_SWITCH(window->UsersShutdownSwitch));
yon_gtk_revealer_set_from_switch(GTK_REVEALER(window->GroupShutdownRevealer),GTK_SWITCH(window->GroupsShutdownSwitch));
yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"AdditionalSettingsWindow"); yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"AdditionalSettingsWindow");
gtk_window_set_title(GTK_WINDOW(window->Window),ADDITIONAL_SETTINGS_TITLE_LABEL); gtk_window_set_title(GTK_WINDOW(window->Window),ADDITIONAL_SETTINGS_TITLE_LABEL);
char *sync_parameters = yon_config_get_by_key(USERADD_SYNC_parameter); {
if (sync_parameters){ char *sync_parameters = yon_config_get_by_key(USERADD_SYNC_parameter);
if (strstr(sync_parameters,"boot")){ int size;
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck),1); config_str parsed = yon_char_parse(sync_parameters,&size,",");
if (sync_parameters){
if (strstr(sync_parameters,"boot")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck),1);
}
if (yon_char_parsed_check_exist(parsed,size,"shutdown")!=-1){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsersShutdownCheck),1);
}
} }
if (strstr(sync_parameters,"shutdown")){ }
gtk_switch_set_active(GTK_SWITCH(window->UsersShutdownSwitch),1); {
char *sync_parameters = yon_config_get_by_key(GROUPADD_SYNC_parameter);
int size;
config_str parsed = yon_char_parse(sync_parameters,&size,",");
if (sync_parameters){
if (strstr(sync_parameters,"boot")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->GroupsBootCheck),1);
}
if (yon_char_parsed_check_exist(parsed,size,"shutdown")!=-1){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->GroupsShutdownCheck),1);
}
} }
} }
int hash_size=0; int hash_size=0;
@ -627,32 +666,32 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->PasswordHashCombo),hash); gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->PasswordHashCombo),hash);
} }
char *parameter = config(USERADD_SYNC_parameter); // char *parameter = config(USERADD_SYNC_parameter);
{ // {
int size; // int size;
config_str parsed = yon_char_parse(parameter,&size,","); // config_str parsed = yon_char_parse(parameter,&size,",");
int sync_parameters_size; // int sync_parameters_size;
config_str sync_parameters = yon_resource_open_file(sync_parameters_path,&sync_parameters_size); // config_str sync_parameters = yon_resource_open_file(sync_parameters_path,&sync_parameters_size);
for(int i=0;i<size;i++){ // for(int i=0;i<size;i++){
for (int j=1;j<sync_parameters_size;j++){ // for (int j=1;j<sync_parameters_size;j++){
int sync_parsed_size; // int sync_parsed_size;
config_str sync_parsed = yon_char_parse(sync_parameters[j],&sync_parsed_size,":"); // config_str sync_parsed = yon_char_parse(sync_parameters[j],&sync_parsed_size,":");
int cur_size; // int cur_size;
int sync_check = yon_parameter_check_tag(parsed[i],sync_parsed[0]); // int sync_check = yon_parameter_check_tag(parsed[i],sync_parsed[0]);
if (sync_check) { // if (sync_check) {
config_str cur = yon_parameter_get_by_template(parsed[i],sync_parsed[0],&cur_size); // config_str cur = yon_parameter_get_by_template(parsed[i],sync_parsed[0],&cur_size);
if (cur){ // if (cur){
GtkTreeIter iter; // GtkTreeIter iter;
gtk_list_store_append(window->UsersShutdownList,&iter); // gtk_list_store_append(window->UsersShutdownList,&iter);
gtk_list_store_set(window->UsersShutdownList,&iter,1,sync_parsed[0],2,cur[0],3,cur_size>1?cur[1]:"",-1); // gtk_list_store_set(window->UsersShutdownList,&iter,1,sync_parsed[0],2,cur[0],3,cur_size>1?cur[1]:"",-1);
}; // };
} // }
yon_char_parsed_free(sync_parsed,sync_parsed_size); // yon_char_parsed_free(sync_parsed,sync_parsed_size);
} // }
} // }
} // }
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_additional_settings_save),window); g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_additional_settings_save),window);
@ -689,11 +728,8 @@ return window;
void on_ubl_settings_usergroups_additional_settings_open(GtkWidget *, main_window *widgets){ void on_ubl_settings_usergroups_additional_settings_open(GtkWidget *, main_window *widgets){
ubl_settings_usergroups_additional_settings_window *window = yon_ubl_settings_usergroups_additional_settings_new(); ubl_settings_usergroups_additional_settings_window *window = yon_ubl_settings_usergroups_additional_settings_new();
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
gtk_window_set_transient_for(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window)); gtk_window_set_transient_for(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window));
g_signal_connect(G_OBJECT(window->UsersBootCheck),"toggled",G_CALLBACK(on_additional_settings_changed),window);
g_signal_connect(G_OBJECT(window->UsersShutdownSwitch),"activate",G_CALLBACK(on_additional_settings_changed),window);
gtk_widget_show(window->Window); gtk_widget_show(window->Window);
} }

@ -246,14 +246,16 @@ typedef struct{
GtkWidget *AcceptButton; GtkWidget *AcceptButton;
GtkWidget *EncryptAllPasswordsButton; GtkWidget *EncryptAllPasswordsButton;
GtkWidget *UsersBootCheck; GtkWidget *UsersBootCheck;
GtkWidget *UsersShutdownSwitch; GtkWidget *UsersShutdownCheck;
GtkWidget *UsersShutdownExpander;
GtkWidget *UserShutdownRevealer; GtkWidget *UserShutdownRevealer;
GtkWidget *UsersTree; GtkWidget *UsersTree;
GtkWidget *UserAddButton; GtkWidget *UserAddButton;
GtkWidget *UserRemoveButton; GtkWidget *UserRemoveButton;
GtkWidget *GroupsBootCheck; GtkWidget *GroupsBootCheck;
GtkWidget *GroupsShutdownSwitch; GtkWidget *GroupsShutdownCheck;
GtkWidget *GroupsShutdownExpander;
GtkWidget *GroupShutdownRevealer; GtkWidget *GroupShutdownRevealer;
GtkWidget *GroupsTree; GtkWidget *GroupsTree;
GtkWidget *GroupAddButton; GtkWidget *GroupAddButton;

@ -252,3 +252,19 @@
#define SHUTDOWN_UID_LABEL _("User UID in system") #define SHUTDOWN_UID_LABEL _("User UID in system")
#define SHUTDOWN_GID_RANGE_LABEL _("Users GID range") #define SHUTDOWN_GID_RANGE_LABEL _("Users GID range")
#define SHUTDOWN_GID_LABEL _("User GID in system") #define SHUTDOWN_GID_LABEL _("User GID in system")
#define SHUTDOWN_SAVE_USERS_LABEL _("While shutdown, save the settings of all users to configuration")
#define SHUTDOWN_SAVE_GROUPS_LABEL _("While shutdown, save the settings of all groups to the configuration")
#define SHUTDOWN_ALL_USERS_LABEL _("All groups in system")
#define SHUTDOWN_SYSTEM_GROUPS_USERS_LABEL _("System groups")
#define SHUTDOWN_GROUP_GID_RANGE_LABEL _("Group GID range")
#define SHUTDOWN_GID_IN_SYSTEM_LABEL _("Group GID in system")
#define SHUTDOWNALL_SYSTEM_USERS_LABEL _("All system users")
#define SHUTDOWN_SYSTEM_USERS_LABEL _("System users")
#define SHUTDOWN_UID_USERS_LABEL _("Users UID range")
#define SHUTDOWN_SYSTEM_ID_USERS_LABEL _("User UID in system")
#define SHUTDOWN_SYNC_TYPE_LABEL _("Syncronization type")
#define SHUTDOWN_MINIMUM_UID_LABEL _("Minimum UID")
#define SHUTDOWN_MAXIMUM_UID_LABEL _("Maximum UID")
#define SHUTDOWN_MINIMUM_GID_LABEL _("Minimum GID")
#define SHUTDOWN_MAXIMUM_GID_LABEL _("Maximum GID")

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 --> <!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-usergroups"> <interface domain="ubl-settings-usergroups">
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-usergroups.css --> <!-- interface-css-provider-path ubl-settings-usergroups.css -->
@ -639,10 +639,12 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkLabel"> <object class="GtkCheckButton" id="UsersShutdownCheck">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">While shutdown, save the settings of all users to configuration</property> <property name="label" translatable="yes">While shutdown, save the settings of all users to configuration</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -651,15 +653,21 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkSwitch" id="UsersShutdownSwitch"> <object class="GtkExpander" id="UsersShutdownExpander">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<child>
<placeholder/>
</child>
<child type="label_item">
<placeholder/>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="pack-type">end</property> <property name="pack-type">end</property>
<property name="position">1</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
</object> </object>
@ -864,28 +872,37 @@
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkLabel"> <object class="GtkExpander" id="GroupShutdownExpander">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">True</property>
<property name="label" translatable="yes">While shutdown, save the settings of all groups to the configuration</property> <child>
<placeholder/>
</child>
<child type="label_item">
<placeholder/>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="pack-type">end</property>
<property name="position">1</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkSwitch" id="GroupsShutdownSwitch"> <object class="GtkCheckButton" id="GroupsShutdownCheck">
<property name="label" translatable="yes">While shutdown, save the settings of all groups to the configuration</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="pack-type">end</property> <property name="position">2</property>
<property name="position">1</property>
</packing> </packing>
</child> </child>
</object> </object>
@ -1130,4 +1147,8 @@
<widget name="label1"/> <widget name="label1"/>
</widgets> </widgets>
</object> </object>
<object class="GtkMenu" id="menu1">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</interface> </interface>

@ -139,7 +139,7 @@ msgid ""
"status" "status"
msgstr "" msgstr ""
#: source/ubl-strings.h:36 #: source/ubl-strings.h:36 source/ubl-strings.h:249
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -159,7 +159,7 @@ msgid ""
"users" "users"
msgstr "" msgstr ""
#: source/ubl-strings.h:40 #: source/ubl-strings.h:40 source/ubl-strings.h:259
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
@ -756,7 +756,7 @@ msgid "Do not encrypt password"
msgstr "" msgstr ""
#: source/ubl-strings.h:215 #: source/ubl-strings.h:215
msgid "Password contain restricted symbols" msgid "Password contain special symbols"
msgstr "" msgstr ""
#: source/ubl-strings.h:218 #: source/ubl-strings.h:218
@ -813,11 +813,11 @@ msgstr ""
msgid "Configuration groups" msgid "Configuration groups"
msgstr "" msgstr ""
#: source/ubl-strings.h:235 #: source/ubl-strings.h:235 source/ubl-strings.h:250 source/ubl-strings.h:264
msgid "System users" msgid "System users"
msgstr "" msgstr ""
#: source/ubl-strings.h:236 #: source/ubl-strings.h:236 source/ubl-strings.h:260
msgid "System groups" msgid "System groups"
msgstr "" msgstr ""
@ -844,3 +844,63 @@ msgstr ""
#: source/ubl-strings.h:245 #: source/ubl-strings.h:245
msgid "Add to system" msgid "Add to system"
msgstr "" msgstr ""
#: source/ubl-strings.h:248 source/ubl-strings.h:263
msgid "All system users"
msgstr ""
#: source/ubl-strings.h:251 source/ubl-strings.h:265
msgid "Users UID range"
msgstr ""
#: source/ubl-strings.h:252 source/ubl-strings.h:266
msgid "User UID in system"
msgstr ""
#: source/ubl-strings.h:253
msgid "Users GID range"
msgstr ""
#: source/ubl-strings.h:254
msgid "User GID in system"
msgstr ""
#: source/ubl-strings.h:256
msgid "While shutdown, save the settings of all users to configuration"
msgstr ""
#: source/ubl-strings.h:257
msgid "While shutdown, save the settings of all groups to the configuration"
msgstr ""
#: source/ubl-strings.h:258
msgid "All groups in system"
msgstr ""
#: source/ubl-strings.h:261
msgid "Group GID range"
msgstr ""
#: source/ubl-strings.h:262
msgid "Group GID in system"
msgstr ""
#: source/ubl-strings.h:267
msgid "Syncronization type"
msgstr ""
#: source/ubl-strings.h:268
msgid "Minimum UID"
msgstr ""
#: source/ubl-strings.h:269
msgid "Maximum UID"
msgstr ""
#: source/ubl-strings.h:270
msgid "Minimum GID"
msgstr ""
#: source/ubl-strings.h:271
msgid "Maximum GID"
msgstr ""

@ -149,7 +149,7 @@ msgstr ""
"Статус\n" "Статус\n"
"пароля" "пароля"
#: source/ubl-strings.h:36 #: source/ubl-strings.h:36 source/ubl-strings.h:249
msgid "Users" msgid "Users"
msgstr "Пользователи" msgstr "Пользователи"
@ -173,7 +173,7 @@ msgstr ""
"Пользователи\n" "Пользователи\n"
"группы" "группы"
#: source/ubl-strings.h:40 #: source/ubl-strings.h:40 source/ubl-strings.h:259
msgid "Groups" msgid "Groups"
msgstr "Группы" msgstr "Группы"
@ -417,8 +417,7 @@ msgid ""
"While shutdown, save the settings of all groups with GID>=1000 to the " "While shutdown, save the settings of all groups with GID>=1000 to the "
"configuration" "configuration"
msgstr "" msgstr ""
"При завершении работы сохранить настройки групп с GID>=1000 в " "При завершении работы сохранить настройки групп с GID>=1000 в конфигурацию"
"конфигурацию"
#: source/ubl-strings.h:112 #: source/ubl-strings.h:112
msgid "Configure group" msgid "Configure group"
@ -876,11 +875,11 @@ msgstr "Пользователи конфигурации"
msgid "Configuration groups" msgid "Configuration groups"
msgstr "Группы конфигурации" msgstr "Группы конфигурации"
#: source/ubl-strings.h:235 #: source/ubl-strings.h:235 source/ubl-strings.h:250 source/ubl-strings.h:264
msgid "System users" msgid "System users"
msgstr "Пользователи системы" msgstr "Пользователи системы"
#: source/ubl-strings.h:236 #: source/ubl-strings.h:236 source/ubl-strings.h:260
msgid "System groups" msgid "System groups"
msgstr "Группы системы" msgstr "Группы системы"
@ -909,3 +908,61 @@ msgstr "в конфигурацию?"
#, fuzzy #, fuzzy
msgid "Add to system" msgid "Add to system"
msgstr "Добавить в новую:" msgstr "Добавить в новую:"
#: source/ubl-strings.h:248 source/ubl-strings.h:263
msgid "All system users"
msgstr "Все пользователи в системе"
#: source/ubl-strings.h:251 source/ubl-strings.h:265
msgid "Users UID range"
msgstr "Диапазон UID пользователей в системе"
#: source/ubl-strings.h:253
msgid "Users GID range"
msgstr "Диапазон UID пользователей в системе"
#: source/ubl-strings.h:254
msgid "User UID in system"
msgstr "Пользователь в системе с UID"
#: source/ubl-strings.h:256
msgid "While shutdown, save the settings of all users to configuration"
msgstr ""
"При завершении работы сохранить настройки пользователей"
#: source/ubl-strings.h:257
msgid "While shutdown, save the settings of all groups to the configuration"
msgstr ""
"При завершении работы сохранить настройки групп пользователей"
#: source/ubl-strings.h:258
msgid "All groups in system"
msgstr "Все группы в системе"
#: source/ubl-strings.h:261
msgid "Group GID range"
msgstr "Диапазон GID групп"
#: source/ubl-strings.h:262
msgid "Group GID in system"
msgstr "Группы в системе с GID"
#: source/ubl-strings.h:267
msgid "Syncronization type"
msgstr "Тип синхронизации с глобальной конфигурацией"
#: source/ubl-strings.h:268
msgid "Minimum UID"
msgstr "Минимальный UID"
#: source/ubl-strings.h:269
msgid "Maximum UID"
msgstr "Максимальный UID"
#: source/ubl-strings.h:270
msgid "Minimum GID"
msgstr "Минимальный GID"
#: source/ubl-strings.h:271
msgid "Maximum GID"
msgstr "Максимальный GID"

Loading…
Cancel
Save