summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
Commit message (Collapse)AuthorAgeFilesLines
* Updated year in copyright headerKai Koehne2014-03-2690-92/+92
| | | | | | | | | | | | | | | | | | find . -path '*/3rdparty/*' -prune -o -type f -print | xargs -L1 sed -i -E 's/Copyright(.*) 2013 Digia/Copyright\1 2014 Digia/g' Manually patched files: demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h demos/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp src/3rdparty/s60/eiksoftkeyimage.h tools/qdoc3/test/qt-project.qdocconf tests/auto/qsharedpointer/nontracked.h tests/auto/qsharedpointer/nontracked.cpp Change-Id: I3f9074923b4d6bd4666258ab04f01476cc6e901c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Sergio Ahumada <sahumada@blackberry.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* BlackBerry: Improve platform specific documentationBernd Weimer2014-03-181-0/+9
| | | | | | | | | | Updated BlackBerry specific documentation around QSettings to make the differences more obvious for developers. Back-ported from qtbase: 563342d7ef7e490239cba6d335849ebb91983b9a Change-Id: I603053cecff97f3222257cbba8d72d2ec2666d6f Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Doc: Discuss the concept of thread affinity in more detailSze Howe Koh2014-03-131-7/+35
| | | | | | | | | | | | | | | | | - Create a section dedicated to this concept, which is fundamental to signal/event handling - Move relevant content from the very broad "Thread Basics" page to the QObject class ref - Flesh out existing content, including distinguishing signals from events - Address the common misconception that "member" = "child"; this has been encountered several times in the Qt Project forums This is a cherry-pick from 3b45dfe6e6ff6c0626b in qtbase.git Change-Id: If3b65f3da4e1ca414c7175c4e22bcdef38f45442 Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Fix the name of the arguments of qAtan2 to match std::atan2Thiago Macieira2014-02-051-3/+3
| | | | | | | | | | | | There is no change in functionality, just swapping of the names x and y. The std::atan2 function uses (y, x) in that order, so we should too. Task-number: QTBUG-27090 Change-Id: I7d4597a6c6909f574c517033f5d49fe17b7a7ead Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> (cherry picked from qtbase/9aa67cf0c48ff8e9e73fc19c4dcd950961b5ad54) Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix virtual key mapping on MS WindowsJuan Luis Boya García2013-11-251-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | In order to map MS Windows virtual keys to Qt keys without messing with dead keys now I use the built-in keyMap structure of QWindowsKeyMapper and assert every cell in the keymap is properly updated. In order to guarantee this even when the user changes the keyboard layout, WndProc now manages the WM_INPUTLANGCHANGE message, which is handled by QWindowsKeyMapper, resetting the layout structure. I don't fully understand yet some things about QWindowsKeyMapper, i.e. how QWindowsKeyMapper::updatePossibleKeyCodes workarounds the dead key issue with ToAscii; but it seems to work fine in all the tests I've done. Any further testing is highly appreciated, though. [ChangeLog][[QtGui][Platform Specific Changes][Windows] Fixed virtual key mapping on Windows. Task-number: QTBUG-33409 Task-number: QTBUG-8764 Task-number: QTBUG-10032 Change-Id: I4f7709a90906b03f4504deea1ff5c361e9f94b3f (cherry picked from commit f0d014a16b5c9b55245834459c46ea34d15d14be) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Kernel: Fix gcc warning in qsharedmemory_win.cppKai Koehne2013-11-181-1/+1
| | | | | | | | | | Fix gcc 4.7 'arning: converting 'false' to pointer type 'HANDLE {aka void*}' [-Wconversion-null]' Change-Id: I28d890d5fd4975517a9329d68c9ef73f6fadf36c Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> (cherry picked from qtbase/baf8a2fbf710314096832b0ee5735ffdc8b24210)
* Fix MinGW-warnings about narrowing/invalid conversions.Friedemann Kleint2013-11-181-1/+1
| | | | | Change-Id: I9b49dd6d12a5e59c6f2674ab3c82a8a7ec583775 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* QObject: use per-thread storage for qFlagLocation()Marc Mutz2013-11-161-14/+6
| | | | | | | | | | | | | | | | | | | | | qFlagLocation() uses a global char* array to transport source location information from the connect() side to the metaobject side. The size of the array is 2 (two), which just about suffices for a single connect() statement. Obviously, if more than one thread makes a (_any_) connection at the same time, the data is useless and, worse, there's a data race. The non-reentrancy of qFlagLocations() cannot and need not be fixed, but use a per-thread flagged_locations array in QThreadData so threads don't disturb each other. Task-number: QTBUG-3680 Change-Id: If1797c60751f551694def69afee6fbe295bbe2d2 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> (cherry picked from qtbase/c012ee2940bc087720b4aa0d257540921cf9a139) Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* BlackBerry: Prevent superfluous removal of socket notifiersBernd Weimer2013-11-061-12/+11
| | | | | | | | | | | | | | | File descriptors have always been removed from bps before adding them, which lead to an annoying warning. "QEventDispatcherUNIX::registerSocketNotifier()" needs to be called after "ioEvents()" to prevent this. Back-port of qtbase/e9c51a1fdc9092e5589fd6f823ad0e704e293c88 Task-number: QTBUG-34536 Change-Id: I767a15cb2883bc820da5c858613ffb26abc002e4 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Petr Nejedlý <pnejedly@blackberry.com>
* Backport of Qt5 applicationName handlingSamuel Gaist2013-11-022-7/+18
| | | | | | | | | | | | | Currently applicationName returns an empty value unless the user explicitly sets it. Qt 5 is smarter and get the name either based on the application arguments or a platform specific way (e.g. OS X using the menu bar name) if the user didn't set it. Based on f04b46f34e9446417cd5681f511332344679ef30 and 696060134d10d44175970ffd38618544ecdd9387 Change-Id: Ifc17cf4a74fed8cfabb46b3540dfbd64a5452640 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* BlackBerry: improve BPS event lifetime managementJonathan Hoffmann2013-10-312-2/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In QEventDispatcherBlackberry::select(), if an event handler called through filterEvent() starts a nested event loop by creating a new QEventLoop, we will recursively enter the select() method again. However, each time bps_get_event() is called, it destroys the last event it handed out before returning the next event. We don't want it to destroy the event that triggered the nested event loop, since there may still be more handlers that need to get that event, once the nested event loop is done and control returns to the outer event loop. So we move an event to a holding channel, which takes ownership of the event. Putting the event on our own channel allows us to manage when it is destroyed, keeping it alive until we know we are done with it. Each recursive call of this function needs to have it's own holding channel, since a channel is a queue, not a stack. However, a recursive call into the select() method happens very rarely compared to the many times this method is called. We don't want to create a holding channel for each time this method is called, only when it is called recursively. Thus we have the instance variable d->holding_channel to use in the common case. We keep track of recursive calls with d->loop_level. If we are in a recursive call, then we create a new holding channel for this run. Backport from qtbase/5cc76dae7e985a7a39d839524dc8ad6475e597f3 Change-Id: Ib3584676d2db5a9a3754a1535d5fb6c9e14f5dbc Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Use correct mask constant in the Windows event dispatcher.Friedemann Kleint2013-08-201-1/+14
| | | | | | | | | | | | | | Mask out QS_TOUCH, QS_POINTER when running a VS2012-compiled binary on pre-Windows 8 systems. Task-number: QTBUG-32257 Task-number: QTBUG-28513 Task-number: QTBUG-29097 Task-number: QTBUG-29435 Task-number: QTBUG-18852 Change-Id: I33ce3a659a234cb04d3b5ae9d668d193d681be7f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> (cherry picked from qtbase/54f1d7e2e48b896755aa930ee7e4ecacf51bf977)
* Revert "Disable precision timers when running MSVC2012 code on pre-Windows 8."Friedemann Kleint2013-08-201-5/+1
| | | | | | | | | | | This reverts commit aea654b84713b8085ee0a291e3325b1ca53080aa. Follow-up commit will fix the issue. Task-number: QTBUG-18852 Task-number: QTBUG-27266 Change-Id: Iadbae6b94de6e47e0b9bf428f57b63ffa286e382 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Don't assume that all CFPropertyListRef are CFArrayRefsThiago Macieira2013-08-051-0/+1
| | | | | | | | | | | | We might need more robust code in the future. But at least for this case it looks like a CFStringRef is also a possibility. Task-number: QTBUG-29776 Change-Id: Iaf50835122fcbb7e6e9c7fbf65e31e6143b2bc54 (cherry-picked from qtbase commit 1b08e0307dfebe561fbb0819a2d6b53edd8e8e93) Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix warning when building objects with a Q_OBJECT macroTobias Hunger2013-07-221-1/+1
| | | | | | | | | | | Do not trigger a self-assign warning when running into code containing a Q_OBJECT macro. Currently this happens a lot e.g. when using clang to build code using Qt. Change-Id: I68995624b18406f337318599e463f36f87486e66 (cherry-picked from qtbase commit 1416f4c595d6078c08f93483695e0b64c7fbb2a7) Reviewed-by: Milian Wolff <milian.wolff@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Accept defeat when select(2)ing without a monotonic clockThiago Macieira2013-07-121-6/+2
| | | | | | | | | | | | | | | | | We prefer to use the monotonic clock because it's never affected by time jumps (such as the user changing the date, or the system adjusting for any other reasons, including automatic leap seconds). But if a system doesn't have a monotonic clock, we simply accept the regular, real time clock and hope it doesn't jump. This is better than the current code that never restarts a call. The side-effect is that a 30-second select may become a 3630-second select if someone sets the clock back one hour. Task-number: QTBUG-22301 Change-Id: Ia5a3bb453cd475f45b03637e2549165589fd2524 (cherry-picked from qtbase commit c64d602df3712c0d147b7b689d29f79c700e63bc) Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* BlackBerry: Increased loop level around bps_get_eventBernd Weimer2013-07-021-4/+10
| | | | | | | | | | | This is needed, because bps_get_event can also invoke callbacks. Deferred deletions in such a callback are not executed for instance, because the loop level might already be at its minimum. Backported from qtbase: f62c92b Change-Id: I83d72d773d53b7b84ec590180f6b1131a57e0f46 Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* Implement apostrophe in windows cmd args.Leonard Lee2013-06-171-5/+2
| | | | | | | Task-number: QTBUG-15379 Change-Id: I113692983a8c16c56f0f684146d0d32e25d4869d (cherry-picked from qtbase/c1e24f883824ad894aa121568e4fde8553028d95) Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Make sure QThreadData and QAdoptedThread object is destroyed at app exitjian liang2013-06-161-0/+7
| | | | | | | | | | | | | | | | Task-number: QTBUG-30134 Restore the lines in qcoreapplication.cpp removed by commit 950b35cf97ad398f97883efd2a18ee97994a8a9c to ensure QThreadData and QAdoptedThread object of main thread is destroyed at application exit. We don't set QCoreApplicationPriavte::theMainThread to 0 as before since it will be set to zero in QThreadData::~QThreadData() Cherry-picked from qtbase/7dc622290bb8e81af634034f443e25be0d6d48a3. Change-Id: I6bc62235d0aff7818ca9a9cad45625b2777afc55 Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Clear the current thread data for the main threadThiago Macieira2013-06-161-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | This avoids crashes accessing deleted memory when creating a QObject after the last QObject had been deleted, like a qDebug() in global destructors. ==41000== Invalid read of size 4 ==41000== at 0x5F01ED5: bool QBasicAtomicOps<4>::ref<int>(int&) (qatomic_x86.h:208) ==41000== by 0x5F01309: QBasicAtomicInteger<int>::ref() (qbasicatomic.h:147) ==41000== by 0x5F24051: QThreadData::ref() (qthread.cpp:100) ==41000== by 0x614A984: QObject::QObject(QObject*) (qobject.cpp:681) ==41000== Address 0x6ee73f0 is 0 bytes inside a block of size 152 free'd ==41000== at 0x4A0736C: operator delete(void*) (vg_replace_malloc.c:480) ==41000== by 0x5F240BF: QThreadData::deref() (qthread.cpp:109) ==41000== by 0x6113F6B: QCoreApplicationData::~QCoreApplicationData() (qcoreapplication.cpp:268) The comment right above the change in qthread.cpp looks eerily similar to the problem I'm trying to fix. However, the actual change that introduced the change is not in the Qt public history, so we can't know for sure what the problem was then. Cherry-picked from qtbase/950b35cf97ad398f97883efd2a18ee97994a8a9c. Change-Id: Ic4072c15529e2ae94ea36fbd0340cf5ee61413d2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Disable precision timers when running MSVC2012 code on pre-Windows 8.Friedemann Kleint2013-06-041-1/+5
| | | | | | | | | | | Precision timers can cause the event loop to lock up when running MSVC2012 code on pre-Windows 8. Task-number: QTBUG-27266 Change-Id: Idd73731e82843d0d140859bab825bc1a54eccf1a Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> (cherry picked from qtbase/aa1b4c0943187d82e0c313b93559e99226a9c75a)
* BlackBerry: Revised error handling in event dispatcherBernd Weimer2013-05-151-40/+42
| | | | | | | | | | | | | Added an upper bound check for socket notifier file descriptors. Too high FDs have been a real source of failure. Added compiler hints to allow error-free code path run faster (errors are highly unlikely) and adjusted warning messages (some were misleading and too long). Backported from qtbase: ebd5de1 Change-Id: Ib982f853ee803447bdcaf22aed310697a36b4ccf Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* QThreadDataPrivate: fix data race on canWait boolean.David Faure2013-04-232-3/+4
| | | | | | | | | | postEvent() accesses it with the postEventList mutex locked, but processEvent() was checking it without any mutex locked. Change-Id: I31bbb50f7a1c337067b8e3de16ee7cd11400b517 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from qtbase/bf3a5ccef13d568662f027be62280aba1f73bada) Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Rename qAbs Function for timevalDavid E. Narváez2013-04-131-3/+2
| | | | | | | | | | | This decouples it from qAbs which is declared as a constexpr under certain compilation flags and enables for qtbase to be compiled with GCC 4.8 Change-Id: I78e02256ffc8b460ca74ae5241e77dfac4e09ba9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry-picked from qtbase commit d9ff510f02bba63dabe7a081a68296056a89ae4c) Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Avoid socket notifiers on invalid file descriptorsBernd Weimer2013-04-081-5/+4
| | | | | | | | | | | There is potential trouble and no point in registering a QSocketNotifier on an invalid file descriptor. This is prevented now in addition to the existing warning. Backported from qt5/qtbase: d20851f8ecd044479dd1892e92937a9135aa7856 Change-Id: I86e0a2c7ebdc6fb4cffcd39958003506ff01cb46 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QThread documentation: do not discourage the reimplementation of QThreadSze Howe Koh2013-02-191-1/+5
| | | | | | | | | | | | | | | | | | | | | The new QThread documentation now really discourage to reimplement QThread. But in fact, there are many cases where it is perfectly fine. And the example given is even a case where using worker object is wrong. The examle even contains a leak since the thread will never stop and will even leak. This changes put back some sentences from before commit 207f588b6896cbe72745037dc1cb0a3aef1cf6d0. The sample code has been re-writen. Notice how reimpementing run takes less lines of code, less runtime overhead, no leaks, and also is more complete than the previous example. This is a modified backport of qtbase commit 91e12dca757a8ef5c4691b70eb80db61a9d47e83 Change-Id: I4932aef00307a6cf91d57d632a02b8a85e5e8845 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Add support getting memory page size to RTP mode on VxWorks.Pasi Petäjäjärvi2013-01-282-1/+7
| | | | | | Change-Id: Id71bf7fd8e7371284076247558cba7edb0307e13 (cherry picked from qtbase/00faa09aadfc6c6db9da639ba6b7866c72447e39) Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Use Qt defined gettimeofday for VxWorks and no fallback to X11 versionPasi Petäjäjärvi2013-01-282-1/+9
| | | | | | | | | | | | VxWorks don't have gettimeofday function so we always use the one implemented in Qt. VxWorks DIAB compiler is not supported building Qt for VxWorks 6.9.2. Anyone using older VxWorks should also not be affected so use new defines VXWORKS_DKM and VXWORKS_RTP for VxWorks version 6.9.2 onward. Change-Id: I2e9546a101256ea0557b65163b40cd0f28be8519 (cherry picked from qtbase/7e3d5a720752900b1ccbb3d8dcbf12cc02b01b63) Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Use taskIdSelf() function instead of taskIdCurrent global variablePasi Petäjäjärvi2013-01-281-2/+2
| | | | | | | | | | | The uniprocessor taskIdCurrent global variable (declared in taskLib.h) does not exist in VxWorks SMP, because of concurrent execution on multiple CPUs. Any uniprocessor code that reads taskIdCurrent should make calls to taskIdSelf() instead. Change-Id: I4e0efef32297f339d6121c7d4bca3820e0fc9294 (cherry picked from qtbase/608cd1ad84484448ac9b0b8b4d88e0e8ff4a9cf1) Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Undefine overlapping variable names defined in VxWorks headersPasi Petäjäjärvi2013-01-281-0/+38
| | | | | | | | | VxWorks has defined variables with same name as in Qt's headers. Undefine those variables to avoid naming conflict. Change-Id: Ia8ca04a66acece683cd6c7f71df7e5a2800ec98d (cherry picked from qtbase/f7bd8652caab2f53ced739ce90c640924d4962dc) Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Use time.h related includes from qfunctions_vxworks.h file.Pasi Petäjäjärvi2013-01-281-3/+1
| | | | | | | | | | In VxWorks qfunctions_vxworks.h file includes correct time related headers and it is included already at file qplatformdefs.h for all mkspecs targets. Change-Id: Icf970e28bf6deba9201fa33d7f728cc2251f7e5c (cherry picked from qtbase/2d2da44f6381fdeaa195319c0dc66e3909c2ca7b) Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Change all shmget calls to user-only memoryThiago Macieira2013-01-182-5/+5
| | | | | | | | | Drop the read and write permissions for group and other users in the system. Change-Id: I8fc753f09126651af3fb82df3049050f0b14e876 (cherry-picked from Qt 5 commit 856f209fb63ae336bfb389a12d2a75fa886dc1c5) Reviewed-by: Richard J. Moore <rich@kde.org>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-1390-92/+92
| | | | | | Change-Id: I52bf8ef0447b701b4ebf7d7d240013a72adb9425 Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Centralise handling & ignoring of SIGPIPE in qcore_unix_p.hThiago Macieira2013-01-051-0/+29
| | | | | | | | | | | | We had two instances of this function in the Qt source code, one clearly a copy of the other, so both had the same thread-safety issue. Instead, let's have one copy and have both write_nosignal() and sendto() call them. (cherry-picked from qtbase commit cb7d64170d62c9cda11ced7e5047070af678338b) Change-Id: I0f1354a8e9df8e6b10a02f86a940e3c6d1222087 Reviewed-by: Peter Hartmann <phartmann@rim.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* BlackBerry: Reevaluation of timer list in event dispatcherBernd Weimer2013-01-051-11/+22
| | | | | | | | | | | In the event dispatcher the timer list has to be reevaluated after each call to filterEvent, because timers could be started in event filters. Backport of 9cfce43f19af87bc0a929b917da2901de7dbc193 Change-Id: Ib1feca6e970b3809e422f50164fd280b96beddf3 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Allow qmljsdebugger argument and value to be separated by a spaceAurélien Gâteau2012-12-181-0/+4
| | | | | | | | | | | This change makes it possible to use the QML JS debugger with KDE applications. Change-Id: I1c6615c604a4023062fe6e6ead66dfcea9f8d493 Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> (cherry picked from qtbase/fea68274b89a9bcde55eabbf6eb7bf2e8376d930)
* Prevent crashes after throwing an exception.Mitch Curtis2012-11-281-0/+15
| | | | | | | | | | | | | | | After bc3491c1b85ca36486c9472ecf7ba82f46699e8a, throwing an exception from a slot will cause the application to crash (segfault). This patch wraps the offending callFunction call in a try/catch block when QT_NO_EXCEPTIONS is defined, allowing the appropriate cleanup to occur and hence preventing the crash. Task-number: QTBUG-26825 Task-number: QTBUG-27548 Change-Id: Ia3a02398b0308b2216ad17f8f643745bd013fd50 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* BlackBerry: Restore proper BPS channel in event dispatcherBernd Weimer2012-11-281-8/+36
| | | | | | | | | | | | This change ensures that BPS events are delivered to the proper channel even if the application code would change the channel. Backport from qtbase: 131b86347384a97a7044942acd723c4ef5669636 Change-Id: Ib2bdd3d973bc51f5ce85eb6ef9adcb3e57093a54 Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* BlackBerry: Removed filtering of window system eventsBernd Weimer2012-11-231-2/+5
| | | | | | | | | | | | | Only one event type can be passed to the event filter in Qt4. For the BlackBerry platform this will be BPS events. This should be acceptable, as there isn't any documentation stating that it should be window system events for QPA ports. In Qt5 the implementation is different (it is possible to pass the event type along with the event itself). Change-Id: I95550cec8a04a4994479904bc68544742a458aa9 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* QTranslator: Use resource memory instead of copying itThomas McGuire2012-11-051-19/+44
| | | | | | | | | | | | Previously, translations in resource files were loaded through QFile and the data was copied. Now, simply use the resource memory in-place. This is a backport of qtbase commit 92d75077d686fcad26b5ad02a40c3987fb1fc82b Change-Id: Id96c58e96db3bed669dd211011aaed880b9a0133 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Removed usage of pipe in Blackberry event dispatcherBernd Weimer2012-11-024-42/+78
| | | | | | | | | | | | | | | Using a pipe for thread wake-ups is inefficient and can introduce significant latency. Replaced the pipe by directly sending a BPS event. Refactored the wake-up code in the private class of the UNIX event dispatcher. Backport of 9dacccd0391219c97c01e89f0547ee002abb1e55 Change-Id: I222516f53afdd8daf845249cc33172399cfd6c21 Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Jeff Kehres <jkehres@rim.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* Blackberry: Fix for slowness of touch move eventsBernd Weimer2012-10-301-60/+46
| | | | | | | | | | | | | In the event dispatcher native events will be processed in a tight loop to drain the queue. IO events and timers will be postponed. Backported from c4b2d77f40a42a67480bb49aa63b0953c80c024a Change-Id: Iaf408425000e7fd6fdbf0992bbf927d03a650581 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Blackberry: Fix QCoreApplication::applicationFilePath() performance.Sergio Martins2012-10-301-6/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | Listing all files with QDir is slow. Instead, use argv[0] for zygotized apps and _cmdname() for non-zygotized. Apps run through the terminal will fall in the zygotized case, which is ok. Note about zygotized apps: Zygotized apps don't have an executable, they live in a shared object file. These apps are run through a deamon that forks and dlopens() the shared object ( for performance reasons ). For this reason we can't use _cmdname(), since it just contains the the file path of the daemon. On the other hand, non-zygotized apps have a bogus argv[0] when run through the navigator ( command line is fine ). Change-Id: I73d1cd742a70d1be36a8efe829671d6d7594a6fb Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* Blackberry: Populating the QCoreApplicationDataFabian Bumberger2012-10-181-0/+47
| | | | | | | Backport of: 49f277482e86d21edf9a055229100486aaf8b4c0 Change-Id: I7549834efc86f834d549c9a4278f693a29b7ee11 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Blackberry: Emit aboutToBlock() and awake() correctly in the dispatcherThomas McGuire2012-10-181-7/+31
| | | | | | | | | | | | | | On Blackberry, select() can actually temporarily wake up to process mative BPS events. Make sure to emit the aboutToBlock() and awake() signals in this situation accordingly. This is a backport of qtbase commit a1082dbc3f61f1747bd756f8fce2a54f558793ed Change-Id: If1bd1c300b037cb5dac1c96c68abbfb22188dd34 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Introducing the PlatformPanel event type.Sergio Martins2012-10-122-0/+4
| | | | | | | | | | | | | | | | | This event can be used by any platform plugin to implement special application panels/overlayed menus. Currently used by QNX only. This replaces sending fake Qt::Key_Menu presses in the QNX plugin. Qt::Key_Menu is already used when invoking context menus with the keyboard. ( backport of qtbase/9695df4d44b228e7e778ff17d5cccac30967b1fd ) Change-Id: Id5cf96758f1104f454a2bb977b367d09d4685b62 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
* Use QVarLengthArray when creating the connectNotify() argumentThomas McGuire2012-10-122-11/+18
| | | | | | | | | | | This gets rid of the heap allocation of the QByteArray. This change is not needed in Qt5, as there, QMetaMethod is used as the argument, and therefore there is no need to construct a SIGNAL-compatible string in memory. Change-Id: Ie2023aeb99bc8f792d437ec604e9989a5efe456b Reviewed-by: Alan Alpert <416365416c@gmail.com>
* QNX: Fix input lagThomas McGuire2012-10-121-0/+8
| | | | | | | | | | | We were breaking out of select() too early with a timeout of -1. This is a backport of qtbase commit ba8f3002d49d9941b2991fbe4d78883ea59827b2 Change-Id: I65e534caea665fea3d99de621bcdbcf7c47fac55 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* QNX: Remove workaround for BPS bugThomas McGuire2012-10-121-25/+6
| | | | | | | | | | | This BPS bug has been fixed with the latest BB10 release. This is a backport of qtbase commit 4a755752e919b8a6d68bea265c16c44b90eeb545 Change-Id: Ifa9fb9efd8c12aef6e554f5bf7a731fdf983f83d Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* QNX: Remove the busy loop work around for bps ignoring timeout bugSean Harmer2012-10-121-21/+41
| | | | | | | | | This is a backport of qtbase commit b72904e8540e4aa1f1396893f5d1b216d745cdc3 Change-Id: I7489dc69fa505e76f707531e70a8011d596da19d Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>