Port away from KService.

This commit is contained in:
Andrius Štikonas 2017-10-01 21:57:03 +01:00
parent bbfff249cb
commit 722ef62ebb
4 changed files with 16 additions and 8 deletions

View File

@ -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
)

View File

@ -45,7 +45,7 @@ target_link_libraries( kpmcore
${LIBATASMART_LIBRARIES}
Qt5::DBus
KF5::I18n
KF5::Service
KF5::CoreAddons
KF5::WidgetsAddons
)

View File

@ -23,10 +23,12 @@
#include <QDebug>
#include <QStringList>
#include <QString>
#include <QVector>
#include <KLocalizedString>
#include <KPluginFactory>
#include <KPluginLoader>
#include <KServiceTypeTrader>
#include <KPluginMetaData>
CoreBackendManager::CoreBackendManager() :
m_Backend(nullptr)
@ -43,10 +45,15 @@ CoreBackendManager* CoreBackendManager::self()
return instance;
}
KService::List CoreBackendManager::list() const
QVector<KPluginMetaData> 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)

View File

@ -21,10 +21,11 @@
#include "util/libpartitionmanagerexport.h"
#include <KService>
#include <QVector>
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<KPluginMetaData> list() const;
/**
* Loads the given backend plugin into the application.