mirror of
https://github.com/game-stop/veejay.git
synced 2025-12-22 07:40:00 +01:00
Reloaded : Filter effect list by keyword + fix add disabled fx
* add text entry control right to fx types select box. * add filtered and sorted models to effect trees * on user input the filter effect trees is interactivly filtred (no case sensitive) * fix fx disabled: add test over GDK_KEY_KEY
This commit is contained in:
@@ -3402,23 +3402,30 @@ void on_filter_effects_activate(GtkWidget *widget, gpointer user_data)
|
||||
{
|
||||
}
|
||||
|
||||
void on_filter_effects_changed( GtkWidget *w, EffectListData *user_data)
|
||||
void on_filter_effects_changed( GtkWidget *w, effectlist_data *user_data)
|
||||
{
|
||||
gchar* fx_txt = get_text("filter_effects");
|
||||
int filterlen = strlen(fx_txt);
|
||||
if(user_data != NULL) {
|
||||
gchar* fx_txt = get_text("filter_effects");
|
||||
int filterlen = strlen(fx_txt);
|
||||
|
||||
if(filterlen) {
|
||||
vj_msg(VEEJAY_MSG_INFO, "filtering effects '%s'", fx_txt);
|
||||
user_data->filter_string = vj_calloc(sizeof(gchar)*filterlen); // FIXME mem LEAK
|
||||
strcpy(user_data->filter_string, fx_txt);
|
||||
gtk_tree_model_filter_refilter (user_data->effect_list_stores[0].effect_list_filtered);
|
||||
gtk_tree_model_filter_refilter (user_data->effect_list_stores[1].effect_list_filtered);
|
||||
gtk_tree_model_filter_refilter (user_data->effect_list_stores[2].effect_list_filtered);
|
||||
|
||||
free(user_data->filter_string);
|
||||
user_data->filter_string = NULL;
|
||||
} else {
|
||||
vj_msg(VEEJAY_MSG_INFO, "");
|
||||
if(filterlen) {
|
||||
vj_msg(VEEJAY_MSG_INFO, "filtering effects '%s'", fx_txt);
|
||||
user_data->filter_string = g_new0(gchar, filterlen+1);
|
||||
if(user_data->filter_string != NULL) {
|
||||
strcpy(user_data->filter_string, fx_txt);
|
||||
gtk_tree_model_filter_refilter (user_data->stores[0].filtered);
|
||||
gtk_tree_model_filter_refilter (user_data->stores[1].filtered);
|
||||
gtk_tree_model_filter_refilter (user_data->stores[2].filtered);
|
||||
g_free(user_data->filter_string);
|
||||
}
|
||||
user_data->filter_string = NULL;
|
||||
} else {
|
||||
vj_msg(VEEJAY_MSG_DEBUG, ""); // FIXME why debug ? check vj-msg.h and "void vj_msg( " from vj-api.c:2340
|
||||
// filter with "user_data->filter_string = NULL" to remove the filter
|
||||
gtk_tree_model_filter_refilter (user_data->stores[0].filtered);
|
||||
gtk_tree_model_filter_refilter (user_data->stores[1].filtered);
|
||||
gtk_tree_model_filter_refilter (user_data->stores[2].filtered);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user