GH-347 update timestamps of added mods

This commit is contained in:
Petr Mrázek 2016-11-17 04:09:24 +01:00
parent b09fad9cbf
commit 9b41986634
3 changed files with 25 additions and 1 deletions

View File

@ -60,6 +60,25 @@ QByteArray read(const QString &filename)
return data;
}
bool updateTimestamp(const QString& filename)
{
QFile file(filename);
if (!file.exists())
{
return false;
}
if (!file.open(QIODevice::ReadWrite))
{
return false;
}
const quint64 size = file.size();
file.seek(size);
file.write( QByteArray(1, '0') );
file.resize(size);
return true;
}
bool ensureFilePathExists(QString filenamepath)
{
QFileInfo a(filenamepath);

View File

@ -28,6 +28,11 @@ MULTIMC_LOGIC_EXPORT void write(const QString &filename, const QByteArray &data)
*/
MULTIMC_LOGIC_EXPORT QByteArray read(const QString &filename);
/**
* Update the last changed timestamp of an existing file
*/
MULTIMC_LOGIC_EXPORT bool updateTimestamp(const QString & filename);
/**
* Creates all the folders in a path for the specified path
* last segment of the path is treated as a file name and is ignored!

View File

@ -148,13 +148,13 @@ bool ModList::installMod(const QString &filename)
QString newpath = FS::PathCombine(m_dir.path(), fileinfo.fileName());
if (!QFile::copy(fileinfo.filePath(), newpath))
return false;
FS::updateTimestamp(newpath);
m.repath(newpath);
update();
return true;
}
else if (type == Mod::MOD_FOLDER)
{
QString from = fileinfo.filePath();
QString to = FS::PathCombine(m_dir.path(), fileinfo.fileName());
if (!FS::copy(from, to)())