diff --git a/CMakeLists.txt b/CMakeLists.txt index e9f70be..fad3278 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,7 +55,7 @@ find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS # Load the frameworks we need find_package(KF5 REQUIRED I18n - Service + CoreAddons WidgetsAddons ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 74a82fd..6708a64 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -45,7 +45,7 @@ target_link_libraries( kpmcore ${LIBATASMART_LIBRARIES} Qt5::DBus KF5::I18n - KF5::Service + KF5::CoreAddons KF5::WidgetsAddons ) diff --git a/src/backend/corebackendmanager.cpp b/src/backend/corebackendmanager.cpp index 4b3263a..7ddef4c 100644 --- a/src/backend/corebackendmanager.cpp +++ b/src/backend/corebackendmanager.cpp @@ -23,10 +23,12 @@ #include #include #include +#include #include +#include #include -#include +#include CoreBackendManager::CoreBackendManager() : m_Backend(nullptr) @@ -43,10 +45,15 @@ CoreBackendManager* CoreBackendManager::self() return instance; } -KService::List CoreBackendManager::list() const +QVector CoreBackendManager::list() const { - return KServiceTypeTrader::self()->query(QStringLiteral("PartitionManager/Plugin"), - QStringLiteral("[X-KDE-PluginInfo-Category] == 'BackendPlugin'")); + auto filter = [&](const KPluginMetaData &metaData) { + return metaData.serviceTypes().contains(QStringLiteral("PartitionManager/Plugin")) && + metaData.category().contains(QStringLiteral("BackendPlugin")); + }; + + // find backend plugins in standard path (e.g. /usr/lib64/qt5/plugins) using filter from above + return KPluginLoader::findPlugins(QString(), filter); } bool CoreBackendManager::load(const QString& name) diff --git a/src/backend/corebackendmanager.h b/src/backend/corebackendmanager.h index be7fd21..9946292 100644 --- a/src/backend/corebackendmanager.h +++ b/src/backend/corebackendmanager.h @@ -21,10 +21,11 @@ #include "util/libpartitionmanagerexport.h" -#include +#include class QString; class QStringList; +class KPluginMetaData; class CoreBackend; /** @@ -55,7 +56,7 @@ public: /** * @return a list of available backend plugins */ - KService::List list() const; + QVector list() const; /** * Loads the given backend plugin into the application.