diff --git a/cockatrice/src/client/ui/picture_loader/picture_loader_local.cpp b/cockatrice/src/client/ui/picture_loader/picture_loader_local.cpp index 792dddf0c..cdedd19e8 100644 --- a/cockatrice/src/client/ui/picture_loader/picture_loader_local.cpp +++ b/cockatrice/src/client/ui/picture_loader/picture_loader_local.cpp @@ -83,25 +83,21 @@ QImage PictureLoaderLocal::tryLoadCardImageFromDisk(const QString &setName, QImageReader imgReader; imgReader.setDecideFormatFromContent(true); - // Most-to-least specific, these will fall through in order. - QStringList nameVariants; - // cardName_providerId + if (!providerId.isEmpty()) { - nameVariants << QString("%1-%2").arg(correctedCardName, providerId); - nameVariants << QString("%1_%2").arg(correctedCardName, providerId); + nameVariants << QString("%1-%2").arg(correctedCardName, providerId) + << QString("%1_%2").arg(correctedCardName, providerId); } - // cardName_setName_collectorNumber & setName-collectorNumber-cardName if (!setName.isEmpty() && !collectorNumber.isEmpty()) { nameVariants << QString("%1_%2_%3").arg(correctedCardName, setName, collectorNumber) << QString("%1-%2-%3").arg(setName, collectorNumber, correctedCardName); } - // cardName_setName if (!setName.isEmpty()) { nameVariants << QString("%1_%2").arg(correctedCardName, setName) << QString("%1-%2").arg(setName, correctedCardName); } - // cardName + nameVariants << correctedCardName; for (const QString &nameVariant : nameVariants) { @@ -109,12 +105,7 @@ QImage PictureLoaderLocal::tryLoadCardImageFromDisk(const QString &setName, continue; } - QStringList candidatePaths; - const auto matches = customFolderIndex.values(nameVariant); - - for (const QString &path : matches) { - candidatePaths << path; - } + QStringList candidatePaths = customFolderIndex.values(nameVariant); if (!setName.isEmpty()) { candidatePaths << picsPath + "/" + setName + "/" + nameVariant; @@ -122,14 +113,23 @@ QImage PictureLoaderLocal::tryLoadCardImageFromDisk(const QString &setName, } for (const QString &path : candidatePaths) { - for (const QString suffix : {"", ".full", ".xlhq"}) { - QString fullPath = path + suffix; - QFileInfo fi(fullPath); - if (!fi.exists() || !fi.isFile()) { + QFileInfo fileInfo(path); + QDir dir = fileInfo.dir(); + QString baseName = fileInfo.fileName(); + + if (!dir.exists()) { + continue; + } + + QStringList files = dir.entryList(QDir::Files); + for (const QString &file : files) { + if (!file.startsWith(baseName)) { continue; } + QString fullPath = dir.filePath(file); imgReader.setFileName(fullPath); + if (imgReader.read(&image)) { qCDebug(PictureLoaderLocalLog).nospace() << "[card: " << correctedCardName << " set: " << setName << "] Found picture at: " << fullPath;