diff options
| author | Tannin <devnull@localhost> | 2014-11-28 11:06:28 +0100 |
|---|---|---|
| committer | Tannin <devnull@localhost> | 2014-11-28 11:06:28 +0100 |
| commit | 78f628e0af2f2df562c40ac1424b432b6a969055 (patch) | |
| tree | 294c461fc858aa9d13fa65c37fd3517db4554f2a /src/plugincontainer.cpp | |
| parent | 45a46778fb9c7195cb09fbba4a2c502dca6bca13 (diff) | |
cleanup und bugfixes after refactoring
Diffstat (limited to 'src/plugincontainer.cpp')
| -rw-r--r-- | src/plugincontainer.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
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 <gameinfo.h>
#include <ipluginproxy.h>
#include <idownloadmanager.h>
#include <appconfig.h>
-#include <gameinfo.h>
#include <QAction>
#include <QToolButton>
#include <QCoreApplication>
@@ -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<IPluginProxy>(m_Plugins)) {
proxy->setParentWidget(widget);
}
+
+ if (userInterface != nullptr) {
+ for (IPluginModPage *modPage : bf::at_key<IPluginModPage>(m_Plugins)) {
+ userInterface->registerModPage(modPage);
+ }
+
+ for (IPluginTool *tool : bf::at_key<IPluginTool>(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<IPlugin*>(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<IPluginModPage*>(plugin);
if (verifyPlugin(modPage)) {
bf::at_key<IPluginModPage>(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<IPluginTool*>(plugin);
if (verifyPlugin(tool)) {
bf::at_key<IPluginTool>(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);
|
