|
|
|
|
@ -58,7 +58,7 @@ void yon_gtk_login_block_symbols(GtkEntry *target){
|
|
|
|
|
void on_parameter_changed(GtkWidget *,ubl_settings_usergroups_user_window *window){
|
|
|
|
|
char *user_shell=NULL;
|
|
|
|
|
char *user_home=NULL;
|
|
|
|
|
char *login=NULL;
|
|
|
|
|
// char *login=NULL;
|
|
|
|
|
char *create_system_user=NULL;
|
|
|
|
|
char *create_ununique=NULL;
|
|
|
|
|
char *do_not_check=NULL;
|
|
|
|
|
@ -69,19 +69,26 @@ void on_parameter_changed(GtkWidget *,ubl_settings_usergroups_user_window *windo
|
|
|
|
|
if (do_not_check_actve)
|
|
|
|
|
do_not_check = "--badnames";
|
|
|
|
|
|
|
|
|
|
login = (char*)gtk_entry_get_text(GTK_ENTRY(window->userLoginEntry));
|
|
|
|
|
if (login[0]>'0'&&login[0]<'9'&&!do_not_check_actve){
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),USER_BEGINS_WITH_DIGIT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
gtk_notebook_set_current_page(GTK_NOTEBOOK(window->MainNotebook),0);
|
|
|
|
|
yon_ubl_status_highlight_incorrect(window->userLoginEntry);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (yon_char_is_empty(login)){
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
gtk_notebook_set_current_page(GTK_NOTEBOOK(window->MainNotebook),0);
|
|
|
|
|
yon_ubl_status_highlight_incorrect(window->userLoginEntry);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// login = (char*)gtk_entry_get_text(GTK_ENTRY(window->userLoginEntry));
|
|
|
|
|
// if (login[0]>'0'&&login[0]<'9'&&!do_not_check_actve){
|
|
|
|
|
// yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),USER_BEGINS_WITH_DIGIT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
// gtk_notebook_set_current_page(GTK_NOTEBOOK(window->MainNotebook),0);
|
|
|
|
|
// yon_ubl_status_highlight_incorrect(window->userLoginEntry);
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
// if (yon_char_is_empty(login)){
|
|
|
|
|
// yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
// gtk_notebook_set_current_page(GTK_NOTEBOOK(window->MainNotebook),0);
|
|
|
|
|
// yon_ubl_status_highlight_incorrect(window->userLoginEntry);
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
char *user_lang = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->LanguageCombo));
|
|
|
|
|
|
|
|
|
|
if (!yon_char_is_empty(user_lang)){
|
|
|
|
|
user_lang = yon_char_unite("--lang ",user_lang,NULL);
|
|
|
|
|
|
|
|
|
|
} else user_lang="";
|
|
|
|
|
|
|
|
|
|
int user_shell_active = gtk_combo_box_get_active(GTK_COMBO_BOX(window->userShellCombo));
|
|
|
|
|
if (user_shell_active>0){
|
|
|
|
|
@ -119,6 +126,8 @@ void on_parameter_changed(GtkWidget *,ubl_settings_usergroups_user_window *windo
|
|
|
|
|
final_string = yon_char_unite(final_string,!yon_char_is_empty(final_string)?" ":"",
|
|
|
|
|
yon_char_return_if_exist(user_shell,""),
|
|
|
|
|
!yon_char_is_empty(user_shell)?" ":"",
|
|
|
|
|
yon_char_return_if_exist(user_lang,""),
|
|
|
|
|
!yon_char_is_empty(user_lang)?" ":"",
|
|
|
|
|
yon_char_return_if_exist(create_system_user,""),
|
|
|
|
|
!yon_char_is_empty(create_system_user)?" ":"",
|
|
|
|
|
yon_char_return_if_exist(create_ununique,""),
|
|
|
|
|
@ -180,6 +189,38 @@ void on_home_changed(GtkWidget *self,ubl_settings_usergroups_user_window *window
|
|
|
|
|
free(home_parameter);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gboolean yon_user_set_locales(GtkWidget *target){
|
|
|
|
|
char *languages_string = config(LOCALE_parameter);
|
|
|
|
|
int languages_size;
|
|
|
|
|
config_str languages = yon_char_parse(languages_string,&languages_size,",");
|
|
|
|
|
GHashTable *hash = main_config.locales_hash;
|
|
|
|
|
char *config_lang = g_object_get_data(G_OBJECT(target),"value");
|
|
|
|
|
for (int i=0;i<languages_size;i++){
|
|
|
|
|
char *locale_str = g_hash_table_lookup(hash,languages[i]);
|
|
|
|
|
if (!yon_char_is_empty(locale_str)){
|
|
|
|
|
int parsed_size;
|
|
|
|
|
config_str parsed = yon_char_parse(locale_str,&parsed_size,"|");
|
|
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(target),parsed[0],parsed[1]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!yon_char_is_empty(config_lang)){
|
|
|
|
|
gtk_combo_box_set_active_id(GTK_COMBO_BOX(target),config_lang);
|
|
|
|
|
}
|
|
|
|
|
return G_SOURCE_REMOVE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void *yon_load_languages(void *){
|
|
|
|
|
int size;
|
|
|
|
|
config_str locales = yon_config_load(languages_command,&size);
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
yon_char_remove_last_symbol(locales[i],'\n');
|
|
|
|
|
int parsed_size;
|
|
|
|
|
config_str parsed = yon_char_parse(locales[i],&parsed_size,"|");
|
|
|
|
|
g_hash_table_insert(main_config.locales_hash,yon_char_new(parsed[0]),yon_char_new(locales[i]));
|
|
|
|
|
}
|
|
|
|
|
g_thread_exit(NULL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){
|
|
|
|
|
ubl_settings_usergroups_user_window *window = malloc(sizeof(ubl_settings_usergroups_user_window));
|
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_user);
|
|
|
|
|
@ -205,6 +246,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){
|
|
|
|
|
window->userWarningSpin=yon_gtk_builder_get_widget(builder,"userWarningSpin");
|
|
|
|
|
window->userActivitySpin=yon_gtk_builder_get_widget(builder,"userActivitySpin");
|
|
|
|
|
window->userForceChangeCheck=yon_gtk_builder_get_widget(builder,"userForceChangeCheck");
|
|
|
|
|
window->LanguageCombo=yon_gtk_builder_get_widget(builder,"LanguageCombo");
|
|
|
|
|
window->userShellCombo=yon_gtk_builder_get_widget(builder,"userShellCombo");
|
|
|
|
|
window->userShellEntry=yon_gtk_builder_get_widget(builder,"userShellEntry");
|
|
|
|
|
window->userHomeCombo=yon_gtk_builder_get_widget(builder,"userHomeCombo");
|
|
|
|
|
@ -297,6 +339,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userHomeEntry),"changed",G_CALLBACK(on_home_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userHomeCombo),"changed",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userShellCombo),"changed",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->LanguageCombo),"changed",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userShellEntry),"changed",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userCreateSystemCheck),"toggled",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userCreateUnuniqueCheck),"toggled",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
|
|