From 9afaffa2da2c0a63adede69e075192bb301bfd73 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 11 Jan 2024 17:07:19 +0600 Subject: [PATCH] Fixed unclicked check buttons on saving window --- libublsettingsui-gtk3-saving.glade | 3 +++ source/libublsettingsui-gtk3.c | 25 ++++++++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/libublsettingsui-gtk3-saving.glade b/libublsettingsui-gtk3-saving.glade index d47e755..50ff9d6 100644 --- a/libublsettingsui-gtk3-saving.glade +++ b/libublsettingsui-gtk3-saving.glade @@ -217,4 +217,7 @@ + + liststore1 + diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index a2c8c69..e1e3f8d 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -70,12 +70,22 @@ void on_about(GtkWidget *self, char *version_application){ //functions void on_save_window_parameter_switched(GtkCellRendererToggle *self, gchar *path, template_saving_window *window){ - GtkTreeIter iter; - if (path) - if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->list),&iter,path)){ - gboolean is_active; - gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&is_active,-1); - gtk_list_store_set(window->list,&iter,0,!is_active,-1); + GtkTreeIter iter,itar; + if (path){ + if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->filteredModel),&itar,path)){ + char *seek_name; + gtk_tree_model_get(window->filteredModel,&itar,1,&seek_name,-1); + int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&iter); + for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&iter)){ + char *name; + gtk_tree_model_get(window->list,&iter,1,&name,-1); + if (!strcmp(seek_name,name)){ + gboolean is_active; + gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&is_active,-1); + gtk_list_store_set(window->list,&iter,0,!is_active,-1); + } + } + } } int once_active=0; int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&iter); @@ -89,6 +99,7 @@ void on_save_window_parameter_switched(GtkCellRendererToggle *self, gchar *path, } if (!once_active) gtk_widget_set_sensitive(window->SaveButton,0); else gtk_widget_set_sensitive(window->SaveButton,1); + gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(window->filteredModel)); } @@ -233,7 +244,7 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ window->ToggleCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ToggleCell")); window->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1")); window->type=type; - window->filteredModel = gtk_tree_model_filter_new(GTK_TREE_MODEL(window->list),NULL); + window->filteredModel = GTK_TREE_MODEL(gtk_builder_get_object(builder,"listfilter1")); gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(window->filteredModel),5); yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"SaveWindow"); gtk_window_set_icon_name(GTK_WINDOW(window->Window),yon_char_append("com.ublinux.",template_app_information.app_tech_name));