diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2022-11-23 13:54:50 +0100 |
---|---|---|
committer | Sefa Eyeoglu <contact@scrumplex.net> | 2022-12-06 20:51:18 +0100 |
commit | e08d97825d827d9e232e8487dbdddefc4f9764e3 (patch) | |
tree | baa8c795b6a67272dce87a3e0d007ca0955e23e4 /launcher | |
parent | d61323aa6d34d3414bbee75c40c5957327874625 (diff) | |
download | PrismLauncher-e08d97825d827d9e232e8487dbdddefc4f9764e3.tar.gz PrismLauncher-e08d97825d827d9e232e8487dbdddefc4f9764e3.tar.bz2 PrismLauncher-e08d97825d827d9e232e8487dbdddefc4f9764e3.zip |
feat: implement lax filename match in BlockedModsDialog
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
Diffstat (limited to 'launcher')
-rw-r--r-- | launcher/ui/dialogs/BlockedModsDialog.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/launcher/ui/dialogs/BlockedModsDialog.cpp b/launcher/ui/dialogs/BlockedModsDialog.cpp index 60561049..ffcf6e5f 100644 --- a/launcher/ui/dialogs/BlockedModsDialog.cpp +++ b/launcher/ui/dialogs/BlockedModsDialog.cpp @@ -236,14 +236,24 @@ void BlockedModsDialog::checkMatchHash(QString hash, QString path) /// @return boolean: did the path match the name of a blocked mod? bool BlockedModsDialog::checkValidPath(QString path) { - QFileInfo file = QFileInfo(path); - QString filename = file.fileName(); + const QFileInfo file = QFileInfo(path); + const QString filename = file.fileName(); + QString laxFilename(filename); + laxFilename.replace('+', ' '); + + auto compare = [](QString fsfilename, QString metadataFilename) { + return metadataFilename.compare(fsfilename, Qt::CaseInsensitive) == 0; + }; for (auto& mod : m_mods) { - if (mod.name.compare(filename, Qt::CaseInsensitive) == 0) { + if (compare(filename, mod.name)) { qDebug() << "[Blocked Mods Dialog] Name match found:" << mod.name << "| From path:" << path; return true; } + if (compare(laxFilename, mod.name)) { + qDebug() << "[Blocked Mods Dialog] Lax name match found:" << mod.name << "| From path:" << path; + return true; + } } return false; |