diff options
| author | Tannin <devnull@localhost> | 2015-01-04 10:13:12 +0100 |
|---|---|---|
| committer | Tannin <devnull@localhost> | 2015-01-04 10:13:12 +0100 |
| commit | bd8267993d1ed0292200f3052e3c30d4fc9c84f7 (patch) | |
| tree | 6314f0ba928e81349417a8de495746b1b18cee11 /src/plugincontainer.h | |
| parent | f5c56efeb3f362378459fdc1ddbf1fc71a2351f8 (diff) | |
- fixes after merge
Diffstat (limited to 'src/plugincontainer.h')
| -rw-r--r-- | src/plugincontainer.h | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/src/plugincontainer.h b/src/plugincontainer.h index 213b4154..3f4a98d7 100644 --- a/src/plugincontainer.h +++ b/src/plugincontainer.h @@ -15,6 +15,7 @@ #include <QFile>
#ifndef Q_MOC_RUN
#include <boost/fusion/container.hpp>
+#include <boost/fusion/include/at_key.hpp>
#endif // Q_MOC_RUN
#include <vector>
@@ -25,6 +26,21 @@ class PluginContainer : public QObject, public MOBase::IPluginDiagnose Q_OBJECT
Q_INTERFACES(MOBase::IPluginDiagnose)
+private:
+
+ typedef boost::fusion::map<
+ boost::fusion::pair<MOBase::IPlugin, std::vector<MOBase::IPlugin*>>,
+ boost::fusion::pair<MOBase::IPluginDiagnose, std::vector<MOBase::IPluginDiagnose*>>,
+ boost::fusion::pair<MOBase::IPluginGame, std::vector<MOBase::IPluginGame*>>,
+ boost::fusion::pair<MOBase::IPluginInstaller, std::vector<MOBase::IPluginInstaller*>>,
+ boost::fusion::pair<MOBase::IPluginModPage, std::vector<MOBase::IPluginModPage*>>,
+ boost::fusion::pair<MOBase::IPluginPreview, std::vector<MOBase::IPluginPreview*>>,
+ boost::fusion::pair<MOBase::IPluginTool, std::vector<MOBase::IPluginTool*>>,
+ boost::fusion::pair<MOBase::IPluginProxy, std::vector<MOBase::IPluginProxy*>>
+ > PluginMap;
+
+ static const unsigned int PROBLEM_PLUGINSNOTLOADED = 1;
+
public:
PluginContainer(OrganizerCore *organizer);
@@ -37,8 +53,9 @@ public: MOBase::IPluginGame *managedGame(const QString &name) const;
template <typename T>
- std::vector<T*> plugins() const {
- return boost::fusion::at_key<T>(m_Plugins);
+ const std::vector<T*> &plugins() const {
+ typename boost::fusion::result_of::at_key<const PluginMap, T>::type temp = boost::fusion::at_key<T>(m_Plugins);
+ return temp;
}
const PreviewGenerator &previewGenerator() const;
@@ -68,21 +85,6 @@ private: private:
- typedef boost::fusion::map<
- boost::fusion::pair<MOBase::IPlugin, std::vector<MOBase::IPlugin*>>,
- boost::fusion::pair<MOBase::IPluginDiagnose, std::vector<MOBase::IPluginDiagnose*>>,
- boost::fusion::pair<MOBase::IPluginGame, std::vector<MOBase::IPluginGame*>>,
- boost::fusion::pair<MOBase::IPluginInstaller, std::vector<MOBase::IPluginInstaller*>>,
- boost::fusion::pair<MOBase::IPluginModPage, std::vector<MOBase::IPluginModPage*>>,
- boost::fusion::pair<MOBase::IPluginPreview, std::vector<MOBase::IPluginPreview*>>,
- boost::fusion::pair<MOBase::IPluginTool, std::vector<MOBase::IPluginTool*>>,
- boost::fusion::pair<MOBase::IPluginProxy, std::vector<MOBase::IPluginProxy*>>
- > PluginMap;
-
- static const unsigned int PROBLEM_PLUGINSNOTLOADED = 1;
-
-private:
-
OrganizerCore *m_Organizer;
IUserInterface *m_UserInterface;
|
