(Using GTK 4.8 on Debian)
I created a file filter for specific image suffixes:
GtkFileFilter *file_filter = gtk_file_filter_new ();
gtk_file_filter_add_suffix (file_filter, "png");
gtk_file_filter_add_suffix (file_filter, "jpg");
gtk_file_filter_add_suffix (file_filter, "gif");
I then associated the file filter with a file chooser.
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER(file_chooser), file_filter );
How do I properly finalize the file filter?
g_object_unref(file_filter)
?I ask because the second option, g_object_unref(file_filter)
, gives me a runtime error g_object_unref: assertion 'G_IS_OBJECT (object)' failed
.
This can be done like this --
//1.Default filter (all files)
GtkFileFilter *filter = gtk_file_filter_new ();
gtk_file_filter_set_name (filter, "All Files");
gtk_file_filter_add_pattern (filter, "*");
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
// Make this filter the default
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter);
g_object_unref (filter);
//2.filter start with D**
filter = gtk_file_filter_new ();
gtk_file_filter_set_name (filter, "Starts with D");
gtk_file_filter_add_pattern (filter, "D*");
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
g_object_unref (filter);
//3.filter jpeg & png
filter = gtk_file_filter_new ();
gtk_file_filter_set_name (filter, "PNG and JPEG");
gtk_file_filter_add_mime_type (filter, "image/jpeg");
gtk_file_filter_add_mime_type (filter, "image/png");
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
g_object_unref (filter);
NOTE: According to the current Gtk4 documentation; GtkFileChooser - Deprecated since: 4.10,,Use GtkFileDialog.