blob: 3262525803550a0d6d5201bbfa2a074268586223 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#ifndef QTMETAOBJECTPUBLISHER_H
#define QTMETAOBJECTPUBLISHER_H
#include <QObject>
#include <QVariantMap>
#include <QPointer>
#include <QStringList>
class QtMetaObjectPublisher : public QObject
{
Q_OBJECT
Q_PROPERTY(QStringList objectNames READ objectNames)
public:
explicit QtMetaObjectPublisher(QObject *parent = 0);
Q_INVOKABLE QVariantMap classInfoForObject(QObject*);
QStringList objectNames() { return objects.keys(); }
Q_INVOKABLE QObject* namedObject(const QString& name) {
if (!objects.contains(name))
return 0;
return objects[name];
}
public slots:
void addObject(const QString& name, QObject* object)
{
objects[name] = object;
}
private:
QMap<QString, QPointer<QObject> > objects;
};
#endif // QTMETAOBJECTPUBLISHER_H
|