From 7ccc8b2491d5ba202baac2b3c2255227b00b9e2b Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 21 Aug 2025 13:36:48 +0600 Subject: [PATCH] Fixed shutdown config checking --- source/ubl-settings-usergroups.c | 14 +++++++++++--- source/ubl-settings-usergroups.h | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 844901d..5483012 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -324,6 +324,12 @@ void yon_hide_passwords(template_saving_window *window){ char *new_value; gtk_tree_model_get(model,&iter,1,&name,2,&old_value,3,&new_value,-1); if (strstr(name,USERADD_SEARCH_macro)){ + if (!yon_char_is_empty(new_value)&&!yon_char_is_empty(old_value)&&strstr(new_value,old_value)){ + GtkTreeIter *iter_cur = gtk_tree_iter_copy(&iter); + gtk_list_store_remove(window->list,iter_cur); + gtk_tree_model_get_iter_first(model,&iter); + continue; + } char *old=NULL; char *newv=NULL; int size = 0; @@ -2283,7 +2289,7 @@ gboolean on_system_menu_open(GtkWidget *self,GdkEventButton *event, rmb_menu_win * [RU] * Функция настройки основного окна приложения. [widgets] - структура со стандартным интерфейсом. */ -main_window *yon_main_window_complete(main_window *widgets){ +template_main_window *yon_main_window_complete(main_window *widgets){ widgets = yon_remalloc(widgets,sizeof(main_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path); gtk_box_pack_start(GTK_BOX(widgets->InterfaceBox),yon_gtk_builder_get_widget(builder,"PlugBox"),1,1,0); @@ -2423,7 +2429,7 @@ main_window *yon_main_window_complete(main_window *widgets){ yon_save_window_set_postsave_function(on_save_done,widgets); yon_save_window_set_postsave_failure_function(on_save_failed,widgets); -return widgets; +return (template_main_window*)widgets; } int main(int argc, char *argv[]){ @@ -2437,7 +2443,9 @@ int main(int argc, char *argv[]){ yon_ubl_setup_arguments(argc,argv,&unfound,&size,NULL); gtk_init(&argc,&argv); template_main_window *widgets = yon_ubl_window_setup(); - yon_main_window_complete((main_window*)widgets); + widgets = yon_main_window_complete((main_window*)widgets); + yon_window_remove_exit_config_check(widgets); + yon_window_set_exit_config_check(widgets,G_CALLBACK(yon_hide_passwords)); main_config.launch_arguments=yon_char_parsed_copy(argv,argc); main_config.launch_size=argc; gtk_main(); diff --git a/source/ubl-settings-usergroups.h b/source/ubl-settings-usergroups.h index 02be420..afc4406 100644 --- a/source/ubl-settings-usergroups.h +++ b/source/ubl-settings-usergroups.h @@ -587,7 +587,7 @@ void on_selection_changed(GtkWidget *self, main_window *widgets); void on_notebook_page_changed(GtkWidget *self, GtkWidget *page, int num, main_window *widgets); gboolean on_menu_open(GtkWidget *self,GdkEventButton *event, rmb_menu_window *window); gboolean on_system_menu_open(GtkWidget *self,GdkEventButton *event, rmb_menu_window *window); -main_window *yon_main_window_complete(main_window *widgets); +template_main_window *yon_main_window_complete(main_window *widgets); void yon_remove_confirmation_window_accept_clicked(GtkWidget *self,dictionary *dict); system_remove_confirmation_window *yon_system_remove_confirmation_window_new(); void on_delete_system_user(GtkWidget *, dictionary *dict);