/* * Copyright 2015 (c) Anna Schumaker. */ #include #include #include #include #include #include static void __collection_add(GtkFileChooser *chooser) { gchar *filename = gtk_file_chooser_get_filename(chooser); if (playlist_new(PL_LIBRARY, filename)) gui_playlist_add_library(library_lookup(filename)); gui_idle_enable(); g_free(filename); } void __collection_choose(GtkButton *button, gpointer data) { GtkFileFilter *filter; GtkWidget *dialog; gint res; filter = gtk_file_filter_new(); gtk_file_filter_add_mime_type(filter, "inode/directory"); dialog = gtk_file_chooser_dialog_new("Chooser a Path", GTK_WINDOW(gui_builder_widget("o_window")), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(dialog), filter); res = gtk_dialog_run(GTK_DIALOG(dialog)); if (res == GTK_RESPONSE_ACCEPT) __collection_add(GTK_FILE_CHOOSER(dialog)); gtk_widget_destroy(dialog); g_object_unref(filter); } bool __gui_collection_init_idle() { struct db_entry *library, *next; db_for_each(library, next, library_db_get()) gui_playlist_add_library(LIBRARY(library)); return true; } void gui_collection_init() { idle_schedule(IDLE_SYNC, __gui_collection_init_idle, NULL); }