Experiment with QTreeView and models. Messy code, I know.