use QTemporaryDir for the cached images, reduce calls to QFile::exists and cache files internally