• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kde-runtime API Reference
  • KDE Home
  • Contact Us
 

PlasmaCore

  • sources
  • kde-4.14
  • kde-runtime
  • plasma
  • declarativeimports
  • core
datasource.h
Go to the documentation of this file.
1 /*
2  * Copyright 2009 by Alan Alpert <alan.alpert@nokia.com>
3  * Copyright 2010 by Ménard Alexis <menard@kde.org>
4  * Copyright 2010 by Marco MArtin <mart@kde.org>
5 
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU Library General Public License as
8  * published by the Free Software Foundation; either version 2, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details
15  *
16  * You should have received a copy of the GNU Library General Public
17  * License along with this program; if not, write to the
18  * Free Software Foundation, Inc.,
19  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  */
21 
22 #ifndef DATASOURCE_H
23 #define DATASOURCE_H
24 
25 #include <QObject>
26 
27 
28 #include <QDeclarativePropertyMap>
29 
30 #include "dataengineconsumer_p.h"
31 #include <Plasma/DataEngine>
32 #include <qdeclarative.h>
33 
34 
35 class QDeclarativePropertyMap;
36 
37 
38 namespace Plasma
39 {
40 class DataEngine;
41 
42 class DataSource : public QObject, DataEngineConsumer
43 {
44  Q_OBJECT
45 public:
46  enum Change {
47  NoChange = 0,
48  DataEngineChanged = 1,
49  SourcesChanged = 2
50  };
51  Q_DECLARE_FLAGS(Changes, Change)
52 
53  typedef QHash<QString, QVariant> Data;
54 
55  DataSource(QObject* parent=0);
56 
60  Q_PROPERTY(bool valid READ valid)
61  bool valid() const {return m_dataEngine && m_dataEngine->isValid();}
62 
66  Q_PROPERTY(int interval READ interval WRITE setInterval NOTIFY intervalChanged)
67  int interval() const {return m_interval;}
68  void setInterval(const int interval);
69 
73  Q_PROPERTY(QString dataEngine READ engine WRITE setEngine NOTIFY engineChanged)
74  Q_PROPERTY(QString engine READ engine WRITE setEngine NOTIFY engineChanged)
75  QString engine() const {return m_engine;}
76  void setEngine(const QString &e);
77 
81  Q_PROPERTY(QStringList connectedSources READ connectedSources WRITE setConnectedSources NOTIFY connectedSourcesChanged)
82  QStringList connectedSources() const {return m_connectedSources;}
83  void setConnectedSources(const QStringList &s);
84 
88  Q_PROPERTY(QStringList sources READ sources NOTIFY sourcesChanged)
89  QStringList sources() const {if (m_dataEngine) return m_dataEngine->sources(); else return QStringList();}
90 
95  Q_PROPERTY(QVariantHash data READ data NOTIFY dataChanged);
96  QVariantHash data() const {return m_data;}
97 
102  Q_INVOKABLE Plasma::Service *serviceForSource(const QString &source);
103 
107  Q_INVOKABLE void connectSource(const QString &source);
108 
112  Q_INVOKABLE void disconnectSource(const QString &source);
113 
114 protected Q_SLOTS:
115  void dataUpdated(const QString &sourceName, const Plasma::DataEngine::Data &data);
116  void removeSource(const QString &source);
117  void setupData();
118 
119 Q_SIGNALS:
120  void newData(const QString &sourceName, const Plasma::DataEngine::Data &data);
121  void sourceAdded(const QString &source);
122  void sourceRemoved(const QString &source);
123  void sourceConnected(const QString &source);
124  void sourceDisconnected(const QString &source);
125  void intervalChanged();
126  void engineChanged();
127  void dataChanged();
128  void connectedSourcesChanged();
129  void sourcesChanged();
130 
131 private:
132  QString m_id;
133  int m_interval;
134  QString m_engine;
135  QVariantHash m_data;
136  Plasma::DataEngine* m_dataEngine;
137  QStringList m_connectedSources;
138  QStringList m_oldSources;
139  QStringList m_newSources;
140  Changes m_changes;
141  QHash<QString, Plasma::Service *> m_services;
142 };
143 Q_DECLARE_OPERATORS_FOR_FLAGS(DataSource::Changes)
144 }
145 #endif
Plasma::DataSource::data
QVariantHash data() const
Definition: datasource.h:96
Plasma::DataSource::dataUpdated
void dataUpdated(const QString &sourceName, const Plasma::DataEngine::Data &data)
Definition: datasource.cpp:139
QDeclarativePropertyMap
Plasma::DataSource::interval
int interval() const
Definition: datasource.h:67
Plasma::DataSource::SourcesChanged
Definition: datasource.h:49
Plasma::DataSource::engine
QString engine() const
Definition: datasource.h:75
Plasma::DataSource::sourceDisconnected
void sourceDisconnected(const QString &source)
Plasma::DataSource::sourceRemoved
void sourceRemoved(const QString &source)
Plasma::DataSource::connectedSources
QStringList connectedSources() const
Definition: datasource.h:82
Plasma::DataSource::dataChanged
void dataChanged()
Plasma::DataSource::sourceAdded
void sourceAdded(const QString &source)
Plasma::DataSource::setupData
void setupData()
Definition: datasource.cpp:95
Plasma::DataSource::removeSource
void removeSource(const QString &source)
Definition: datasource.cpp:152
Plasma::DataSource::Change
Change
Definition: datasource.h:46
Plasma::DataSource::connectSource
Q_INVOKABLE void connectSource(const QString &source)
Connect a new source.
Definition: datasource.cpp:185
Plasma::DataSource::DataEngineChanged
Definition: datasource.h:48
QHash
QObject
Plasma::DataSource::connectedSourcesChanged
void connectedSourcesChanged()
Plasma::DataSource::NoChange
Definition: datasource.h:47
Plasma::DataSource::setConnectedSources
void setConnectedSources(const QStringList &s)
Definition: datasource.cpp:41
Plasma::DataSource::setInterval
void setInterval(const int interval)
Definition: datasource.cpp:83
QString
QStringList
Plasma::DataSource::dataEngine
QString dataEngine
Plugin name of the Plasma DataEngine.
Definition: datasource.h:73
Plasma::DataSource::newData
void newData(const QString &sourceName, const Plasma::DataEngine::Data &data)
dataengineconsumer_p.h
Plasma::DataSource::sources
QStringList sources() const
Definition: datasource.h:89
Plasma::DataEngineConsumer
Definition: dataengineconsumer_p.h:53
Plasma::DataSource::sourceConnected
void sourceConnected(const QString &source)
Plasma::DataSource::sourcesChanged
void sourcesChanged()
Plasma::DataSource
Definition: datasource.h:42
Plasma::DataSource::setEngine
void setEngine(const QString &e)
Definition: datasource.cpp:72
Plasma::DataSource::disconnectSource
Q_INVOKABLE void disconnectSource(const QString &source)
Disconnects from a DataEngine Source.
Definition: datasource.cpp:199
QObject::parent
QObject * parent() const
Plasma::DataSource::intervalChanged
void intervalChanged()
Plasma::DataSource::serviceForSource
Q_INVOKABLE Plasma::Service * serviceForSource(const QString &source)
Definition: datasource.cpp:172
Plasma::DataSource::engineChanged
void engineChanged()
Plasma::DataSource::valid
bool valid() const
Definition: datasource.h:61
QVariant
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:08:28 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

PlasmaCore

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

kde-runtime API Reference

Skip menu "kde-runtime API Reference"
  • KCMShell
  • KNotify
  • Plasma Runtime
  •     PlasmaCore
  •     DragAndDrop
  •     PlasmaComponents
  •     PlasmaExtraComponents
  •     QtExtraComponents

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal