diff options
| author | Jeremy Rimpo <jrim@rimpo.org> | 2017-11-30 17:34:28 -0600 |
|---|---|---|
| committer | Jeremy Rimpo <jrim@rimpo.org> | 2017-11-30 17:34:28 -0600 |
| commit | 797a007eab2695c231a00240225d77b3a9928992 (patch) | |
| tree | 850ead2730c8ab50babc865a505a513d8fba5f46 /src | |
| parent | d7bc542b3d1a96a546d48850e61d3ecdc953c4cc (diff) | |
Add unmanaged mods and fix plugin identification
Diffstat (limited to 'src')
| -rw-r--r-- | src/modinfoforeign.cpp | 6 | ||||
| -rw-r--r-- | src/pluginlist.cpp | 9 |
2 files changed, 13 insertions, 2 deletions
diff --git a/src/modinfoforeign.cpp b/src/modinfoforeign.cpp index 4ba16bb1..6ad8b6d8 100644 --- a/src/modinfoforeign.cpp +++ b/src/modinfoforeign.cpp @@ -30,12 +30,16 @@ std::vector<ModInfo::EFlag> ModInfoForeign::getFlags() const std::vector<ModInfo::EFlag> result = ModInfoWithConflictInfo::getFlags(); result.push_back(FLAG_FOREIGN); + if (m_PluginSelected) { + result.push_back(ModInfo::FLAG_PLUGIN_SELECTED); + } + return result; } int ModInfoForeign::getHighlight() const { - return 0; + return m_PluginSelected ? ModInfo::HIGHLIGHT_PLUGIN : ModInfo::HIGHLIGHT_NONE; } QString ModInfoForeign::getDescription() const diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index a215b9d3..add34b3f 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -118,8 +118,15 @@ void PluginList::highlightPlugins(const QItemSelection &selected, const MOShared if (!selectedMod.isNull()) { QDir dir(selectedMod->absolutePath()); QStringList plugins = dir.entryList(QStringList() << "*.esp" << "*.esm" << "*.esl"); + MOShared::FilesOrigin origin = directoryEntry.getOriginByName(selectedMod->internalName().toStdWString()); if (plugins.size() > 0) { - for (auto plugin : plugins) {
+ for (auto plugin : plugins) { + MOShared::FileEntry::Ptr file = directoryEntry.findFile(plugin.toStdWString());
+ if (file->getOrigin() != origin.getID()) {
+ const std::vector<int> alternatives = file->getAlternatives();
+ if (std::find(alternatives.begin(), alternatives.end(), origin.getID()) == alternatives.end())
+ continue;
+ }
std::map<QString, int>::iterator iter = m_ESPsByName.find(plugin.toLower()); if (iter != m_ESPsByName.end()) { m_ESPs[iter->second].m_ModSelected = true; |
