[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdeutils/superkaramba
From: Sebastian Sauer <mail () dipe ! org>
Date: 2007-07-31 22:33:32
Message-ID: 1185921212.716050.13511.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 694855 by sebsauer:
some more work to connect Plasma::DataEngine together with SK.
M +85 -30 skapplet/skengineadaptor.h
M +3 -1 src/meters/meter.h
--- trunk/KDE/kdeutils/superkaramba/skapplet/skengineadaptor.h #694854:694855
@@ -26,9 +26,61 @@
#include <QVariant>
#include <plasma/dataengine.h>
+#include "../src/meters/meter.h"
+
namespace Skip {
/**
+* This is a helper class that connects a Plasma::DataEngine together
+* with a SuperKaramba Meter.
+*/
+class EngineConnector : public QObject
+{
+ Q_OBJECT
+ public:
+ explicit EngineConnector(Meter *meter) : QObject(meter), m_meter(meter) { Q_ASSERT(m_meter); }
+ virtual ~EngineConnector() {}
+ Meter* meter() const { return m_meter; }
+
+ public Q_SLOTS:
+
+ /**
+ * Returns the name of the data source.
+ */
+ QString source() const { return m_source; }
+
+ /**
+ * Set the name of the data source.
+ */
+ void setSource(const QString& source) { m_source = source; }
+
+ /**
+ * Return the format the data should used for displaying.
+ */
+ QString format() const { return m_format; }
+
+ /**
+ * Set the format the data should use for displaying.
+ */
+ void setFormat(const QString& format) { m_format = format; }
+
+ private Q_SLOTS:
+
+ void updated(const QString& source, Plasma::DataEngine::Data data) {
+ Q_UNUSED(source);
+ Q_UNUSED(data);
+ kDebug()<<"##################### EngineConnector::updated()"<<endl;
+ //if( source != m_source ) return;
+ //TODO m_meter->setValue(m_format, data.contains(m_data) ? data[m_data] : QVariant());
+ }
+
+ private:
+ Meter *m_meter;
+ QString m_source;
+ QString m_format;
+};
+
+/**
* The EngineAdaptor class implements an adaptor for
* Plasma::DataEngine objects.
*/
@@ -43,23 +95,6 @@
}
virtual ~EngineAdaptor() {}
- QVariantMap dataToMap(Plasma::DataEngine::Data data) {
- QVariantMap map;
- Plasma::DataEngine::DataIterator it(data);
- while( it.hasNext() ) {
- it.next();
- map.insert(it.key(), it.value());
- }
- return map;
- }
-
- Plasma::DataEngine::Data mapToData(QVariantMap map) {
- Plasma::DataEngine::Data data;
- for(QVariantMap::Iterator it = map.begin(); it != map.end(); ++it)
- data.insert(it.key(), it.value());
- return data;
- }
-
public Q_SLOTS:
/**
@@ -87,40 +122,43 @@
* the sourceUpdated() signal will be emitted.
*/
void connectSource(const QString& source, QObject* visualization = 0) {
- m_engine->connectSource(source, visualization ? visualization : this);
+ if( Meter* m = dynamic_cast<Meter*>(visualization) )
+ m_engine->connectSource(source, new EngineConnector(m));
+ else
+ m_engine->connectSource(source, visualization ? visualization : this);
}
/**
* Disconnect from a source.
*/
void disconnectSource(const QString& source, QObject* visualization = 0) {
- m_engine->disconnectSource(source, visualization ? visualization : this);
+ if( Meter* m = dynamic_cast<Meter*>(visualization) ) {
+ foreach(EngineConnector* c, m->findChildren<EngineConnector*>())
+ if( c->meter() == m )
+ delete c;
+ }
+ else
+ m_engine->disconnectSource(source, visualization ? visualization : this);
}
-#if 0
- /**
- * Request to update the source.
- */
- void updateSource(const QString& source, QVariantMap data = QVariantMap()) {
- //QMetaObject::invokeMethod(m_engine, "checkForUpdates");
- updated(source, mapToData(data));
- }
-#endif
-
Q_SIGNALS:
/**
* Emitted when a new data source is created
+ * \param source The name of the data source.
**/
void sourceAdded(const QString& source);
/**
* Emitted when a data source is removed.
+ * \param source The name of the data source.
**/
void sourceRemoved(const QString& source);
/**
- * Emitted when a data source is removed.
+ * Emitted when a data source got updated.
+ * \param source The name of the data source.
+ * \param data The map of the data that got changed.
**/
void sourceUpdated(const QString& source, QVariantMap data);
@@ -133,6 +171,23 @@
private:
Plasma::DataEngine* m_engine;
+
+ QVariantMap dataToMap(Plasma::DataEngine::Data data) {
+ QVariantMap map;
+ Plasma::DataEngine::DataIterator it(data);
+ while( it.hasNext() ) {
+ it.next();
+ map.insert(it.key(), it.value());
+ }
+ return map;
+ }
+
+ Plasma::DataEngine::Data mapToData(QVariantMap map) {
+ Plasma::DataEngine::Data data;
+ for(QVariantMap::Iterator it = map.begin(); it != map.end(); ++it)
+ data.insert(it.key(), it.value());
+ return data;
+ }
};
} // end of namespace SuperKarambaPlasmaApplet
--- trunk/KDE/kdeutils/superkaramba/src/meters/meter.h #694854:694855
@@ -15,10 +15,12 @@
#include <QMouseEvent>
#include <QGraphicsItem>
+#include "../superkaramba_export.h"
+
class QPainter;
class Karamba;
-class Meter : public QObject, public QGraphicsItem
+class SUPERKARAMBA_EXPORT Meter : public QObject, public QGraphicsItem
{
Q_OBJECT
public:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic