static void xv_doc_build_index(GtkTreeModel* model, GtkTreeIter* parent, PopplerIndexIter* index_iter) { do { GtkTreeIter tree_iter; PopplerIndexIter *child; PopplerAction *action; gboolean expand; gchar *markup; action = poppler_index_iter_get_action(index_iter); expand = poppler_index_iter_is_open(index_iter); if(!action) { continue; } markup = g_markup_escape_text(action->any.title, -1); gtk_tree_store_append(GTK_TREE_STORE(model), &tree_iter, parent); gtk_tree_store_set(GTK_TREE_STORE(model), &tree_iter, 0, markup, 1, action, -1); g_object_weak_ref(G_OBJECT(model), (GWeakNotify) poppler_action_free, action); g_free(markup); child = poppler_index_iter_get_child(index_iter); if(child) { xv_doc_build_index(model, &tree_iter, child); } poppler_index_iter_free(child); } while(poppler_index_iter_next(index_iter)); }
static VALUE rg_open_p(VALUE self) { CHECK_IITER_IS_VALID(self); return CBOOL2RVAL(poppler_index_iter_is_open(RVAL2POPPLERINDEXITER(self))); }