summaryrefslogtreecommitdiff
path: root/src/pluginlist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/pluginlist.cpp')
-rw-r--r--src/pluginlist.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp
index 79df08ae..4f363900 100644
--- a/src/pluginlist.cpp
+++ b/src/pluginlist.cpp
@@ -216,12 +216,12 @@ void PluginList::refresh(const QString &profileName, const DirectoryEntry &baseD
}
-void PluginList::enableESP(const QString &name)
+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 = true;
+ m_ESPs[iter->second].m_Enabled = enable;
startSaveTime();
} else {
reportError(tr("esp not found: %1").arg(name));
@@ -677,6 +677,14 @@ bool PluginList::onRefreshed(const std::function<void ()> &callback)
return conn.connected();
}
+
+bool PluginList::onPluginMoved(const std::function<void (const QString &, int, int)> &func)
+{
+ auto conn = m_PluginMoved.connect(func);
+ return conn.connected();
+}
+
+
void PluginList::updateIndices()
{
m_ESPsByName.clear();
@@ -947,6 +955,7 @@ void PluginList::setPluginPriority(int row, int &newPriority)
m_ESPs.at(row).m_Priority = newPriorityTemp;
emit dataChanged(index(row, 0), index(row, columnCount()));
+ m_PluginMoved(m_ESPs[row].m_Name, oldPriority, newPriorityTemp);
} catch (const std::out_of_range&) {
reportError(tr("failed to restore load order for %1").arg(m_ESPs[row].m_Name));
}