summaryrefslogtreecommitdiff
path: root/src/plugincontainer.cpp
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2015-02-25 18:38:01 +0100
committerTannin <devnull@localhost>2015-02-25 18:38:01 +0100
commit6479f972dccaabb3afadb570583a4269e8a785e4 (patch)
treeb36ec1afc65e123b893215a2529bb20c25041adb /src/plugincontainer.cpp
parente01ab940b0d76bfec8d7037ee56938780a74dc5b (diff)
tons of code cleanup and minor fixes to harden the code (mostly suggestions from static code analysis)
Diffstat (limited to 'src/plugincontainer.cpp')
-rw-r--r--src/plugincontainer.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/plugincontainer.cpp b/src/plugincontainer.cpp
index bbcd3b6a..1b06d1a6 100644
--- a/src/plugincontainer.cpp
+++ b/src/plugincontainer.cpp
@@ -138,7 +138,8 @@ bool PluginContainer::registerPlugin(QObject *plugin, const QString &fileName)
IPluginProxy *proxy = qobject_cast<IPluginProxy*>(plugin);
if (verifyPlugin(proxy)) {
bf::at_key<IPluginProxy>(m_Plugins).push_back(proxy);
- QStringList pluginNames = proxy->pluginList(QCoreApplication::applicationDirPath() + "/" + ToQString(AppConfig::pluginPath()));
+ QStringList pluginNames = proxy->pluginList(
+ QCoreApplication::applicationDirPath() + "/" + ToQString(AppConfig::pluginPath()));
foreach (const QString &pluginName, pluginNames) {
try {
QObject *proxiedPlugin = proxy->instantiate(pluginName);
@@ -146,11 +147,13 @@ bool PluginContainer::registerPlugin(QObject *plugin, const QString &fileName)
if (registerPlugin(proxiedPlugin, pluginName)) {
qDebug("loaded plugin \"%s\"", qPrintable(pluginName));
} else {
- qWarning("plugin \"%s\" failed to load", qPrintable(pluginName));
+ qWarning("plugin \"%s\" failed to load. If this plugin is for an older version of MO "
+ "you have to update it or delete it if no update exists.",
+ qPrintable(pluginName));
}
}
} catch (const std::exception &e) {
- reportError(QObject::tr("failed to init plugin %1: %2").arg(pluginName).arg(e.what()));
+ reportError(QObject::tr("failed to initialize plugin %1: %2").arg(pluginName).arg(e.what()));
}
}
return true;
@@ -199,7 +202,7 @@ void PluginContainer::unloadPlugins()
while (!m_PluginLoaders.empty()) {
QPluginLoader *loader = m_PluginLoaders.back();
m_PluginLoaders.pop_back();
- if (!loader->unload()) {
+ if ((loader != nullptr) && !loader->unload()) {
qDebug("failed to unload %s: %s", qPrintable(loader->fileName()), qPrintable(loader->errorString()));
}
delete loader;