Mercurial > projects > qtd
view include/QObjectEntity.h @ 322:7c2cf27391c4 signals
A slight change of the connect syntax. More sofisticated signals/slots lookup. Some fixes in examples.
author | eldar_ins@eldar-laptop |
---|---|
date | Sun, 27 Dec 2009 21:13:38 +0500 |
parents | 34a37904ff77 |
children | 18bd68f586c6 |
line wrap: on
line source
#ifndef QQOBJECTENTITY_H #define QQOBJECTENTITY_H #include "qtd_core.h" #include <qobject.h> #include <iostream> QTD_EXPORT(void, qtd_delete_d_qobject, (void* dPtr)) #ifdef CPP_SHARED #define qtd_delete_d_qobject qtd_get_qtd_delete_d_qobject() #endif //TODO: user data ID must be registered with QObject::registerUserData; #define userDataId 0 class QtD_QObjectEntity : public QtD_Entity, public QObjectUserData { public: QtD_QObjectEntity(QObject *qObject, void *dId) : QtD_Entity(dId) { qObject->setUserData(userDataId, this); } virtual ~QtD_QObjectEntity() { if (dId) destroyEntity(); } inline void destroyEntity(QObject *qObject = NULL) { Q_ASSERT(dId); qtd_delete_d_qobject(dId); if (qObject) { qObject->setUserData(userDataId, NULL); dId = NULL; } } inline static QtD_QObjectEntity* getQObjectEntity(const QObject *qObject) { return static_cast<QtD_QObjectEntity*>(qObject->userData(userDataId)); } }; #endif // QQOBJECTENTITY_H