From 6060f1a2ad74f73b49b6e5c26de2f1604c2c28cc Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 24 Feb 2025 16:43:24 +0600 Subject: [PATCH] Fixed default saving --- source/ubl-settings-usergroups-user.c | 6 +++++- source/ubl-settings-usergroups.c | 25 +++++++++++++++---------- source/ubl-settings-usergroups.h | 7 ++++++- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/source/ubl-settings-usergroups-user.c b/source/ubl-settings-usergroups-user.c index 65a382d..6a79b90 100644 --- a/source/ubl-settings-usergroups-user.c +++ b/source/ubl-settings-usergroups-user.c @@ -154,6 +154,10 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ window->old_password=NULL; window->old_username=NULL; dictionary *entry_dict = NULL; + + struct target_struct *target = malloc(sizeof(struct target_struct)); + target->target=GTK_ENTRY(window->userGroupsEntry); + target->defaut_toggle=GTK_TOGGLE_BUTTON(window->userGroupsCheck); yon_window_config_custom_window_setup(GTK_WINDOW(window->CreateUserWindow),"UserWindow"); yon_dictionary_add_or_create_if_exists_with_data(entry_dict,"combo",window->userPasswordCombo); yon_dictionary_add_or_create_if_exists_with_data(entry_dict,"entry",window->userPasswordEntry); @@ -161,7 +165,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->userUIDAutoCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->userUIDEntry); g_signal_connect(G_OBJECT(window->userHomeButton),"clicked",G_CALLBACK(on_filechooser_open),window->userHomeEntry); - g_signal_connect(G_OBJECT(window->UserGroupsButton),"clicked",G_CALLBACK(on_groups_clicked),window->userGroupsEntry); + g_signal_connect(G_OBJECT(window->UserGroupsButton),"clicked",G_CALLBACK(on_groups_clicked),target); g_signal_connect(G_OBJECT(window->userPasswordButton),"clicked",G_CALLBACK(on_password_change),entry_dict); g_signal_connect(G_OBJECT(window->userAdditionalGroupsButton),"clicked",G_CALLBACK(on_groups_multiple_clicked),window->userAdditionalGroupsEntry); g_signal_connect(G_OBJECT(window->userPasswordExpirationButton),"clicked",G_CALLBACK(on_expiration_clicked),window); diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index e17a9d5..dddf319 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -799,19 +799,24 @@ void on_filechooser_open(GtkWidget *, GtkEntry *output_target){ void on_groups_save(GtkWidget *self, dictionary *dict){ ubl_settings_usergroups_group_window *window = yon_dictionary_get_data(dict->first,ubl_settings_usergroups_group_window*); - GtkEntry *output = yon_dictionary_get_data(dict->first->next,GtkEntry*); - GtkTreeIter iter; - GtkTreeModel *model = GTK_TREE_MODEL(window->list); - if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->GroupsTree)),&model,&iter)){ - char *name; - gtk_tree_model_get(model,&iter,1,&name,-1); - gtk_entry_set_text(output,name); - free(name); + struct target_struct *output = yon_dictionary_get_data(dict->first->next,struct target_struct *); + if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DefaultCheck))){ + GtkTreeIter iter; + GtkTreeModel *model = GTK_TREE_MODEL(window->list); + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->GroupsTree)),&model,&iter)){ + char *name; + gtk_tree_model_get(model,&iter,1,&name,-1); + gtk_entry_set_text(output->target,name); + free(name); + } + } else { + gtk_entry_set_text(output->target,""); + gtk_toggle_button_set_active(output->defaut_toggle,1); } on_subwindow_close(self); } -void on_groups_clicked(GtkWidget *, GtkEntry *output_target){ +void on_groups_clicked(GtkWidget *, struct target_struct *output_target){ ubl_settings_usergroups_group_window *window = yon_ubl_settings_usergroups_group_new(0); gtk_window_set_title(GTK_WINDOW(window->GroupsWindow),MAIN_GROUP_TITLE_LABEL); gtk_label_set_text(GTK_LABEL(window->HeaderLabel),MAIN_GROUP_TITLE_LABEL); @@ -837,7 +842,7 @@ void on_groups_clicked(GtkWidget *, GtkEntry *output_target){ gtk_tree_view_column_set_title(gtk_tree_view_get_column(GTK_TREE_VIEW(window->GroupsTree),1),GID_LABEL); gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(window->GroupsTree),0),0); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->GroupsTree)),GTK_SELECTION_SINGLE); - const char *current_group=gtk_entry_get_text(output_target); + const char *current_group=gtk_entry_get_text(output_target->target); size_t digits=0; for (guint k=0;k