Fix assert with when ActiveQt server changes status bar text.
authorMiikka Heikkinen <miikka.heikkinen@digia.com>
Thu, 5 Jul 2012 08:06:04 +0000 (11:06 +0300)
committerQt by Nokia <qt-info@nokia.com>
Thu, 5 Jul 2012 10:27:42 +0000 (12:27 +0200)
commita3ca652b8f81999235db6a595f38adfbd499a42d
tree63eec495182403915af69812e2a363eaaeb69b30
parentf4fb6abcc5bda601881b846613eb882b5a2db94d
Fix assert with when ActiveQt server changes status bar text.

QAxServerBase has a custom implementation of qt_metacall() to convert
any signals generated by the server to COM events. However,
QStatusBar::messageChanged() signal has a custom handling where it
doesn't generate a COM event for it but instead directly modifies the
status bar of the application. This special case was detected by
connecting the signal to slot '-1' and then intercepting signals to
that slot in qt_metacall(). However, somewhere along the way
signal/slot internals have changed so that unsigned shorts are used
for slot indexes, which meant qt_metacall() got signal for slot 65535
instead of -1 and therefore didn't properly intercept messageChanged().

Fixed by changing the custom slot index to one that will not get
mangled by int to unsigned short conversions.

Task-number: QTBUG-26422
Change-Id: I889cb19d1569425ff157a9d897de1cbb4a3f02b6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
src/activeqt/control/qaxserverbase.cpp