Plasma
pluginloader.cpp
72 // After that, we're too afraid to produce race conditions and it's not that time-critical anyway
73 // the 20 seconds here means that the cache is only used within 20sec during startup, after that,
75 // just not using the cache is way easier then, since it doesn't make *that* much of a difference,
92 QString PluginLoaderPrivate::s_packageStructurePluginDir = QStringLiteral("plasma/packagestructure");
95 QString PluginLoaderPrivate::s_containmentActionsPluginDir = QStringLiteral("plasma/containmentactions");
154 const KPackage::Package p = KPackage::PackageLoader::self()->loadPackage(QStringLiteral("Plasma/Applet"), name);
160 plugin = d->plasmoidCache.findPluginById(parentPlugin, PluginLoaderPrivate::s_plasmoidsPluginDir);
190 KLocalizedString::addDomainLocaleDir(QByteArray("plasma_applet_") + name.toLatin1(), localePath);
208 KPluginMetaData plugin = d->dataengineCache.findPluginById(name, PluginLoaderPrivate::s_dataEnginePluginDir);
217 const KPackage::Package p = KPackage::PackageLoader::self()->loadPackage(QStringLiteral("Plasma/DataEngine"), name);
245 const QList<KPluginMetaData> packagePlugins = KPackage::PackageLoader::self()->listPackages(QStringLiteral("Plasma/DataEngine"));
262 KPluginInfo::List PluginLoader::listEngineInfoByCategory(const QString &category, const QString &parentApp)
276 plugins = KPluginMetaData::findPlugins(PluginLoaderPrivate::s_dataEnginePluginDir, filterNormal);
278 plugins = KPluginMetaData::findPlugins(PluginLoaderPrivate::s_dataEnginePluginDir, filterParentApp);
284 const QList<KPluginMetaData> packagePlugins = KPackage::PackageLoader::self()->listPackages(QStringLiteral("Plasma/DataEngine"));
291 Service *PluginLoader::loadService(const QString &name, const QVariantList &args, QObject *parent)
310 KPluginMetaData plugin = KPluginMetaData::findPluginById(PluginLoaderPrivate::s_servicesPluginDir, name);
325 ContainmentActions *PluginLoader::loadContainmentActions(Containment *parent, const QString &name, const QVariantList &args)
331 ContainmentActions *actions = d->isDefaultLoader ? nullptr : internalLoadContainmentActions(parent, name, args);
337 KPluginMetaData plugin = d->containmentactionCache.findPluginById(name, PluginLoaderPrivate::s_containmentActionsPluginDir);
340 if (auto res = KPluginFactory::instantiatePlugin<Plasma::ContainmentActions>(plugin, nullptr, {QVariant::fromValue(plugin)})) {
347 KService::List offers = KServiceTypeTrader::self()->query(QStringLiteral("Plasma/ContainmentActions"), constraint);
358 << "Use embedded json metadata and install the plugin in plasma/containmentactions namespace instead";
364 return KPluginFactory::instantiatePlugin<Plasma::ContainmentActions>(data, nullptr, allArgs).plugin;
391 KPackage::PackageStructure *internalStructure = KPackage::PackageLoader::self()->loadPackageStructure(packageFormat);
402 const QVector<KPluginMetaData> plugins = KPluginMetaData::findPlugins(PluginLoaderPrivate::s_packageStructurePluginDir, filter);
425 QList<KPluginMetaData> listAppletMetaDataInternal(const QString &category, const QString &parentApp)
477 return (parentApp.isEmpty() || pa == parentApp) && (md.category() == category || md.category().isEmpty());
484 return KPackage::PackageLoader::self()->findPackages(QStringLiteral("Plasma/Applet"), QString(), filter);
493 QList<KPluginMetaData> PluginLoader::listAppletMetaData(const QString &category, const QString &parentApp)
500 KPluginInfo::List PluginLoader::listAppletInfo(const QString &category, const QString &parentApp)
512 auto pi = md.metaDataFileName().endsWith(QLatin1String(".json")) ? KPluginInfo(md) : KPluginInfo(KService::serviceByStorageId(md.metaDataFileName()));
515 qCWarning(LOG_PLASMA) << "Could not load plugin info for plugin :" << md.pluginId() << "skipping plugin";
532 return KPackage::PackageLoader::self()->findPackages(QStringLiteral("Plasma/Applet"), QString(), filter);
554 const QList<KPluginMetaData> allApplets = KPackage::PackageLoader::self()->findPackages(QStringLiteral("Plasma/Applet"), QString(), filter);
558 const QStringList urlPatterns = md.value(QStringLiteral("X-Plasma-DropUrlPatterns"), QStringList());
560 QRegularExpression rx(QRegularExpression::anchoredPattern(QRegularExpression::wildcardToRegularExpression(glob)));
584 && (excluded.isEmpty() || excluded.contains(md.value(QStringLiteral("X-KDE-PluginInfo-Category")))) //
587 const QList<KPluginMetaData> allApplets = KPackage::PackageLoader::self()->findPackages(QStringLiteral("Plasma/Applet"), QString(), filter);
619 const KPackage::Package p = KPackage::PackageLoader::self()->loadPackage(QStringLiteral("Plasma/Applet"), appletName);
628 KPluginInfo::List PluginLoader::listContainments(const QString &category, const QString &parentApp)
634 QList<KPluginMetaData> PluginLoader::listContainmentsMetaData(std::function<bool(const KPluginMetaData &)> filter)
640 return KPackage::PackageLoader::self()->findPackages(QStringLiteral("Plasma/Applet"), QString(), ownFilter);
653 KPluginInfo::List PluginLoader::listContainmentsOfType(const QString &type, const QString &category, const QString &parentApp)
674 return KPluginInfo::fromMetaData(KPackage::PackageLoader::self()->findPackages(QStringLiteral("Plasma/Applet"), QString(), filter).toVector());
682 return isContainmentMetaData(md) && md.value(QStringLiteral("X-Plasma-DropMimeTypes"), QStringList()).contains(mimeType);
685 return KPluginInfo::fromMetaData(KPackage::PackageLoader::self()->findPackages(QStringLiteral("Plasma/Applet"), QString(), filter).toVector());
696 const QStringList theseTypes = containmentInfo.property(QStringLiteral("X-Plasma-ContainmentType")).toStringList();
746 plugins = KPluginMetaData::findPlugins(PluginLoaderPrivate::s_containmentActionsPluginDir, filter);
758 const KService::List offers = KServiceTypeTrader::self()->query(QStringLiteral("Plasma/ContainmentActions"), constraint);
774 Applet *PluginLoader::internalLoadApplet(const QString &name, uint appletId, const QVariantList &args)
788 ContainmentActions *PluginLoader::internalLoadContainmentActions(Containment *containment, const QString &name, const QVariantList &args)
796 Service *PluginLoader::internalLoadService(const QString &name, const QVariantList &args, QObject *parent)
836 static KPluginInfo::List standardInternalInfo(const QString &type, const QString &category = QString())
839 QLatin1String(PLASMA_RELATIVE_DATA_INSTALL_DIR "/internal/") + type + QLatin1String("/*.desktop"),
874 KPluginMetaData PluginLoaderPrivate::Cache::findPluginById(const QString &name, const QString &pluginNamespace)
883 const auto metaDataList = KPluginMetaData::findPlugins(pluginNamespace, {}, KPluginMetaData::AllowEmptyMetaData);
T & first()
QString anchoredPattern(const QString &expression)
QString readEntry(const char *key, const char *aDefault=nullptr) const
QJsonObject rawData() const
bool endsWith(const QString &s, Qt::CaseSensitivity cs) const const
QString wildcardToRegularExpression(const QString &pattern)
bool isEmpty() const const
QString section(QChar sep, int start, int end, QString::SectionFlags flags) const const
LocateFile
CaseInsensitive
Package loadPackage(const QString &packageFormat, const QString &packagePath=QString())
QVariant fromValue(const T &value)
KCOREADDONS_EXPORT QStringList runtimePlatform()
QString metaDataFileName() const
QStringList serviceTypes() const
void setName(const QString &name)
Sets the name of the Service; useful for Services not loaded from plugins, which use the plugin name ...
Definition: service.cpp:122
QVariantMap toVariantMap() const const
bool contains(const QString &str, Qt::CaseSensitivity cs) const const
void append(const T &value)
bool isValid() const
qint64 currentMSecsSinceEpoch()
QString fileName() const
Definition: pluginloader.h:55
QByteArray toLatin1() const const
static KPluginInfo::List fromFiles(const QStringList &files, const KConfigGroup &config=KConfigGroup())
static void addDomainLocaleDir(const QByteArray &domain, const QString &path)
static KPluginInfo fromMetaData(const KPluginMetaData &meta)
bool isHidden() const
T & first()
KPluginMetaData metadata() const
bool contains(const QString &key) const const
QJsonObject metaData() const const
QVector< T > toVector() const const
QString toString(QUrl::FormattingOptions options) const const
QList< KPluginMetaData > findPackages(const QString &packageFormat, const QString &packageRoot=QString(), std::function< bool(const KPluginMetaData &)> filter=std::function< bool(const KPluginMetaData &)>())
QString category() const
static PackageLoader * self()
QStringList formFactors() const
This class provides a generic API for write access to settings or services.
Definition: service.h:77
QList< KPluginMetaData > listPackages(const QString &packageFormat, const QString &packageRoot=QString())
bool isEmpty() const const
QCoreApplication * instance()
KPackage::PackageStructure * loadPackageStructure(const QString &packageFormat)
QFuture< void > filter(Sequence &sequence, KeepFunctor filterFunction)
bool isEmpty() const const
bool hasMatch() const const
static KServiceTypeTrader * self()
QRegularExpressionMatch match(const QString &subject, int offset, QRegularExpression::MatchType matchType, QRegularExpression::MatchOptions matchOptions) const const
applicationName
static Result< KPluginFactory > loadFactory(const KPluginMetaData &data)
void insert(int i, const T &value)
bool contains(const T &value) const const
bool value(const QString &key, bool defaultValue) const
static QVector< KPluginMetaData > findPlugins(const QString &directory, std::function< bool(const KPluginMetaData &)> filter, KPluginMetaDataOption option)
GenericDataLocation
AllowEmptyMetaData
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const
static Ptr serviceByStorageId(const QString &_storageId)
QString filePath(const QByteArray &key, const QString &filename=QString()) const
bool isValid() const
QString name(StandardShortcut id)
QStringList locateAll(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options)
QString i18nc(const char *context, const char *text, const TYPE &arg...)
QSet::iterator insert(const T &value)
QList::iterator begin()
QList< KPluginInfo > List
static KPluginMetaData findPluginById(const QString &directory, const QString &pluginId)
QChar * data()
KService::List query(const QString &servicetype, const QString &constraint=QString()) const
QList::iterator end()
QList< T > values() const const
QString pluginId() const
The base class for plugins that provide backgrounds and applet grouping containers.
Definition: containment.h:45
Category category(StandardShortcut id)
void sort(Qt::CaseSensitivity cs)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Sun Mar 26 2023 04:14:48 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2023 The KDE developers.
Generated on Sun Mar 26 2023 04:14:48 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.