diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2011-08-30 16:02:43 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:54:49 -0300 |
commit | a7e4ddb8cae99fc17ab5e15a0a32c019c3f3a494 (patch) | |
tree | f311d76015b86751e365c2973752a19f38fc6f51 /libpyside | |
parent | f5f9c23c5f98ac3ce3afd4bf2de03259dff66553 (diff) |
Fix bug 988 - "The type supplied with currentChanged signal in QTabWidget has changed in 1.0.6"
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'libpyside')
-rw-r--r-- | libpyside/pysidesignal.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libpyside/pysidesignal.cpp b/libpyside/pysidesignal.cpp index 9b8cbc076..3308035a4 100644 --- a/libpyside/pysidesignal.cpp +++ b/libpyside/pysidesignal.cpp @@ -777,6 +777,12 @@ static void _addSignalToWrapper(SbkObjectType* wrapperType, const char* signalNa PyDict_SetItemString(typeDict, signalName, reinterpret_cast<PyObject*>(signal)); } +// This function is used by qStableSort to promote empty signatures +static bool compareSignals(const QByteArray& sig1, const QByteArray& sig2) +{ + return sig1.isEmpty(); +} + void registerSignals(SbkObjectType* pyObj, const QMetaObject* metaObject) { typedef QHash<QByteArray, QList<QByteArray> > SignalSigMap; @@ -801,7 +807,8 @@ void registerSignals(SbkObjectType* pyObj, const QMetaObject* metaObject) self->initialized = 0; self->homonymousMethod = 0; - qSort(it.value().begin(), it.value().end()); + // Empty signatures comes first! So they will be the default signal signature + qStableSort(it.value().begin(), it.value().end(), &compareSignals); SignalSigMap::mapped_type::const_iterator j = it.value().begin(); SignalSigMap::mapped_type::const_iterator endJ = it.value().end(); for (; j != endJ; ++j) |