This is the first version which does anything even remotely useful. It loads all the files from the RPM database into a tree shaped hash table. I can then pass it a directory name and it will tell me all the files under that directory. It also knows what packages own each file. As my girlfriend noted, "You wrote 'ls'!"
Notice how much memory is being used up by this program so far. 29Megs! That's because I haven't given thought to memory optimizations yet. I wrote this at 3am, so it might have some bad logic in there as well.
This version is just a static test. While I can compile in a directory to display, I can't graphically choose a directory. In later versions I probably won't be using this widget to display the names either...