QImage findBestIcon(const QStringList &names, QSize *impsize, const QSize &size, QSet<QString> *alreadySearchedThemes)
{
if (alreadySearchedThemes) {
if (alreadySearchedThemes->contains(name))
return QImage();
alreadySearchedThemes->insert(name);
}
Q_FOREACH(const QString &name, names) {
if (QGuiApplication::layoutDirection() == Qt::RightToLeft)
{
QImage image = lookupIcon(name + "-rtl", impsize, size);
if (!image.isNull())
return image;
}
QImage image = lookupIcon(name, impsize, size);
if (!image.isNull())
return image;
}
Q_FOREACH(IconThemePointer theme, parents) {
QImage image = theme->findBestIcon(names, impsize, size, alreadySearchedThemes);
if (!image.isNull())
return image;
}
return QImage();
}