Match applets by English names and keywords even when system is in another locale

wilder-5.24
Flo Edelmann 4 years ago committed by Fushan Wen
parent 4f53ed33c2
commit d2d025d15b
  1. 11
      components/shellprivate/widgetexplorer/plasmaappletitemmodel.cpp

@ -123,8 +123,15 @@ void PlasmaAppletItem::setRunning(int count)
bool PlasmaAppletItem::matches(const QString &pattern) const
{
const QString keywordsList = KJsonUtils::readTranslatedString(m_info.rawData(), QStringLiteral("Keywords"));
const auto keywords = keywordsList.splitRef(QLatin1Char(';'), Qt::SkipEmptyParts);
const QJsonObject rawData = m_info.rawData();
const QString keywordsList = KJsonUtils::readTranslatedString(rawData, QStringLiteral("Keywords"));
auto keywords = keywordsList.splitRef(QLatin1Char(';'), Qt::SkipEmptyParts);
// Add English name and keywords so users in other languages won't have to switch IME when searching.
if (!QLocale().name().startsWith(QLatin1String("en_"))) {
const QString name(rawData[QStringLiteral("KPlugin")][QStringLiteral("Name")].toString());
keywords << &name << m_info.value(QStringLiteral("Keywords"), QString()).splitRef(QLatin1Char(';'), Qt::SkipEmptyParts);
}
for (const auto &keyword : keywords) {
if (keyword.startsWith(pattern, Qt::CaseInsensitive)) {

Loading…
Cancel
Save