X-Git-Url: https://vaikene.ee/gitweb/gitweb.cgi?p=evaf;a=blobdiff_plain;f=src%2Flibs%2FPlugins%2Fpluginmanager.cpp;fp=src%2Flibs%2FPlugins%2Fpluginmanager.cpp;h=5fea828802b894e6468da1037a9627f6bad3af90;hp=5d08dcb10ddff65bf4ed64d207371d139ec542d6;hb=de270ece1b764b19968e14420f538321f1c06b15;hpb=cf45ef016ce162419f74f9165c4267a184714956 diff --git a/src/libs/Plugins/pluginmanager.cpp b/src/libs/Plugins/pluginmanager.cpp index 5d08dcb..5fea828 100644 --- a/src/libs/Plugins/pluginmanager.cpp +++ b/src/libs/Plugins/pluginmanager.cpp @@ -35,7 +35,7 @@ namespace Plugins { namespace Internal { // Plugin manager interface implementation - static eVaf::Plugins::PluginManager * mPluginManager = 0; + static eVaf::Plugins::PluginManager * mPluginManager = nullptr; } // namespace eVaf::Plugins::Internal } // namespace eVaf::Plugins @@ -49,21 +49,20 @@ using namespace eVaf::Plugins; PluginManager::PluginManager() : QObject() + , d(new Internal::PluginManagerPrivate) { setObjectName(QString("%1-PluginManager").arg(VER_MODULE_NAME_STR)); Internal::mPluginManager = this; - d = new Internal::PluginManagerPrivate; - EVAF_INFO("%s created", qPrintable(objectName())); } PluginManager::~PluginManager() { - delete d; + d.reset(); - Internal::mPluginManager = 0; + Internal::mPluginManager = nullptr; EVAF_INFO("%s destroyed", qPrintable(objectName())); } @@ -188,7 +187,7 @@ bool PluginManagerPrivate::loadPlugins() if (!isPlugins && !isQtPlugins) { if (xml.name() == "plugins") { // Check for windows and linux only sections -#ifdef Q_OS_LINUX +#if defined(Q_OS_LINUX) || defined(Q_OS_MACOS) if (Common::isTrue(xml.attributes().value("windowsonly").toString())) continue; #endif @@ -201,7 +200,7 @@ bool PluginManagerPrivate::loadPlugins() else if (xml.name() == "qtplugins") { // Check for windows and linux only sections -#ifdef Q_OS_LINUX +#if defined(Q_OS_LINUX) || defined(Q_OS_MACOS) if (Common::isTrue(xml.attributes().value("windowsonly").toString())) continue; #endif @@ -217,7 +216,7 @@ bool PluginManagerPrivate::loadPlugins() // An individual plugin? else if (isPlugins && xml.name() == "plugin") { // Check for windows and linux only plugins -#ifdef Q_OS_LINUX +#if defined(Q_OS_LINUX) || defined(Q_OS_MACOS) if (Common::isTrue(xml.attributes().value("windowsonly").toString())) { EVAF_INFO("Plugin '%s' is for Windows only", qPrintable(xml.attributes().value("name").toString())); continue; @@ -252,7 +251,7 @@ bool PluginManagerPrivate::loadPlugins() // An individual Qt plugin? else if (isQtPlugins && xml.name() == "plugin") { // Check for windows and linux only plugins -#ifdef Q_OS_LINUX +#if defined(Q_OS_LINUX) || defined(Q_OS_MACOS) if (Common::isTrue(xml.attributes().value("windowsonly").toString())) { EVAF_INFO("Qt plugin '%s' is for Windows only", qPrintable(xml.attributes().value("name").toString())); continue; @@ -339,7 +338,7 @@ Module * PluginManagerPrivate::moduleByName(QString const & name) const if (mModules.at(i)->name() == name) return mModules.at(i).data(); } - return 0; + return nullptr; } @@ -348,17 +347,16 @@ Module * PluginManagerPrivate::moduleByName(QString const & name) const Module::Module(QString const & name) : QSharedData() , mName(name) - , mLoader(0) - , mRoot(0) - , mPlugin(0) - , mPluginFactory(0) + , mRoot(nullptr) + , mPlugin(nullptr) + , mPluginFactory(nullptr) {} Module::~Module() { if (mLoader) { mLoader->unload(); - delete mLoader; + mLoader.reset(); } } @@ -378,29 +376,28 @@ bool Module::load() QObject * root = p->instance(); // Does the module implement the iPluginFactory interface? - if ((mPluginFactory = qobject_cast(root)) == 0) { + if ((mPluginFactory = qobject_cast(root)) == nullptr) { // If not, then it has to implement the iPlugin interface - if (qobject_cast(root) == 0) { + if (qobject_cast(root) == nullptr) { EVAF_FATAL_ERROR("Module '%s' is not a valid eVaf module", qPrintable(mName)); return false; } } mRoot = root; - mLoader = p.take(); + mLoader.reset(p.take()); return true; } void Module::unload() { - mRoot = 0; - mPluginFactory = 0; - mPlugin = 0; + mRoot = nullptr; + mPluginFactory = nullptr; + mPlugin = nullptr; if (mLoader) { mLoader->unload(); - delete mLoader; - mLoader = 0; + mLoader.reset(); } } @@ -409,18 +406,18 @@ iPlugin * Module::create(QString const & name) // If the module is not loaded, load it now if (!mLoader) { if (!load()) - return 0; + return nullptr; } - iPlugin * i = 0; + iPlugin * i = nullptr; // Does the module implement the iPluginFactory interface? if (mPluginFactory) { // Use the iPluginFactory interface to create the requested interface i = qobject_cast(mPluginFactory->create(name)); - if (i == 0) { + if (i == nullptr) { EVAF_FATAL_ERROR("Module '%s' failed to create the iPlugin interface with name '%s'", qPrintable(mName), qPrintable(name)); - return 0; + return nullptr; } } @@ -429,13 +426,13 @@ iPlugin * Module::create(QString const & name) if (mPlugin) { EVAF_FATAL_ERROR("Module '%s' can implement only one iPlugin interface and one with the name '%s' is already created", qPrintable(mName), qPrintable(mPlugin->objectName())); - return 0; + return nullptr; } i = qobject_cast(mRoot); - if (i == 0) { + if (i == nullptr) { EVAF_FATAL_ERROR("Module '%s' does not implement the iPlugin interface", qPrintable(mName)); - return 0; + return nullptr; } mPlugin = i; @@ -452,7 +449,7 @@ Plugin::Plugin(Module * module, QString const & name, QString const & args) , mModule(module) , mName(name) , mArgs(args) - , mPlugin(0) + , mPlugin(nullptr) {} Plugin::~Plugin() @@ -464,12 +461,12 @@ bool Plugin::load() mPlugin = mModule->create(mName); if (mPlugin && !mPlugin->objectName().isEmpty()) mName = mPlugin->objectName(); - return mPlugin != 0; + return mPlugin != nullptr; } void Plugin::unload() { - mPlugin = 0; + mPlugin = nullptr; } bool Plugin::init()