diff --git a/tqdbusmarshall.cpp b/tqdbusmarshall.cpp index bfd572a..a1177bb 100644 --- a/tqdbusmarshall.cpp +++ b/tqdbusmarshall.cpp @@ -231,8 +231,51 @@ static TQValueList parseSignature(TQCString& signature) qSingleTypeForDBusSignature(signature[0]); if (elementType != TQT_DBusData::Invalid) { - TQT_DBusDataList list(elementType); - result << TQT_DBusData::fromList(list); + switch (elementType) + { + case TQT_DBusData::Byte: + result << TQT_DBusData::fromByte( + (0)); + break; + case TQT_DBusData::Int16: + result << TQT_DBusData::fromInt16( + (0)); + break; + case TQT_DBusData::UInt16: + result << TQT_DBusData::fromUInt16( + (0)); + break; + case TQT_DBusData::Int32: + result << TQT_DBusData::fromInt32( + (0)); + break; + case TQT_DBusData::UInt32: + result << TQT_DBusData::fromUInt32( + (0)); + break; + case TQT_DBusData::Int64: + result << TQT_DBusData::fromInt64( + (0)); + break; + case TQT_DBusData::UInt64: + result << TQT_DBusData::fromUInt64( + (0)); + break; + case TQT_DBusData::String: + result << TQT_DBusData::fromString( + (TQString())); + break; + case TQT_DBusData::ObjectPath: + result << TQT_DBusData::fromObjectPath( + (TQT_DBusObjectPath())); + break; + default: + result << TQT_DBusData(); + tqWarning("TQT_DBusMarshall: unsupported element type %s " + "at de-marshalling", + TQT_DBusData::typeName(elementType)); + break; + } signature = signature.mid(1); } else {