Compare commits

...

2 Commits

Author SHA1 Message Date
janrupf
91bf81b621 NOISSUE Avoid name collisions even with long names 2019-06-22 00:00:48 +02:00
janrupf
9db802b468 GH-2242 Limit folder names to 180 chars 2019-06-22 00:00:48 +02:00
2 changed files with 10 additions and 4 deletions

View File

@@ -321,7 +321,7 @@ QString DirNameFromString(QString string, QString inDir)
}
else
{
dirName = baseName + QString::number(num);;
dirName = baseName + QString::number(num);
}
// If it's over 9000

View File

@@ -805,12 +805,18 @@ QString InstanceList::getStagedInstancePath()
bool InstanceList::commitStagedInstance(const QString& path, const QString& instanceName, const QString& groupName)
{
QDir dir;
QString instID = FS::DirNameFromString(instanceName, m_instDir);
QString instanceDirName = instID;
if(instanceDirName.length() > 180)
{
instanceDirName.truncate(176);
instanceDirName += instID.at(instID.length() - 4); // In case the last 4 chars were changed
// to prevent double folder names
}
{
WatchLock lock(m_watcher, m_instDir);
QString destination = FS::PathCombine(m_instDir, instID);
if(!dir.rename(path, destination))
QString destination = FS::PathCombine(m_instDir, instanceDirName);
if(!QDir().rename(path, destination))
{
qWarning() << "Failed to move" << path << "to" << destination;
return false;