aboutsummaryrefslogtreecommitdiffstats
path: root/libpyside/globalreceiver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libpyside/globalreceiver.cpp')
-rw-r--r--libpyside/globalreceiver.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/libpyside/globalreceiver.cpp b/libpyside/globalreceiver.cpp
index 89902126c..435e22aa0 100644
--- a/libpyside/globalreceiver.cpp
+++ b/libpyside/globalreceiver.cpp
@@ -162,6 +162,8 @@ GlobalReceiver::GlobalReceiver()
{
//slot used to be notifyed of object destrouction
m_metaObject.addSlot(RECEIVER_DESTROYED_SLOT_NAME);
+ m_metaObject.update();
+ setObjectName("GLOBAL RECEIVER");
}
GlobalReceiver::~GlobalReceiver()
@@ -198,13 +200,12 @@ void GlobalReceiver::disconnectNotify(QObject* source, int slotId)
const QMetaObject* GlobalReceiver::metaObject() const
{
- return &m_metaObject;
+ return m_metaObject.update();
}
-void GlobalReceiver::addSlot(const char* slot, PyObject* callback)
+int GlobalReceiver::addSlot(const char* slot, PyObject* callback)
{
- m_metaObject.addSlot(slot);
- int slotId = m_metaObject.indexOfSlot(slot);
+ int slotId = m_metaObject.addSlot(slot);
if (!m_slotReceivers.contains(slotId))
m_slotReceivers[slotId] = new DynamicSlotData(slotId, callback, this);
@@ -219,8 +220,8 @@ void GlobalReceiver::addSlot(const char* slot, PyObject* callback)
if (isShortCircuit)
m_shortCircuitSlots << slotId;
-
Q_ASSERT(slotId >= QObject::staticMetaObject.methodCount());
+ return slotId;
}
void GlobalReceiver::removeSlot(int slotId)
@@ -248,7 +249,7 @@ int GlobalReceiver::qt_metacall(QMetaObject::Call call, int id, void** args)
{
Q_ASSERT(call == QMetaObject::InvokeMetaMethod);
Q_ASSERT(id >= QObject::staticMetaObject.methodCount());
- QMetaMethod slot = m_metaObject.method(id);
+ QMetaMethod slot = metaObject()->method(id);
Q_ASSERT(slot.methodType() == QMetaMethod::Slot);
if (strcmp(slot.signature(), RECEIVER_DESTROYED_SLOT_NAME) == 0) {