From 026b97835e6f3a4ab0f0e760318c1c36257feb60 Mon Sep 17 00:00:00 2001 From: Tannin Date: Mon, 9 Mar 2015 12:17:57 +0100 Subject: - when activating/deactivating a mod the contained esps are only activated/deactivated if no other active mod provides the same plugins --- src/organizercore.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/organizercore.cpp') diff --git a/src/organizercore.cpp b/src/organizercore.cpp index 6a5e08d0..c2eaeae7 100644 --- a/src/organizercore.cpp +++ b/src/organizercore.cpp @@ -1138,13 +1138,16 @@ void OrganizerCore::updateModActiveState(int index, bool active) { ModInfo::Ptr modInfo = ModInfo::getByIndex(index); QDir dir(modInfo->absolutePath()); - foreach (const QString &esm, dir.entryList(QStringList("*.esm"), QDir::Files)) { + foreach (const QString &esm, dir.entryList(QStringList() << "*.esm", QDir::Files)) { m_PluginList.enableESP(esm, active); } int enabled = 0; - QStringList esps = dir.entryList(QStringList("*.esp"), QDir::Files); - foreach (const QString &esp, esps) { - if (active != m_PluginList.isEnabled(esp)) { + QStringList esps = dir.entryList(QStringList() << "*.esp", QDir::Files); + for (const QString &esp : esps) { + const FileEntry::Ptr file = m_DirectoryStructure->findFile(ToWString(esp)); + + if (active != m_PluginList.isEnabled(esp) + && file->getAlternatives().empty()) { m_PluginList.enableESP(esp, active); ++enabled; } @@ -1392,10 +1395,8 @@ void OrganizerCore::syncOverwrite() modInfo->testValid(); refreshDirectoryStructure(); } - } - std::vector OrganizerCore::activeProblems() const { std::vector problems; -- cgit v1.3.1