Compare commits

..

1 Commits

Author SHA1 Message Date
janrupf
8369dbdcc0 GH-2584, GH-1663 Limit icon size to 512x512 2019-06-22 01:29:25 +02:00
3 changed files with 19 additions and 22 deletions

View File

@@ -254,17 +254,7 @@ void IconList::installIcons(const QStringList &iconFiles)
{
for (QString file : iconFiles)
{
QFileInfo fileinfo(file);
if (!fileinfo.isReadable() || !fileinfo.isFile())
continue;
QString target = FS::PathCombine(m_dir.dirName(), fileinfo.fileName());
QString suffix = fileinfo.suffix();
if (suffix != "jpeg" && suffix != "png" && suffix != "jpg" && suffix != "ico" && suffix != "svg" && suffix != "gif")
continue;
if (!QFile::copy(file, target))
continue;
installIcon(file, QFileInfo(file).fileName());
}
}
@@ -272,11 +262,24 @@ void IconList::installIcon(const QString &file, const QString &name)
{
QFileInfo fileinfo(file);
if(!fileinfo.isReadable() || !fileinfo.isFile())
{
qWarning() << "Failed to install icon" << fileinfo.absoluteFilePath();
return;
}
QString target = FS::PathCombine(m_dir.dirName(), name);
QFile::copy(file, target);
QPixmap icon(fileinfo.absoluteFilePath());
if(icon.isNull())
{
qWarning() << "Icon " << fileinfo.absoluteFilePath() << "is null";
return;
}
auto currentSize = icon.size();
auto targetedWidth = qMin(currentSize.width(), 512);
auto targetedHeight = qMin(currentSize.height(), 512);
icon.scaled(targetedWidth, targetedHeight).save(target);
}
bool IconList::iconFileExists(const QString &key) const

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,18 +805,12 @@ 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, instanceDirName);
if(!QDir().rename(path, destination))
QString destination = FS::PathCombine(m_instDir, instID);
if(!dir.rename(path, destination))
{
qWarning() << "Failed to move" << path << "to" << destination;
return false;