plasma-framework/examples/dataengines/simpleEngine/simpleEngine.cpp

61 lines
2.2 KiB
C++

/*
SPDX-FileCopyrightText: 2011 Aaron Seigo <aseigo@kde.org>
SPDX-License-Identifier: BSD-2-Clause
*/
#include <QColor>
#include <QTime>
#include <KLocalizedString>
#include "simpleEngine.h"
/*
This DataEngine provides a static set of data that is created on
engine creation. This is a common pattern for DataEngines that relay
information such as hardware events and shows the most basic form of
a DataEngine
*/
SimpleEngine::SimpleEngine(QObject *parent, const QVariantList &args)
: Plasma::DataEngine(parent, args)
{
// we've passed the constructor's args to our parent class
// we're done for now! Call init()
init();
}
void SimpleEngine::init()
{
// So now we will set up some sources.
// Each DataEngine will, generally, be loaded once. Each DataEngine
// can provide multiple sets of data keyed by a string, called "Sources".
// In this simplest of cases, we just create some sources arbitrarily.
// This is the simplest form, with source name and one bit of data.
// Note how the source name is not translated! They can be marked with
// I18N_NOOP, however, if they should be translatable in a visualization.
setData(QStringLiteral("Simple Source"), i18n("Very simple data"));
// a source can have multiple entries, differentiated by key names,
// which are also not translated:
setData(QStringLiteral("Multiple Source"), QStringLiteral("First"), i18n("First"));
setData(QStringLiteral("Multiple Source"), QStringLiteral("Second"), i18n("Second"));
// We can also set the data up first and apply it all at once
// Note how data types other than strings can be used as well; anything
// that works with QVariant, in fact.
Plasma::DataEngine::Data data;
data.insert(QStringLiteral("Cow"), QStringLiteral("mooo"));
data.insert(QStringLiteral("Black"), QColor(0, 0, 0));
data.insert(QStringLiteral("Time"), QTime::currentTime());
setData(QStringLiteral("Another Source"), data);
}
// export the plugin; use the plugin name and the class name
K_PLUGIN_CLASS_WITH_JSON(SimpleEngine, "plasma-dataengine-example-simpleEngine.json")
// include the moc file so the build system makes it for us
#include "simpleEngine.moc"