|
|
|
@ -83,6 +83,13 @@ void on_parameter_changed(GtkWidget *,ubl_settings_usergroups_user_window *windo
|
|
|
|
return;
|
|
|
|
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));
|
|
|
|
int user_shell_active = gtk_combo_box_get_active(GTK_COMBO_BOX(window->userShellCombo));
|
|
|
|
if (user_shell_active>0){
|
|
|
|
if (user_shell_active>0){
|
|
|
|
user_shell = yon_char_unite("--shell ",!strcmp(gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->userShellCombo)),"Set")?(char*)gtk_entry_get_text(GTK_ENTRY(window->userShellEntry)):(char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->userShellCombo)),NULL);
|
|
|
|
user_shell = yon_char_unite("--shell ",!strcmp(gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->userShellCombo)),"Set")?(char*)gtk_entry_get_text(GTK_ENTRY(window->userShellEntry)):(char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->userShellCombo)),NULL);
|
|
|
|
@ -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)?" ":"",
|
|
|
|
final_string = yon_char_unite(final_string,!yon_char_is_empty(final_string)?" ":"",
|
|
|
|
yon_char_return_if_exist(user_shell,""),
|
|
|
|
yon_char_return_if_exist(user_shell,""),
|
|
|
|
!yon_char_is_empty(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_return_if_exist(create_system_user,""),
|
|
|
|
!yon_char_is_empty(create_system_user)?" ":"",
|
|
|
|
!yon_char_is_empty(create_system_user)?" ":"",
|
|
|
|
yon_char_return_if_exist(create_ununique,""),
|
|
|
|
yon_char_return_if_exist(create_ununique,""),
|
|
|
|
@ -180,6 +189,41 @@ void on_home_changed(GtkWidget *self,ubl_settings_usergroups_user_window *window
|
|
|
|
free(home_parameter);
|
|
|
|
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 = g_object_get_data(G_OBJECT(target),"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 *target){
|
|
|
|
|
|
|
|
int size;
|
|
|
|
|
|
|
|
config_str locales = yon_config_load(languages_command,&size);
|
|
|
|
|
|
|
|
GHashTable *hash = g_hash_table_new(g_str_hash,g_str_equal);
|
|
|
|
|
|
|
|
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(hash,yon_char_new(parsed[0]),yon_char_new(locales[i]));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
g_object_set_data(G_OBJECT(target),"hash",hash);
|
|
|
|
|
|
|
|
g_idle_add((GSourceFunc)yon_user_set_locales,target);
|
|
|
|
|
|
|
|
g_thread_exit(NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){
|
|
|
|
ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){
|
|
|
|
ubl_settings_usergroups_user_window *window = malloc(sizeof(ubl_settings_usergroups_user_window));
|
|
|
|
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);
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_user);
|
|
|
|
@ -205,6 +249,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){
|
|
|
|
window->userWarningSpin=yon_gtk_builder_get_widget(builder,"userWarningSpin");
|
|
|
|
window->userWarningSpin=yon_gtk_builder_get_widget(builder,"userWarningSpin");
|
|
|
|
window->userActivitySpin=yon_gtk_builder_get_widget(builder,"userActivitySpin");
|
|
|
|
window->userActivitySpin=yon_gtk_builder_get_widget(builder,"userActivitySpin");
|
|
|
|
window->userForceChangeCheck=yon_gtk_builder_get_widget(builder,"userForceChangeCheck");
|
|
|
|
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->userShellCombo=yon_gtk_builder_get_widget(builder,"userShellCombo");
|
|
|
|
window->userShellEntry=yon_gtk_builder_get_widget(builder,"userShellEntry");
|
|
|
|
window->userShellEntry=yon_gtk_builder_get_widget(builder,"userShellEntry");
|
|
|
|
window->userHomeCombo=yon_gtk_builder_get_widget(builder,"userHomeCombo");
|
|
|
|
window->userHomeCombo=yon_gtk_builder_get_widget(builder,"userHomeCombo");
|
|
|
|
@ -229,6 +274,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){
|
|
|
|
window->MainNotebook=yon_gtk_builder_get_widget(builder,"MainNotebook");
|
|
|
|
window->MainNotebook=yon_gtk_builder_get_widget(builder,"MainNotebook");
|
|
|
|
window->expiration_unix=NULL;
|
|
|
|
window->expiration_unix=NULL;
|
|
|
|
window->last_uid=NULL;
|
|
|
|
window->last_uid=NULL;
|
|
|
|
|
|
|
|
window->locale_thread=NULL;
|
|
|
|
yon_gtk_entry_block_symbols(GTK_ENTRY(window->userUserNameEntry),"'\":\n");
|
|
|
|
yon_gtk_entry_block_symbols(GTK_ENTRY(window->userUserNameEntry),"'\":\n");
|
|
|
|
yon_gtk_entry_block_symbols(GTK_ENTRY(window->userLoginEntry),"'\"=:\n");
|
|
|
|
yon_gtk_entry_block_symbols(GTK_ENTRY(window->userLoginEntry),"'\"=:\n");
|
|
|
|
|
|
|
|
|
|
|
|
@ -251,6 +297,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(window->userShellCombo),"Set",SET_LABEL);
|
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(window->userShellCombo),"Set",SET_LABEL);
|
|
|
|
yon_char_parsed_free(shells,shell_size);
|
|
|
|
yon_char_parsed_free(shells,shell_size);
|
|
|
|
|
|
|
|
window->locale_thread=g_thread_new("locales",(GThreadFunc)yon_load_languages,window->LanguageCombo);
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(window->userShellCombo),0);
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(window->userShellCombo),0);
|
|
|
|
window->old_password=NULL;
|
|
|
|
window->old_password=NULL;
|
|
|
|
window->old_username=NULL;
|
|
|
|
window->old_username=NULL;
|
|
|
|
@ -297,6 +344,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->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->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->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->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->userCreateSystemCheck),"toggled",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->userCreateUnuniqueCheck),"toggled",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->userCreateUnuniqueCheck),"toggled",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
@ -367,6 +415,7 @@ void on_user_login_update(GtkWidget *, ubl_settings_usergroups_user_window *wind
|
|
|
|
void on_user_save(GtkWidget *self, dictionary *dict){
|
|
|
|
void on_user_save(GtkWidget *self, dictionary *dict){
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
ubl_settings_usergroups_user_window *window = yon_dictionary_get_data(dict->first->next,ubl_settings_usergroups_user_window*);
|
|
|
|
ubl_settings_usergroups_user_window *window = yon_dictionary_get_data(dict->first->next,ubl_settings_usergroups_user_window*);
|
|
|
|
|
|
|
|
g_thread_join(window->locale_thread);
|
|
|
|
yon_ubl_status_box_despawn(GTK_CONTAINER(window->StatusBox));
|
|
|
|
yon_ubl_status_box_despawn(GTK_CONTAINER(window->StatusBox));
|
|
|
|
char *final_user="";
|
|
|
|
char *final_user="";
|
|
|
|
char *uid_string = NULL;
|
|
|
|
char *uid_string = NULL;
|
|
|
|
|