Postponed all work on the icon view for now, and been working on the volume manager and the trash implementation for the last 2 days. As initially planned, the ThunarFile class is now an abstract base class and the ThunarFolder class will be turned into an interface or an abstract base class as well. In addition, the ThunarFile class won’t export the associated ThunarVfsInfo (which is now only associated with ThunarLocalFile instances). This way we don’t limit ourselves to file implementations, which are more or less based on stat(2) directly. For example, there will be virtual files, like the trash can itself, and forward files like the trashed files. You could even imagine another class that handles locations other than file:// and trash:// using GnomeVFS, to provide support for network file systems and such. But that is an optional gimmick and not important right now.

While working on the trash classes, I was testing the basics when I realized that the far-from-being-complete implementation of the ThunarTrashFile and the not yet adjusted ThunarFolder class lead to an interesting effect:

I was pretty confused to see this working on first sight. My bet was that it would crash right away. But of course, it had to work that way. Anyway, not the expected behaviour from a user’s point of view, but it looks just too weird to not post the screenshot here.