diff --git a/src/plasma/containment.cpp b/src/plasma/containment.cpp --- a/src/plasma/containment.cpp +++ b/src/plasma/containment.cpp @@ -517,7 +517,7 @@ ContainmentActions *plugin = nullptr; plugin = containmentActions().value(trigger); - if (plugin && plugin->pluginInfo().pluginName() != pluginName) { + if (plugin && plugin->metadata().pluginId() != pluginName) { containmentActions().remove(trigger); delete plugin; plugin = nullptr; diff --git a/src/plasma/containmentactions.h b/src/plasma/containmentactions.h --- a/src/plasma/containmentactions.h +++ b/src/plasma/containmentactions.h @@ -28,6 +28,7 @@ #include class QAction; +class KPluginMetaData; namespace Plasma { @@ -67,8 +68,17 @@ * @return the plugin info for this ContainmentActions instance, * including name, pluginName and icon * @since 5.0 + * + * @deprecated use metadata + */ + PLASMA_DEPRECATED KPluginInfo pluginInfo() const; + + /** + * @return metadata for this ContainmentActions instance + * including name, pluginName and icon + * @since 5.62 */ - KPluginInfo pluginInfo() const; + KPluginMetaData metadata() const; /** * This method should be called once the plugin is loaded or settings are changed. diff --git a/src/plasma/containmentactions.cpp b/src/plasma/containmentactions.cpp --- a/src/plasma/containmentactions.cpp +++ b/src/plasma/containmentactions.cpp @@ -66,6 +66,11 @@ return KPluginInfo(d->containmentActionsDescription); } +KPluginMetaData ContainmentActions::metadata() const +{ + return d->containmentActionsDescription; +} + Containment *ContainmentActions::containment() { if (d->containment) { diff --git a/src/plasma/dataengine.h b/src/plasma/dataengine.h --- a/src/plasma/dataengine.h +++ b/src/plasma/dataengine.h @@ -72,8 +72,20 @@ * * @param parent The parent object. * @param plugin plugin info that describes the engine + * + * @deprecated since 5.62 **/ - explicit DataEngine(const KPluginInfo &plugin, QObject *parent = nullptr); + PLASMA_DEPRECATED explicit DataEngine(const KPluginInfo &plugin, QObject *parent = nullptr); + + /** + * Constructor. + * + * @param parent The parent object. + * @param plugin metadata that describes the engine + * + * @since 5.62 + */ + explicit DataEngine(const KPluginMetaData &plugin, QObject *parent = nullptr); explicit DataEngine(QObject *parent = nullptr, const QVariantList &args = QVariantList()); @@ -97,8 +109,17 @@ /** * @return description of the plugin that implements this DataEngine + * + * @deprecated since 5.62, use metadata + */ + PLASMA_DEPRECATED KPluginInfo pluginInfo() const; + + /** + * @return description of the plugin that implements this DataEngine + * + * @since 5.62 */ - KPluginInfo pluginInfo() const; + KPluginMetaData metadata() const; /** * Connects a source to an object for data updates. The object must diff --git a/src/plasma/dataengine.cpp b/src/plasma/dataengine.cpp --- a/src/plasma/dataengine.cpp +++ b/src/plasma/dataengine.cpp @@ -49,6 +49,10 @@ { DataEngine::DataEngine(const KPluginInfo &plugin, QObject *parent) + : DataEngine(plugin.toMetaData(), parent) +{} + +DataEngine::DataEngine(const KPluginMetaData &plugin, QObject *parent) : QObject(parent), d(new DataEnginePrivate(this, plugin)) { @@ -63,7 +67,7 @@ DataEngine::DataEngine(QObject *parent, const QVariantList &args) : QObject(parent), - d(new DataEnginePrivate(this, KPluginInfo(args), args)) + d(new DataEnginePrivate(this, KPluginInfo(args).toMetaData(), args)) { if (d->script) { d->setupScriptSupport(); @@ -99,6 +103,11 @@ } KPluginInfo DataEngine::pluginInfo() const +{ + return KPluginInfo(d->dataEngineDescription); +} + +KPluginMetaData DataEngine::metadata() const { return d->dataEngineDescription; } @@ -408,9 +417,9 @@ } // Private class implementations -DataEnginePrivate::DataEnginePrivate(DataEngine *e, const KPluginInfo &info, const QVariantList &args) +DataEnginePrivate::DataEnginePrivate(DataEngine *e, const KPluginMetaData &md, const QVariantList &args) : q(e), - dataEngineDescription(info), + dataEngineDescription(md), refCount(-1), // first ref checkSourcesTimerId(0), updateTimerId(0), @@ -427,12 +436,12 @@ } if (dataEngineDescription.isValid()) { - QString api = dataEngineDescription.property(QStringLiteral("X-Plasma-API")).toString(); + QString api = dataEngineDescription.value(QStringLiteral("X-Plasma-API")); if (!api.isEmpty()) { const QString path = QStandardPaths::locate(QStandardPaths::GenericDataLocation, - QStringLiteral(PLASMA_RELATIVE_DATA_INSTALL_DIR "/dataengines/") + dataEngineDescription.pluginName(), + QStringLiteral(PLASMA_RELATIVE_DATA_INSTALL_DIR "/dataengines/") + dataEngineDescription.pluginId(), QStandardPaths::LocateDirectory); package = new Package(PluginLoader::self()->loadPackage(QStringLiteral("Plasma/DataEngine"), api)); package->setPath(path); diff --git a/src/plasma/private/dataengine_p.h b/src/plasma/private/dataengine_p.h --- a/src/plasma/private/dataengine_p.h +++ b/src/plasma/private/dataengine_p.h @@ -22,7 +22,7 @@ #include -#include +#include namespace Plasma { @@ -32,7 +32,7 @@ class DataEnginePrivate { public: - DataEnginePrivate(DataEngine *e, const KPluginInfo &info, const QVariantList &args = QVariantList()); + DataEnginePrivate(DataEngine *e, const KPluginMetaData &info, const QVariantList &args = QVariantList()); ~DataEnginePrivate(); DataContainer *source(const QString &sourceName, bool createWhenMissing = true); void connectSource(DataContainer *s, QObject *visualization, uint pollingInterval, @@ -90,7 +90,7 @@ void scheduleSourcesUpdated(); DataEngine *q; - KPluginInfo dataEngineDescription; + KPluginMetaData dataEngineDescription; int refCount; int checkSourcesTimerId; int updateTimerId; diff --git a/src/plasma/private/storage.cpp b/src/plasma/private/storage.cpp --- a/src/plasma/private/storage.cpp +++ b/src/plasma/private/storage.cpp @@ -131,7 +131,7 @@ Plasma::DataEngine *engine = qobject_cast(parentObject); if (engine) { - m_clientName = engine->pluginInfo().pluginName(); + m_clientName = engine->metadata().pluginId(); break; } } diff --git a/src/plasma/private/theme_p.h b/src/plasma/private/theme_p.h --- a/src/plasma/private/theme_p.h +++ b/src/plasma/private/theme_p.h @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -110,7 +111,7 @@ static QHash themes; QString themeName; - KPluginInfo pluginInfo; + KPluginMetaData pluginMetaData; QList fallbackThemes; KSharedConfigPtr colors; KColorScheme colorScheme; diff --git a/src/plasma/private/theme_p.cpp b/src/plasma/private/theme_p.cpp --- a/src/plasma/private/theme_p.cpp +++ b/src/plasma/private/theme_p.cpp @@ -807,7 +807,7 @@ if (realTheme) { const QString metadataPath(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String(PLASMA_RELATIVE_DATA_INSTALL_DIR "/desktoptheme/") % theme % QLatin1String("/metadata.desktop"))); KConfig metadata(metadataPath, KConfig::SimpleConfig); - pluginInfo = KPluginInfo(metadataPath); + pluginMetaData = KPluginMetaData(metadataPath); processContrastSettings(&metadata); processBlurBehindSettings(&metadata); diff --git a/src/plasma/scripting/dataenginescript.h b/src/plasma/scripting/dataenginescript.h --- a/src/plasma/scripting/dataenginescript.h +++ b/src/plasma/scripting/dataenginescript.h @@ -111,10 +111,19 @@ Package package() const override; /** - * @return the KPluginInfo associated with this plasmoid + * @return the KPluginInfo associated with this dataengine + * + * @deprecated use metadata() */ KPluginInfo description() const; + /** + * @return the KPluginMetaData associated with this dataengine + * + * @since 5.62 + */ + KPluginMetaData metadata() const; + void setData(const QString &source, const QString &key, const QVariant &value); void setData(const QString &source, const QVariant &value); diff --git a/src/plasma/scripting/dataenginescript.cpp b/src/plasma/scripting/dataenginescript.cpp --- a/src/plasma/scripting/dataenginescript.cpp +++ b/src/plasma/scripting/dataenginescript.cpp @@ -89,9 +89,14 @@ } KPluginInfo DataEngineScript::description() const +{ + return KPluginInfo(metadata()); +} + +KPluginMetaData DataEngineScript::metadata() const { Q_ASSERT(d->dataEngine); - return d->dataEngine->d->dataEngineDescription; + return d->dataEngine->metadata(); } void DataEngineScript::setData(const QString &source, const QString &key, diff --git a/src/plasma/theme.h b/src/plasma/theme.h --- a/src/plasma/theme.h +++ b/src/plasma/theme.h @@ -30,6 +30,8 @@ #include +class KPluginMetaData; + namespace Plasma { @@ -317,8 +319,17 @@ * @return plugin info for this theme, with information such as * name, description, author, website etc * @since 5.0 + * + * @deprecated use KPluginMetaData + */ + PLASMA_DEPRECATED KPluginInfo pluginInfo() const; + + /** + * @return metadata for this theme, with information such as + * name, description, author, website etc + * @since 5.62 */ - KPluginInfo pluginInfo() const; + KPluginMetaData metadata() const; /** * @return The default application font diff --git a/src/plasma/theme.cpp b/src/plasma/theme.cpp --- a/src/plasma/theme.cpp +++ b/src/plasma/theme.cpp @@ -443,7 +443,7 @@ KPluginInfo Theme::pluginInfo() const { - return d->pluginInfo; + return KPluginInfo(d->pluginMetaData); } QFont Theme::defaultFont() const