From 4240f10260cbffbff52bf2d549100f4690a642b5 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Wed, 2 Dec 2020 21:09:42 +0100 Subject: Fix callbacks for pluginlist, modlist and download manager. --- src/pluginlist.h | 51 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 21 deletions(-) (limited to 'src/pluginlist.h') diff --git a/src/pluginlist.h b/src/pluginlist.h index 0b49b86f..5f0cef3d 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -43,6 +43,8 @@ namespace MOBase { class IPluginGame; } #include #include +class OrganizerCore; + template class ChangeBracket { @@ -79,7 +81,7 @@ private: /** * @brief model representing the plugins (.esp/.esm) in the current virtual data folder **/ -class PluginList : public QAbstractItemModel, public MOBase::IPluginList +class PluginList : public QAbstractItemModel { Q_OBJECT friend class ChangeBracket; @@ -94,9 +96,13 @@ public: COL_LASTCOLUMN = COL_MODINDEX }; - typedef boost::signals2::signal SignalRefreshed; - typedef boost::signals2::signal SignalPluginMoved; - typedef boost::signals2::signal&)> SignalPluginStateChanged; + using PluginStates = MOBase::IPluginList::PluginStates; + + friend class PluginListProxy; + + using SignalRefreshed = boost::signals2::signal; + using SignalPluginMoved = boost::signals2::signal; + using SignalPluginStateChanged = boost::signals2::signal&)>; public: @@ -105,7 +111,7 @@ public: * * @param parent parent object **/ - PluginList(QObject *parent = nullptr); + PluginList(OrganizerCore &organizer); ~PluginList(); @@ -221,21 +227,22 @@ public: public: - virtual QStringList pluginNames() const override; - virtual PluginStates state(const QString &name) const override; - virtual void setState(const QString &name, PluginStates state) override; - virtual int priority(const QString &name) const override; - virtual int loadOrder(const QString &name) const override; - virtual bool setPriority(const QString& name, int newPriority) override; - virtual bool onRefreshed(const std::function &callback); - virtual bool isMaster(const QString &name) const override; - virtual bool isLight(const QString &name) const; - virtual bool isLightFlagged(const QString &name) const; - virtual QStringList masters(const QString &name) const override; - virtual QString origin(const QString &name) const override; - virtual void setLoadOrder(const QStringList &pluginList) override; - virtual bool onPluginMoved(const std::function &func) override; - virtual bool onPluginStateChanged(const std::function&)> &func) override; + QStringList pluginNames() const; + PluginStates state(const QString &name) const; + void setState(const QString &name, PluginStates state); + int priority(const QString &name) const; + int loadOrder(const QString &name) const; + bool setPriority(const QString& name, int newPriority); + bool isMaster(const QString &name) const; + bool isLight(const QString &name) const; + bool isLightFlagged(const QString &name) const; + QStringList masters(const QString &name) const; + QString origin(const QString &name) const; + void setLoadOrder(const QStringList& pluginList); + + boost::signals2::connection onRefreshed(const std::function& callback); + boost::signals2::connection onPluginMoved(const std::function& func); + boost::signals2::connection onPluginStateChanged(const std::function&)> &func); public: // implementation of the QAbstractTableModel interface @@ -368,10 +375,12 @@ private: * @param state New state of the plugin. * */ - void pluginStatesChanged(QStringList const& pluginNames, IPluginList::PluginStates state) const; + void pluginStatesChanged(QStringList const& pluginNames, PluginStates state) const; private: + OrganizerCore& m_Organizer; + std::vector m_ESPs; mutable std::map m_LastSaveHash; -- cgit v1.3.1