diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-09-24 09:49:07 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-09-24 12:04:52 +0200 |
commit | c96426f19f8c244c0f5748f0009016f576db9616 (patch) | |
tree | f6365344e8a24415e7a67694af2f0c043bb0dae6 /src/corelib/kernel | |
parent | 2137cb7dc5c902ce71855901c83c4c9d87b1ce2d (diff) | |
parent | c5a3e5edd9e63b18abf1838c86a27a662224b02c (diff) |
Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r-- | src/corelib/kernel/kernel.pri | 2 | ||||
-rw-r--r-- | src/corelib/kernel/qcoreapplication.cpp | 8 | ||||
-rw-r--r-- | src/corelib/kernel/qeventloop_p.h | 11 | ||||
-rw-r--r-- | src/corelib/kernel/qjni.cpp | 9 | ||||
-rw-r--r-- | src/corelib/kernel/qmetaobject_moc_p.h | 11 | ||||
-rw-r--r-- | src/corelib/kernel/qobject.cpp | 3 |
6 files changed, 37 insertions, 7 deletions
diff --git a/src/corelib/kernel/kernel.pri b/src/corelib/kernel/kernel.pri index 819c10e99f..55625f3571 100644 --- a/src/corelib/kernel/kernel.pri +++ b/src/corelib/kernel/kernel.pri @@ -169,7 +169,7 @@ blackberry { kernel/qeventdispatcher_blackberry_p.h } -qqnx_pps { +qqnx_pps:!blackberry-playbook { LIBS_PRIVATE += -lpps SOURCES += \ kernel/qppsattribute.cpp \ diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index 7f2e28e800..436bb59bbc 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -2533,6 +2533,9 @@ void QCoreApplication::removeLibraryPath(const QString &path) \note The filter function set here receives native messages, i.e. MSG or XCB event structs. + \note Native event filters will be disabled when the application the + Qt::AA_MacPluginApplication attribute is set. + For maximum portability, you should always try to use QEvents and QObject::installEventFilter() whenever possible. @@ -2542,6 +2545,11 @@ void QCoreApplication::removeLibraryPath(const QString &path) */ void QCoreApplication::installNativeEventFilter(QAbstractNativeEventFilter *filterObj) { + if (QCoreApplication::testAttribute(Qt::AA_MacPluginApplication)) { + qWarning("Native event filters are not applied when the Qt::AA_MacPluginApplication attribute is set"); + return; + } + QAbstractEventDispatcher *eventDispatcher = QAbstractEventDispatcher::instance(QCoreApplicationPrivate::theMainThread); if (!filterObj || !eventDispatcher) return; diff --git a/src/corelib/kernel/qeventloop_p.h b/src/corelib/kernel/qeventloop_p.h index 30c61ca759..1a1743260b 100644 --- a/src/corelib/kernel/qeventloop_p.h +++ b/src/corelib/kernel/qeventloop_p.h @@ -42,6 +42,17 @@ #ifndef QEVENTLOOP_P_H #define QEVENTLOOP_P_H +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + #include "qobject_p.h" QT_BEGIN_NAMESPACE diff --git a/src/corelib/kernel/qjni.cpp b/src/corelib/kernel/qjni.cpp index 4581b70ca7..b240185d7e 100644 --- a/src/corelib/kernel/qjni.cpp +++ b/src/corelib/kernel/qjni.cpp @@ -86,15 +86,14 @@ Q_GLOBAL_STATIC(JClassHash, cachedClasses) static jclass getCachedClass(JNIEnv *env, const char *className) { jclass clazz = 0; - QString key = QLatin1String(className); - QHash<QString, jclass>::iterator it = cachedClasses->find(key); + QString classDotEnc = QString::fromLatin1(className).replace(QLatin1Char('/'), QLatin1Char('.')); + QHash<QString, jclass>::iterator it = cachedClasses->find(classDotEnc); if (it == cachedClasses->end()) { QJNIObjectPrivate classLoader = QtAndroidPrivate::classLoader(); if (!classLoader.isValid()) return 0; - QJNIObjectPrivate stringName = QJNIObjectPrivate::fromString(QString::fromLatin1(className).replace(QLatin1Char('/'), - QLatin1Char('.'))); + QJNIObjectPrivate stringName = QJNIObjectPrivate::fromString(classDotEnc); QJNIObjectPrivate classObject = classLoader.callObjectMethod("loadClass", "(Ljava/lang/String;)Ljava/lang/Class;", stringName.object()); @@ -102,7 +101,7 @@ static jclass getCachedClass(JNIEnv *env, const char *className) if (!exceptionCheckAndClear(env) && classObject.isValid()) clazz = static_cast<jclass>(env->NewGlobalRef(classObject.object())); - cachedClasses->insert(key, clazz); + cachedClasses->insert(classDotEnc, clazz); } else { clazz = it.value(); } diff --git a/src/corelib/kernel/qmetaobject_moc_p.h b/src/corelib/kernel/qmetaobject_moc_p.h index d26cd54e5d..1a7ca63ae1 100644 --- a/src/corelib/kernel/qmetaobject_moc_p.h +++ b/src/corelib/kernel/qmetaobject_moc_p.h @@ -43,6 +43,17 @@ # error "Include qmetaobject_p.h (or moc's utils.h) before including this file." #endif +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + QT_BEGIN_NAMESPACE // This function is shared with moc.cpp. This file should be included where needed. diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index bf814f36b9..f72a679b82 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -1655,9 +1655,10 @@ void QObject::killTimer(int id) int at = d->extraData ? d->extraData->runningTimers.indexOf(id) : -1; if (at == -1) { // timer isn't owned by this object - qWarning("QObject::killTimer(): Error: timer id %d is not valid for object %p (%s), timer has not been killed", + qWarning("QObject::killTimer(): Error: timer id %d is not valid for object %p (%s, %s), timer has not been killed", id, this, + metaObject()->className(), qPrintable(objectName())); return; } |