Added filtering to file chooser window

pull/41/head
parent d3a620c927
commit 0d033a6f85

@ -86,6 +86,18 @@ void yon_storage_config_update(storage_config_window *window){
// filechooser window section
void on_file_chooser_entry_changed(GtkEntry *self, file_chooser_window *window){
const char *text = gtk_entry_get_text(self);
GtkFileFilter *filter = gtk_file_chooser_get_filter(GTK_FILE_CHOOSER(window->FileChooserWidget));
gtk_file_chooser_remove_filter(GTK_FILE_CHOOSER(window->FileChooserWidget),filter);
filter = gtk_file_filter_new();
char *pattern = !yon_char_is_empty(text)?yon_char_unite("*",text,"*.pkg.tar*[^.sig]",NULL) : "*.pkg.tar*[^.sig]";
gtk_file_filter_add_pattern(filter,pattern);
gtk_file_filter_set_name(filter,"*.pkg.tar*");
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(window->FileChooserWidget),filter);
if (!yon_char_is_empty(text)) free(pattern);
}
file_chooser_window *yon_file_chooser_window_new(){
file_chooser_window *window = malloc(sizeof(file_chooser_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_filechooser);
@ -97,6 +109,7 @@ file_chooser_window *yon_file_chooser_window_new(){
window->NameEntry = yon_gtk_builder_get_widget(builder,"NameEntry");
window->FileChooserWidget = yon_gtk_builder_get_widget(builder,"FileChooserWidget");
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->NameEntry),"changed",G_CALLBACK(on_file_chooser_entry_changed),window);
return window;
}

Loading…
Cancel
Save