#include <Common/Globals>
#include <Common/Util>
#include <Common/iLogger>
-#include <Common/iEnv>
#include <Common/iApp>
#include <QtCore>
bool PluginManagerPrivate::loadPlugins()
{
// Get the name of the application's XML file
- QString xmlFileName = Common::iEnv::instance()->etcDir() + Common::iApp::instance()->xmlFileName();
+ QString xmlFileName = Common::iApp::instance()->etcDir() + Common::iApp::instance()->xmlFileName();
// Open the XML file
QFile xmlFile(xmlFileName);
// Initialize eVaf plugins
i = 0;
while (i < mPlugins.size()) {
- if (mPlugins.at(i)->init()) {
+ if (!mPlugins.at(i)->init()) {
EVAF_ERROR("Failed to initialize module '%s'", qPrintable(mPlugins.at(i)->name()));
mPlugins.removeAt(i);
}
QString fileName;
#ifdef Q_OS_LINUX
- fileName = QString("%1libq%2.so").arg(Common::iEnv::instance()->qtPluginsDir()).arg(name);
+ fileName = QString("%1libq%2.so").arg(Common::iApp::instance()->qtPluginsDir()).arg(name);
# ifndef QT_NO_DEBUG
- QString t = QString("%1libq%2.so.debug").arg(Common::iEnv::instance()->qtPluginsDir()).arg(name);
+ QString t = QString("%1libq%2.so.debug").arg(Common::iApp::instance()->qtPluginsDir()).arg(name);
if (QFile::exists(t))
fileName = t;
# endif
#endif
#ifdef Q_OS_WIN32
- fileName = QString("%2q%2%3").arg(Common::iEnv::instance()->qtPluginsDir()).arg(name).arg("4.dll");
+ fileName = QString("%2q%2%3").arg(Common::iApp::instance()->qtPluginsDir()).arg(name).arg("4.dll");
# ifndef QT_NO_DEBUG
- QString t = QString(%1q%2%3).arg(Common::iEnv::instance()->qtPluginsDir()).arg(name).arg(d4.dll);
+ QString t = QString("%1q%2%3").arg(Common::iApp::instance()->qtPluginsDir()).arg(name).arg("d4.dll");
if (!QFile::exists(t))
fileName = t;
# endif
Module::~Module()
{
- if (mPluginFactory)
- delete mPluginFactory;
- if (mLoader)
+ if (mLoader) {
+ mLoader->unload();
delete mLoader;
+ }
}
bool Module::load()
{
// The real file name with path
- QString fileName = Common::iEnv::instance()->binDir() + expandPluginName(mName);
+ QString fileName = Common::iApp::instance()->binDir() + expandPluginName(mName);
// Try to load the module
QScopedPointer<QPluginLoader> p(new QPluginLoader(fileName));
if ((mPluginFactory = qobject_cast<iPluginFactory *>(root)) == 0) {
// If not, then it has to implement the iPlugin interface
- if ((mPlugin = qobject_cast<iPlugin *>(root)) == 0) {
+ if (qobject_cast<iPlugin *>(root) == 0) {
EVAF_FATAL_ERROR("Module '%s' is not a valid eVaf module", qPrintable(mName));
return false;
}
void Module::unload()
{
mRoot = 0;
-
- if (mPluginFactory) {
- delete mPluginFactory;
- mPluginFactory = 0;
- }
+ mPluginFactory = 0;
mPlugin = 0;
if (mLoader) {
+ mLoader->unload();
delete mLoader;
mLoader = 0;
}
Plugin::~Plugin()
{
- if (mPlugin)
- delete mPlugin;
}
bool Plugin::load()
void Plugin::unload()
{
- if (mPlugin) {
- delete mPlugin;
- mPlugin = 0;
- }
+ mPlugin = 0;
}
bool Plugin::init()