-struct choosedata *choose_path_to_data(GtkTreePath *path) {
- GtkTreeIter it[1];
- gboolean itv = gtk_tree_model_get_iter(GTK_TREE_MODEL(choose_store),
- it, path);
- assert(itv);
- return choose_iter_to_data(it);
+char *choose_get_track(GtkTreeIter *iter) {
+ char *s = choose_get_string(iter, TRACK_COLUMN);
+ return *s ? s : 0; /* Placeholder -> NULL */
+}
+
+char *choose_get_sort(GtkTreeIter *iter) {
+ return choose_get_string(iter, SORT_COLUMN);
+}
+
+int choose_is_file(GtkTreeIter *iter) {
+ gboolean isfile;
+ gtk_tree_model_get(GTK_TREE_MODEL(choose_store), iter,
+ ISFILE_COLUMN, &isfile,
+ -1);
+ return isfile;
+}
+
+int choose_is_dir(GtkTreeIter *iter) {
+ gboolean isfile;
+ gtk_tree_model_get(GTK_TREE_MODEL(choose_store), iter,
+ ISFILE_COLUMN, &isfile,
+ -1);
+ if(isfile)
+ return FALSE;
+ return !choose_is_placeholder(iter);
+}
+
+int choose_is_placeholder(GtkTreeIter *iter) {
+ return choose_get_string(iter, TRACK_COLUMN)[0] == 0;