aboutsummaryrefslogtreecommitdiffstats
path: root/libpyside/dynamicqmetaobject.cpp
diff options
context:
space:
mode:
authorrenato <renato.filho@openbossa.org>2009-12-28 16:56:41 -0300
committerHugo Lima <hugo.lima@openbossa.org>2009-12-30 14:36:39 -0200
commitb9ce558e2976e14c1027f67468205c5796e80eb6 (patch)
treebf04435ae459cedd30b32e32c1ce2bfc4f84493e /libpyside/dynamicqmetaobject.cpp
parent73b5357057b7ca2a72806313877860488cce0854 (diff)
Implemented support for classname on metaobject.
Export QMetaobject. Reviewer: Hugo Lima <hugo.lima@openbossa.org>
Diffstat (limited to 'libpyside/dynamicqmetaobject.cpp')
-rw-r--r--libpyside/dynamicqmetaobject.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/libpyside/dynamicqmetaobject.cpp b/libpyside/dynamicqmetaobject.cpp
index 4cf249434..40e74ce67 100644
--- a/libpyside/dynamicqmetaobject.cpp
+++ b/libpyside/dynamicqmetaobject.cpp
@@ -55,12 +55,13 @@ static int registerString(const QByteArray& s, QList<QByteArray>* strings)
return idx;
}
-DynamicQMetaObject::DynamicQMetaObject(const QMetaObject* metaObject)
+DynamicQMetaObject::DynamicQMetaObject(const char *className, const QMetaObject* metaObject)
{
d.superdata = metaObject;
d.stringdata = 0;
d.data = 0;
d.extradata = 0;
+ m_className = QByteArray(className);
updateMetaObject();
}
@@ -100,13 +101,16 @@ void DynamicQMetaObject::updateMetaObject()
uint n_signals = m_signals.count();
uint n_methods = n_signals + m_slots.count();
- int header[] = {2, // revision
- 0, // class name index in m_metadata
- 0, 0, // classinfo and classinfo index, not used by us
- n_methods, 0, // method count and method list index
- 0, 0, // prop count and prop indexes
- 0, 0 // enum count and enum index
- };
+ int header[] = {5, // revision
+ 0, // class name index in m_metadata
+ 0, 0, // classinfo and classinfo index, not used by us
+ n_methods, 0, // method count and method list index
+ 0, 0, // prop count and prop indexes
+ 0, 0, // enum count and enum index
+ 0, 0, // constructors
+ 0, // flags
+ n_signals // signalCount
+ };
const int HEADER_LENGHT = sizeof(header)/sizeof(int);
header[5] = HEADER_LENGHT;
@@ -117,7 +121,7 @@ void DynamicQMetaObject::updateMetaObject()
std::memcpy(data, header, sizeof(header));
QList<QByteArray> strings;
- registerString(d.superdata->className(), &strings); // register class string
+ registerString(m_className, &strings); // register class string
const int NULL_INDEX = registerString("", &strings); // register a null string
int index = HEADER_LENGHT;