diff options
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r-- | src/corelib/kernel/qcoreevent.cpp | 3 | ||||
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_winrt.cpp | 6 | ||||
-rw-r--r-- | src/corelib/kernel/qmetatype.h | 42 | ||||
-rw-r--r-- | src/corelib/kernel/qmimedata.cpp | 2 | ||||
-rw-r--r-- | src/corelib/kernel/qobject.cpp | 6 |
5 files changed, 19 insertions, 40 deletions
diff --git a/src/corelib/kernel/qcoreevent.cpp b/src/corelib/kernel/qcoreevent.cpp index ae2666f19b..5e588a9f1a 100644 --- a/src/corelib/kernel/qcoreevent.cpp +++ b/src/corelib/kernel/qcoreevent.cpp @@ -407,6 +407,9 @@ Q_GLOBAL_STATIC(QEventUserEventRegistration, userEventRegistrationHelper) between QEvent::User and QEvent::MaxUser that has not yet been registered. The \a hint is ignored if its value is not between QEvent::User and QEvent::MaxUser. + + Returns -1 if all available values are already taken or the + program is shutting down. */ int QEvent::registerEventType(int hint) { diff --git a/src/corelib/kernel/qeventdispatcher_winrt.cpp b/src/corelib/kernel/qeventdispatcher_winrt.cpp index 56f4ac40de..1d4b57642c 100644 --- a/src/corelib/kernel/qeventdispatcher_winrt.cpp +++ b/src/corelib/kernel/qeventdispatcher_winrt.cpp @@ -45,6 +45,7 @@ #include <QtCore/QThread> #include <QtCore/QHash> #include <private/qabstracteventdispatcher_p.h> +#include <private/qcoreapplication_p.h> #include <wrl.h> #include <windows.foundation.h> @@ -109,6 +110,11 @@ QEventDispatcherWinRT::QEventDispatcherWinRT(QObject *parent) : QAbstractEventDispatcher(*new QEventDispatcherWinRTPrivate, parent) { Q_D(QEventDispatcherWinRT); + + // Only look up the event dispatcher in the main thread + if (QThread::currentThread() != QCoreApplicationPrivate::theMainThread) + return; + ComPtr<ICoreApplication> application; HRESULT hr = RoGetActivationFactory(HString::MakeReference(RuntimeClass_Windows_ApplicationModel_Core_CoreApplication).Get(), IID_PPV_ARGS(&application)); diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h index 7679258a98..0a52aaf680 100644 --- a/src/corelib/kernel/qmetatype.h +++ b/src/corelib/kernel/qmetatype.h @@ -939,10 +939,6 @@ public: } template<class T> - static void advanceImpl(void **p, int step) - { IteratorOwner<typename T::const_iterator>::advance(p, step); } - - template<class T> static void moveToBeginImpl(const void *container, void **iterator) { IteratorOwner<typename T::const_iterator>::assign(iterator, static_cast<const T*>(container)->begin()); } @@ -951,21 +947,9 @@ public: { IteratorOwner<typename T::const_iterator>::assign(iterator, static_cast<const T*>(container)->end()); } template<class T> - static void destroyIterImpl(void **iterator) - { IteratorOwner<typename T::const_iterator>::destroy(iterator); } - - template<class T> - static bool equalIterImpl(void * const *iterator, void * const *other) - { return IteratorOwner<typename T::const_iterator>::equal(iterator, other); } - - template<class T> static VariantData getImpl(void * const *iterator, int metaTypeId, uint flags) { return VariantData(metaTypeId, IteratorOwner<typename T::const_iterator>::getData(iterator), flags); } - template<class T> - static void copyIterImpl(void **dest, void * const * src) - { IteratorOwner<typename T::const_iterator>::assign(dest, src); } - public: template<class T> QSequentialIterableImpl(const T*p) : _iterable(p) @@ -977,11 +961,11 @@ public: , _at(atImpl<T>) , _moveToBegin(moveToBeginImpl<T>) , _moveToEnd(moveToEndImpl<T>) - , _advance(advanceImpl<T>) + , _advance(IteratorOwner<typename T::const_iterator>::advance) , _get(getImpl<T>) - , _destroyIter(destroyIterImpl<T>) - , _equalIter(equalIterImpl<T>) - , _copyIter(copyIterImpl<T>) + , _destroyIter(IteratorOwner<typename T::const_iterator>::destroy) + , _equalIter(IteratorOwner<typename T::const_iterator>::equal) + , _copyIter(IteratorOwner<typename T::const_iterator>::assign) { } @@ -1134,18 +1118,6 @@ public: static VariantData getValueImpl(void * const *iterator, int metaTypeId, uint flags) { return VariantData(metaTypeId, &AssociativeContainerAccessor<T>::getValue(*static_cast<typename T::const_iterator*>(*iterator)), flags); } - template<class T> - static void destroyIterImpl(void **iterator) - { IteratorOwner<typename T::const_iterator>::destroy(iterator); } - - template<class T> - static bool equalIterImpl(void * const *iterator, void * const *other) - { return IteratorOwner<typename T::const_iterator>::equal(iterator, other); } - - template<class T> - static void copyIterImpl(void **dest, void * const * src) - { IteratorOwner<typename T::const_iterator>::assign(dest, src); } - public: template<class T> QAssociativeIterableImpl(const T*p) : _iterable(p) @@ -1160,9 +1132,9 @@ public: , _advance(advanceImpl<T>) , _getKey(getKeyImpl<T>) , _getValue(getValueImpl<T>) - , _destroyIter(destroyIterImpl<T>) - , _equalIter(equalIterImpl<T>) - , _copyIter(copyIterImpl<T>) + , _destroyIter(IteratorOwner<typename T::const_iterator>::destroy) + , _equalIter(IteratorOwner<typename T::const_iterator>::equal) + , _copyIter(IteratorOwner<typename T::const_iterator>::assign) { } diff --git a/src/corelib/kernel/qmimedata.cpp b/src/corelib/kernel/qmimedata.cpp index 483692cdf8..5d2adb0561 100644 --- a/src/corelib/kernel/qmimedata.cpp +++ b/src/corelib/kernel/qmimedata.cpp @@ -299,7 +299,7 @@ QVariant QMimeDataPrivate::retrieveTypedData(const QString &format, QVariant::Ty QMacPasteboardMime maps MIME to Mac flavors. \sa QClipboard, QDragEnterEvent, QDragMoveEvent, QDropEvent, QDrag, - QWindowsMime, QMacPasteboardMime, {Drag and Drop} + QMacPasteboardMime, {Drag and Drop} */ /*! diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 262d259136..01bedb4a3a 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -551,7 +551,7 @@ void QMetaCallEvent::placeMetaCall(QObject *object) QObject::signalsBlocked() state is transferred to this object. The object's signals this signal blocker was blocking prior to - being moved to, if any, are unblocked \em except in the case where + being moved to, if any, are unblocked \e except in the case where both instances block the same object's signals and \c *this is unblocked while \a other is not, at the time of the move. */ @@ -2731,9 +2731,7 @@ QMetaObject::Connection QObject::connect(const QObject *sender, const char *sign Qt::ConnectionType type) but it uses QMetaMethod to specify signal and method. - \sa connect(const QObject *sender, const char *signal, - const QObject *receiver, const char *method, - Qt::ConnectionType type) + \sa connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) */ QMetaObject::Connection QObject::connect(const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, |