From d9bec1beb54cffd8fe343fdeb7242fcd08bed89d Mon Sep 17 00:00:00 2001 From: Alexander Lohnau Date: Sat, 8 Jan 2022 10:40:25 +0100 Subject: [PATCH 1/5] Remove "Plasma" namespace from KRunner plugins Because we can not depend on unreleased KRunner API, the `using namespace Plasma` statement was manually added. When the entire project is ported to KF6, it can be removed. Task: https://phabricator.kde.org/T15140 --- runner/pimcontactsrunner.cpp | 26 +++++++++++++------------- runner/pimcontactsrunner.h | 10 ++++++---- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/runner/pimcontactsrunner.cpp b/runner/pimcontactsrunner.cpp index ae73d82..512b458 100644 --- a/runner/pimcontactsrunner.cpp +++ b/runner/pimcontactsrunner.cpp @@ -32,7 +32,7 @@ Q_DECLARE_METATYPE(KContacts::Addressee *) PIMContactsRunner::PIMContactsRunner(QObject *parent, const KPluginMetaData &metaData, const QVariantList &args) - : Plasma::AbstractRunner(parent, metaData, args) + : AbstractRunner(parent, metaData, args) { setObjectName(QStringLiteral("PIMContactsRunner")); // reloadConfiguration() called by default init() implementation @@ -45,7 +45,7 @@ void PIMContactsRunner::reloadConfiguration() mQueryAutocompleter = config().readEntry(QStringLiteral("queryAutocompleter"), true); } -void PIMContactsRunner::match(Plasma::RunnerContext &context) +void PIMContactsRunner::match(RunnerContext &context) { const QString queryString = context.query(); if (queryString.size() < 3) { @@ -60,7 +60,7 @@ void PIMContactsRunner::match(Plasma::RunnerContext &context) } } -void PIMContactsRunner::queryContacts(Plasma::RunnerContext &context, const QString &queryString) +void PIMContactsRunner::queryContacts(RunnerContext &context, const QString &queryString) { Akonadi::Search::PIM::ContactQuery query; query.matchName(queryString); @@ -120,7 +120,7 @@ void PIMContactsRunner::queryContacts(Plasma::RunnerContext &context, const QStr continue; } - Plasma::QueryMatch match(this); + QueryMatch match(this); match.setMatchCategory(i18n("Contacts")); match.setRelevance(0.75); // 0.75 is used by most runners, we don't @@ -142,16 +142,16 @@ void PIMContactsRunner::queryContacts(Plasma::RunnerContext &context, const QStr // We got perfect match by name if (name == queryString) { - match.setType(Plasma::QueryMatch::ExactMatch); + match.setType(QueryMatch::ExactMatch); // We got perfect match by one of the email addresses } else if (emails.contains(queryString)) { - match.setType(Plasma::QueryMatch::ExactMatch); + match.setType(QueryMatch::ExactMatch); matchedEmail = queryString; // We got partial match either by name, or email } else { - match.setType(Plasma::QueryMatch::PossibleMatch); + match.setType(QueryMatch::PossibleMatch); // See if the match was by one of the email addresses for (const QString &email : emails) { @@ -170,7 +170,7 @@ void PIMContactsRunner::queryContacts(Plasma::RunnerContext &context, const QStr context.addMatch(match); } else { for (const QString &email : emails) { - Plasma::QueryMatch alternativeMatch = match; + QueryMatch alternativeMatch = match; alternativeMatch.setText(i18nc("Name (email)", "%1 (%2)", name, email)); alternativeMatch.setData(QStringLiteral("mailto:%1<%2>").arg(name, email)); context.addMatch(alternativeMatch); @@ -179,21 +179,21 @@ void PIMContactsRunner::queryContacts(Plasma::RunnerContext &context, const QStr } } -void PIMContactsRunner::queryAutocompleter(Plasma::RunnerContext &context, const QString &queryString) +void PIMContactsRunner::queryAutocompleter(RunnerContext &context, const QString &queryString) { Akonadi::Search::PIM::ContactCompleter completer(queryString); const QStringList completerResults = completer.complete(); qCDebug(AKONADI_KRUNNER_LOG) << "Autocompleter returned" << completerResults.count() << "results"; for (const QString &result : completerResults) { - Plasma::QueryMatch match(this); + QueryMatch match(this); match.setRelevance(0.7); // slightly lower relevance than real addressbook contacts match.setMatchCategory(i18n("Contacts")); match.setSubtext(i18n("Autocompleted from received and sent emails")); match.setIcon(QIcon::fromTheme(QStringLiteral("user-identity"))); if (result == queryString) { - match.setType(Plasma::QueryMatch::ExactMatch); + match.setType(QueryMatch::ExactMatch); } else { - match.setType(Plasma::QueryMatch::PossibleMatch); + match.setType(QueryMatch::PossibleMatch); } QString name; @@ -214,7 +214,7 @@ void PIMContactsRunner::queryAutocompleter(Plasma::RunnerContext &context, const } } -void PIMContactsRunner::run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &match) +void PIMContactsRunner::run(const RunnerContext &context, const QueryMatch &match) { Q_UNUSED(context) diff --git a/runner/pimcontactsrunner.h b/runner/pimcontactsrunner.h index c4a3b29..f151c50 100644 --- a/runner/pimcontactsrunner.h +++ b/runner/pimcontactsrunner.h @@ -9,6 +9,8 @@ #include +using namespace Plasma; + class PIMContactsRunner : public Plasma::AbstractRunner { Q_OBJECT @@ -19,12 +21,12 @@ public: void reloadConfiguration() override; - void match(Plasma::RunnerContext &context) override; - void run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &match) override; + void match(RunnerContext &context) override; + void run(const RunnerContext &context, const QueryMatch &match) override; private: - void queryContacts(Plasma::RunnerContext &context, const QString &queryString); - void queryAutocompleter(Plasma::RunnerContext &context, const QString &queryString); + void queryContacts(RunnerContext &context, const QString &queryString); + void queryAutocompleter(RunnerContext &context, const QString &queryString); private: bool mQueryAutocompleter = true; -- GitLab From 575c675eab4c1b1d7664718db5a5ba5c5bfcbfd0 Mon Sep 17 00:00:00 2001 From: Alexander Lohnau Date: Sat, 8 Jan 2022 10:57:50 +0100 Subject: [PATCH 2/5] Use X-KDE-ConfigModule key for specifying KRunner plugin KCM The KServiceTypeTrader codepath is deprecated --- runner/CMakeLists.txt | 7 +-- runner/plasma-krunner-pimcontacts.desktop | 1 + .../plasma-krunner-pimcontacts_config.desktop | 46 ------------------- 3 files changed, 2 insertions(+), 52 deletions(-) delete mode 100644 runner/plasma-krunner-pimcontacts_config.desktop diff --git a/runner/CMakeLists.txt b/runner/CMakeLists.txt index aeb2f0f..0aff314 100644 --- a/runner/CMakeLists.txt +++ b/runner/CMakeLists.txt @@ -45,10 +45,5 @@ target_link_libraries(kcm_krunner_pimcontacts install(TARGETS krunner_pimcontacts DESTINATION "${KDE_INSTALL_PLUGINDIR}/kf5/krunner") install(TARGETS kcm_krunner_pimcontacts - DESTINATION ${KDE_INSTALL_PLUGINDIR} + DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/krunner/kcms ) -install(FILES - plasma-krunner-pimcontacts_config.desktop - DESTINATION ${SERVICES_INSTALL_DIR} -) - diff --git a/runner/plasma-krunner-pimcontacts.desktop b/runner/plasma-krunner-pimcontacts.desktop index 3377834..464ca45 100644 --- a/runner/plasma-krunner-pimcontacts.desktop +++ b/runner/plasma-krunner-pimcontacts.desktop @@ -88,3 +88,4 @@ X-KDE-PluginInfo-Name=PIM Contacts Search Runner X-KDE-PluginInfo-Version=1.0 X-KDE-PluginInfo-License=LGPL X-KDE-PluginInfo-EnabledByDefault=true +X-KDE-ConfigModule=kf5/krunner/kcms/kcm_krunner_pimcontacts \ No newline at end of file diff --git a/runner/plasma-krunner-pimcontacts_config.desktop b/runner/plasma-krunner-pimcontacts_config.desktop deleted file mode 100644 index d60935b..0000000 --- a/runner/plasma-krunner-pimcontacts_config.desktop +++ /dev/null @@ -1,46 +0,0 @@ -[Desktop Entry] -Name=PIM Contacts Search -Name[ar]=البحث في متراسلي PIM -Name[az]=PİM Kontaktları Axtarışı -Name[ca]=Cerca de contactes PIM -Name[ca@valencia]=Cerca de contactes PIM -Name[cs]=Vyhledávání kontaktů PIM -Name[da]=Søgning i PIM-kontakter -Name[de]=PIM-Kontaktsuche -Name[el]=Αναζήτηση επαφών PIM -Name[en_GB]=PIM Contacts Search -Name[es]=Búsqueda de contactos PIM -Name[et]=PIM-i kontaktide otsing -Name[eu]=PIM kontaktuen bilaketa -Name[fi]=PIM-yhteystietojen haku -Name[fr]=Recherche de contacts PIM -Name[gl]=Busca de contactos -Name[hi]=पीआईएम सम्पर्क खोज -Name[hsb]=Pytanje w PIM-kontaktach -Name[hu]=Névjegykereső -Name[ia]=Cerca de contactos de PIM -Name[it]=Ricerca contatti PIM -Name[ko]=PIM 연락처 검색 -Name[nl]=PIM in contactpersonen zoeken -Name[nn]=Søk i e-postkontaktar -Name[pl]=Wyszukiwanie kontaktów ZIO -Name[pt]=Pesquisa de Contactos PIM -Name[pt_BR]=Pesquisa de Contatos PIM -Name[ru]=Поиск контактов в PIM -Name[sk]=Hľadanie kontaktov PIM -Name[sl]=Iskanjem PIM po stikih -Name[sr]=Претрага ПИМ контаката -Name[sr@ijekavian]=Претрага ПИМ контаката -Name[sr@ijekavianlatin]=Pretraga PIM kontakata -Name[sr@latin]=Pretraga PIM kontakata -Name[sv]=Kontaktsökning i personlig informationshantering -Name[tr]=PIM Bağlantılarını Ara -Name[uk]=Пошук у записах контактів PIM -Name[x-test]=xxPIM Contacts Searchxx -Name[zh_CN]=个人信息存储联系人搜索 -Name[zh_TW]=PIM 聯絡人搜尋 -Type=Service - -X-KDE-ServiceTypes=KCModule -X-KDE-Library=kcm_krunner_pimcontacts - -- GitLab From 11599bea9dcc0ee08d183356cfc530cd2bc7eb8a Mon Sep 17 00:00:00 2001 From: Alexander Lohnau Date: Sat, 8 Jan 2022 10:58:35 +0100 Subject: [PATCH 3/5] Do not add debug sources to runner KCM This is nowhere used --- runner/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/runner/CMakeLists.txt b/runner/CMakeLists.txt index 0aff314..97a9729 100644 --- a/runner/CMakeLists.txt +++ b/runner/CMakeLists.txt @@ -33,7 +33,6 @@ add_library(kcm_krunner_pimcontacts MODULE) target_sources(kcm_krunner_pimcontacts PRIVATE pimcontactsrunnerconfig.cpp pimcontactsrunnerconfig.h - ${pimcontactsrunner_DEBUG} ) target_link_libraries(kcm_krunner_pimcontacts -- GitLab From 03bb48c918e88be1efb989ffdc598758238ae96a Mon Sep 17 00:00:00 2001 From: Alexander Lohnau Date: Sat, 8 Jan 2022 10:59:25 +0100 Subject: [PATCH 4/5] Use target-centric CMake approach for declaring runner debug category --- runner/CMakeLists.txt | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/runner/CMakeLists.txt b/runner/CMakeLists.txt index 97a9729..7a5f1d7 100644 --- a/runner/CMakeLists.txt +++ b/runner/CMakeLists.txt @@ -1,20 +1,18 @@ # SPDX-License-Identifier: CC0-1.0 # SPDX-FileCopyrightText: none -ecm_qt_declare_logging_category(pimcontactsrunner_DEBUG HEADER akonadi_runner_debug.h - IDENTIFIER AKONADI_KRUNNER_LOG - CATEGORY_NAME org.kde.pim.akonadi_krunner_plugin - DESCRIPTION "akonadisearch (akonadi plugin krunner)" - OLD_CATEGORY_NAMES log_akonadi_krunner_plugin - EXPORT AKONADISEARCH - ) - - add_library(krunner_pimcontacts MODULE) + +ecm_qt_declare_logging_category(krunner_pimcontacts HEADER akonadi_runner_debug.h + IDENTIFIER AKONADI_KRUNNER_LOG + CATEGORY_NAME org.kde.pim.akonadi_krunner_plugin + DESCRIPTION "akonadisearch (akonadi plugin krunner)" + OLD_CATEGORY_NAMES log_akonadi_krunner_plugin + EXPORT AKONADISEARCH +) target_sources(krunner_pimcontacts PRIVATE pimcontactsrunner.cpp pimcontactsrunner.h - ${pimcontactsrunner_DEBUG} ) -- GitLab From da3511c509bae0b5203d66e1b24bc2f937c1ba2b Mon Sep 17 00:00:00 2001 From: Alexander Lohnau Date: Sat, 8 Jan 2022 11:02:31 +0100 Subject: [PATCH 5/5] Utilize kcoreaddons_add_plugin for KRunner plugin and it's KCM --- runner/CMakeLists.txt | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/runner/CMakeLists.txt b/runner/CMakeLists.txt index 7a5f1d7..8df3998 100644 --- a/runner/CMakeLists.txt +++ b/runner/CMakeLists.txt @@ -1,7 +1,7 @@ # SPDX-License-Identifier: CC0-1.0 # SPDX-FileCopyrightText: none -add_library(krunner_pimcontacts MODULE) +kcoreaddons_add_plugin(krunner_pimcontacts INSTALL_NAMESPACE "kf5/krunner") ecm_qt_declare_logging_category(krunner_pimcontacts HEADER akonadi_runner_debug.h IDENTIFIER AKONADI_KRUNNER_LOG @@ -26,8 +26,8 @@ target_link_libraries(krunner_pimcontacts KF5::Codecs ) -######################## -add_library(kcm_krunner_pimcontacts MODULE) +kcoreaddons_add_plugin(kcm_krunner_pimcontacts INSTALL_NAMESPACE "kf5/krunner/kcms") + target_sources(kcm_krunner_pimcontacts PRIVATE pimcontactsrunnerconfig.cpp pimcontactsrunnerconfig.h @@ -38,9 +38,3 @@ target_link_libraries(kcm_krunner_pimcontacts KF5::KCMUtils KF5::I18n ) - -install(TARGETS krunner_pimcontacts DESTINATION "${KDE_INSTALL_PLUGINDIR}/kf5/krunner") -install(TARGETS - kcm_krunner_pimcontacts - DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/krunner/kcms -) -- GitLab