Fix alternatives for applets

X-Plasma-Provides is a list of strings, not a single string

BUG: 429801
BUG: 429800
wilder-5.22
Nicolas Fella 5 years ago
parent e0c8b17d43
commit 1bd40e27b6
  1. 12
      components/shellprivate/widgetexplorer/plasmaappletitemmodel.cpp

@ -271,10 +271,16 @@ void PlasmaAppletItemModel::populateModel(const QStringList &whatChanged)
auto filter = [this](const KPluginMetaData &plugin) -> bool {
const QString provides = plugin.value(QStringLiteral("X-Plasma-Provides"));
const QStringList provides = KPluginMetaData::readStringList(plugin.rawData(), QStringLiteral("X-Plasma-Provides"));
if (!m_provides.isEmpty() && !m_provides.contains(provides)) {
return false;
if (!m_provides.isEmpty()) {
const bool providesFulfilled = std::any_of(m_provides.cbegin(), m_provides.cend(), [&provides](const QString &p) {
return provides.contains(p);
});
if (!providesFulfilled) {
return false;
}
}
if (!plugin.isValid() || plugin.rawData().value(QStringLiteral("NoDisplay")).toBool() || plugin.category() == QLatin1String("Containments")) {

Loading…
Cancel
Save