• Skip to content
  • Skip to link menu
KDE 4.1 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

Plasma

plasmajs.cpp

Go to the documentation of this file.
00001 /*
00002 Copyright (c) 2007 Zack Rusin <zack@kde.org>
00003 
00004 Permission is hereby granted, free of charge, to any person obtaining a copy
00005 of this software and associated documentation files (the "Software"), to deal
00006 in the Software without restriction, including without limitation the rights
00007 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
00008 copies of the Software, and to permit persons to whom the Software is
00009 furnished to do so, subject to the following conditions:
00010 
00011 The above copyright notice and this permission notice shall be included in
00012 all copies or substantial portions of the Software.
00013 
00014 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00015 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00016 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
00017 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00018 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
00019 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
00020 THE SOFTWARE.
00021  */
00022 #include "plasmajs.h"
00023 
00024 #include "plasma/dataenginemanager.h"
00025 #include "plasma/dataengine.h"
00026 
00027 #include <QDebug>
00028 
00029 using namespace Plasma;
00030 
00031 PlasmaJs::PlasmaJs(QObject *parent)
00032     : QObject(parent)
00033 {
00034 }
00035 
00036 QObject *PlasmaJs::dataEngine(const QString &name)
00037 {
00038     DataEngine *engine = DataEngineManager::self()->engine(name);
00039     DataEngineWrapper *wrapper =  new DataEngineWrapper(engine);
00040     qDebug()<<"engine is "<<wrapper;
00041     qDebug()<<"\t name = "<<wrapper->engineName()<<", valid = "<<wrapper->isValid();
00042     return wrapper;
00043 }
00044 
00045 QObject *PlasmaJs::loadDataEngine(const QString& name)
00046 {
00047     DataEngine *engine = DataEngineManager::self()->loadEngine(name);
00048     //engine = new TestJs(this);
00049     DataEngineWrapper *wrapper = new DataEngineWrapper(engine);
00050     qDebug()<<"engine is "<<wrapper;
00051     qDebug()<<"engine sources "<<wrapper->sources();
00052     qDebug()<<"res = "<<wrapper->query("world");
00053     return wrapper;
00054 }
00055 
00056 void PlasmaJs::unloadDataEngine(const QString& name)
00057 {
00058     return DataEngineManager::self()->unloadEngine(name);
00059 }
00060 
00061 QStringList PlasmaJs::knownEngines()
00062 {
00063     return DataEngineManager::listAllEngines();
00064 }
00065 
00066 TestJs::TestJs(QObject *parent)
00067     : QObject(parent)
00068 {
00069 }
00070 
00071 void TestJs::test()
00072 {
00073     qDebug()<<"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
00074     qDebug()<<"XXXXXXX YES XXXXXXX";
00075 }
00076 
00077 DataEngineDataWrapper::DataEngineDataWrapper(const DataEngine::Data &data)
00078     : m_data(data)
00079 {
00080 }
00081 
00082 int DataEngineDataWrapper::size() const
00083 {
00084     return m_data.count();
00085 }
00086 
00087 QVariant DataEngineDataWrapper::value(const QString &key) const
00088 {
00089     return m_data[key];
00090 }
00091 
00092 QStringList DataEngineDataWrapper::keys() const
00093 {
00094     return m_data.keys();
00095 }
00096 
00097 QString DataEngineDataWrapper::key(int i) const
00098 {
00099     return m_data.keys().at(i);
00100 }
00101 
00102 DataEngineWrapper::DataEngineWrapper(Plasma::DataEngine *engine)
00103     : QObject(engine), m_engine(engine)
00104 {
00105     DataEngineManager::self()->loadEngine(engine->name()); //FIXME it's getting loaded twice
00106 }
00107 
00108 QStringList DataEngineWrapper::sources() const
00109 {
00110     return m_engine->sources();
00111 }
00112 
00113 QString DataEngineWrapper::engineName() const
00114 {
00115     return m_engine->name();
00116 }
00117 
00118 bool DataEngineWrapper::isValid() const
00119 {
00120     return m_engine->isValid();
00121 }
00122 
00123 QString DataEngineWrapper::icon() const
00124 {
00125     return m_engine->icon();
00126 }
00127 
00128 QObject * DataEngineWrapper::query(const QString &str) const
00129 {
00130     DataEngine::Data data = m_engine->query(str);
00131     return new DataEngineDataWrapper(data);
00132 }
00133 
00134 DataEngineWrapper::~DataEngineWrapper()
00135 {
00136     DataEngineManager::self()->unloadEngine(m_engine->name()); //FIXME it might be getting unloaded twice
00137 }
00138 
00139 #include "plasmajs.moc"

Plasma

Skip menu "Plasma"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members

API Reference

Skip menu "API Reference"
  • KWin
  •   KWin Libraries
  • Libraries
  •   libkworkspace
  •   libplasma
  •   libsolidcontrol
  •   libtaskmanager
  • Plasma
  •   Animators
  •   Applets
  •   Engines
  • Solid Modules
Generated for API Reference by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal