void FileSettings::constrainCacheToMaxSize(int size) { const QString dataPath = dataFilePath(); QDir dataDir(dataPath); // get size of cache QFileInfoList dataFileInfoList = dataDir.entryInfoList(QDir::Files | QDir::NoDotDot, QDir::Time); int cacheSize = QFileInfo(dataPath).size(); for (int i = 0; i < dataFileInfoList.size(); ++i) cacheSize += dataFileInfoList.at(i).size(); while (cacheSize > size) // remove oldest file settings from cache { if (dataFileInfoList.isEmpty()) break; const QString fileName = dataFileInfoList.last().fileName(); int fileSize = dataFileInfoList.takeLast().size(); if (dataDir.remove(fileName)) cacheSize -= fileSize; } }