mirror of
https://github.com/status-im/dotherside.git
synced 2025-02-12 04:26:43 +00:00
Implement functionality to receive signals
- Bind QObject::connect - Bind QObject::disconnect - Add conversion to get a QObject from inside a (received) QVariant
This commit is contained in:
parent
fbcd50d673
commit
7fcd1003ca
@ -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,
|
||||
|
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user