You are not passing a parent to getInstance() so you are not installing an event filter.
This all looks really complicated, why all the mutexes?
Just create the IdleTimer object in main() and install it as an event filter on the Qt application object.
Btw, there is also http://inqlude.org/libraries/kidletime.html if you want a tested solution.
Cheers,
_
Bookmarks