From 78f628e0af2f2df562c40ac1424b432b6a969055 Mon Sep 17 00:00:00 2001 From: Tannin Date: Fri, 28 Nov 2014 11:06:28 +0100 Subject: cleanup und bugfixes after refactoring --- src/plugincontainer.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src/plugincontainer.cpp') diff --git a/src/plugincontainer.cpp b/src/plugincontainer.cpp index bd96828e..92073c12 100644 --- a/src/plugincontainer.cpp +++ b/src/plugincontainer.cpp @@ -1,11 +1,9 @@ #include "plugincontainer.h" #include "organizerproxy.h" #include "report.h" -#include #include #include #include -#include #include #include #include @@ -24,6 +22,7 @@ namespace bf = boost::fusion; PluginContainer::PluginContainer(OrganizerCore *organizer) : m_Organizer(organizer) + , m_UserInterface(nullptr) { } @@ -33,6 +32,17 @@ void PluginContainer::setUserInterface(IUserInterface *userInterface, QWidget *w for (IPluginProxy *proxy : bf::at_key(m_Plugins)) { proxy->setParentWidget(widget); } + + if (userInterface != nullptr) { + for (IPluginModPage *modPage : bf::at_key(m_Plugins)) { + userInterface->registerModPage(modPage); + } + + for (IPluginTool *tool : bf::at_key(m_Plugins)) { + userInterface->registerPluginTool(tool); + } + } + m_UserInterface = userInterface; } @@ -69,7 +79,7 @@ bool PluginContainer::registerPlugin(QObject *plugin, const QString &fileName) { { // generic treatment for all plugins IPlugin *pluginObj = qobject_cast(plugin); - if (pluginObj == NULL) { + if (pluginObj == nullptr) { qDebug("not an IPlugin"); return false; } @@ -90,7 +100,6 @@ bool PluginContainer::registerPlugin(QObject *plugin, const QString &fileName) IPluginModPage *modPage = qobject_cast(plugin); if (verifyPlugin(modPage)) { bf::at_key(m_Plugins).push_back(modPage); - registerModPage(modPage); return true; } } @@ -106,7 +115,6 @@ bool PluginContainer::registerPlugin(QObject *plugin, const QString &fileName) IPluginTool *tool = qobject_cast(plugin); if (verifyPlugin(tool)) { bf::at_key(m_Plugins).push_back(tool); - registerPluginTool(tool); return true; } } @@ -240,7 +248,7 @@ void PluginContainer::loadPlugins() loadCheck.open(QIODevice::WriteOnly); - QString pluginPath = QDir::fromNativeSeparators(ToQString(GameInfo::instance().getOrganizerDirectory())) + "/" + ToQString(AppConfig::pluginPath()); + QString pluginPath = qApp->applicationDirPath() + "/" + ToQString(AppConfig::pluginPath()); qDebug("looking for plugins in %s", QDir::toNativeSeparators(pluginPath).toUtf8().constData()); QDirIterator iter(pluginPath, QDir::Files | QDir::NoDotAndDotDot); -- cgit v1.3.1