diff --git a/src/kmailtransport/plugins/transportpluginmanager.cpp b/src/kmailtransport/plugins/transportpluginmanager.cpp index 18b8d6ec4421de213edd4758b75782fa68861ce9..ef6acf6dca05dc61641d4aa71d45bc72bcdd2492 100644 --- a/src/kmailtransport/plugins/transportpluginmanager.cpp +++ b/src/kmailtransport/plugins/transportpluginmanager.cpp @@ -18,6 +18,11 @@ */ #include "transportpluginmanager.h" +#include +#include +#include + +#include using namespace MailTransport; @@ -43,13 +48,15 @@ class MailTransportPluginInfo { public: MailTransportPluginInfo() - : /*plugin(nullptr),*/ + : plugin(nullptr), isEnabled(true) { } + QString metaDataFileNameBaseName; QString metaDataFileName; + MailTransport::TransportAbstractPlugin *plugin; bool isEnabled; }; @@ -70,10 +77,23 @@ public: } void loadPlugin(MailTransportPluginInfo *item); + QVector pluginsList() const; + QVector mPluginList; private: TransportPluginManager *q; }; +QVector TransportPluginManagerPrivate::pluginsList() const +{ + QVector lst; + QVector::ConstIterator end(mPluginList.constEnd()); + for (QVector::ConstIterator it = mPluginList.constBegin(); it != end; ++it) { + if (auto plugin = (*it).plugin) { + lst << plugin; + } + } + return lst; +} TransportPluginManager::TransportPluginManager(QObject *parent) : QObject(parent), @@ -87,9 +107,13 @@ TransportPluginManager::~TransportPluginManager() delete d; } - TransportPluginManager *TransportPluginManager::self() { return sInstance->transportPluginManager; } +QVector TransportPluginManager::pluginsList() const +{ + return d->pluginsList(); +} + diff --git a/src/kmailtransport/plugins/transportpluginmanager.h b/src/kmailtransport/plugins/transportpluginmanager.h index 7d64cec5e8aae7ed061c5b2018de0dc0011c8935..594decf36e5287089ee3285ec41d0d6a1ff7672a 100644 --- a/src/kmailtransport/plugins/transportpluginmanager.h +++ b/src/kmailtransport/plugins/transportpluginmanager.h @@ -22,6 +22,7 @@ #include namespace MailTransport { +class TransportAbstractPlugin; class TransportPluginManagerPrivate; class TransportPluginManager : public QObject { @@ -31,6 +32,7 @@ public: ~TransportPluginManager(); static TransportPluginManager *self(); + QVector pluginsList() const; private: TransportPluginManagerPrivate *const d; };