Add a filter for the main filelist
This commit is contained in:
parent
6f0667b8c5
commit
00a58cc74d
@ -308,7 +308,6 @@ static void ecdb_custom_filelist_cb_clicked(Ewl_Widget *w, void *ev,
|
||||
{
|
||||
if ((child->dir) && (!strcmp(child->dst, file)))
|
||||
{
|
||||
printf("Setting directory\n");
|
||||
ecdb_custom_filelist_directory_set(fl, child);
|
||||
FREE(file);
|
||||
return;
|
||||
|
@ -7,6 +7,7 @@ static void _burn_image_cb(Ewl_Widget *w, void *ev, void *data);
|
||||
static void _copy_disc_cb(Ewl_Widget *w, void *ev, void *data);
|
||||
static void _audio_disc_cb(Ewl_Widget *w, void *ev, void *data);
|
||||
static void _hidden_files_cb(Ewl_Widget *w, void *ev, void *data);
|
||||
static void _filter_change_cb(Ewl_Widget *w, void *ev, void *data);
|
||||
|
||||
static Ewl_Widget *_page_start(void);
|
||||
static Ewl_Widget *_page_data(void);
|
||||
@ -46,6 +47,7 @@ ecdb_create_main_gui(void)
|
||||
{
|
||||
Ewl_Widget *main_win, *vbox, *filelist, *note, *fn;
|
||||
Ewl_Widget *cm, *menu;
|
||||
Ewl_Widget *tb, *filter, *l, *s;
|
||||
|
||||
main_win = ewl_window_new();
|
||||
ewl_window_name_set(EWL_WINDOW(main_win), "ECDB");
|
||||
@ -69,6 +71,27 @@ ecdb_create_main_gui(void)
|
||||
ewl_object_maximum_h_set(EWL_OBJECT(filelist), 300);
|
||||
ewl_widget_show(filelist);
|
||||
|
||||
tb = ewl_toolbar_new();
|
||||
ewl_container_child_append(EWL_CONTAINER(vbox), tb);
|
||||
ewl_object_alignment_set(EWL_OBJECT(tb), EWL_FLAG_ALIGN_CENTER);
|
||||
ewl_widget_show(tb);
|
||||
|
||||
l = ewl_label_new();
|
||||
ewl_label_text_set(EWL_LABEL(l), "Filelist filter:");
|
||||
ewl_container_child_append(EWL_CONTAINER(tb), l);
|
||||
ewl_widget_show(l);
|
||||
|
||||
filter = ewl_entry_new();
|
||||
ewl_container_child_append(EWL_CONTAINER(tb), filter);
|
||||
ewl_callback_append(filter, EWL_CALLBACK_VALUE_CHANGED,
|
||||
_filter_change_cb, filelist);
|
||||
ewl_object_maximum_w_set(EWL_OBJECT(filter), 300);
|
||||
ewl_widget_show(filter);
|
||||
|
||||
s = ewl_vseparator_new();
|
||||
ewl_container_child_append(EWL_CONTAINER(tb), s);
|
||||
ewl_widget_show(s);
|
||||
|
||||
cm = ewl_context_menu_new();
|
||||
ewl_context_menu_attach(EWL_CONTEXT_MENU(cm), filelist);
|
||||
|
||||
@ -206,3 +229,28 @@ _hidden_files_cb(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__, void *data)
|
||||
hf = ewl_filelist_show_dot_files_get(filelist);
|
||||
ewl_filelist_show_dot_files_set(filelist, !hf);
|
||||
}
|
||||
|
||||
static void
|
||||
_filter_change_cb(Ewl_Widget *w, void *ev, void *data)
|
||||
{
|
||||
char *filter;
|
||||
Ewl_Filelist_Filter *f;
|
||||
|
||||
/* Fix this is ewl at some point */
|
||||
f = ewl_filelist_filter_get(EWL_FILELIST(data));
|
||||
if (f)
|
||||
{
|
||||
FREE(f->extension);
|
||||
FREE(f);
|
||||
}
|
||||
|
||||
filter = ewl_text_text_get(EWL_TEXT(w));
|
||||
f = calloc(1, sizeof(Ewl_Filelist_Filter));
|
||||
if (!f)
|
||||
return;
|
||||
|
||||
f->mime_list = NULL;
|
||||
f->extension = filter;
|
||||
ewl_filelist_filter_set(EWL_FILELIST(data), f);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user