Fixed unclicked check buttons on saving window

pull/7/head
parent 1bd63a9d6f
commit 9afaffa2da

@ -217,4 +217,7 @@
</object> </object>
</child> </child>
</object> </object>
<object class="GtkTreeModelFilter" id="listfilter1">
<property name="child-model">liststore1</property>
</object>
</interface> </interface>

@ -70,13 +70,23 @@ void on_about(GtkWidget *self, char *version_application){
//functions //functions
void on_save_window_parameter_switched(GtkCellRendererToggle *self, gchar *path, template_saving_window *window){ void on_save_window_parameter_switched(GtkCellRendererToggle *self, gchar *path, template_saving_window *window){
GtkTreeIter iter; GtkTreeIter iter,itar;
if (path) if (path){
if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->list),&iter,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; gboolean is_active;
gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&is_active,-1); 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); gtk_list_store_set(window->list,&iter,0,!is_active,-1);
} }
}
}
}
int once_active=0; int once_active=0;
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&iter); 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)){ for (;valid;valid=gtk_tree_model_iter_next(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); if (!once_active) gtk_widget_set_sensitive(window->SaveButton,0);
else gtk_widget_set_sensitive(window->SaveButton,1); 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->ToggleCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ToggleCell"));
window->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1")); window->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
window->type=type; 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); 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"); 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)); gtk_window_set_icon_name(GTK_WINDOW(window->Window),yon_char_append("com.ublinux.",template_app_information.app_tech_name));

Loading…
Cancel
Save