Esempio n. 1
0
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;
	}
}