aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/QtCore/glue/qobject_connect.cpp
diff options
context:
space:
mode:
authorLuciano Wolf <luciano.wolf@openbossa.org>2010-02-04 16:59:52 -0300
committerRenato Filho <renato.filho@openbossa.org>2010-02-05 11:15:47 -0300
commitaf9f990d61600a6746567b44352986b2c575430a (patch)
tree3f0a80eb55a933ef54a49b13c76b437fb586b3a0 /PySide/QtCore/glue/qobject_connect.cpp
parent41744e427a8bd5d04c25e5849f83115ff927cfd4 (diff)
Backporting Qt4.6 support from PySide (Boost) to Shiboken, plus:
Implemented inject code for QState.addTransition - by Renato Araujo. QState test - by Renato Araujo.
Diffstat (limited to 'PySide/QtCore/glue/qobject_connect.cpp')
-rw-r--r--PySide/QtCore/glue/qobject_connect.cpp25
1 files changed, 3 insertions, 22 deletions
diff --git a/PySide/QtCore/glue/qobject_connect.cpp b/PySide/QtCore/glue/qobject_connect.cpp
index 5d9143f7c..4fc120a78 100644
--- a/PySide/QtCore/glue/qobject_connect.cpp
+++ b/PySide/QtCore/glue/qobject_connect.cpp
@@ -1,33 +1,14 @@
-static void registerDynSignalSlot(QObject* source, const char* signature, QMetaMethod::MethodType type)
-{
- const QMetaObject* metaObject = source->metaObject();
- int methodIndex = metaObject->indexOfMethod(signature);
- // Create the dynamic signal is needed
- if (methodIndex == -1) {
- SbkBaseWrapper* self = (SbkBaseWrapper*) BindingManager::instance().retrieveWrapper(source);
- if (!self->containsCppWrapper) {
- qWarning() << "You can't add dynamic signals or slots on an object originated from C++.";
- } else {
- PySide::DynamicQMetaObject* dynMetaObj = reinterpret_cast<PySide::DynamicQMetaObject*>(const_cast<QMetaObject*>(metaObject));
- if (type == QMetaMethod::Signal)
- dynMetaObj->addSignal(signature);
- else
- dynMetaObj->addSlot(signature);
- }
- }
-}
-
static bool qobjectConnect(QObject* source, const char* signal, QObject* receiver, const char* slot, Qt::ConnectionType type)
{
if (!PySide::checkSignal(signal))
return false;
signal++;
- registerDynSignalSlot(source, signal, QMetaMethod::Signal);
+ PySide::SignalManager::registerMetaMethod(source, signal, QMetaMethod::Signal);
bool isSignal = PySide::isSignal(slot);
slot++;
- registerDynSignalSlot(receiver, slot, isSignal ? QMetaMethod::Signal : QMetaMethod::Slot);
+ PySide::SignalManager::registerMetaMethod(receiver, slot, isSignal ? QMetaMethod::Signal : QMetaMethod::Slot);
return QObject::connect(source, signal - 1, receiver, slot - 1, type);
}
@@ -37,7 +18,7 @@ static bool qobjectConnectCallback(QObject* source, const char* signal, PyObject
return false;
signal++;
- registerDynSignalSlot(source, signal, QMetaMethod::Signal);
+ PySide::SignalManager::registerMetaMethod(source, signal, QMetaMethod::Signal);
int signalIndex = source->metaObject()->indexOfMethod(signal);
PySide::SignalManager& signalManager = PySide::SignalManager::instance();