diff options
author | Luciano Wolf <luciano.wolf@openbossa.org> | 2010-02-04 16:59:52 -0300 |
---|---|---|
committer | Renato Filho <renato.filho@openbossa.org> | 2010-02-05 11:15:47 -0300 |
commit | af9f990d61600a6746567b44352986b2c575430a (patch) | |
tree | 3f0a80eb55a933ef54a49b13c76b437fb586b3a0 /PySide/QtCore/glue/qobject_connect.cpp | |
parent | 41744e427a8bd5d04c25e5849f83115ff927cfd4 (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.cpp | 25 |
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(); |