Merge pull request #32 from Calrama/signals

Implement functionality to receive any signals
This commit is contained in:
Filippo Cucchetto 2015-12-24 13:55:29 +01:00
commit 3dd62f2c4b
2 changed files with 48 additions and 0 deletions

View File

@ -72,6 +72,7 @@ DOS_API void dos_qvariant_toDouble(void* vptr, double* result);
DOS_API void dos_qvariant_setDouble(void* vptr, double value);
DOS_API void dos_qvariant_toString(void* vptr, char** result);
DOS_API void dos_qvariant_setString(void* vptr, const char* value);
DOS_API void dos_qvariant_toQObject(void* vptr, void** value);
DOS_API void dos_qvariant_setQObject(void* vptr, void* value);
DOS_API void dos_qvariant_setQAbstractListModel(void* vptr, void* value);
DOS_API void dos_qvariant_isnull(void* vptr, bool* result);
@ -96,6 +97,17 @@ DOS_API void dos_qobject_signal_emit(void* vptr,
const char* name,
int parametersCount,
void** parameters);
DOS_API void dos_qobject_signal_connect(void* senderVPtr,
const char* signal,
void* receiverVPtr,
const char* method,
int type,
bool* result);
DOS_API void dos_qobject_signal_disconnect(void* senderVPtr,
const char* signal,
void* receiverVPtr,
const char* method,
bool* result);
DOS_API void dos_qobject_property_create(void* vptr,
const char* name,
int propertyMetaType,

View File

@ -270,6 +270,12 @@ void dos_qvariant_toString(void* vptr, char** ptr)
convert_to_cstring(variant->toString(), ptr);
}
void dos_qvariant_toQObject(void* vptr, void** value)
{
auto variant = reinterpret_cast<QVariant*>(vptr);
*value = variant->value<QObject*>();
}
void dos_qvariant_setInt(void* vptr, int value)
{
auto variant = reinterpret_cast<QVariant*>(vptr);
@ -372,6 +378,36 @@ void dos_qobject_signal_emit(void* vptr, const char* name, int parametersCount,
dynamicQObject->emitSignal(QString::fromStdString(name), arguments);
}
void dos_qobject_signal_connect(void* senderVPtr,
const char* signal,
void* receiverVPtr,
const char* method,
int type,
bool* result)
{
auto sender = reinterpret_cast<QObject*>(senderVPtr);
auto receiver = reinterpret_cast<QObject*>(receiverVPtr);
*result = QObject::connect(sender,
signal,
receiver,
method,
(Qt::ConnectionType) type);
}
void dos_qobject_signal_disconnect(void* senderVPtr,
const char* signal,
void* receiverVPtr,
const char* method,
bool* result)
{
auto sender = reinterpret_cast<QObject*>(senderVPtr);
auto receiver = reinterpret_cast<QObject*>(receiverVPtr);
*result = QObject::disconnect(sender,
signal,
receiver,
method);
}
void dos_qobject_property_create(void* vptr,
const char* name,
int type,