Applet::listCategories in PluginLoader
Applet::listCategories -> PluginLoader::listAppletCategories
This commit is contained in:
parent
42bc0a2208
commit
dfaaea7c1c
@ -931,50 +931,6 @@ bool Applet::hasValidAssociatedApplication() const
|
||||
return AssociatedApplicationManager::self()->appletHasValidAssociatedApplication(this);
|
||||
}
|
||||
|
||||
QStringList Applet::listCategories(const QString &parentApp, bool visibleOnly)
|
||||
{
|
||||
QString constraint = AppletPrivate::parentAppConstraint(parentApp);
|
||||
constraint.append(" and exist [X-KDE-PluginInfo-Category]");
|
||||
|
||||
KConfigGroup group(KSharedConfig::openConfig(), "General");
|
||||
const QStringList excluded = group.readEntry("ExcludeCategories", QStringList());
|
||||
foreach (const QString &category, excluded) {
|
||||
constraint.append(" and [X-KDE-PluginInfo-Category] != '").append(category).append("'");
|
||||
}
|
||||
|
||||
KService::List offers = KServiceTypeTrader::self()->query("Plasma/Applet", constraint);
|
||||
|
||||
QStringList categories;
|
||||
QSet<QString> known = AppletPrivate::knownCategories();
|
||||
foreach (const KService::Ptr &applet, offers) {
|
||||
QString appletCategory = applet->property("X-KDE-PluginInfo-Category").toString();
|
||||
if (visibleOnly && applet->noDisplay()) {
|
||||
// we don't want to show the hidden category
|
||||
continue;
|
||||
}
|
||||
|
||||
//kDebug() << " and we have " << appletCategory;
|
||||
if (!appletCategory.isEmpty() && !known.contains(appletCategory.toLower())) {
|
||||
#ifndef NDEBUG
|
||||
kDebug() << "Unknown category: " << applet->name() << "says it is in the"
|
||||
<< appletCategory << "category which is unknown to us";
|
||||
#endif
|
||||
appletCategory.clear();
|
||||
}
|
||||
|
||||
if (appletCategory.isEmpty()) {
|
||||
if (!categories.contains(i18nc("misc category", "Miscellaneous"))) {
|
||||
categories << i18nc("misc category", "Miscellaneous");
|
||||
}
|
||||
} else if (!categories.contains(appletCategory)) {
|
||||
categories << appletCategory;
|
||||
}
|
||||
}
|
||||
|
||||
categories.sort();
|
||||
return categories;
|
||||
}
|
||||
|
||||
void Applet::setCustomCategories(const QStringList &categories)
|
||||
{
|
||||
AppletPrivate::s_customCategories = QSet<QString>::fromList(categories);
|
||||
|
@ -267,20 +267,6 @@ class PLASMA_EXPORT Applet : public QObject
|
||||
*/
|
||||
void setTitle(const QString &title) const;
|
||||
|
||||
/**
|
||||
* Returns a list of all the categories used by installed applets.
|
||||
*
|
||||
* @param parentApp the application to filter applets on. Uses the
|
||||
* X-KDE-ParentApp entry (if any) in the plugin info.
|
||||
* The default value of QString() will result in a
|
||||
* list containing only applets not specifically
|
||||
* registered to an application.
|
||||
* @return list of categories
|
||||
* @param visibleOnly true if it should only return applets that are marked as visible
|
||||
*/
|
||||
static QStringList listCategories(const QString &parentApp = QString(),
|
||||
bool visibleOnly = true);
|
||||
|
||||
/**
|
||||
* Sets the list of custom categories that are used in addition to the default
|
||||
* set of categories known to libplasma for Applets.
|
||||
|
@ -455,6 +455,50 @@ KPluginInfo::List PluginLoader::listAppletInfoForUrl(const QUrl &url)
|
||||
return filtered;
|
||||
}
|
||||
|
||||
QStringList PluginLoader::listAppletCategories(const QString &parentApp, bool visibleOnly)
|
||||
{
|
||||
QString constraint = AppletPrivate::parentAppConstraint(parentApp);
|
||||
constraint.append(" and exist [X-KDE-PluginInfo-Category]");
|
||||
|
||||
KConfigGroup group(KSharedConfig::openConfig(), "General");
|
||||
const QStringList excluded = group.readEntry("ExcludeCategories", QStringList());
|
||||
foreach (const QString &category, excluded) {
|
||||
constraint.append(" and [X-KDE-PluginInfo-Category] != '").append(category).append("'");
|
||||
}
|
||||
|
||||
KService::List offers = KServiceTypeTrader::self()->query("Plasma/Applet", constraint);
|
||||
|
||||
QStringList categories;
|
||||
QSet<QString> known = AppletPrivate::knownCategories();
|
||||
foreach (const KService::Ptr &applet, offers) {
|
||||
QString appletCategory = applet->property("X-KDE-PluginInfo-Category").toString();
|
||||
if (visibleOnly && applet->noDisplay()) {
|
||||
// we don't want to show the hidden category
|
||||
continue;
|
||||
}
|
||||
|
||||
//kDebug() << " and we have " << appletCategory;
|
||||
if (!appletCategory.isEmpty() && !known.contains(appletCategory.toLower())) {
|
||||
#ifndef NDEBUG
|
||||
kDebug() << "Unknown category: " << applet->name() << "says it is in the"
|
||||
<< appletCategory << "category which is unknown to us";
|
||||
#endif
|
||||
appletCategory.clear();
|
||||
}
|
||||
|
||||
if (appletCategory.isEmpty()) {
|
||||
if (!categories.contains(i18nc("misc category", "Miscellaneous"))) {
|
||||
categories << i18nc("misc category", "Miscellaneous");
|
||||
}
|
||||
} else if (!categories.contains(appletCategory)) {
|
||||
categories << appletCategory;
|
||||
}
|
||||
}
|
||||
|
||||
categories.sort();
|
||||
return categories;
|
||||
}
|
||||
|
||||
|
||||
KPluginInfo::List PluginLoader::listDataEngineInfo(const QString &parentApp)
|
||||
{
|
||||
|
@ -141,14 +141,28 @@ public:
|
||||
*
|
||||
* @return list of applets
|
||||
**/
|
||||
static KPluginInfo::List listAppletInfoForMimeType(const QString &mimetype);
|
||||
KPluginInfo::List listAppletInfoForMimeType(const QString &mimetype);
|
||||
|
||||
/**
|
||||
* Returns a list of all known applets associated with a certain URL.
|
||||
*
|
||||
* @return list of applets
|
||||
**/
|
||||
static KPluginInfo::List listAppletInfoForUrl(const QUrl &url);
|
||||
KPluginInfo::List listAppletInfoForUrl(const QUrl &url);
|
||||
|
||||
/**
|
||||
* Returns a list of all the categories used by installed applets.
|
||||
*
|
||||
* @param parentApp the application to filter applets on. Uses the
|
||||
* X-KDE-ParentApp entry (if any) in the plugin info.
|
||||
* The default value of QString() will result in a
|
||||
* list containing only applets not specifically
|
||||
* registered to an application.
|
||||
* @return list of categories
|
||||
* @param visibleOnly true if it should only return applets that are marked as visible
|
||||
*/
|
||||
QStringList listAppletCategories(const QString &parentApp = QString(),
|
||||
bool visibleOnly = true);
|
||||
|
||||
/**
|
||||
* Returns a list of all known DataEngines.
|
||||
|
Loading…
Reference in New Issue
Block a user