summaryrefslogtreecommitdiff
path: root/src/profile.cpp
diff options
context:
space:
mode:
authorChris Bessent <lost.dragonist@gmail.com>2021-01-16 17:59:24 -0700
committerChris Bessent <lost.dragonist@gmail.com>2021-01-16 18:02:16 -0700
commit3dbee687260a02fa523071ec3f351652cb386144 (patch)
treed2fb84c22e147c5b49649616cec257f397921fb5 /src/profile.cpp
parent2b1f01cba2a50a17db69187a1b4cbecf5a0fb65d (diff)
Make modlist.txt less case sensitive
This should make it so case doesn't matter when it comes to the folder names of mods and what's in modlist.txt. If a mismatch in case is detected, modlist.txt will be flagged dirty to fix it at some point. This handles the foillowing cases: * modlist.txt was modified outside MO * the mod folder was renamed outside MO
Diffstat (limited to 'src/profile.cpp')
-rw-r--r--src/profile.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/profile.cpp b/src/profile.cpp
index 3cc1a2a3..5a71cacb 100644
--- a/src/profile.cpp
+++ b/src/profile.cpp
@@ -410,9 +410,18 @@ void Profile::refreshModStatus()
} else {
namesRead.insert(lookupName);
}
- unsigned int modIndex = ModInfo::getIndex(lookupName);
+ unsigned int modIndex = ModInfo::findMod(
+ [lookupName](ModInfo::Ptr info) {
+ return info->name().compare(lookupName, Qt::CaseInsensitive) == 0;
+ }
+ );
if (modIndex != UINT_MAX) {
ModInfo::Ptr info = ModInfo::getByIndex(modIndex);
+ if (info->name().compare(lookupName) != 0) {
+ // name in modlist.txt doesn't match case of actual folder
+ // need to rewrite the modlist to fix this
+ modStatusModified = true;
+ }
if ((modIndex < m_ModStatus.size())
&& (info->getFixedPriority() == INT_MIN)) {
m_ModStatus[modIndex].m_Enabled = enabled;