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 # Load the frameworks we need
find_package(KF5 REQUIRED find_package(KF5 REQUIRED
I18n I18n
Service CoreAddons
WidgetsAddons WidgetsAddons
) )

View File

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

View File

@ -23,10 +23,12 @@
#include <QDebug> #include <QDebug>
#include <QStringList> #include <QStringList>
#include <QString> #include <QString>
#include <QVector>
#include <KLocalizedString> #include <KLocalizedString>
#include <KPluginFactory>
#include <KPluginLoader> #include <KPluginLoader>
#include <KServiceTypeTrader> #include <KPluginMetaData>
CoreBackendManager::CoreBackendManager() : CoreBackendManager::CoreBackendManager() :
m_Backend(nullptr) m_Backend(nullptr)
@ -43,10 +45,15 @@ CoreBackendManager* CoreBackendManager::self()
return instance; return instance;
} }
KService::List CoreBackendManager::list() const QVector<KPluginMetaData> CoreBackendManager::list() const
{ {
return KServiceTypeTrader::self()->query(QStringLiteral("PartitionManager/Plugin"), auto filter = [&](const KPluginMetaData &metaData) {
QStringLiteral("[X-KDE-PluginInfo-Category] == 'BackendPlugin'")); 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) bool CoreBackendManager::load(const QString& name)

View File

@ -21,10 +21,11 @@
#include "util/libpartitionmanagerexport.h" #include "util/libpartitionmanagerexport.h"
#include <KService> #include <QVector>
class QString; class QString;
class QStringList; class QStringList;
class KPluginMetaData;
class CoreBackend; class CoreBackend;
/** /**
@ -55,7 +56,7 @@ public:
/** /**
* @return a list of available backend plugins * @return a list of available backend plugins
*/ */
KService::List list() const; QVector<KPluginMetaData> list() const;
/** /**
* Loads the given backend plugin into the application. * Loads the given backend plugin into the application.