diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2010-10-06 14:49:12 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2010-10-07 11:44:07 -0300 |
commit | 15b0e9aa2b16109aa293ab446a8edc533af56658 (patch) | |
tree | 85028a568e1cc9c4b5dd95aae4c9f3f4025ece6d /libpyside/dynamicqmetaobject.h | |
parent | 6b8d262b4067bffd4e5a9611c07b862aa64d2538 (diff) |
Add a d-pointer to DynamicMetaObject.
This break the ABI.
Diffstat (limited to 'libpyside/dynamicqmetaobject.h')
-rw-r--r-- | libpyside/dynamicqmetaobject.h | 54 |
1 files changed, 4 insertions, 50 deletions
diff --git a/libpyside/dynamicqmetaobject.h b/libpyside/dynamicqmetaobject.h index 22387a6e3..b2f018eda 100644 --- a/libpyside/dynamicqmetaobject.h +++ b/libpyside/dynamicqmetaobject.h @@ -26,59 +26,18 @@ #include "pysidemacros.h" #include <Python.h> #include <QMetaObject> -#include <QLinkedList> -#include <QByteArray> -#include <QSharedPointer> - -#define PYSIDE_SLOT_LIST_ATTR "_slots" - -class QObject; namespace PySide { -class MethodData -{ -public: - MethodData(){} - MethodData(const char* signature, const char* type); - void clear(); - bool isValid() const; - QByteArray signature() const; - QByteArray type() const; - bool operator==(const MethodData& other) const; - bool operator==(const char* other) const; - -private: - QSharedPointer<QByteArray> m_signature; - QSharedPointer<QByteArray> m_type; -}; - -class PropertyData -{ -public: - PropertyData(); - PropertyData(const char*name, PyObject *data); - QByteArray name() const; - QByteArray type() const; - uint flags() const; - bool isValid() const; - bool operator==(const PropertyData& other) const; - bool operator==(const char* name) const; - -private: - QByteArray m_name; - PyObject* m_data; -}; - class PYSIDE_API DynamicQMetaObject : public QMetaObject { public: DynamicQMetaObject(const char* className, const QMetaObject* metaObject); ~DynamicQMetaObject(); - void addSignal(const char* signal, const char* type=0); - void addSlot(const char* slot, const char* type=0); + void addSignal(const char* signal, const char* type = 0); + void addSlot(const char* slot, const char* type = 0); void addProperty(const char* property, PyObject* data); void removeSignal(uint idex); @@ -89,13 +48,8 @@ public: static DynamicQMetaObject* createBasedOn(PyObject* obj, PyTypeObject* type, const QMetaObject* base); private: - QLinkedList<MethodData> m_signals; - QLinkedList<MethodData> m_slots; - QLinkedList<PropertyData> m_properties; - QByteArray m_className; - - void updateMetaObject(); - void writeMethodsData(QLinkedList<MethodData>& methods, unsigned int **data, QList<QByteArray> *strings, int *index, int max_count, int null_index, int flags); + class DynamicQMetaObjectPrivate; + DynamicQMetaObjectPrivate* m_d; }; PYSIDE_API inline void deleteDynamicQMetaObject(void* data) |