diff --git a/messageviewer/src/messageviewerconfigureplugins/messageviewerconfigurepluginmanager.cpp b/messageviewer/src/messageviewerconfigureplugins/messageviewerconfigurepluginmanager.cpp index 28eb8403..e283a1cf 100644 --- a/messageviewer/src/messageviewerconfigureplugins/messageviewerconfigurepluginmanager.cpp +++ b/messageviewer/src/messageviewerconfigureplugins/messageviewerconfigurepluginmanager.cpp @@ -1,243 +1,243 @@ /* Copyright (C) 2018 Laurent Montel This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#include "messageviewerconfigurepluginmanager.h" -#include "headerstyleplugin.h" +#include "messageviewerconfigureSettingspluginmanager.h" +#include "configuresettingsplugin.h" #include "messageviewer_debug.h" #include #include #include #include #include using namespace MessageViewer; -class HeaderStylePluginInfo +class ConfigureSettingsPluginInfo { public: - HeaderStylePluginInfo() + ConfigureSettingsPluginInfo() { } PimCommon::PluginUtilData pluginData; QString metaDataFileNameBaseName; QString metaDataFileName; - MessageViewer::HeaderStylePlugin *plugin = nullptr; + MessageViewer::ConfigureSettingsPlugin *plugin = nullptr; bool isEnabled = false; }; -class MessageViewer::MessageViewerConfigurePluginManagerPrivate +class MessageViewer::MessageViewerConfigureSettingsPluginManagerPrivate { public: - MessageViewerConfigurePluginManagerPrivate(MessageViewerConfigurePluginManager *qq) + MessageViewerConfigureSettingsPluginManagerPrivate(MessageViewerConfigureSettingsPluginManager *qq) : q(qq) { } - QVector pluginsList() const; + QVector pluginsList() const; QVector pluginDataList() const; void initializePluginList(); - void loadPlugin(HeaderStylePluginInfo *item); + void loadPlugin(ConfigureSettingsPluginInfo *item); QString configGroupName() const; QString configPrefixSettingKey() const; - MessageViewer::HeaderStylePlugin *pluginFromIdentifier(const QString &id); + MessageViewer::ConfigureSettingsPlugin *pluginFromIdentifier(const QString &id); private: QVector mPluginDataList; - QVector mPluginList; - MessageViewerConfigurePluginManager *q; + QVector mPluginList; + MessageViewerConfigureSettingsPluginManager *q; }; namespace { QString pluginVersion() { return QStringLiteral("1.0"); } } -QVector MessageViewerConfigurePluginManagerPrivate::pluginDataList() const +QVector MessageViewerConfigureSettingsPluginManagerPrivate::pluginDataList() const { return mPluginDataList; } -QString MessageViewerConfigurePluginManagerPrivate::configGroupName() const +QString MessageViewerConfigureSettingsPluginManagerPrivate::configGroupName() const { - return QStringLiteral("MessageViewerConfigurePlugins"); + return QStringLiteral("MessageViewerConfigureSettingsPlugins"); } -QString MessageViewerConfigurePluginManagerPrivate::configPrefixSettingKey() const +QString MessageViewerConfigureSettingsPluginManagerPrivate::configPrefixSettingKey() const { - return QStringLiteral("MessageViewerConfigurePlugin"); + return QStringLiteral("MessageViewerConfigureSettingsPlugin"); } -void MessageViewerConfigurePluginManagerPrivate::initializePluginList() +void MessageViewerConfigureSettingsPluginManagerPrivate::initializePluginList() { const QVector plugins = KPluginLoader::findPlugins(QStringLiteral("messageviewer"), []( const KPluginMetaData &md) { - return md.serviceTypes().contains(QLatin1String("MessageViewerConfigurePlugin/Plugin")); + return md.serviceTypes().contains(QLatin1String("MessageViewerConfigureSettingsPlugin/Plugin")); }); QVectorIterator i(plugins); i.toBack(); const QPair pair = PimCommon::PluginUtil::loadPluginSetting( configGroupName(), configPrefixSettingKey()); QSet unique; QVector listOrder; while (i.hasPrevious()) { - HeaderStylePluginInfo info; + ConfigureSettingsPluginInfo info; const KPluginMetaData data = i.previous(); //1) get plugin data => name/description etc. info.pluginData = PimCommon::PluginUtil::createPluginMetaData(data); //2) look at if plugin is activated const bool isPluginActivated = PimCommon::PluginUtil::isPluginActivated(pair.first, pair.second, info.pluginData.mEnableByDefault, info.pluginData.mIdentifier); info.isEnabled = isPluginActivated; info.metaDataFileNameBaseName = QFileInfo(data.fileName()).baseName(); info.metaDataFileName = data.fileName(); const QString version = data.version(); if (pluginVersion() == version) { // only load plugins once, even if found multiple times! if (unique.contains(info.metaDataFileNameBaseName)) { continue; } const QVariant p = data.rawData().value(QStringLiteral("X-KDE-MessageViewer-Configure-Order")).toVariant(); int order = -1; if (p.isValid()) { order = p.toInt(); } int pos = 0; for (; pos < listOrder.count(); ++pos) { if (listOrder.at(pos) > order) { pos--; break; } } pos = qMax(0, pos); listOrder.insert(pos, order); info.plugin = nullptr; mPluginList.insert(pos, info); unique.insert(info.metaDataFileNameBaseName); } else { qCWarning(MESSAGEVIEWER_LOG) << "Plugin " << data.name() << " doesn't have correction plugin version. It will not be loaded."; } } - QVector::iterator end(mPluginList.end()); - for (QVector::iterator it = mPluginList.begin(); it != end; ++it) { + QVector::iterator end(mPluginList.end()); + for (QVector::iterator it = mPluginList.begin(); it != end; ++it) { loadPlugin(&(*it)); } } -QVector MessageViewerConfigurePluginManagerPrivate::pluginsList() const +QVector MessageViewerConfigureSettingsPluginManagerPrivate::pluginsList() const { - QVector lst; - QVector::ConstIterator end(mPluginList.constEnd()); - for (QVector::ConstIterator it = mPluginList.constBegin(); it != end; + 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; } -void MessageViewerConfigurePluginManagerPrivate::loadPlugin(HeaderStylePluginInfo *item) +void MessageViewerConfigureSettingsPluginManagerPrivate::loadPlugin(ConfigureSettingsPluginInfo *item) { KPluginLoader pluginLoader(item->metaDataFileName); if (pluginLoader.factory()) { - item->plugin = pluginLoader.factory()->create(q, + item->plugin = pluginLoader.factory()->create(q, QVariantList() << item->metaDataFileNameBaseName); item->plugin->setIsEnabled(item->isEnabled); item->pluginData.mHasConfigureDialog = false; mPluginDataList.append(item->pluginData); } } -MessageViewer::HeaderStylePlugin *MessageViewerConfigurePluginManagerPrivate::pluginFromIdentifier( +MessageViewer::ConfigureSettingsPlugin *MessageViewerConfigureSettingsPluginManagerPrivate::pluginFromIdentifier( const QString &id) { - QVector::ConstIterator end(mPluginList.constEnd()); - for (QVector::ConstIterator it = mPluginList.constBegin(); it != end; + QVector::ConstIterator end(mPluginList.constEnd()); + for (QVector::ConstIterator it = mPluginList.constBegin(); it != end; ++it) { if ((*it).pluginData.mIdentifier == id) { return (*it).plugin; } } return {}; } -MessageViewerConfigurePluginManager *MessageViewerConfigurePluginManager::self() +MessageViewerConfigureSettingsPluginManager *MessageViewerConfigureSettingsPluginManager::self() { - static MessageViewerConfigurePluginManager s_self; + static MessageViewerConfigureSettingsPluginManager s_self; return &s_self; } -MessageViewerConfigurePluginManager::MessageViewerConfigurePluginManager(QObject *parent) +MessageViewerConfigureSettingsPluginManager::MessageViewerConfigureSettingsPluginManager(QObject *parent) : QObject(parent) - , d(new MessageViewer::MessageViewerConfigurePluginManagerPrivate(this)) + , d(new MessageViewer::MessageViewerConfigureSettingsPluginManagerPrivate(this)) { d->initializePluginList(); } -MessageViewerConfigurePluginManager::~MessageViewerConfigurePluginManager() +MessageViewerConfigureSettingsPluginManager::~MessageViewerConfigureSettingsPluginManager() { delete d; } -QVector MessageViewerConfigurePluginManager::pluginsList() const +QVector MessageViewerConfigureSettingsPluginManager::pluginsList() const { return d->pluginsList(); } -QStringList MessageViewerConfigurePluginManager::pluginListName() const +QStringList MessageViewerConfigureSettingsPluginManager::pluginListName() const { QStringList lst; lst.reserve(d->pluginsList().count()); - for (MessageViewer::HeaderStylePlugin *plugin : d->pluginsList()) { + for (MessageViewer::ConfigureSettingsPlugin *plugin : d->pluginsList()) { lst << plugin->name(); } return lst; } -QString MessageViewerConfigurePluginManager::configGroupName() const +QString MessageViewerConfigureSettingsPluginManager::configGroupName() const { return d->configGroupName(); } -QString MessageViewerConfigurePluginManager::configPrefixSettingKey() const +QString MessageViewerConfigureSettingsPluginManager::configPrefixSettingKey() const { return d->configPrefixSettingKey(); } -QVector MessageViewerConfigurePluginManager::pluginsDataList() const +QVector MessageViewerConfigureSettingsPluginManager::pluginsDataList() const { return d->pluginDataList(); } -MessageViewer::HeaderStylePlugin *MessageViewerConfigurePluginManager::pluginFromIdentifier(const QString &id) +MessageViewer::ConfigureSettingsPlugin *MessageViewerConfigureSettingsPluginManager::pluginFromIdentifier(const QString &id) { return d->pluginFromIdentifier(id); } diff --git a/messageviewer/src/messageviewerconfigureplugins/messageviewerconfigurepluginmanager.h b/messageviewer/src/messageviewerconfigureplugins/messageviewerconfigurepluginmanager.h index ecd25148..145ea6dd 100644 --- a/messageviewer/src/messageviewerconfigureplugins/messageviewerconfigurepluginmanager.h +++ b/messageviewer/src/messageviewerconfigureplugins/messageviewerconfigurepluginmanager.h @@ -1,49 +1,48 @@ /* Copyright (C) 2018 Laurent Montel This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#ifndef MESSAGEVIEWERCONFIGUREPLUGINMANAGER_H -#define MESSAGEVIEWERCONFIGUREPLUGINMANAGER_H +#ifndef MESSAGEVIEWERCONFIGURESETTINGSPLUGINMANAGER_H +#define MESSAGEVIEWERCONFIGURESETTINGSPLUGINMANAGER_H #include #include "messageviewer_export.h" #include namespace MessageViewer { -class HeaderStylePlugin; -class MessageViewerConfigurePluginManagerPrivate; -class MESSAGEVIEWER_EXPORT MessageViewerConfigurePluginManager : public QObject +class ConfigureSettingsPlugin; +class MessageViewerConfigureSettingsPluginManagerPrivate; +class MESSAGEVIEWER_EXPORT MessageViewerConfigureSettingsPluginManager : public QObject { Q_OBJECT public: - static MessageViewerConfigurePluginManager *self(); + static MessageViewerConfigureSettingsPluginManager *self(); - explicit MessageViewerConfigurePluginManager(QObject *parent = nullptr); - ~MessageViewerConfigurePluginManager(); + explicit MessageViewerConfigureSettingsPluginManager(QObject *parent = nullptr); + ~MessageViewerConfigureSettingsPluginManager(); - Q_REQUIRED_RESULT QVector pluginsList() const; + Q_REQUIRED_RESULT QVector pluginsList() const; Q_REQUIRED_RESULT QStringList pluginListName() const; Q_REQUIRED_RESULT QVector pluginsDataList() const; Q_REQUIRED_RESULT QString configPrefixSettingKey() const; Q_REQUIRED_RESULT QString configGroupName() const; - Q_REQUIRED_RESULT MessageViewer::HeaderStylePlugin *pluginFromIdentifier(const QString &id); private: - MessageViewerConfigurePluginManagerPrivate *const d; + MessageViewerConfigureSettingsPluginManagerPrivate *const d; }; } -#endif // MESSAGEVIEWERCONFIGUREPLUGINMANAGER_H +#endif // MESSAGEVIEWERCONFIGURESETTINGSPLUGINMANAGER_H