Only update gamepad mappings if they're newer than what we already have

This commit is contained in:
Cameron Gutman 2020-11-23 18:31:21 -06:00
commit 861ebc151a
3 changed files with 52 additions and 9 deletions

View file

@ -29,13 +29,31 @@ QByteArray Path::readDataFile(QString fileName)
return dataFile.readAll();
}
void Path::writeDataFile(QString fileName, QByteArray data)
void Path::writeCacheFile(QString fileName, QByteArray data)
{
QFile dataFile(QDir(s_CacheDir).absoluteFilePath(fileName));
QDir cacheDir(s_CacheDir);
// Create the cache path if it does not exist
if (!cacheDir.exists()) {
cacheDir.mkpath(".");
}
QFile dataFile(cacheDir.absoluteFilePath(fileName));
dataFile.open(QIODevice::WriteOnly);
dataFile.write(data);
}
void Path::deleteCacheFile(QString fileName)
{
QFile dataFile(QDir(s_CacheDir).absoluteFilePath(fileName));
dataFile.remove();
}
QFileInfo Path::getCacheFileInfo(QString fileName)
{
return QFileInfo(QDir(s_CacheDir), fileName);
}
QString Path::getDataFilePath(QString fileName)
{
QString candidatePath;
@ -79,7 +97,10 @@ void Path::initialize(bool portable)
if (portable) {
s_LogDir = QDir::currentPath();
s_BoxArtCacheDir = QDir::currentPath() + "/boxart";
s_CacheDir = QDir::currentPath();
// In order for the If-Modified-Since logic to work in MappingFetcher,
// the cache directory must be different than the current directory.
s_CacheDir = QDir::currentPath() + "/cache";
}
else {
#ifdef Q_OS_DARWIN