Qt 4.8
Signals | Public Functions | List of all members
QDeclarativePropertyMap Class Reference

The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings. More...

#include <qdeclarativepropertymap.h>

Inheritance diagram for QDeclarativePropertyMap:
QObject

Signals

void valueChanged (const QString &key, const QVariant &value)
 This signal is emitted whenever one of the values in the map is changed. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 

Public Functions

void clear (const QString &key)
 Clears the value (if any) associated with key. More...
 
bool contains (const QString &key) const
 Returns true if the map contains key. More...
 
int count () const
 Same as size(). More...
 
void insert (const QString &key, const QVariant &value)
 Sets the value associated with key to value. More...
 
bool isEmpty () const
 Returns true if the map contains no keys; otherwise returns false. More...
 
Q_INVOKABLE QStringList keys () const
 Returns the list of keys. More...
 
QVariantoperator[] (const QString &key)
 Returns the value associated with the key key as a modifiable reference. More...
 
QVariant operator[] (const QString &key) const
 Same as value(). More...
 
 QDeclarativePropertyMap (QObject *parent=0)
 Constructs a bindable map with parent object parent. More...
 
int size () const
 Returns the number of keys in the map. More...
 
QVariant value (const QString &key) const
 Returns the value associated with key. More...
 
virtual ~QDeclarativePropertyMap ()
 Destroys the bindable map. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool event (QEvent *)
 This virtual function receives events to an object and should return true if the event e was recognized and processed. More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings.

Since
4.7

QDeclarativePropertyMap provides a convenient way to expose domain data to the UI layer. The following example shows how you might declare data in C++ and then access it in QML.

In the C++ file:

// create our data
ownerData.insert("name", QVariant(QString("John Smith")));
ownerData.insert("phone", QVariant(QString("555-5555")));
// expose it to the UI layer
ctxt->setContextProperty("owner", &ownerData);
view.setSource(QUrl::fromLocalFile("main.qml"));
view.show();

Then, in main.qml:

Text { text: owner.name + " " + owner.phone }

The binding is dynamic - whenever a key's value is updated, anything bound to that key will be updated as well.

To detect value changes made in the UI layer you can connect to the valueChanged() signal. However, note that valueChanged() is NOT emitted when changes are made by calling insert() or clear() - it is only emitted when a value is updated from QML.

Note
It is not possible to remove keys from the map; once a key has been added, you can only modify or clear its associated value.

Definition at line 57 of file qdeclarativepropertymap.h.

Constructors and Destructors

◆ QDeclarativePropertyMap()

QDeclarativePropertyMap::QDeclarativePropertyMap ( QObject parent = 0)

Constructs a bindable map with parent object parent.

Definition at line 145 of file qdeclarativepropertymap.cpp.

