summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modlist.cpp11
-rw-r--r--src/modlist.h4
2 files changed, 9 insertions, 6 deletions
diff --git a/src/modlist.cpp b/src/modlist.cpp
index c772f5bd..cbd9f30c 100644
--- a/src/modlist.cpp
+++ b/src/modlist.cpp
@@ -822,7 +822,7 @@ void ModList::modInfoChanged(ModInfo::Ptr info)
if (info->name() == m_ChangeInfo.name) {
IModList::ModStates newState = state(info->name());
if (m_ChangeInfo.state != newState) {
- m_ModStateChanged(info->name(), newState);
+ m_ModStateChanged({ {info->name(), newState} });
}
int row = ModInfo::getIndex(info->name());
@@ -1001,17 +1001,20 @@ bool ModList::setPriority(const QString &name, int newPriority)
}
}
-bool ModList::onModStateChanged(const std::function<void (const QString &, IModList::ModStates)> &func)
+bool ModList::onModStateChanged(const std::function<void(const std::map<QString, ModStates>&)>& func)
{
auto conn = m_ModStateChanged.connect(func);
return conn.connected();
}
-void ModList::notifyModStateChanged(QList<unsigned int> modIndices) const {
+void ModList::notifyModStateChanged(QList<unsigned int> modIndices) const
+{
+ std::map<QString, ModStates> mods;
for (auto modIndex : modIndices) {
ModInfo::Ptr modInfo = ModInfo::getByIndex(modIndex);
- m_ModStateChanged(modInfo->name(), state(modIndex));
+ mods.emplace(modInfo->name(), state(modIndex));
}
+ m_ModStateChanged(mods);
}
bool ModList::onModMoved(const std::function<void (const QString &, int, int)> &func)
diff --git a/src/modlist.h b/src/modlist.h
index a054677b..5312db34 100644
--- a/src/modlist.h
+++ b/src/modlist.h
@@ -70,7 +70,7 @@ public:
COL_LASTCOLUMN = COL_NOTES,
};
- typedef boost::signals2::signal<void (const QString &, ModStates)> SignalModStateChanged;
+ typedef boost::signals2::signal<void (const std::map<QString, ModStates>&)> SignalModStateChanged;
typedef boost::signals2::signal<void (const QString &, int, int)> SignalModMoved;
public:
@@ -156,7 +156,7 @@ public:
virtual bool setPriority(const QString &name, int newPriority) override;
/// \copydoc MOBase::IModList::onModStateChanged
- virtual bool onModStateChanged(const std::function<void (const QString &, ModStates)> &func) override;
+ virtual bool onModStateChanged(const std::function<void(const std::map<QString, ModStates>&)>& func) override;
/// \copydoc MOBase::IModList::onModMoved
virtual bool onModMoved(const std::function<void (const QString &, int, int)> &func) override;