diff options
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/kernel/qcoreapplication.cpp | 16 | ||||
-rw-r--r-- | src/corelib/thread/qthread_unix.cpp | 17 |
2 files changed, 27 insertions, 6 deletions
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index 2719019d30..d5bfb1dffb 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -70,6 +70,9 @@ # include "qeventdispatcher_blackberry_p.h" # include <process.h> # include <unistd.h> +# elif defined(Q_OS_OSX) +# include "qeventdispatcher_cf_p.h" +# include "qeventdispatcher_unix_p.h" # else # if !defined(QT_NO_GLIB) # include "qeventdispatcher_glib_p.h" @@ -505,12 +508,19 @@ void QCoreApplicationPrivate::createEventDispatcher() #if defined(Q_OS_UNIX) # if defined(Q_OS_BLACKBERRY) eventDispatcher = new QEventDispatcherBlackberry(q); -# else -# if !defined(QT_NO_GLIB) +# elif defined(Q_OS_OSX) + bool ok = false; + int value = qEnvironmentVariableIntValue("QT_EVENT_DISPATCHER_CORE_FOUNDATION", &ok); + if (ok && value > 0) + eventDispatcher = new QEventDispatcherCoreFoundation(q); + else + eventDispatcher = new QEventDispatcherUNIX(q); +# elif !defined(QT_NO_GLIB) if (qEnvironmentVariableIsEmpty("QT_NO_GLIB") && QEventDispatcherGlib::versionSupported()) eventDispatcher = new QEventDispatcherGlib(q); else -# endif + eventDispatcher = new QEventDispatcherUNIX(q); +# else eventDispatcher = new QEventDispatcherUNIX(q); # endif #elif defined(Q_OS_WINRT) diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp index c340915d35..af4ce7c59e 100644 --- a/src/corelib/thread/qthread_unix.cpp +++ b/src/corelib/thread/qthread_unix.cpp @@ -36,9 +36,13 @@ #include "qplatformdefs.h" #include <private/qcoreapplication_p.h> +#include <private/qcore_unix_p.h> #if defined(Q_OS_BLACKBERRY) # include <private/qeventdispatcher_blackberry_p.h> +#elif defined(Q_OS_OSX) +# include <private/qeventdispatcher_cf_p.h> +# include <private/qeventdispatcher_unix_p.h> #else # if !defined(QT_NO_GLIB) # include "../kernel/qeventdispatcher_glib_p.h" @@ -248,14 +252,21 @@ void QThreadPrivate::createEventDispatcher(QThreadData *data) { #if defined(Q_OS_BLACKBERRY) data->eventDispatcher.storeRelease(new QEventDispatcherBlackberry); -#else -#if !defined(QT_NO_GLIB) +# elif defined(Q_OS_OSX) + bool ok = false; + int value = qEnvironmentVariableIntValue("QT_EVENT_DISPATCHER_CORE_FOUNDATION", &ok); + if (ok && value > 0) + data->eventDispatcher.storeRelease(new QEventDispatcherCoreFoundation); + else + data->eventDispatcher.storeRelease(new QEventDispatcherUNIX); +# elif !defined(QT_NO_GLIB) if (qEnvironmentVariableIsEmpty("QT_NO_GLIB") && qEnvironmentVariableIsEmpty("QT_NO_THREADED_GLIB") && QEventDispatcherGlib::versionSupported()) data->eventDispatcher.storeRelease(new QEventDispatcherGlib); else -#endif + data->eventDispatcher.storeRelease(new QEventDispatcherUNIX); +#else data->eventDispatcher.storeRelease(new QEventDispatcherUNIX); #endif |