diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0) -set(PIM_VERSION "5.6.42") +set(PIM_VERSION "5.6.43") project(pimcommon VERSION ${PIM_VERSION}) diff --git a/src/pimcommon/genericplugins/genericpluginmanager.h b/src/pimcommon/genericplugins/genericpluginmanager.h --- a/src/pimcommon/genericplugins/genericpluginmanager.h +++ b/src/pimcommon/genericplugins/genericpluginmanager.h @@ -55,8 +55,6 @@ void setPluginName(const QString &pluginName); QString pluginName() const; - static GenericPluginManager *self(); - QVector pluginsList() const; QVector pluginsDataList() const; diff --git a/src/pimcommon/genericplugins/genericpluginmanager.cpp b/src/pimcommon/genericplugins/genericpluginmanager.cpp --- a/src/pimcommon/genericplugins/genericpluginmanager.cpp +++ b/src/pimcommon/genericplugins/genericpluginmanager.cpp @@ -92,9 +92,8 @@ if (serviceTypeName.isEmpty() || pluginName.isEmpty()) { return false; } - static const QString s_serviceTypeName = serviceTypeName; - const QVector plugins = KPluginLoader::findPlugins(pluginName, [](const KPluginMetaData &md) { - return md.serviceTypes().contains(s_serviceTypeName); + const QVector plugins = KPluginLoader::findPlugins(pluginName, [this](const KPluginMetaData &md) { + return md.serviceTypes().contains(serviceTypeName); }); const QPair pair = PimCommon::PluginUtil::loadPluginSetting(configGroupName(), configPrefixSettingKey()); @@ -207,12 +206,6 @@ return d->pluginName; } -GenericPluginManager *GenericPluginManager::self() -{ - static GenericPluginManager s_self; - return &s_self; -} - QVector GenericPluginManager::pluginsList() const { return d->pluginsList(); diff --git a/src/pimcommonakonadi/genericplugins/plugininterface.cpp b/src/pimcommonakonadi/genericplugins/plugininterface.cpp --- a/src/pimcommonakonadi/genericplugins/plugininterface.cpp +++ b/src/pimcommonakonadi/genericplugins/plugininterface.cpp @@ -34,20 +34,23 @@ PluginInterfacePrivate() : mParentWidget(nullptr) , mActionCollection(nullptr) + , mGenericPluginManager(nullptr) { } QString mPluginName; QString mServiceTypeName; QWidget *mParentWidget; KActionCollection *mActionCollection; QVector mListGenericInterface; + GenericPluginManager *mGenericPluginManager; }; PluginInterface::PluginInterface(QObject *parent) : QObject(parent) , d(new PimCommon::PluginInterfacePrivate) { + d->mGenericPluginManager = new GenericPluginManager(this); } PluginInterface::~PluginInterface() @@ -62,9 +65,9 @@ void PluginInterface::initializePlugins() { - PimCommon::GenericPluginManager::self()->setPluginName(d->mPluginName); - PimCommon::GenericPluginManager::self()->setServiceTypeName(d->mServiceTypeName); - if (!PimCommon::GenericPluginManager::self()->initializePlugins()) { + d->mGenericPluginManager->setPluginName(d->mPluginName); + d->mGenericPluginManager->setServiceTypeName(d->mServiceTypeName); + if (!d->mGenericPluginManager->initializePlugins()) { qCDebug(PIMCOMMONAKONADI_LOG) << " Impossible to initialize plugins"; } } @@ -85,7 +88,7 @@ qCWarning(PIMCOMMONAKONADI_LOG) << "Missing action collection"; return; } - Q_FOREACH (PimCommon::GenericPlugin *plugin, PimCommon::GenericPluginManager::self()->pluginsList()) { + Q_FOREACH (PimCommon::GenericPlugin *plugin, d->mGenericPluginManager->pluginsList()) { if (plugin->isEnabled()) { PimCommon::GenericPluginInterface *interface = static_cast(plugin->createInterface(d->mActionCollection, this)); interface->setParentWidget(d->mParentWidget); @@ -202,20 +205,20 @@ QVector PluginInterface::pluginsDataList() const { - return GenericPluginManager::self()->pluginsDataList(); + return d->mGenericPluginManager->pluginsDataList(); } QString PluginInterface::configGroupName() const { - return GenericPluginManager::self()->configGroupName(); + return d->mGenericPluginManager->configGroupName(); } QString PluginInterface::configPrefixSettingKey() const { - return GenericPluginManager::self()->configPrefixSettingKey(); + return d->mGenericPluginManager->configPrefixSettingKey(); } PimCommon::GenericPlugin *PluginInterface::pluginFromIdentifier(const QString &id) { - return GenericPluginManager::self()->pluginFromIdentifier(id); + return d->mGenericPluginManager->pluginFromIdentifier(id); }