Load the time engine and get data out of it.

This commit is contained in:
Sebastian Kügler 2013-06-27 04:01:34 +02:00
parent a05373595d
commit dac60f8ab8
3 changed files with 40 additions and 5 deletions

View File

@ -56,7 +56,7 @@ find_package(kdeqt5staging REQUIRED NO_MODULE)
# Load CMake, Compiler and InstallDirs settings from KF5 and the following are already somewhat "done" tier1/tier2 libs from kdelibs: # Load CMake, Compiler and InstallDirs settings from KF5 and the following are already somewhat "done" tier1/tier2 libs from kdelibs:
find_package(KF5 MODULE REQUIRED COMPONENTS CMake Compiler InstallDirs find_package(KF5 MODULE REQUIRED COMPONENTS CMake Compiler InstallDirs
XmlGui KIdleTime ItemModels KWidgetsAddons KWindowSystem KCodecs KArchive KCoreAddons Solid ThreadWeaver XmlGui KIdleTime ItemModels KWidgetsAddons KWindowSystem KCodecs KArchive KCoreAddons Solid ThreadWeaver
KConfig KAuth kjs KWallet KConfig KAuth kjs KWallet
ki18n kguiaddons kservice kwidgets ItemViews KNotifications KCompletion KJobWidgets KConfigWidgets KIconThemes) ki18n kguiaddons kservice kwidgets ItemViews KNotifications KCompletion KJobWidgets KConfigWidgets KIconThemes)
#find_package(KF5Transitional REQUIRED) #find_package(KF5Transitional REQUIRED)

View File

@ -19,6 +19,8 @@
#include "plugintest.h" #include "plugintest.h"
#include <kqpluginfactoryinterface.h>
#include <kdebug.h> #include <kdebug.h>
#include <kservice.h> #include <kservice.h>
#include <kservicetypetrader.h> #include <kservicetypetrader.h>
@ -43,6 +45,7 @@
#include <QStandardPaths> #include <QStandardPaths>
#include <QStringList> #include <QStringList>
#include <QTimer> #include <QTimer>
#include <QJsonObject>
#include <iostream> #include <iostream>
#include <iomanip> #include <iomanip>
@ -72,11 +75,45 @@ PluginTest::~PluginTest()
void PluginTest::runMain() void PluginTest::runMain()
{ {
qDebug() << "plugin test runs: "; qDebug() << "plugin test runs: ";
loadDataEngine(); //loadDataEngine();
qDebug() << " libs are in: " << QCoreApplication::libraryPaths();
qDebug() << " - - - -- - - - - ------------------------------------\n";
loadKQPlugin();
exit(0); exit(0);
return; return;
} }
void PluginTest::loadKQPlugin()
{
qDebug() << "Load KQPlugin";
QString pluginPath = "/home/sebas/kf5/install/lib/x86_64-linux-gnu/kplugins/";
QCoreApplication::addLibraryPath(pluginPath);
//QPluginLoader loader("/home/sebas/kf5/install/lib/x86_64-linux-gnu/kplugins/libkqpluginfactory.so", this);
QPluginLoader loader("/home/sebas/kf5/install/lib/x86_64-linux-gnu/plugins/kf5/kplugins/libplasma_engine_time.so", this);
KQPluginFactoryInterface *factory = qobject_cast<KQPluginFactoryInterface*>(loader.instance());
//QObject *factory = loader.instance();
if (factory) {
qDebug() << "loaded successfully and cast";
qDebug() << "metadata: " << loader.metaData();
QObject *o = factory->createPlugin("time");
qDebug() << " objec name:" << o->objectName();
Plasma::DataEngine *time_engine = qobject_cast<Plasma::DataEngine*>(o);
if (time_engine) {
qDebug() << "Successfully loaded timeengine";
time_engine->connectSource("Europe/Amsterdam", this);
qDebug() << "SOURCE: " << time_engine->sources();
} else {
qDebug() << "Timeengine failed to load. :(";
}
} else {
qDebug() << "loading failed somehow";
}
//KQPluginFactory* factory = new KQPluginFactory(KPluginInfo(), this);
}
void PluginTest::loadDataEngine(const QString &name) void PluginTest::loadDataEngine(const QString &name)
{ {
// DataEngine *engine = d->isDefaultLoader ? 0 : internalLoadDataEngine(name); // DataEngine *engine = d->isDefaultLoader ? 0 : internalLoadDataEngine(name);
@ -148,9 +185,6 @@ void PluginTest::dataUpdated(QString s, Plasma::DataEngine::Data d)
qDebug() << "new data for source: " << s << d; qDebug() << "new data for source: " << s << d;
} }
} // namespace Plasma } // namespace Plasma

View File

@ -45,6 +45,7 @@ class PluginTest : public QApplication
public Q_SLOTS: public Q_SLOTS:
void runMain(); void runMain();
void loadKQPlugin();
void loadDataEngine(const QString &name = QString()); void loadDataEngine(const QString &name = QString());
void dataUpdated(QString s, Plasma::DataEngine::Data d); void dataUpdated(QString s, Plasma::DataEngine::Data d);