392 lines
16 KiB
Diff
392 lines
16 KiB
Diff
From 97c77a8e3259d77cb615dadd1c92185545513ebb Mon Sep 17 00:00:00 2001
|
|
From: Harald Sitter <sitter@kde.org>
|
|
Date: Sun, 13 Jul 2025 16:06:08 +0200
|
|
Subject: [PATCH 1/7] servicerunner: en_US spelling please
|
|
|
|
---
|
|
runners/services/servicerunner.cpp | 14 +++++++-------
|
|
runners/services/servicerunner.h | 4 ++--
|
|
2 files changed, 9 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/runners/services/servicerunner.cpp b/runners/services/servicerunner.cpp
|
|
index 454cf4e99f..357558a77d 100644
|
|
--- a/runners/services/servicerunner.cpp
|
|
+++ b/runners/services/servicerunner.cpp
|
|
@@ -296,7 +296,7 @@ private:
|
|
relevance += .09;
|
|
}
|
|
|
|
- if (const auto foundIt = m_runner->m_favourites.constFind(service->desktopEntryName()); foundIt != m_runner->m_favourites.cend()) {
|
|
+ if (const auto foundIt = m_runner->m_favorites.constFind(service->desktopEntryName()); foundIt != m_runner->m_favorites.cend()) {
|
|
if (foundIt->isGlobal || foundIt->linkedActivities.contains(m_currentActivity)) {
|
|
qCDebug(RUNNER_SERVICES) << "entry is a favorite" << id << match.subtext() << relevance;
|
|
relevance *= 1.25; // Give favorites a relative boost,
|
|
@@ -423,7 +423,7 @@ ServiceRunner::ServiceRunner(QObject *parent, const KPluginMetaData &metaData)
|
|
});
|
|
|
|
connect(&m_kactivitiesWatcher, &ResultWatcher::resultUnlinked, [this](QString resource) {
|
|
- m_favourites.remove(resource.remove(".desktop"_L1));
|
|
+ m_favorites.remove(resource.remove(".desktop"_L1));
|
|
// In case it was only unlinked from one activity
|
|
processActivitiesResults(ResultSet(m_kactivitiesQuery | Terms::Url::contains(resource)));
|
|
});
|
|
@@ -466,11 +466,11 @@ void ServiceRunner::processActivitiesResults(const ResultSet &results)
|
|
const static QLatin1String applicationScheme("applications");
|
|
for (const ResultSet::Result &result : results) {
|
|
if (result.url().scheme() == applicationScheme) {
|
|
- m_favourites.insert(result.url().path().remove(QLatin1String(".desktop")),
|
|
- ActivityFavourite{
|
|
- result.linkedActivities(),
|
|
- result.linkedActivities().contains(globalActivity),
|
|
- });
|
|
+ m_favorites.insert(result.url().path().remove(QLatin1String(".desktop")),
|
|
+ ActivityFavorite{
|
|
+ result.linkedActivities(),
|
|
+ result.linkedActivities().contains(globalActivity),
|
|
+ });
|
|
}
|
|
}
|
|
}
|
|
diff --git a/runners/services/servicerunner.h b/runners/services/servicerunner.h
|
|
index e0507ea459..571d22d90c 100644
|
|
--- a/runners/services/servicerunner.h
|
|
+++ b/runners/services/servicerunner.h
|
|
@@ -33,11 +33,11 @@ public:
|
|
void run(const KRunner::RunnerContext &context, const KRunner::QueryMatch &match) override;
|
|
void init() override;
|
|
|
|
- struct ActivityFavourite {
|
|
+ struct ActivityFavorite {
|
|
QStringList linkedActivities;
|
|
bool isGlobal;
|
|
};
|
|
- QMap<QString, ActivityFavourite> m_favourites;
|
|
+ QMap<QString, ActivityFavorite> m_favorites;
|
|
|
|
protected:
|
|
void setupMatch(const KService::Ptr &service, KRunner::QueryMatch &action);
|
|
--
|
|
2.51.0
|
|
|
|
|
|
From 537d0cf67d600cb40636f9aaef7db6957f002eb2 Mon Sep 17 00:00:00 2001
|
|
From: Harald Sitter <sitter@kde.org>
|
|
Date: Sun, 13 Jul 2025 16:06:50 +0200
|
|
Subject: [PATCH 2/7] servicerunner: use designated initializers
|
|
|
|
makes code easier to read
|
|
---
|
|
runners/services/servicerunner.cpp | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/runners/services/servicerunner.cpp b/runners/services/servicerunner.cpp
|
|
index 357558a77d..2cade45b26 100644
|
|
--- a/runners/services/servicerunner.cpp
|
|
+++ b/runners/services/servicerunner.cpp
|
|
@@ -468,8 +468,8 @@ void ServiceRunner::processActivitiesResults(const ResultSet &results)
|
|
if (result.url().scheme() == applicationScheme) {
|
|
m_favorites.insert(result.url().path().remove(QLatin1String(".desktop")),
|
|
ActivityFavorite{
|
|
- result.linkedActivities(),
|
|
- result.linkedActivities().contains(globalActivity),
|
|
+ .linkedActivities = result.linkedActivities(),
|
|
+ .isGlobal = result.linkedActivities().contains(globalActivity),
|
|
});
|
|
}
|
|
}
|
|
--
|
|
2.51.0
|
|
|
|
|
|
From 2c5eb156410c022a50a5b6e08a6abc454dd49b83 Mon Sep 17 00:00:00 2001
|
|
From: Harald Sitter <sitter@kde.org>
|
|
Date: Sun, 13 Jul 2025 16:09:37 +0200
|
|
Subject: [PATCH 3/7] servicerunner: use ranges algorithms
|
|
|
|
makes for nicer to read code
|
|
---
|
|
runners/services/servicerunner.cpp | 10 +++++-----
|
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/runners/services/servicerunner.cpp b/runners/services/servicerunner.cpp
|
|
index 2cade45b26..87b38a2da3 100644
|
|
--- a/runners/services/servicerunner.cpp
|
|
+++ b/runners/services/servicerunner.cpp
|
|
@@ -46,15 +46,15 @@ int weightedLength(const QString &query)
|
|
|
|
inline bool contains(const QString &result, const QList<QStringView> &queryList)
|
|
{
|
|
- return std::all_of(queryList.cbegin(), queryList.cend(), [&result](QStringView query) {
|
|
+ return std::ranges::all_of(queryList, [&result](QStringView query) {
|
|
return result.contains(query, Qt::CaseInsensitive);
|
|
});
|
|
}
|
|
|
|
inline bool contains(const QStringList &results, const QList<QStringView> &queryList)
|
|
{
|
|
- return std::all_of(queryList.cbegin(), queryList.cend(), [&results](QStringView query) {
|
|
- return std::any_of(results.cbegin(), results.cend(), [&query](QStringView result) {
|
|
+ return std::ranges::all_of(queryList, [&results](QStringView query) {
|
|
+ return std::ranges::any_of(results, [&query](QStringView result) {
|
|
return result.contains(query, Qt::CaseInsensitive);
|
|
});
|
|
});
|
|
@@ -327,7 +327,7 @@ private:
|
|
setupMatch(service, match);
|
|
|
|
qreal relevance = 0.4;
|
|
- if (std::any_of(categories.begin(), categories.end(), [this](const QString &category) {
|
|
+ if (std::ranges::any_of(categories, [this](const QString &category) {
|
|
return category.compare(query, Qt::CaseInsensitive) == 0;
|
|
})) {
|
|
relevance = 0.6;
|
|
@@ -499,7 +499,7 @@ void ServiceRunner::run(const KRunner::RunnerContext & /*context*/, const KRunne
|
|
job = new KIO::ApplicationLauncherJob(service);
|
|
} else {
|
|
const auto actions = service->actions();
|
|
- auto it = std::find_if(actions.begin(), actions.end(), [&actionName](const KServiceAction &action) {
|
|
+ auto it = std::ranges::find_if(actions, [&actionName](const KServiceAction &action) {
|
|
return action.name() == actionName;
|
|
});
|
|
Q_ASSERT(it != actions.end());
|
|
--
|
|
2.51.0
|
|
|
|
|
|
From 0599abb0af9d1da43d8067dd59b8afad7c7be9c6 Mon Sep 17 00:00:00 2001
|
|
From: Harald Sitter <sitter@kde.org>
|
|
Date: Sun, 13 Jul 2025 16:11:05 +0200
|
|
Subject: [PATCH 4/7] servicerunner: put helper functions into anon namespace
|
|
|
|
they are translation unit local after all
|
|
---
|
|
runners/services/servicerunner.cpp | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
diff --git a/runners/services/servicerunner.cpp b/runners/services/servicerunner.cpp
|
|
index 87b38a2da3..baef7ae50f 100644
|
|
--- a/runners/services/servicerunner.cpp
|
|
+++ b/runners/services/servicerunner.cpp
|
|
@@ -38,6 +38,8 @@
|
|
#include "debug.h"
|
|
|
|
using namespace Qt::StringLiterals;
|
|
+namespace
|
|
+{
|
|
|
|
int weightedLength(const QString &query)
|
|
{
|
|
@@ -60,6 +62,8 @@ inline bool contains(const QStringList &results, const QList<QStringView> &query
|
|
});
|
|
}
|
|
|
|
+} // namespace
|
|
+
|
|
/**
|
|
* @brief Finds all KServices for a given runner query
|
|
*/
|
|
--
|
|
2.51.0
|
|
|
|
|
|
From 2f81c3ab0520729ed4f97d666b5c74258eed149b Mon Sep 17 00:00:00 2001
|
|
From: Harald Sitter <sitter@kde.org>
|
|
Date: Sun, 13 Jul 2025 16:12:37 +0200
|
|
Subject: [PATCH 5/7] servicerunner: typos--
|
|
|
|
---
|
|
runners/services/autotests/servicerunnertest.cpp | 4 ++--
|
|
runners/services/servicerunner.cpp | 10 +++++-----
|
|
runners/services/servicerunner.h | 2 +-
|
|
3 files changed, 8 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/runners/services/autotests/servicerunnertest.cpp b/runners/services/autotests/servicerunnertest.cpp
|
|
index ecb8a4816c..fcfd3275ac 100644
|
|
--- a/runners/services/autotests/servicerunnertest.cpp
|
|
+++ b/runners/services/autotests/servicerunnertest.cpp
|
|
@@ -27,7 +27,7 @@ private Q_SLOTS:
|
|
void initTestCase();
|
|
void cleanupTestCase();
|
|
|
|
- void testExcutableExactMatch();
|
|
+ void testExecutableExactMatch();
|
|
void testKonsoleVsYakuakeComment();
|
|
void testSystemSettings();
|
|
void testSystemSettings2();
|
|
@@ -76,7 +76,7 @@ void ServiceRunnerTest::cleanupTestCase()
|
|
{
|
|
}
|
|
|
|
-void ServiceRunnerTest::testExcutableExactMatch()
|
|
+void ServiceRunnerTest::testExecutableExactMatch()
|
|
{
|
|
const auto matches = launchQuery(QStringLiteral("Virtual Machine Manager ServiceRunnerTest")); // virt-manager.desktop
|
|
QVERIFY(std::any_of(matches.cbegin(), matches.cend(), [](const KRunner::QueryMatch &match) {
|
|
diff --git a/runners/services/servicerunner.cpp b/runners/services/servicerunner.cpp
|
|
index baef7ae50f..ced1b526ce 100644
|
|
--- a/runners/services/servicerunner.cpp
|
|
+++ b/runners/services/servicerunner.cpp
|
|
@@ -125,7 +125,7 @@ private:
|
|
GenericName,
|
|
Comment,
|
|
};
|
|
- qreal increaseMatchRelavance(const QString &serviceProperty, const QList<QStringView> &strList, Category category)
|
|
+ qreal increaseMatchRelevance(const QString &serviceProperty, const QList<QStringView> &strList, Category category)
|
|
{
|
|
// Increment the relevance based on all the words (other than the first) of the query list
|
|
qreal relevanceIncrement = 0;
|
|
@@ -273,20 +273,20 @@ private:
|
|
categoryRelevance = KRunner::QueryMatch::CategoryRelevance::Highest;
|
|
} else if (const int idx = name.indexOf(queryList[0], 0, Qt::CaseInsensitive); idx != -1) {
|
|
relevance = 0.8;
|
|
- relevance += increaseMatchRelavance(name, queryList, Category::Name);
|
|
+ relevance += increaseMatchRelevance(name, queryList, Category::Name);
|
|
if (idx == 0) {
|
|
relevance += 0.1;
|
|
categoryRelevance = KRunner::QueryMatch::CategoryRelevance::High;
|
|
}
|
|
} else if (const int idx = service->genericName().indexOf(queryList[0], 0, Qt::CaseInsensitive); idx != -1) {
|
|
relevance = 0.65;
|
|
- relevance += increaseMatchRelavance(service->genericName(), queryList, Category::GenericName);
|
|
+ relevance += increaseMatchRelevance(service->genericName(), queryList, Category::GenericName);
|
|
if (idx == 0) {
|
|
relevance += 0.05;
|
|
}
|
|
} else if (const int idx = service->comment().indexOf(queryList[0], 0, Qt::CaseInsensitive); idx != -1) {
|
|
relevance = 0.5;
|
|
- relevance += increaseMatchRelavance(service->comment(), queryList, Category::Comment);
|
|
+ relevance += increaseMatchRelevance(service->comment(), queryList, Category::Comment);
|
|
if (idx == 0) {
|
|
relevance += 0.05;
|
|
}
|
|
@@ -481,7 +481,7 @@ void ServiceRunner::processActivitiesResults(const ResultSet &results)
|
|
|
|
void ServiceRunner::match(KRunner::RunnerContext &context)
|
|
{
|
|
- ServiceFinder finder(this, m_services, m_activitiesConsuer.currentActivity());
|
|
+ ServiceFinder finder(this, m_services, m_activitiesConsumer.currentActivity());
|
|
finder.match(context);
|
|
}
|
|
|
|
diff --git a/runners/services/servicerunner.h b/runners/services/servicerunner.h
|
|
index 571d22d90c..96a110789b 100644
|
|
--- a/runners/services/servicerunner.h
|
|
+++ b/runners/services/servicerunner.h
|
|
@@ -46,7 +46,7 @@ private:
|
|
void processActivitiesResults(const ResultSet &results);
|
|
const Query m_kactivitiesQuery;
|
|
const ResultWatcher m_kactivitiesWatcher;
|
|
- const KActivities::Consumer m_activitiesConsuer;
|
|
+ const KActivities::Consumer m_activitiesConsumer;
|
|
QList<KService::Ptr> m_services;
|
|
bool m_matching = false;
|
|
};
|
|
--
|
|
2.51.0
|
|
|
|
|
|
From d25a269e9dbf6209ae51f94c298cb1ef640b045c Mon Sep 17 00:00:00 2001
|
|
From: Harald Sitter <sitter@kde.org>
|
|
Date: Sun, 13 Jul 2025 16:14:53 +0200
|
|
Subject: [PATCH 6/7] servicerunner: don't narrow qsizetype to int
|
|
|
|
use auto instead since we don't actually care about their size anyway
|
|
since we only perform trivial >=0 checks
|
|
---
|
|
runners/services/servicerunner.cpp | 10 +++++-----
|
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/runners/services/servicerunner.cpp b/runners/services/servicerunner.cpp
|
|
index ced1b526ce..551717947f 100644
|
|
--- a/runners/services/servicerunner.cpp
|
|
+++ b/runners/services/servicerunner.cpp
|
|
@@ -206,7 +206,7 @@ private:
|
|
static const auto specialArgs = {QStringLiteral("-qwindowtitle"), QStringLiteral("-qwindowicon"), QStringLiteral("--started-from-file")};
|
|
|
|
for (const auto &specialArg : specialArgs) {
|
|
- int index = resultingArgs.indexOf(specialArg);
|
|
+ auto index = resultingArgs.indexOf(specialArg);
|
|
if (index > -1) {
|
|
if (resultingArgs.count() > index) {
|
|
resultingArgs.removeAt(index);
|
|
@@ -271,20 +271,20 @@ private:
|
|
} else if (name.compare(query, Qt::CaseInsensitive) == 0) {
|
|
relevance = 1;
|
|
categoryRelevance = KRunner::QueryMatch::CategoryRelevance::Highest;
|
|
- } else if (const int idx = name.indexOf(queryList[0], 0, Qt::CaseInsensitive); idx != -1) {
|
|
+ } else if (const auto idx = name.indexOf(queryList[0], 0, Qt::CaseInsensitive); idx != -1) {
|
|
relevance = 0.8;
|
|
relevance += increaseMatchRelevance(name, queryList, Category::Name);
|
|
if (idx == 0) {
|
|
relevance += 0.1;
|
|
categoryRelevance = KRunner::QueryMatch::CategoryRelevance::High;
|
|
}
|
|
- } else if (const int idx = service->genericName().indexOf(queryList[0], 0, Qt::CaseInsensitive); idx != -1) {
|
|
+ } else if (const auto idx = service->genericName().indexOf(queryList[0], 0, Qt::CaseInsensitive); idx != -1) {
|
|
relevance = 0.65;
|
|
relevance += increaseMatchRelevance(service->genericName(), queryList, Category::GenericName);
|
|
if (idx == 0) {
|
|
relevance += 0.05;
|
|
}
|
|
- } else if (const int idx = service->comment().indexOf(queryList[0], 0, Qt::CaseInsensitive); idx != -1) {
|
|
+ } else if (const auto idx = service->comment().indexOf(queryList[0], 0, Qt::CaseInsensitive); idx != -1) {
|
|
relevance = 0.5;
|
|
relevance += increaseMatchRelevance(service->comment(), queryList, Category::Comment);
|
|
if (idx == 0) {
|
|
@@ -364,7 +364,7 @@ private:
|
|
}
|
|
seen(action);
|
|
|
|
- const int matchIndex = action.text().indexOf(query, 0, Qt::CaseInsensitive);
|
|
+ const auto matchIndex = action.text().indexOf(query, 0, Qt::CaseInsensitive);
|
|
if (matchIndex < 0) {
|
|
continue;
|
|
}
|
|
--
|
|
2.51.0
|
|
|
|
|
|
From 1a14af41b78a192d10fb5dcef93bba430872eab4 Mon Sep 17 00:00:00 2001
|
|
From: Harald Sitter <sitter@kde.org>
|
|
Date: Sun, 13 Jul 2025 16:15:55 +0200
|
|
Subject: [PATCH 7/7] servicerunner: remove inline noise
|
|
|
|
functions defined inside a definition are always inline
|
|
---
|
|
runners/services/servicerunner.cpp | 8 ++++----
|
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/runners/services/servicerunner.cpp b/runners/services/servicerunner.cpp
|
|
index 551717947f..eb9f02e74b 100644
|
|
--- a/runners/services/servicerunner.cpp
|
|
+++ b/runners/services/servicerunner.cpp
|
|
@@ -92,22 +92,22 @@ public:
|
|
}
|
|
|
|
private:
|
|
- inline void seen(const KService::Ptr &service)
|
|
+ void seen(const KService::Ptr &service)
|
|
{
|
|
m_seen.insert(service->exec());
|
|
}
|
|
|
|
- inline void seen(const KServiceAction &action)
|
|
+ void seen(const KServiceAction &action)
|
|
{
|
|
m_seen.insert(action.exec());
|
|
}
|
|
|
|
- inline bool hasSeen(const KService::Ptr &service)
|
|
+ bool hasSeen(const KService::Ptr &service)
|
|
{
|
|
return m_seen.contains(service->exec());
|
|
}
|
|
|
|
- inline bool hasSeen(const KServiceAction &action)
|
|
+ bool hasSeen(const KServiceAction &action)
|
|
{
|
|
return m_seen.contains(action.exec());
|
|
}
|
|
--
|
|
2.51.0
|
|
|