summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTannin <sherb@gmx.net>2016-06-01 19:33:37 +0200
committerTannin <sherb@gmx.net>2016-06-01 19:33:37 +0200
commitb36c66689912ccd4545bb8c1b712bcf887853e41 (patch)
tree0876702f0d2488ab0658d1dfd68fb9cc7fad4941
parentbbab59f68112278bb23ff3bdc69737515b916667 (diff)
fixed: mandatory esms could get disabled without a way in the ui to re-enable them
-rw-r--r--src/pluginlist.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp
index 8d37ab82..bc6a908e 100644
--- a/src/pluginlist.cpp
+++ b/src/pluginlist.cpp
@@ -223,7 +223,8 @@ void PluginList::enableESP(const QString &name, bool enable)
std::map<QString, int>::iterator iter = m_ESPsByName.find(name.toLower());
if (iter != m_ESPsByName.end()) {
- m_ESPs[iter->second].m_Enabled = enable;
+ m_ESPs[iter->second].m_Enabled =
+ enable | m_ESPs[iter->second].m_ForceEnabled;
emit writePluginsList();
} else {
@@ -529,11 +530,11 @@ IPluginList::PluginStates PluginList::state(const QString &name) const
}
}
-void PluginList::setState(const QString &name, PluginStates state)
-{
+void PluginList::setState(const QString &name, PluginStates state) {
auto iter = m_ESPsByName.find(name.toLower());
if (iter != m_ESPsByName.end()) {
- m_ESPs[iter->second].m_Enabled = state == IPluginList::STATE_ACTIVE;
+ m_ESPs[iter->second].m_Enabled = (state == IPluginList::STATE_ACTIVE) ||
+ m_ESPs[iter->second].m_ForceEnabled;
} else {
qWarning("plugin %s not found", qPrintable(name));
}
@@ -810,7 +811,8 @@ bool PluginList::setData(const QModelIndex &modIndex, const QVariant &value, int
bool result = false;
if (role == Qt::CheckStateRole) {
- m_ESPs[modIndex.row()].m_Enabled = value.toInt() == Qt::Checked;
+ m_ESPs[modIndex.row()].m_Enabled =
+ value.toInt() == Qt::Checked || m_ESPs[modIndex.row()].m_ForceEnabled;
emit dataChanged(modIndex, modIndex);
refreshLoadOrder();