Added parameters names for signals

In this way a user can access the signal argument as "arg0", "arg1" etc.
This commit is contained in:
Filippo Cucchetto 2016-04-09 13:54:57 +02:00
parent ff3734a2f3
commit 49c571ecaa

View File

@ -7,6 +7,16 @@
namespace {
QList<QByteArray> createParameterNames(const DOS::SignalDefinition& signal)
{
QList<QByteArray> result;
size_t size = signal.parameterTypes.size();
result.reserve(size);
for (size_t i = 0; i < size; ++i)
result << QString("arg%1").arg(i).toUtf8();
return result;
}
template<class T>
QByteArray createSignature(const T &functionDefinition)
{
@ -116,6 +126,7 @@ QMetaObject *DosQMetaObject::createMetaObject(const QString &className,
QMetaMethodBuilder signalBuilder = builder.addSignal(::createSignature(signal));
signalBuilder.setReturnType(QMetaType::typeName(QMetaType::Void));
signalBuilder.setAccess(QMetaMethod::Public);
signalBuilder.setParameterNames(createParameterNames(signal));
m_signalIndexByName[signal.name] = signalBuilder.index();
}