146 : QObject(*(new QDeclarativePropertyMapPrivate), parent)
147 {
149  d->mo = new QDeclarativePropertyMapMetaObject(this, d);
150 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings...
Q_INVOKABLE QObject(QObject *parent=0)
Constructs an object with parent object parent.
Definition: qobject.cpp:753

◆ ~QDeclarativePropertyMap()

QDeclarativePropertyMap::~QDeclarativePropertyMap ( )
virtual

Destroys the bindable map.

Definition at line 155 of file qdeclarativepropertymap.cpp.

156 {
157 }

Functions

◆ clear()

void QDeclarativePropertyMap::clear ( const QString key)

Clears the value (if any) associated with key.

Definition at line 162 of file qdeclarativepropertymap.cpp.

163 {
165  d->mo->setValue(key.toUtf8(), QVariant());
166 }
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:92
double d
Definition: qnumeric_p.h:62
QByteArray toUtf8() const Q_REQUIRED_RESULT
Returns a UTF-8 representation of the string as a QByteArray.
Definition: qstring.cpp:4074
#define Q_D(Class)
Definition: qglobal.h:2482
The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings...

◆ contains()

bool QDeclarativePropertyMap::contains ( const QString key) const

Returns true if the map contains key.

See also
size()

Definition at line 256 of file qdeclarativepropertymap.cpp.

257 {
259  return d->keys.contains(key);
260 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings...

◆ count()

int QDeclarativePropertyMap::count ( ) const

Same as size().

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 222 of file qdeclarativepropertymap.cpp.

223 {
225  return d->keys.count();
226 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings...

◆ insert()

void QDeclarativePropertyMap::insert ( const QString key,
const QVariant value 
)

Sets the value associated with key to value.

If the key doesn't exist, it is automatically created.

Definition at line 185 of file qdeclarativepropertymap.cpp.

Referenced by operator[]().

186 {
188  //The following strings shouldn't be used as property names
189  if (key != QLatin1String("keys")
190  && key != QLatin1String("valueChanged")
191  && key != QLatin1String("QObject")
192  && key != QLatin1String("destroyed")
193  && key != QLatin1String("deleteLater")) {
194  d->mo->setValue(key.toUtf8(), value);
195  } else {
196  qWarning() << "Creating property with name"
197  << key
198  << "is not permitted, conflicts with internal symbols.";
199  }
200 }
double d
Definition: qnumeric_p.h:62
QByteArray toUtf8() const Q_REQUIRED_RESULT
Returns a UTF-8 representation of the string as a QByteArray.
Definition: qstring.cpp:4074
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
#define Q_D(Class)
Definition: qglobal.h:2482
The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings...
QVariant value(const QString &key) const
Returns the value associated with key.
Q_CORE_EXPORT void qWarning(const char *,...)

◆ isEmpty()

bool QDeclarativePropertyMap::isEmpty ( ) const

Returns true if the map contains no keys; otherwise returns false.

See also
size()

Definition at line 245 of file qdeclarativepropertymap.cpp.

246 {
248  return d->keys.isEmpty();
249 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings...

◆ keys()

QStringList QDeclarativePropertyMap::keys ( ) const

Returns the list of keys.

Keys that have been cleared will still appear in this list, even though their associated values are invalid QVariants.

Definition at line 208 of file qdeclarativepropertymap.cpp.

209 {
211  return d->keys;
212 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings...

◆ operator[]() [1/2]

QVariant & QDeclarativePropertyMap::operator[] ( const QString key)

Returns the value associated with the key key as a modifiable reference.

If the map contains no item with key key, the function inserts an invalid QVariant into the map with key key, and returns a reference to it.

See also
insert(), value()

Definition at line 272 of file qdeclarativepropertymap.cpp.

273 {
274  //### optimize
276  QByteArray utf8key = key.toUtf8();
277  if (!d->keys.contains(key))
278  insert(key, QVariant());//force creation -- needed below
279 
280  return (*(d->mo))[utf8key];
281 }
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:92
double d
Definition: qnumeric_p.h:62
QByteArray toUtf8() const Q_REQUIRED_RESULT
Returns a UTF-8 representation of the string as a QByteArray.
Definition: qstring.cpp:4074
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
void insert(const QString &key, const QVariant &value)
Sets the value associated with key to value.
#define Q_D(Class)
Definition: qglobal.h:2482
The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings...

◆ operator[]() [2/2]

QVariant QDeclarativePropertyMap::operator[] ( const QString key) const

Same as value().

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 291 of file qdeclarativepropertymap.cpp.

292 {
293  return value(key);
294 }
QVariant value(const QString &key) const
Returns the value associated with key.

◆ size()

int QDeclarativePropertyMap::size ( ) const

Returns the number of keys in the map.

See also
isEmpty(), count()

Definition at line 233 of file qdeclarativepropertymap.cpp.

234 {
236  return d->keys.size();
237 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings...

◆ value()

QVariant QDeclarativePropertyMap::value ( const QString key) const

Returns the value associated with key.

If no value has been set for this key (or if the value has been cleared), an invalid QVariant is returned.

Definition at line 174 of file qdeclarativepropertymap.cpp.

Referenced by insert(), and operator[]().

175 {
177  return d->mo->value(key.toUtf8());
178 }
double d
Definition: qnumeric_p.h:62
QByteArray toUtf8() const Q_REQUIRED_RESULT
Returns a UTF-8 representation of the string as a QByteArray.
Definition: qstring.cpp:4074
#define Q_D(Class)
Definition: qglobal.h:2482
The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings...

◆ valueChanged

void QDeclarativePropertyMap::valueChanged ( const QString key,
const QVariant value 
)
signal

This signal is emitted whenever one of the values in the map is changed.

key is the key corresponding to the value that was changed.

Note
valueChanged() is NOT emitted when changes are made by calling insert() or clear() - it is only emitted when a value is updated from QML.

The documentation for this class was generated from the following files: