From 8f5aa4a04ab0015c5d0ab3e28bd947d65f205102 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 6 Feb 2024 10:15:58 +0600 Subject: [PATCH] Fixed filtering after updating --- source/ubl-settings-services.c | 64 ++++++++++++++++++---------------- source/ubl-settings-services.h | 2 +- 2 files changed, 35 insertions(+), 31 deletions(-) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index c12d032..3f4ae0e 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -15,13 +15,6 @@ void on_config_local_load(GtkWidget *self,main_window *widgets){ if (!main_config.update_thread_active){ main_config.update_thread_active=1; if (self){}; - g_signal_handlers_block_by_func(G_OBJECT(widgets->ServiceTypeCombo),on_type_changed,widgets); - g_signal_handlers_block_by_func(G_OBJECT(widgets->ServiceSourceCombo),on_source_changed,widgets); - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo),0); - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ServiceSourceCombo),0); - - g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ServiceTypeCombo),on_type_changed,widgets); - g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ServiceSourceCombo),on_source_changed,widgets); yon_load_proceed(YON_CONFIG_LOCAL); yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); g_thread_new("",(GThreadFunc)yon_interface_update,widgets); @@ -33,13 +26,6 @@ void on_config_global_load(GtkWidget *self,main_window *widgets){ if (!main_config.update_thread_active){ main_config.update_thread_active=1; if (self){}; - g_signal_handlers_block_by_func(G_OBJECT(widgets->ServiceTypeCombo),on_type_changed,widgets); - g_signal_handlers_block_by_func(G_OBJECT(widgets->ServiceSourceCombo),on_source_changed,widgets); - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo),0); - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ServiceSourceCombo),0); - - g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ServiceTypeCombo),on_type_changed,widgets); - g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ServiceSourceCombo),on_source_changed,widgets); yon_load_proceed(YON_CONFIG_GLOBAL); yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); g_thread_new("",(GThreadFunc)yon_interface_update,widgets); @@ -402,9 +388,35 @@ void on_update(GtkWidget *self,main_window *widgets){ } } -void *update_delay(void*){ +void *update_delay(main_window *widgets){ sleep(1); main_config.update_thread_active=0; + switch (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo))){ + case 0: gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),GTK_TREE_MODEL(widgets->liststore2)); + break; + case 1: gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(main_config.ServiceFilter)); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),main_config.ServiceFilter); + break; + case 2: gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(main_config.SocketFilter)); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),main_config.SocketFilter); + break; + case 3: gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(main_config.AutolaunchFilter)); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),main_config.AutolaunchFilter); + break; + case 4: gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(main_config.StoppedFilter)); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),main_config.StoppedFilter); + break; + case 5: gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(main_config.BlockedFilter)); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),main_config.BlockedFilter); + break; + } + textdomain(template_ui_LocaleName); + if (main_config.load_mode){ + yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + } else { + yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + } + textdomain(LocaleName); return NULL; } @@ -479,21 +491,13 @@ void *yon_interface_update(main_window *widgets){ } free(name_parsed); } - textdomain(template_ui_LocaleName); - if (main_config.load_mode){ - yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); - } else { - yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); - } - textdomain(LocaleName); - gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),GTK_TREE_MODEL(widgets->liststore2)); - g_thread_new("",(GThreadFunc)update_delay,NULL); - int type_active=0; - if (!(type_active=gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo)))){ - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo),type_active); - } if (!(type_active=gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo)))){ - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo),type_active); - } + g_thread_new("",(GThreadFunc)update_delay,widgets); + // int type_active=0; + // if (!(type_active=gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo)))){ + // gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo),type_active); + // } if (!(type_active=gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo)))){ + // gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo),type_active); + // } return NULL; } diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h index f0801d7..b40b4ff 100644 --- a/source/ubl-settings-services.h +++ b/source/ubl-settings-services.h @@ -233,7 +233,7 @@ void yon_main_window_complete(main_window *widgets); void on_log_show(); -void *update_delay(void*); +void *update_delay(main_window *widgets); gboolean on_service_filter(GtkTreeModel *model, GtkTreeIter *iter,void *data);