diff options
| -rw-r--r-- | src/modlist.cpp | 11 | ||||
| -rw-r--r-- | src/modlist.h | 4 |
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;
|
