Fixed problems to emit signals with objects types.
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
Lauro Moura <lauro.neto@openbossa.org>
This commit is contained in:
parent
44998fd471
commit
4ebad6745f
1 changed files with 8 additions and 3 deletions
|
|
@ -201,10 +201,15 @@ static bool emitNormalSignal(QObject* source, int signalIndex, const char* signa
|
||||||
for (i = 0; i < argsGiven; ++i) {
|
for (i = 0; i < argsGiven; ++i) {
|
||||||
QByteArray typeName = argTypes[i].toAscii();
|
QByteArray typeName = argTypes[i].toAscii();
|
||||||
Shiboken::TypeResolver* typeResolver = Shiboken::TypeResolver::get(typeName);
|
Shiboken::TypeResolver* typeResolver = Shiboken::TypeResolver::get(typeName);
|
||||||
int typeId = QMetaType::type(typeName);
|
if (typeResolver) {
|
||||||
if (typeResolver && typeId) {
|
if (Shiboken::TypeResolver::getType(typeName) == Shiboken::TypeResolver::ValueType) {
|
||||||
if (Shiboken::TypeResolver::getType(typeName) == Shiboken::TypeResolver::ValueType)
|
int typeId = QMetaType::type(typeName);
|
||||||
|
if (!typeId) {
|
||||||
|
PyErr_Format(PyExc_TypeError, "Value type used on signal needs to be registered on meta type: %s", typeName.data());
|
||||||
|
break;
|
||||||
|
}
|
||||||
signalValues[i] = QVariant(typeId, (void*) 0);
|
signalValues[i] = QVariant(typeId, (void*) 0);
|
||||||
|
}
|
||||||
signalArgs[i+1] = signalValues[i].data();
|
signalArgs[i+1] = signalValues[i].data();
|
||||||
typeResolver->toCpp(PySequence_Fast_GET_ITEM(sequence.object(), i), &signalArgs[i+1]);
|
typeResolver->toCpp(PySequence_Fast_GET_ITEM(sequence.object(), i), &signalArgs[i+1]);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue