let PluginLoader do the work for us
This commit is contained in:
parent
d010143b6f
commit
d687e0d4b6
@ -68,55 +68,6 @@ ContainmentActions::~ContainmentActions()
|
|||||||
delete d;
|
delete d;
|
||||||
}
|
}
|
||||||
|
|
||||||
KPluginInfo::List ContainmentActions::listContainmentActionsInfo()
|
|
||||||
{
|
|
||||||
QString constraint;
|
|
||||||
|
|
||||||
KService::List offers = KServiceTypeTrader::self()->query("Plasma/ContainmentActions", constraint);
|
|
||||||
return KPluginInfo::fromServices(offers);
|
|
||||||
}
|
|
||||||
|
|
||||||
ContainmentActions *ContainmentActions::load(Containment *parent, const QString &containmentActionsName, const QVariantList &args)
|
|
||||||
{
|
|
||||||
if (containmentActionsName.isEmpty()) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString constraint = QString("[X-KDE-PluginInfo-Name] == '%1'").arg(containmentActionsName);
|
|
||||||
KService::List offers = KServiceTypeTrader::self()->query("Plasma/ContainmentActions", constraint);
|
|
||||||
|
|
||||||
if (offers.isEmpty()) {
|
|
||||||
kDebug() << "offers is empty for " << containmentActionsName;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
KService::Ptr offer = offers.first();
|
|
||||||
KPluginLoader plugin(*offer);
|
|
||||||
|
|
||||||
if (!Plasma::isPluginVersionCompatible(plugin.pluginVersion())) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariantList allArgs;
|
|
||||||
allArgs << offer->storageId() << args;
|
|
||||||
QString error;
|
|
||||||
ContainmentActions *containmentActions = offer->createInstance<Plasma::ContainmentActions>(parent, allArgs, &error);
|
|
||||||
|
|
||||||
if (!containmentActions) {
|
|
||||||
kDebug() << "Couldn't load containmentActions \"" << containmentActionsName << "\"! reason given: " << error;
|
|
||||||
}
|
|
||||||
|
|
||||||
return containmentActions;
|
|
||||||
}
|
|
||||||
|
|
||||||
ContainmentActions *ContainmentActions::load(Containment *parent, const KPluginInfo &info, const QVariantList &args)
|
|
||||||
{
|
|
||||||
if (!info.isValid()) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return load(parent, info.pluginName(), args);
|
|
||||||
}
|
|
||||||
|
|
||||||
Containment *ContainmentActions::containment()
|
Containment *ContainmentActions::containment()
|
||||||
{
|
{
|
||||||
if (d->containment) {
|
if (d->containment) {
|
||||||
|
@ -66,41 +66,6 @@ class PLASMA_EXPORT ContainmentActions : public QObject
|
|||||||
|
|
||||||
~ContainmentActions();
|
~ContainmentActions();
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a list of all known containmentactions plugins.
|
|
||||||
*
|
|
||||||
* @return list of containmentactions plugins
|
|
||||||
**/
|
|
||||||
static KPluginInfo::List listContainmentActionsInfo();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attempts to load a containmentactions
|
|
||||||
*
|
|
||||||
* Returns a pointer to the containmentactions if successful.
|
|
||||||
* The caller takes responsibility for the containmentactions, including
|
|
||||||
* deleting it when no longer needed.
|
|
||||||
*
|
|
||||||
* @param parent the parent containment. @since 4.6 null is allowed.
|
|
||||||
* @param name the plugin name, as returned by KPluginInfo::pluginName()
|
|
||||||
* @param args to send the containmentactions extra arguments
|
|
||||||
* @return a pointer to the loaded containmentactions, or 0 on load failure
|
|
||||||
**/
|
|
||||||
static ContainmentActions *load(Containment *parent, const QString &name, const QVariantList &args = QVariantList());
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attempts to load a containmentactions
|
|
||||||
*
|
|
||||||
* Returns a pointer to the containmentactions if successful.
|
|
||||||
* The caller takes responsibility for the containmentactions, including
|
|
||||||
* deleting it when no longer needed.
|
|
||||||
*
|
|
||||||
* @param parent the parent containment. @since 4.6 null is allowed.
|
|
||||||
* @param info KPluginInfo object for the desired containmentactions
|
|
||||||
* @param args to send the containmentactions extra arguments
|
|
||||||
* @return a pointer to the loaded containmentactions, or 0 on load failure
|
|
||||||
**/
|
|
||||||
static ContainmentActions *load(Containment *parent, const KPluginInfo &info, const QVariantList &args = QVariantList());
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the user-visible name for the containmentactions, as specified in the
|
* Returns the user-visible name for the containmentactions, as specified in the
|
||||||
* .desktop file.
|
* .desktop file.
|
||||||
|
Loading…
Reference in New Issue
Block a user