diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 5123a58..7377295 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -341,23 +341,28 @@ void on_system_autostart_clicked(GtkCellRenderer *self, char *path, main_window gboolean yon_filter(GtkTreeModel* model, GtkTreeIter *iter, main_window *widgets){ gboolean autostart,autostop,masked,type,loaded,inactive; - gtk_tree_model_get(model,iter,0,&autostart,1,&autostop,2,&masked,7,&type,8,&loaded,9,&inactive,-1); + char *name; + gtk_tree_model_get(model,iter,0,&autostart,1,&autostop,2,&masked,5,&name,7,&type,8,&loaded,9,&inactive,-1); GtkWidget *combo=NULL; GtkWidget *loaded_check=NULL; GtkWidget *active_check=NULL; + GtkWidget *name_entry = NULL; int page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook)); if (page == 0){ combo = widgets->SystemFiltersCombo; loaded_check = widgets->SystemUnloadedShowCheck; active_check = widgets->SystemInactiveShowCheck; + name_entry = widgets->SystemSearchEntry; } else if (page == 1){ combo = widgets->UserFiltersCombo; loaded_check = widgets->UserUnloadedShowCheck; active_check = widgets->UserInactiveShowCheck; + name_entry = widgets->UserSearchEntry; } - int type_filter=1; - int active_filter=0; - int loaded_filter=0; + int type_filter = 1; + int active_filter = 0; + int loaded_filter = 0; + int name_filter = 1; int filter_active = gtk_combo_box_get_active(GTK_COMBO_BOX(combo)); if (filter_active>0){ @@ -383,7 +388,10 @@ gboolean yon_filter(GtkTreeModel* model, GtkTreeIter *iter, main_window *widgets loaded_filter=1; } - if (type_filter&&(active_filter||inactive)&&(loaded_filter||loaded)){ + char *name_text = (char*)gtk_entry_get_text(GTK_ENTRY(name_entry)); + if (name&&!yon_char_is_empty(name_text)&&!strstr(name,name_text)) + name_filter=0; + if (type_filter&&(active_filter||inactive)&&(loaded_filter||loaded)&&name_filter){ return 1; } return 0;