I mentioned before in https://bugs.launchpad.net/gtimelog/+bug/1185041/comments/2 that I'm not comfortable with this.

I changed my mind.  I'm fine with introducing a configuration object of some kind, but I would like there to be a single object with attributes for things like filenames and virtual_midnight, and then a second object (subclassing the first one) for all the GUI options, plus code to load .ini files.

The first one would not be actually used outside tests.  Heck, let it be an abstract class that just defines an interface that Reports() and TimeLog() expect.