summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
Commit message (Collapse)AuthorAgeFilesLines
...
* Better error reporting in case of connection failure.Olivier Goffart2011-12-202-20/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use Q_STATIC_ASSERT_X give a better error message. If C++11 is used, you get the string in the error. Else, clicking on the QStaticFailure error still shows you the string in the qobject.h source code) And report better failure if the return types do not match. (Without the static assert, you would still have a compilation error, but in an unrelated place, with no reference to the actual connect() call. The error was thrown from the virtual call QSlotObject::call, without saying where it was instantiated) Previously the error was relying on the existence of a type inside CheckCompatibleArguments, but the Q_STATIC_ASSERT requires a bool (hence the introduction of CheckCompatibleArguments::value) There also was a typo in the return value of AreArgumentsCompatible::dummy that made that code not work, and that error not be reported. (Instead, the error was reported when QObjectSlot::call is instantiated) Specialization of AreArgumentsCompatible for the void type have been added because if the return value of a signal or slot is void, the connection should work. Change-Id: I5a93ec787ce2a4b94a26630ca31d5001cd294e4d Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Do not call QueuedConnection slot on partialy destroyed objectOlivier Goffart2011-12-191-1/+1
| | | | | | | | | | | | This is a regression introduced in Qt 4.8 When QApplication::processEvents is called from a destructor, it is possible that pending events would still be called on the already destroyed subclass. Prevent that by using the same pattern as in QMetaObject::activate Change-Id: Ida50db07ae089264402dafcde7a41a066479d08b Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Make QMetaTypeInterface POD.Jędrzej Nowacki2011-12-192-26/+31
| | | | | | | | | QMetaTypeInterface has to be POD because it is constructed in a static array. Constructors in POD types are not allowed so we will use a macro instead. Change-Id: Iab9ae776dfe4dcd7148558f02d6181c5917aa5c3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Merge integrity support into unix.Robin Burchell2011-12-151-19/+1
| | | | | | | | | | | | | Since integrity was pulling in all the same code (except the glib-in-QT_CONFIG branch), we can just merge this in. This shouldn't break integrity unless they somehow magically inject glib into QT_CONFIG without actually having glib, but the removal of redundancy makes this worthwhile. Change-Id: I527b5e60bea4452fdca5eedfe729214f16519234 Reviewed-by: Rolland Dudemaine <rolland@ghs.com> Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* Remove Symbian support from /src/corelib/kernel/.Robin Burchell2011-12-157-2570/+1
| | | | | | | Change-Id: Ic4a1b4f074d2ffd4cdfcb44e47c9bfccc2378760 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* Split timer handling out of QEventDispatcherUnix.Robin Burchell2011-12-155-387/+511
| | | | | | | | This makes it easier to see the guts of the unix event dispatcher, and to experiment with it. Change-Id: I715bb68c4de6798e10bc55304a128b88e0249c63 Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* Remove unused ownObjectName field from QObjectDataBradley T. Hughes2011-12-151-2/+1
| | | | | | | | | | This field isn't used at all in qtbase, nor in any of the qt5 submodules. Change-Id: If57d389935593f797818506a220c6a3cc04b6078 Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove QT_JAMBI_BUILD codeBradley T. Hughes2011-12-154-80/+2
| | | | | Change-Id: Ic9231b11293af4352f11cf075893175f0c9a471f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Correct sizeof(QObjectData) after out-of-order cherry-picks by GerritBradley T. Hughes2011-12-151-1/+1
| | | | | | | | | | Commits a6ae75f92a8628c727a9c5a9961fa91c583c008e and 6f0f9f69288925ef423c542ef5eb7302a5431867 were cherry-picked in the wrong order (despite the dependencies shown in Gerrit), causing the QObjectData::unused bitfield to be too large. Change-Id: I65acaa8b507f7f6f2c5735f45bd0ad8343abea54 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix typos in QObject::(dis)connect warningsGiuseppe D'Angelo2011-12-151-11/+11
| | | | | | | | For some strange reason "Object::method ..." was printed, without the leading Q. Change-Id: I10b99e8aa8730e4020d15b3e04a01004bade76c3 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Move QAbstractItemModel into a separate directory.Stephen Kelly2011-12-134-4045/+0
| | | | | Change-Id: Ib505520dd5b52743634befbf3f148d7f8c21ec44 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make QApplication::type() set by QGuiApplication.Frederik Gladhorn2011-12-122-0/+14
| | | | | | | | | | | | | | | QApplication::type used to be static and set by the QApplicationPrivate constructors. In QCoreApplication we have the new application_type that should take its place. QApplication::GuiServer is deprecated (since it doesn't have any functionallity any more with QWS being removed). This change prepares QStyle to be called from a QQuickCanvase based application that does not inherit the QWidget version of QApplication. Change-Id: Ifbe992e25f1e5821fa047b6eb915f75fa675ab97 Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
* Remove QMetaObject guards and deprecate QPointer.Bradley T. Hughes2011-12-106-140/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QWeakPointer is superior and preferred. Remove QMetaObject::addGuard(), QMetaObject::changeGuard(), QMetaObject::removeGuard(), and QObjectPrivate::clearGuards(). Implement QPointer using QWeakPointer<T> instead. This changes the behavior of QPointer in 2 ways: - During destruction of a QWidget. Previously, the destructor of QWidget would reset all QPointers so that they would return zero when destroying children. Update tst_QPointer to account for this change. - When constructing a QSharedPointer to take ownership of an object after a QPointer is already tracking the object. Previously, the shared pointer construction would not be affected by the QPointer, but now that QPointer is implemented using QWeakPoiner, constructing the QSharedPointer will cause an abort(). Fix tst_QSharedPointer by removing the use of QPointer in the objectCast() test. These behavior changes are documented in the QPointer class documentation and in the changes file. Change-Id: I92d0276219c076ece7bcb60f6e1b9120ce4f5747 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Don't overload the meaning of QObjectData::wasDeletedBradley T. Hughes2011-12-102-6/+8
| | | | | | | | | | | | | | | | | | The union in QObjectPrivate of declarativeData and currentChildBeingDeleted shouldn't use wasDeleted to determining the meaning of the unioned pointer. Instead, add QObjectData::isDeletingChildren, set that in QObjectPrivate::deleteChildren(), and only use the currentChildBeingDeleted member when the parent's isDeletingChildren is set. This solves aborts seen in autotests when widgets are deleting window children. The abort comes from QWeakPointer on the parent in the child's close event handler (the abort checks that wasDeleted is not set). Change-Id: I1a58449159d4a5312aad8ba12e559d05d6c43d93 Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Remove the backwards compatibility signal emissions when moving items.Stephen Kelly2011-12-081-12/+0
| | | | | | Change-Id: I29a44835d3397c1dbf37026daf0c5234dae770e0 Reviewed-by: David Faure <faure@kde.org> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Avoid variable shadowing in qobject_impl.hKent Hansen2011-12-081-1/+1
| | | | | | | | | Some people like to build their Qt-based projects with -Wshadow -Werror, and since qobject_impl.h is included from a public Qt header, their build breaks. Change-Id: I5d8a5ee1937092149a18c0ff66a723f5bfc9ffc3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Re-add QInternal::EventNotifyCallbackBradley T. Hughes2011-12-051-0/+8
| | | | | | | | | This is needed by QtScript, so we need to keep it for now. Change-Id: Iee6bd7daf7e86a09242523f5aca72ede413a6981 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove QInternal callbacks and internal functionsBradley T. Hughes2011-12-022-55/+0
| | | | | | | | | | | | | | | | After commit 79f675a1e0f628bbc25345ebc1eb1f5809166c6b, the connect and disconnect callback API effectively becomes useless. Now that these callbacks cannot/do not, it makes little sense to keep the backdoors added for Qt Jambi support. Remove them for now. Should the Qt Jambi team want/need to port to Qt 5, we can re-add them, possibly designing a better API for doing so as well. Change-Id: I6209a1d647d683c979d5294b632b8c12c0f9f91c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Revert "Add QObject::objectNameChanged(const QString &objectName) signal"Martin Jones2011-12-022-14/+6
| | | | | | | | | | | This reverts commit ba635d7e74472f3a54c0c4686966af46d9035c6f. Breaks tests in declarative: tst_qdeclarativeecmascript::deleteLater tst_qquickvisualdatamodel::objectListModel Change-Id: I467b45109332e66fc62f3de00f376b1b88ab19ca Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
* Add QObject::objectNameChanged(const QString &objectName) signalBradley T. Hughes2011-12-012-6/+14
| | | | | | | | | | | | | | | | | | | This is sent when the object's name changes. tst_moc must be updated since the method count of QObject has changed. The test assumed that there were 4 invokable methods in QObject. The new signal is the 5th, which breaks the test's assumptions. Fix this as well. tst_QObject must be updated since the QObjectPrivate::isSignalConnected() method only supports the first 64 signals. With the addition of this new signal, sig61() in the test becomes the 65th signal, and will always appear connected now. Task-number: QTBUG-13999 (related) Change-Id: Ie87893c71a231fafa7ccf2f16102238a7be8327a Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Improve Q_CONSTRUCTOR_FUNCTION and Q_DESTRUCTOR_FUNCTION macros.Jędrzej Nowacki2011-12-011-2/+2
| | | | | | | | | | | | | By adding anonymous namespace and static linkage we are reducing visibility of implementation of these macros. This patch also fixes warning about a declared but unused variable which was issued by gcc 4.6 for Q_CONSTRUCTOR_FUNCTION. Change-Id: I2cb70ad4c93f6f77e5518420abcce6fd4cadccfa Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* Polish QWinEventNotifier.Friedemann Kleint2011-12-012-7/+6
| | | | | | | | Fix docs, remove redundant Q_DISABLE_COPY. Change-Id: I8398fb71bced5ac6f7eb8613cd2f8d10c325f056 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Make QWinEventNotifier part of the public APIDebao Zhang2011-12-014-18/+105
| | | | | | | | | | | | QWinEventNotifier is an essential class if you're using native Windows Overlapped IO and need to convert it to Qt signals. However the header is marked private. Task-number: QTBUG-68 Change-Id: I22e9a84da97f969ddb82e9ba15e604a01abd80d0 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Merge QObject::tr*() and QCoreApplication::translate() overloadsBradley T. Hughes2011-11-305-61/+11
| | | | | | | | These were marked as TODO items for Qt 5. Do them now. (The TODO item was added when plural support was added back in the early Qt 4 days.) Change-Id: I3be50bc657582db730401103d691234695784340 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Support for up to 6 arguments in the new connection syntaxOlivier Goffart2011-11-301-0/+139
| | | | | | | For compilations without variadic template support Change-Id: I78af4f6022ad7a0923e5c5788a34eb7d834f50f3 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Fix Qt::QueuedConnection when signal has a return valueOlivier Goffart2011-11-301-2/+4
| | | | | | | | | | For queued connections, the args[0] is set to null as it make no sens to forward the return value to the signal. So we need to check in the operator, that the pointer is not null. (container.data is args[0]) Change-Id: I80bde66f1ec19de0f4962c80e5b2797d2819075c Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Fix a deadlock in QMetaType.Jędrzej Nowacki2011-11-291-8/+12
| | | | | | | | | | | QMetaType should unlock all mutexes guarding custom types data before calling an user code. Task-number: QTBUG-22930 Change-Id: I501d011d6cbd467d8f22402d668e84aa848061b8 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Support Qt::UniqueConnection in the new connection syntaxOlivier Goffart2011-11-292-13/+59
| | | | | | | | | | This commit also improves the related documentation a bit. The test is copied from the test with the old syntax, but all the connection statement are changed to use the new syntax Change-Id: Ia5630ca4335b9f8ca6d724ae3c8750d6f0804d8e Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Reduce code dupplication in QObject::connectOlivier Goffart2011-11-291-29/+22
| | | | | | | | | Move from each implementation of QObject::connect to QObjectPrivate::addConnection the code that adds the QObjectPrivate::Connection* to the sender's list. Change-Id: I665af016d5e6673eb0e9c06965e5deed50454b28 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* QObject::disconnect with new syntaxOlivier Goffart2011-11-293-13/+137
| | | | | | | | | | | | | | | | | | | | | This add an overload to disconnect which is symetrical to the new syntax of connect. It is possible to diconnect connection like this: QObject::connect( sender, &Sender::valueChanged, receiver, &Receiver::updateValue ); QObject::disconnect( sender, &Sender::valueChanged, receiver, &Receiver::updateValue ); This overload only work with pointer to member function, and not static functions or functors. The test is copied from tst_QObject::disconnect(), just changed the syntax of the connection and disconnection Change-Id: Ia8f819100cb12098e32877522b97b732b1e676a8 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Redefinition of QVariant::Type.Jędrzej Nowacki2011-11-291-60/+58
| | | | | | | | | | QVariant::Type is redundant, it copies QMetaType::Type enum. In long term it might be removed completely, but it wouldn't be a source compatible change. Change-Id: Ibe79ca0ab43918b4cf767cd7a5040f865abbf03f Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove obsolete QMetaObject::activate() overloads.Bradley T. Hughes2011-11-292-27/+2
| | | | | | | | | | | | | | | The overloads taking a range were previously used for cloned signals (ones that had default arguments). Commit 919b723088b8617b202b92d80b8d0983e4fd9500 changed how cloned signals are handled, making the from,to overloads obsolete. The 3 argument activate() overload that does not take a QMetaObject argument was marked obsolete by the same commit, but considering that it is used by our autotests, I've decided to keep it and not mark it as obsolete anymore. Change-Id: I631ce84dce156dec68cf26e10787cb35e3f50e18 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix documentation for QVariant::Type enum.Jędrzej Nowacki2011-11-281-1/+1
| | | | | | | | QPolygonF was missing. QPointArray doesn't exist anymore. Change-Id: I764508f67d859c8519b44a6a1ee19d1f96ebe1cf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix linking of the QObject test under Windows.Friedemann Kleint2011-11-281-2/+2
| | | | | Change-Id: Iced5a37893969f555f39d3f4683b32ca2a399365 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QMetaTypeInterface: Fix warning about multiple default ConstructorsFriedemann Kleint2011-11-251-1/+1
| | | | | Change-Id: Ifc806d63a743c68ce830f44f14dd1434bbdbc40e Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Add support for QueuedConnection when connecting using the new syntaxOlivier Goffart2011-11-254-13/+71
| | | | | | | QMetaCallEvent now can handle a pointer to QSlotObjectBase Change-Id: I94da1e68ce9bb1fd96a9ae013a389552eb625faa Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* New QObject connection syntaxOlivier Goffart2011-11-255-10/+624
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In addition to the old connection syntax, you can now connect using function pointers. connect(sender, &Sender::valueChanged, receiver, &Receiver::updateValue ); You can connect also to functor or C++11 lambdas The connections are now type safe (no more problems with namespaces or typedefs). Implicit type conversion is also supported. The new syntax forces us to change the meaning of signal form protected to public, in order to be able to access the signal's address everywhere The way it works is by introducing new overload of QObject::connect that take function pointer as parametter. Those new overload are template function, that are implemented inline. The actual implementation is in QObject::connectImpl which take a QObject::QSlotObject* as parametter for the slot. That slot object contains a virtual function which call the slot which has to be implemented in the header as it depends on the template parametter. So the internals of QObjectPrivate::Connection will store this QObjectSlot* in order to be able to make the call. You can read a full description here: http://developer.qt.nokia.com/wiki/New_Signal_Slot_Syntax History of commits before it was imported on gerrit: https://qt.gitorious.org/~ogoffart/qt/ogoffarts-qtbase/commits/qobject_connect_ptr Thread on the mailing list: http://lists.qt.nokia.com/pipermail/qt5-feedback/2011-August/000796.html http://lists.qt.nokia.com/pipermail/qt5-feedback/2011-September/001248.html (The discussions on the mailing list were about trying to find a solution that do not need making signals public, but no user friendly solution was found) Note: support for QueuedConnection, and the symetric QObject::disconnect is added in another commit. Qt::UniqueConnection is not supported yet in the new overload. Change-Id: I67d08436b0720e7f2992be9f7e34770960fa58fa Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Change the return value of QObject::connectOlivier Goffart2011-11-255-61/+183
| | | | | | | | | | | | | | | | | | | | | | | | From a bool to a handle to to connection. Also added a new overload of disconnect that disconnect a handle This is required because with the new syntax taking lambda or functors, it is the only way to disconnect a connection (as it is impossible to compare functors) The new return value is QMetaObject::Connection, it is a wrapper around the internal QObjectPrivate::Connection. QObjectPrivate::Connection is now reference counted. tst_qglobal.cpp: This test set up an internal callback, and the callback do not set any proper connection handle (and tbh, it would be hard for it to do so). So the returned QMetaObject::Connection is invalid, and ok is false (Internal callbacks are only used for jambi and should probably be removed) Change-Id: I111626fb4f47efc4db5e2ea5bff9da15f08fea7b Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add a parents parameter to layoutChange signals.Stephen Kelly2011-11-242-4/+12
| | | | | | | | | | This allows for more focussed notification of what part of the model has changed layout. The slots in the proxy models can be more optimized later. Change-Id: I1bd17465b4be6f8efdc107036db897c557fcb519 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Move QScopedLoopLevelCounter to qthread_p.hBradley T. Hughes2011-11-241-10/+1
| | | | | | | | | | ... and use it in QCoreApplication::notifyInterna() instead of "reinventing" the wheel there. The constructor and destructor for QScopedLoopLevelCounter are inline, so the class does not need to be exported. Change-Id: I7af5a4ef0987f277bcc50c1057f3c74152f3d79d Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Code cleanup in QVariant and QMetaType.Jędrzej Nowacki2011-11-222-31/+69
| | | | | | | | | QMetaTypeGuiHelper was generalized and renamed to QMetaTypeInterface. From now all types will have common interface which can be used for basic operations. Change-Id: I50d67f4a8081fa0f75c9d530a8211593ec37bc55 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Add spaces for string concatenation to work around C++11 source incompatibility.hjk2011-11-211-1/+1
| | | | | | Change-Id: I6acb7dca20d3bfcb24ea798c7ecd1a12464af5a6 Reviewed-by: QTBUG-22847 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Add a roles argument to the dataChanged signal.Stephen Kelly2011-11-212-2/+7
| | | | | | | | | This allows more granular reporting of what has changed. This change is binary incompatible and source compatible. Change-Id: I7c5beaee651a24780cc94e41383f7a80210bc603 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Reimplement some QMetaType methods.Jędrzej Nowacki2011-11-171-369/+205
| | | | | | | | | Methods of QMetaType; sizeOf, construct and destruct were reimplement using QMetaTypeSwitcher. The change should have impact only on maintenance (by removing 3 type switches). Change-Id: Iac3eb52de75d46f12ac32f229a26aec5b5bc7af2 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Reimplement QMetaType::typeName.Jędrzej Nowacki2011-11-171-97/+35
| | | | | | | | | New implementation is slightly faster (~30%) and it is not dependent on order of definitions in QMetType::Type. Which means that we do not have to maintain a separate type list. Change-Id: I0ceb8c919c08afaa55146fbc3f021b78ffc2c063 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix Qt namespace compilation.Toby Tomkins2011-11-161-0/+4
| | | | | Change-Id: I259b5fde8e4d75d28def8650c4c9208accdf0bbe Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Hide QVariant helper classes in a namespace.Jędrzej Nowacki2011-11-151-0/+2
| | | | | | | | | Moving these classes to an unnamed namespace reduced chances of a name conflict and size of executable. GCC 4.6 in release mode produces a 5kB smaller binary. Change-Id: Ie1819a88180f9db1cd32cc59ea6fe268ecbd5813 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Allow to create a custom event dispatcher for specific QThreads.Sven Anderson2011-11-154-25/+37
| | | | | | | | | | | | | | QAbstractEventDispatcher() does no longer install itself into the current thread. Instead the new methods QThread::setEventDispatcher() and QCoreApplication::setEventDispatcher() allow to install a custom event dispatcher into any QThread as long as there is no default event dispatcher created yet. That is, before the thread has been started with QThread::start() or, in case of the main thread, before QCoreApplication has been instantiated. Change-Id: I7367e13d8d8aebed5a5651260bb69b8818eb1b90 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* moc: support mapping pointers to member functions to indexesOlivier Goffart2011-11-141-1/+2
| | | | | | | | | | | | | This change adds QMetaObject::IndexOfMethod as a parameter to the qt_static_metacall function. It lets the moc generated code return the index of a signal or slot given its pointer to member function This is required to support the new connection syntax Change-Id: I39198c6699b5aa3599d3d282f7ac79b1e3684d33 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Removed include to qdatastream.h from qmetatype.hOlivier Goffart2011-11-101-4/+2
| | | | | | | | | | | | | | | Added forward reference to QDataStream instead In the new connection syntax, I want to include qmetatype.h from qobject.h, in order to handle metatype for queued connection. So qdatastream cannot be included here (as it inherit qobject) else it would lead to circular inclusion. QDataStream is only used in templated code that is dependent on the template parametter so it is fine to have it forward declared. Change-Id: I08ea479f481262a80451a277ee29533c42cb9f89 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>