fix: Handle icons with a dot in their names
E.g. some FTB modpacks. Also fixes an issue with the name viewing on the Icon Chooser dialog when the name was too big.
This commit is contained in:
parent
8dd68580a6
commit
84b962f256
@ -36,7 +36,7 @@ IconList::IconList(const QStringList &builtinPaths, QString path, QObject *paren
|
|||||||
auto file_info_list = instance_icons.entryInfoList(QDir::Files, QDir::Name);
|
auto file_info_list = instance_icons.entryInfoList(QDir::Files, QDir::Name);
|
||||||
for (auto file_info : file_info_list)
|
for (auto file_info : file_info_list)
|
||||||
{
|
{
|
||||||
builtinNames.insert(file_info.baseName());
|
builtinNames.insert(file_info.completeBaseName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(auto & builtinName : builtinNames)
|
for(auto & builtinName : builtinNames)
|
||||||
@ -51,6 +51,9 @@ IconList::IconList(const QStringList &builtinPaths, QString path, QObject *paren
|
|||||||
connect(m_watcher.get(), SIGNAL(fileChanged(QString)), SLOT(fileChanged(QString)));
|
connect(m_watcher.get(), SIGNAL(fileChanged(QString)), SLOT(fileChanged(QString)));
|
||||||
|
|
||||||
directoryChanged(path);
|
directoryChanged(path);
|
||||||
|
|
||||||
|
// Forces the UI to update, so that lengthy icon names are shown properly from the start
|
||||||
|
emit iconUpdated({});
|
||||||
}
|
}
|
||||||
|
|
||||||
void IconList::directoryChanged(const QString &path)
|
void IconList::directoryChanged(const QString &path)
|
||||||
@ -94,7 +97,13 @@ void IconList::directoryChanged(const QString &path)
|
|||||||
{
|
{
|
||||||
qDebug() << "Removing " << remove;
|
qDebug() << "Removing " << remove;
|
||||||
QFileInfo rmfile(remove);
|
QFileInfo rmfile(remove);
|
||||||
QString key = rmfile.baseName();
|
QString key = rmfile.completeBaseName();
|
||||||
|
|
||||||
|
QString suffix = rmfile.suffix();
|
||||||
|
// The icon doesnt have a suffix, but it can have other .s in the name, so we account for those as well
|
||||||
|
if (suffix != "jpeg" && suffix != "png" && suffix != "jpg" && suffix != "ico" && suffix != "svg" && suffix != "gif")
|
||||||
|
key = rmfile.fileName();
|
||||||
|
|
||||||
int idx = getIconIndex(key);
|
int idx = getIconIndex(key);
|
||||||
if (idx == -1)
|
if (idx == -1)
|
||||||
continue;
|
continue;
|
||||||
@ -117,8 +126,15 @@ void IconList::directoryChanged(const QString &path)
|
|||||||
for (auto add : to_add)
|
for (auto add : to_add)
|
||||||
{
|
{
|
||||||
qDebug() << "Adding " << add;
|
qDebug() << "Adding " << add;
|
||||||
|
|
||||||
QFileInfo addfile(add);
|
QFileInfo addfile(add);
|
||||||
QString key = addfile.baseName();
|
QString key = addfile.completeBaseName();
|
||||||
|
|
||||||
|
QString suffix = addfile.suffix();
|
||||||
|
// The icon doesnt have a suffix, but it can have other .s in the name, so we account for those as well
|
||||||
|
if (suffix != "jpeg" && suffix != "png" && suffix != "jpg" && suffix != "ico" && suffix != "svg" && suffix != "gif")
|
||||||
|
key = addfile.fileName();
|
||||||
|
|
||||||
if (addIcon(key, QString(), addfile.filePath(), IconType::FileBased))
|
if (addIcon(key, QString(), addfile.filePath(), IconType::FileBased))
|
||||||
{
|
{
|
||||||
m_watcher->addPath(add);
|
m_watcher->addPath(add);
|
||||||
@ -133,7 +149,7 @@ void IconList::fileChanged(const QString &path)
|
|||||||
QFileInfo checkfile(path);
|
QFileInfo checkfile(path);
|
||||||
if (!checkfile.exists())
|
if (!checkfile.exists())
|
||||||
return;
|
return;
|
||||||
QString key = checkfile.baseName();
|
QString key = checkfile.completeBaseName();
|
||||||
int idx = getIconIndex(key);
|
int idx = getIconIndex(key);
|
||||||
if (idx == -1)
|
if (idx == -1)
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user