From 24a32c99ffb3e107d8a5c4c429a66543f6da5a9c Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 15 Jan 2025 10:20:19 +0600 Subject: [PATCH] Fixed saving of unedited values at additional settings window --- source/CMakeLists.txt | 1 + source/ubl-settings-usergroups-settings.c | 233 ++++++++++++++++++++++ source/ubl-settings-usergroups.c | 188 ----------------- source/ubl-settings-usergroups.h | 11 + 4 files changed, 245 insertions(+), 188 deletions(-) create mode 100644 source/ubl-settings-usergroups-settings.c diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 94c2d57..125f652 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -80,6 +80,7 @@ endif() set(SOURCE_FILES ubl-settings-usergroups.c + ubl-settings-usergroups-settings.c ubl-settings-usergroups-user.c ubl-settings-usergroups-system.c ubl-settings-usergroups.h diff --git a/source/ubl-settings-usergroups-settings.c b/source/ubl-settings-usergroups-settings.c new file mode 100644 index 0000000..a090bfe --- /dev/null +++ b/source/ubl-settings-usergroups-settings.c @@ -0,0 +1,233 @@ +#include "ubl-settings-usergroups.h" + +void on_additional_settings_changed(GtkWidget *self, ubl_settings_usergroups_additional_settings_window *window){ + if (self == window->DefaultUserNameEntry){ + window->default_user_name = gtk_entry_get_text(GTK_ENTRY(window->DefaultUserNameEntry)); + + } else if (self == window->DefaultPasswordEntry){ + window->default_password = gtk_entry_get_text(GTK_ENTRY(window->DefaultPasswordEntry)); + + } else if (self == window->RootPasswordEntry){ + window->default_root_password = gtk_entry_get_text(GTK_ENTRY(window->RootPasswordEntry)); + + } else if (self == window->PasswordHashCombo){ + window->password_hash = ""; + + } else if (self == window->DefaultUserAdministratorCheck){ + window->user_1000_admin = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DefaultUserAdministratorCheck)); + + } else if (self == window->UsersBootCheck){ + window->user_boot = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck)); + + } else if (self == window->UsersShutdownCheck){ + window->user_shutdown = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsersShutdownCheck)); + } +} + + void on_additional_settings_save(GtkWidget *, ubl_settings_usergroups_additional_settings_window *window){ + const char *default_user = (char*)gtk_entry_get_text(GTK_ENTRY(window->DefaultUserNameEntry)); + if (!yon_char_is_empty(default_user)){ + if (window->default_user_name) + yon_config_register(DEFAULTUSER_parameter,DEFAULTUSER_parameter_command,yon_char_new((char*)default_user)); + } else { + if (window->default_user_name) + yon_config_remove_by_key(DEFAULTUSER_parameter); + } + char *default_password = gtk_combo_box_get_active(GTK_COMBO_BOX(window->DefaultPasswordCombo))>1? (char*)gtk_entry_get_text(GTK_ENTRY(window->DefaultPasswordEntry)):NULL; + if (!yon_char_is_empty(default_password)){ + if (window->default_password) + yon_config_register(DEFAULTPASSWD_parameter,DEFAULTPASSWD_parameter_command,default_password); + } else { + if (window->default_password) + yon_config_remove_by_key(DEFAULTPASSWD_parameter); + } + char *root_password = gtk_combo_box_get_active(GTK_COMBO_BOX(window->RootPasswordCombo)) > 1 ? (char*)gtk_entry_get_text(GTK_ENTRY(window->RootPasswordEntry)) : NULL; + if (!yon_char_is_empty(root_password)){ + if (window->default_root_password) + yon_config_register(DEFAULTROOTPASSWD_parameter,DEFAULTROOTPASSWD_parameter_command,root_password); + } else { + if (window->default_root_password) + yon_config_remove_by_key(DEFAULTROOTPASSWD_parameter); + } + int user_k_admin = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DefaultUserAdministratorCheck)); + if (user_k_admin){ + if (window->user_1000_admin) + yon_config_register(ADDADM_parameter,ADDADM_parameter_command,"yes"); + } else { + if (window->user_1000_admin) + yon_config_register(ADDADM_parameter,ADDADM_parameter_command,"no"); + } + if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->PasswordHashCombo))!=0){ + char *hash = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->PasswordHashCombo)); + if (!yon_char_is_empty(hash)){ + if (window->password_hash) + yon_config_register(HASHPASSWD_parameter,HASHPASSWD_parameter_command,hash); + } + }else { + if (window->password_hash) + yon_config_remove_by_key(HASHPASSWD_parameter); + } + char *sync = ""; + int boot_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck)); + int shutdown_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsersShutdownCheck)); + if (!boot_active&&!shutdown_active){ + if (window->user_boot>-1||window->user_boot>-1) + yon_config_remove_by_key(USERADD_SYNC_parameter); + } else { + if (boot_active){ + if (window->user_boot>-1) + sync = "boot"; + } + if (shutdown_active){ + if (window->user_shutdown>-1) + sync = yon_char_unite(sync,yon_char_is_empty(sync)?"":",","shutdown",NULL); + } + if (window->user_boot>-1||window->user_boot>-1) + yon_config_register(USERADD_SYNC_parameter,USERADD_SYNC_parameter_command,sync); + } + } + +ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_additional_settings_new(){ + ubl_settings_usergroups_additional_settings_window *window = malloc(sizeof(ubl_settings_usergroups_additional_settings_window)); + GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_additional_settings); + window->Window=yon_gtk_builder_get_widget(builder,"Window"); + window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox"); + window->DefaultUserNameEntry=yon_gtk_builder_get_widget(builder,"DefaultUserNameEntry"); + window->DefaultUserAdministratorCheck=yon_gtk_builder_get_widget(builder,"DefaultUserAdministratorCheck"); + window->DefaultPasswordCombo=yon_gtk_builder_get_widget(builder,"DefaultPasswordCombo"); + window->DefaultPasswordEntry=yon_gtk_builder_get_widget(builder,"DefaultPasswordEntry"); + window->DefaultPasswordButton=yon_gtk_builder_get_widget(builder,"DefaultPasswordButton"); + window->RootPasswordCombo=yon_gtk_builder_get_widget(builder,"RootPasswordCombo"); + window->RootPasswordEntry=yon_gtk_builder_get_widget(builder,"RootPasswordEntry"); + window->RootPasswordButton=yon_gtk_builder_get_widget(builder,"RootPasswordButton"); + window->PasswordHashCombo=yon_gtk_builder_get_widget(builder,"PasswordHashCombo"); + window->EncryptAllPasswordsButton=yon_gtk_builder_get_widget(builder,"EncryptAllPasswordsButton"); + window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton"); + window->AcceptButton=yon_gtk_builder_get_widget(builder,"AcceptButton"); + window->UsersBootCheck=yon_gtk_builder_get_widget(builder,"UsersBootCheck"); + window->UsersShutdownCheck=yon_gtk_builder_get_widget(builder,"UsersShutdownCheck"); + + window->default_password=NULL; + window->default_root_password=NULL; + window->default_user_name=NULL; + window->user_1000_admin=-1; + window->user_shutdown=-1; + window->user_boot=-1; + window->password_hash=NULL; + + yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"AdditionalSettingsWindow"); + 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){ + if (strstr(sync_parameters,"boot")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck),1); + } + if (strstr(sync_parameters,"shutdown")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsersShutdownCheck),1); + } + } + + int hash_size=0; + config_str hash_algos = yon_file_open(hash_list_path,&hash_size); + if (main_config.hash_default_id==-1){ + int size; + config_str ret = yon_config_load(get_default_hash_command,&size); + if (size>0){ + char *hash = ret[0]; + if (hash[strlen(hash)-1]=='\n') hash[strlen(hash)-1]='\0'; + for (int i=0;iPasswordHashCombo),yon_char_unite(DEFAULT_USER_LABEL," (",def,")",NULL)); + } + } + } + } + } + for (int i=1;iPasswordHashCombo),parsed[0],_(parsed[1])); + gtk_widget_set_tooltip_text(window->PasswordHashCombo,parsed[1]); + yon_char_parsed_free(parsed,parsed_size); + } + } + yon_char_parsed_free(hash_algos,hash_size); + gtk_combo_box_set_active(GTK_COMBO_BOX(window->PasswordHashCombo),0); + char *default_user = yon_config_get_by_key(DEFAULTUSER_parameter); + if (!yon_char_is_empty(default_user)) + gtk_entry_set_text(GTK_ENTRY(window->DefaultUserNameEntry),default_user); + + + g_signal_connect(G_OBJECT(window->RootPasswordCombo),"changed",G_CALLBACK(on_password_combo_changed),window->RootPasswordButton); + g_signal_connect(G_OBJECT(window->DefaultPasswordCombo),"changed",G_CALLBACK(on_password_combo_changed),window->DefaultPasswordButton); + char *default_password = yon_config_get_by_key(DEFAULTPASSWD_parameter); + if (!yon_char_is_empty(default_password)){ + gtk_entry_set_text(GTK_ENTRY(window->DefaultPasswordEntry),default_password); + if(!yon_config_check_ignore(DEFAULTPASSWD_parameter)) + gtk_combo_box_set_active(GTK_COMBO_BOX(window->DefaultPasswordCombo),2); + } + char *root_password = yon_config_get_by_key(DEFAULTROOTPASSWD_parameter); + if (!yon_char_is_empty(root_password)){ + gtk_entry_set_text(GTK_ENTRY(window->RootPasswordEntry),root_password); + if(!yon_config_check_ignore(DEFAULTROOTPASSWD_parameter)) + gtk_combo_box_set_active(GTK_COMBO_BOX(window->RootPasswordCombo),2); + } + char *is_k_admin = yon_config_get_by_key(ADDADM_parameter); + if (!yon_char_is_empty(is_k_admin)) + if (!strcmp(is_k_admin,"yes")) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultUserAdministratorCheck),1); + char *hash = yon_config_get_by_key(HASHPASSWD_parameter); + if (!yon_char_is_empty(hash)){ + gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->PasswordHashCombo),hash); + } + + 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); + dictionary *default_dict=NULL; + yon_dictionary_add_or_create_if_exists_with_data(default_dict,"combo",window->DefaultPasswordCombo); + yon_dictionary_add_or_create_if_exists_with_data(default_dict,"entry",window->DefaultPasswordEntry); + + dictionary *root_dict=NULL; + yon_dictionary_add_or_create_if_exists_with_data(root_dict,"combo",window->RootPasswordCombo); + yon_dictionary_add_or_create_if_exists_with_data(root_dict,"entry",window->RootPasswordEntry); + g_signal_connect(G_OBJECT(window->DefaultPasswordButton),"clicked",G_CALLBACK(on_password_change),default_dict); + g_signal_connect(G_OBJECT(window->RootPasswordButton),"clicked",G_CALLBACK(on_password_change),root_dict); + dialog_confirmation_data *data=malloc(sizeof(dialog_confirmation_data)); + data->function=on_passwords_encrypt; + data->action_text = ENCRYPT_SURE_LABEL; + data->data=NULL; + + g_signal_connect(G_OBJECT(window->EncryptAllPasswordsButton),"clicked",G_CALLBACK(yon_confirmation_dialog_call),data); + g_signal_connect(G_OBJECT(window->PasswordHashCombo),"changed",G_CALLBACK(on_hash_changed),window); + + g_signal_connect(G_OBJECT(window->DefaultUserNameEntry),"changed",G_CALLBACK(on_additional_settings_changed),window); + g_signal_connect(G_OBJECT(window->DefaultPasswordEntry),"changed",G_CALLBACK(on_additional_settings_changed),window); + g_signal_connect(G_OBJECT(window->RootPasswordEntry),"changed",G_CALLBACK(on_additional_settings_changed),window); + g_signal_connect(G_OBJECT(window->PasswordHashCombo),"changed",G_CALLBACK(on_additional_settings_changed),window); + g_signal_connect(G_OBJECT(window->DefaultUserAdministratorCheck),"toggled",G_CALLBACK(on_additional_settings_changed),window); + g_signal_connect(G_OBJECT(window->UsersBootCheck),"toggled",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->UsersBootCheck),"toggled",G_CALLBACK(on_users_boot_toggled),NULL); + // g_signal_connect(G_OBJECT(window->UsersShutdownCheck),"toggled",G_CALLBACK(on_users_shutdown_toggled),NULL); + +return window; +} + +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(); + 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_widget_show(window->Window); + +} \ No newline at end of file diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 8645663..886e013 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -1063,66 +1063,6 @@ void on_expiration_clicked(GtkWidget *, ubl_settings_usergroups_user_window *win // standard functions - void on_additional_settings_save(GtkWidget *, ubl_settings_usergroups_additional_settings_window *window){ - const char *default_user = (char*)gtk_entry_get_text(GTK_ENTRY(window->DefaultUserNameEntry)); - if (!yon_char_is_empty(default_user)){ - yon_config_register(DEFAULTUSER_parameter,DEFAULTUSER_parameter_command,yon_char_new((char*)default_user)); - } else { - yon_config_remove_by_key(DEFAULTUSER_parameter); - } - char *default_password = gtk_combo_box_get_active(GTK_COMBO_BOX(window->DefaultPasswordCombo))>1? (char*)gtk_entry_get_text(GTK_ENTRY(window->DefaultPasswordEntry)):NULL; - if (!yon_char_is_empty(default_password)){ - yon_config_register(DEFAULTPASSWD_parameter,DEFAULTPASSWD_parameter_command,default_password); - } else { - yon_config_remove_by_key(DEFAULTPASSWD_parameter); - } - char *root_password = gtk_combo_box_get_active(GTK_COMBO_BOX(window->RootPasswordCombo)) > 1 ? (char*)gtk_entry_get_text(GTK_ENTRY(window->RootPasswordEntry)) : NULL; - if (!yon_char_is_empty(root_password)){ - yon_config_register(DEFAULTROOTPASSWD_parameter,DEFAULTROOTPASSWD_parameter_command,root_password); - } else { - yon_config_remove_by_key(DEFAULTROOTPASSWD_parameter); - } - int user_k_admin = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DefaultUserAdministratorCheck)); - if (!yon_config_check_ignore(ADDADM_parameter)){ - if (user_k_admin){ - yon_config_register(ADDADM_parameter,ADDADM_parameter_command,"yes"); - } else { - yon_config_register(ADDADM_parameter,ADDADM_parameter_command,"no"); - } - } else { - char *user_k = config(ADDADM_parameter); - if (strcmp(user_k,user_k_admin?"yes":"no")){ - if (user_k_admin){ - yon_config_register(ADDADM_parameter,ADDADM_parameter_command,"yes"); - } else { - yon_config_register(ADDADM_parameter,ADDADM_parameter_command,"no"); - } - } - } - if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->PasswordHashCombo))!=0){ - char *hash = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->PasswordHashCombo)); - if (!yon_char_is_empty(hash)){ - yon_config_register(HASHPASSWD_parameter,HASHPASSWD_parameter_command,hash); - } - }else { - yon_config_remove_by_key(HASHPASSWD_parameter); - } - char *sync = ""; - int boot_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck)); - int shutdown_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsersShutdownCheck)); - if (!boot_active&&!shutdown_active){ - yon_config_remove_by_key(USERADD_SYNC_parameter); - } else { - if (boot_active){ - sync = "boot"; - } - if (shutdown_active){ - sync = yon_char_unite(sync,yon_char_is_empty(sync)?"":",","shutdown",NULL); - } - yon_config_register(USERADD_SYNC_parameter,USERADD_SYNC_parameter_command,sync); - } - } - void on_hash_changed(GtkWidget *, ubl_settings_usergroups_additional_settings_window *window){ int hash_size=0; @@ -1163,134 +1103,6 @@ void on_expiration_clicked(GtkWidget *, ubl_settings_usergroups_user_window *win // } // } -ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_additional_settings_new(){ - ubl_settings_usergroups_additional_settings_window *window = malloc(sizeof(ubl_settings_usergroups_additional_settings_window)); - GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_additional_settings); - window->Window=yon_gtk_builder_get_widget(builder,"Window"); - window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox"); - window->DefaultUserNameEntry=yon_gtk_builder_get_widget(builder,"DefaultUserNameEntry"); - window->DefaultUserAdministratorCheck=yon_gtk_builder_get_widget(builder,"DefaultUserAdministratorCheck"); - window->DefaultPasswordCombo=yon_gtk_builder_get_widget(builder,"DefaultPasswordCombo"); - window->DefaultPasswordEntry=yon_gtk_builder_get_widget(builder,"DefaultPasswordEntry"); - window->DefaultPasswordButton=yon_gtk_builder_get_widget(builder,"DefaultPasswordButton"); - window->RootPasswordCombo=yon_gtk_builder_get_widget(builder,"RootPasswordCombo"); - window->RootPasswordEntry=yon_gtk_builder_get_widget(builder,"RootPasswordEntry"); - window->RootPasswordButton=yon_gtk_builder_get_widget(builder,"RootPasswordButton"); - window->PasswordHashCombo=yon_gtk_builder_get_widget(builder,"PasswordHashCombo"); - window->EncryptAllPasswordsButton=yon_gtk_builder_get_widget(builder,"EncryptAllPasswordsButton"); - window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton"); - window->AcceptButton=yon_gtk_builder_get_widget(builder,"AcceptButton"); - window->UsersBootCheck=yon_gtk_builder_get_widget(builder,"UsersBootCheck"); - window->UsersShutdownCheck=yon_gtk_builder_get_widget(builder,"UsersShutdownCheck"); - - yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"AdditionalSettingsWindow"); - 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){ - if (strstr(sync_parameters,"boot")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck),1); - } - if (strstr(sync_parameters,"shutdown")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsersShutdownCheck),1); - } - } - - int hash_size=0; - config_str hash_algos = yon_file_open(hash_list_path,&hash_size); - if (main_config.hash_default_id==-1){ - int size; - config_str ret = yon_config_load(get_default_hash_command,&size); - if (size>0){ - char *hash = ret[0]; - if (hash[strlen(hash)-1]=='\n') hash[strlen(hash)-1]='\0'; - for (int i=0;iPasswordHashCombo),yon_char_unite(DEFAULT_USER_LABEL," (",def,")",NULL)); - } - } - } - } - } - for (int i=1;iPasswordHashCombo),parsed[0],_(parsed[1])); - gtk_widget_set_tooltip_text(window->PasswordHashCombo,parsed[1]); - yon_char_parsed_free(parsed,parsed_size); - } - } - yon_char_parsed_free(hash_algos,hash_size); - gtk_combo_box_set_active(GTK_COMBO_BOX(window->PasswordHashCombo),0); - char *default_user = yon_config_get_by_key(DEFAULTUSER_parameter); - if (!yon_char_is_empty(default_user)) - gtk_entry_set_text(GTK_ENTRY(window->DefaultUserNameEntry),default_user); - - - g_signal_connect(G_OBJECT(window->RootPasswordCombo),"changed",G_CALLBACK(on_password_combo_changed),window->RootPasswordButton); - g_signal_connect(G_OBJECT(window->DefaultPasswordCombo),"changed",G_CALLBACK(on_password_combo_changed),window->DefaultPasswordButton); - char *default_password = yon_config_get_by_key(DEFAULTPASSWD_parameter); - if (!yon_char_is_empty(default_password)){ - gtk_entry_set_text(GTK_ENTRY(window->DefaultPasswordEntry),default_password); - if(!yon_config_check_ignore(DEFAULTPASSWD_parameter)) - gtk_combo_box_set_active(GTK_COMBO_BOX(window->DefaultPasswordCombo),2); - } - char *root_password = yon_config_get_by_key(DEFAULTROOTPASSWD_parameter); - if (!yon_char_is_empty(root_password)){ - gtk_entry_set_text(GTK_ENTRY(window->RootPasswordEntry),root_password); - if(!yon_config_check_ignore(DEFAULTROOTPASSWD_parameter)) - gtk_combo_box_set_active(GTK_COMBO_BOX(window->RootPasswordCombo),2); - } - char *is_k_admin = yon_config_get_by_key(ADDADM_parameter); - if (!yon_char_is_empty(is_k_admin)) - if (!strcmp(is_k_admin,"yes")) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultUserAdministratorCheck),1); - char *hash = yon_config_get_by_key(HASHPASSWD_parameter); - if (!yon_char_is_empty(hash)){ - gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->PasswordHashCombo),hash); - } - - 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); - dictionary *default_dict=NULL; - yon_dictionary_add_or_create_if_exists_with_data(default_dict,"combo",window->DefaultPasswordCombo); - yon_dictionary_add_or_create_if_exists_with_data(default_dict,"entry",window->DefaultPasswordEntry); - - dictionary *root_dict=NULL; - yon_dictionary_add_or_create_if_exists_with_data(root_dict,"combo",window->RootPasswordCombo); - yon_dictionary_add_or_create_if_exists_with_data(root_dict,"entry",window->RootPasswordEntry); - g_signal_connect(G_OBJECT(window->DefaultPasswordButton),"clicked",G_CALLBACK(on_password_change),default_dict); - g_signal_connect(G_OBJECT(window->RootPasswordButton),"clicked",G_CALLBACK(on_password_change),root_dict); - dialog_confirmation_data *data=malloc(sizeof(dialog_confirmation_data)); - data->function=on_passwords_encrypt; - data->action_text = ENCRYPT_SURE_LABEL; - data->data=NULL; - g_signal_connect(G_OBJECT(window->EncryptAllPasswordsButton),"clicked",G_CALLBACK(yon_confirmation_dialog_call),data); - - g_signal_connect(G_OBJECT(window->PasswordHashCombo),"changed",G_CALLBACK(on_hash_changed),window); - - // g_signal_connect(G_OBJECT(window->UsersBootCheck),"toggled",G_CALLBACK(on_users_boot_toggled),NULL); - // g_signal_connect(G_OBJECT(window->UsersShutdownCheck),"toggled",G_CALLBACK(on_users_shutdown_toggled),NULL); - -return window; -} - -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(); - 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_widget_show(window->Window); - -} void on_user_choose(GtkWidget *, GtkEntry *target){ ubl_settings_usergroups_group_window *window = yon_ubl_settings_usergroups_group_new(1); diff --git a/source/ubl-settings-usergroups.h b/source/ubl-settings-usergroups.h index 8a45c00..e352f78 100644 --- a/source/ubl-settings-usergroups.h +++ b/source/ubl-settings-usergroups.h @@ -240,6 +240,15 @@ typedef struct{ GtkWidget *EncryptAllPasswordsButton; GtkWidget *UsersBootCheck; GtkWidget *UsersShutdownCheck; + + const char *default_user_name; + const char *default_password; + const char *default_root_password; + const char *password_hash; + int user_1000_admin; + int user_boot; + int user_shutdown; + } ubl_settings_usergroups_additional_settings_window; typedef struct{ @@ -461,6 +470,8 @@ void on_passwords_encrypt(); void on_password_change(GtkWidget *self, dictionary *entry_dict); void on_additional_settings_clicked(GtkWidget *self, GtkEntry *output_target); void on_expiration_clicked(GtkWidget *self, ubl_settings_usergroups_user_window *window); + +void on_additional_settings_changed(GtkWidget *self, ubl_settings_usergroups_additional_settings_window *window); void on_additional_settings_save(GtkWidget *self, ubl_settings_usergroups_additional_settings_window *window); void on_hash_changed(GtkWidget *self, ubl_settings_usergroups_additional_settings_window *window); ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_additional_settings_new();