Fixed saving of unedited values at additional settings window

pull/235/head
Ivan Dmitrievich Yartsev 10 months ago
parent 4822be0f69
commit 24a32c99ff

@ -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

@ -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;i<hash_size;i++){
if (hash_algos[i][0]!='!'){
if (hash_algos[i][strlen(hash_algos[i])-1]=='\n') hash_algos[i][strlen(hash_algos[i])-1]='\0';
int parsed_size;
config_str parsed = yon_char_parse(hash_algos[i],&parsed_size,";");
if (!strcmp(hash,parsed[0])){
char *def_settings = yon_char_new(parsed[1]);
char *def = yon_char_divide_search(def_settings," ",-1);
free(def_settings);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(window->PasswordHashCombo),yon_char_unite(DEFAULT_USER_LABEL," (",def,")",NULL));
}
}
}
}
}
for (int i=1;i<hash_size;i++){
if (hash_algos[i][0]!='!'){
if (hash_algos[i][strlen(hash_algos[i])-1]=='\n') hash_algos[i][strlen(hash_algos[i])-1]='\0';
int parsed_size;
config_str parsed = yon_char_parse(hash_algos[i],&parsed_size,";");
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(window->PasswordHashCombo),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);
}

@ -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;i<hash_size;i++){
if (hash_algos[i][0]!='!'){
if (hash_algos[i][strlen(hash_algos[i])-1]=='\n') hash_algos[i][strlen(hash_algos[i])-1]='\0';
int parsed_size;
config_str parsed = yon_char_parse(hash_algos[i],&parsed_size,";");
if (!strcmp(hash,parsed[0])){
char *def_settings = yon_char_new(parsed[1]);
char *def = yon_char_divide_search(def_settings," ",-1);
free(def_settings);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(window->PasswordHashCombo),yon_char_unite(DEFAULT_USER_LABEL," (",def,")",NULL));
}
}
}
}
}
for (int i=1;i<hash_size;i++){
if (hash_algos[i][0]!='!'){
if (hash_algos[i][strlen(hash_algos[i])-1]=='\n') hash_algos[i][strlen(hash_algos[i])-1]='\0';
int parsed_size;
config_str parsed = yon_char_parse(hash_algos[i],&parsed_size,";");
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(window->PasswordHashCombo),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);

@ -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();

Loading…
Cancel
Save