diff options
Diffstat (limited to 'src/profile.cpp')
| -rw-r--r-- | src/profile.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/profile.cpp b/src/profile.cpp index 50e6c3b2..2bbdea66 100644 --- a/src/profile.cpp +++ b/src/profile.cpp @@ -415,10 +415,13 @@ void Profile::setModEnabled(unsigned int index, bool enabled) throw MyException(tr("invalid index %1").arg(index)); } - if (m_ModStatus[index].m_Overwrite) { - // overwrite is always enabled - return; + ModInfo::Ptr modInfo = ModInfo::getByIndex(index); + // we could quit in the following case, this shouldn't be a change anyway, + // but at least this allows the situation to be fixed in case of an error + if (modInfo->alwaysEnabled()) { + enabled = true; } + if (enabled != m_ModStatus[index].m_Enabled) { m_ModStatus[index].m_Enabled = enabled; emit modStatusChanged(index); @@ -740,13 +743,11 @@ QString Profile::getLoadOrderFileName() const return QDir::cleanPath(m_Directory.absoluteFilePath("loadorder.txt")); } - QString Profile::getLockedOrderFileName() const { return QDir::cleanPath(m_Directory.absoluteFilePath("lockedorder.txt")); } - QString Profile::getArchivesFileName() const { return QDir::cleanPath(m_Directory.absoluteFilePath("archives.txt")); @@ -757,7 +758,6 @@ QString Profile::getDeleterFileName() const return QDir::cleanPath(m_Directory.absoluteFilePath("hide_plugins.txt")); } - QString Profile::getIniFileName() const { std::wstring primaryIniFile = *(GameInfo::instance().getIniFileNames().begin()); @@ -769,7 +769,6 @@ QString Profile::getProfileTweaks() const return QDir::cleanPath(m_Directory.absoluteFilePath(ToQString(AppConfig::profileTweakIni()))); } - QString Profile::getPath() const { return QDir::cleanPath(m_Directory.absolutePath()); |
