summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix compilation of QThread on QNXSean Harmer2012-08-171-4/+6
| | | | | | | | | | Commit 3ef51efbe75bfb9f1dfbe7df073e9eb745a72ad8 broke compilation of qthread_unix.cpp on QNX. This fixes it by passing in the threadId to setCurrentThreadName(). Change-Id: I24f32d8054baedbd9a65b6a80fb1f6f37e07092d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QNX: Allow app to run when spurious 2nd screen is reportedSean Harmer2012-08-171-4/+4
| | | | | | | | | | | | | | On the PlayBook, libscreen always seems to report the presence of a 2nd display even when none is connected. This of course leads to the failure to query this display for its physical size. This patch relaxes the demand for a physical size to being for the primary screen only. Change-Id: If30b1fd704e7a194a426a0a9f0b85557478105f7 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* WinCE: Fix call of GetAncestor in setParent_sys()Kevin Funk2012-08-171-0/+9
| | | | | | | | | | There is no GetAncestor under Windows CE. Use GetParent instead. Change-Id: I87b86961dade0d5c7c8bf6a470f777d32188dcd2 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Fix setParent_sys() to use native methods when checking for toplevelMiikka Heikkinen2012-08-171-1/+8
| | | | | | | | | | | QWindowsWindow::setParent_sys() was checking if window was toplevel using non-native method, which caused wrong result in some cases involving native windows. Changed the toplevel check to utilize native method instead. Task-number: QTBUG-26826 Change-Id: I72ca17c53c1ed7611f141cee17b2edaaa80c6c17 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Fix GDI object leakMiikka Heikkinen2012-08-171-1/+1
| | | | | | | | DeleteObject parameter must be a handle, not a pointer to a handle. Task-number: QTBUG-26835 Change-Id: Id5de2b0b067bd9fc45c1c8ead4f7d67f0162f070 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove install/removeEventFilter from QRollEffectJoerg Bornemann2012-08-161-3/+0
| | | | | | | | This class doesn't have an eventFilter method. Change-Id: Ibd7b3b5b954dd2467c9b4dadd85d3613964d9f7c Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
* QSlotObjectBase: re-enable tail-call optimisation in impl()Marc Mutz2012-08-151-19/+19
| | | | | | | | | | | | | | | | | | | | | Two of the three operations in impl() return void, among them the most common one, call(). Having impl() return bool prevents tail- call optimisations for these. Fix by passing the bool return value for Compare as an out-parameter. Results in a nice decrease in text size (GCC 4.8-pre -O2 -std=c++11, stripped): text data bss dec hex filename 507343 13984 48 521375 7f49f tst_qobject (old) 505551 13984 48 519583 7ed9f tst_qobject (new) Reported-by: Thiago Macieira <thiago.macieira@intel.com> Change-Id: I7538c5b3f0992970c089e44f07244e6b62794a1d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QSlotObjectBase: combat virtual function "bloat"Marc Mutz2012-08-154-72/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In C++, the compiler creates extra functions and data for classes with virtual functions. This can lead to "virtual function bloat": http://www.boost.org/doc/libs/1_47_0/doc/html/function/misc.html#id1382504 This is especially true when the number of instances is of the same order of magnitute as the number of derived classes, such as is common with type erasure techniques. One such case is the QSlotObjectBase hierarchy, which this patch tackles. The mechanics of this optimisation are simple: re-implement the virtual function call mechanism by hand, with function pointers. But we go one step further and collapse the vtable into a single pointer to a function that implements all three currently-defined operations, swtching on an 'int which' argument. This even allows us to extend this in a BC way, should that become necessary later, by adding a new Operation and using the void** argument to transport arguments, if any. This approach was inspired by: Ulrich Drepper: How To Write Shared Libraries, Section 2.4.4 http://www.akkadia.org/drepper/dsohowto.pdf Also move the QSlotObjectBase hierarchy out of QObject so as not to export all the derived classes. This was pointed out in review by Thiago. Results (Linux amd64, GCC 4.8-pre -O2 -std=c++11, stripped): size tst_qobject* text data bss dec hex filename 523275 21192 48 544515 84f03 tst_qobject (old) 507343 13984 48 521375 7f49f tst_qobject (new) relinfo.pl tst_qobject* (old) tst_qobject: 473 relocations, 0 relative (0%), 240 PLT entries, 240 for local syms (100%), 0 users (new) tst_qobject: 323 relocations, 0 relative (0%), 238 PLT entries, 238 for local syms (100%), 0 users Change-Id: I40ad4744dde8c5c29ef62ed2d82d4b1ede178510 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Avoid an expensive call to toLocal8Bit upon thread creationThiago Macieira2012-08-151-10/+18
| | | | | | | | | | | | | | | QString::toLocal8Bit() will need to call QTextCodec::codecForLocale(), which isn't the cheapest of the functions, at least the first time it's run. So avoid calling it when in most scenarios, the name of the QObject isn't set, and the information is purely for debugging. Additionally, avoid allocating memory when setting the thread name to the class name. The class name coming from the meta object is a static constant string and we can use it directly. Change-Id: Ief643bad87a51487b1d41c0a2f323e80bb53e8a7 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
* Remove trailing comma in enumThiago Macieira2012-08-153-3/+3
| | | | | | | | | | | Spotted by ICC: qfreelist_p.h(127): warning #271: trailing comma is nonstandard BlockCount = 4, ^ Change-Id: Ib64d1d19ca0514e7582a295da48cbf6705aa8c44 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
* Silence a false-positive warning about uninitialised variable with ICCThiago Macieira2012-08-153-3/+3
| | | | | | | | | | | | | | | | ICC complains like so: harfbuzz-gpos.c(95): warning #592: variable "error" is used before its value is set return error; ^ However, line 95 is never executed because the condition on line 94 is always false. That's why it's a false positive. The same construct happens in the other two places. Still, silence the warning. Change-Id: I168d916d6837d4ac346facfd22b3e5b4e22ef7f0 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
* Made eglfs work with backing store based applications again.Samuel Rødal2012-08-153-4/+10
| | | | | | | | | Make sure we pick the same config for the context and window surface, and do not create unnecessary window surfaces for the desktop widget. Change-Id: I3c8fb3df9ab8a658196e41dfa1705cfca625a2d7 Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com> Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* Documentation for QWidgetItem::controlTypes.Frederik Gladhorn2012-08-151-0/+6
| | | | | | Change-Id: I673b884ac8513714d733411729a7418c19f05682 Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* Update docs.Frederik Gladhorn2012-08-151-1/+6
| | | | | Change-Id: I7bd1f1efe2d6ce3aee8cb7454f43cfef2979f525 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Remove docs for removed enum values.Frederik Gladhorn2012-08-151-5/+0
| | | | | Change-Id: I225ea48606d60894a851c1dd620983b7a65d234d Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
* Move docs for QSessionManager to the right file.Frederik Gladhorn2012-08-152-293/+256
| | | | | Change-Id: Ia3735ac14fe91de8cfbb58fc68f1a37f04d7b668 Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
* Remove outdated docs.Frederik Gladhorn2012-08-151-35/+0
| | | | | Change-Id: Ic878226c3b627b445ac45f56497a6a4ae77b2d38 Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
* Remove deprecated docs for QActionGroup.Frederik Gladhorn2012-08-151-32/+0
| | | | | Change-Id: If086395d3e1d151324df3cc1c59152715cb4af40 Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
* Add parameter docs for QAbstractEventDispatcher::filterNativeEvent.Frederik Gladhorn2012-08-151-2/+4
| | | | | Change-Id: If028d2560d7bb18c9dd3e0f5fa6677c42fbf7d4b Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
* Disable CPUID checking with GCC 4.2 or olderThiago Macieira2012-08-151-0/+22
| | | | | | | | | | | | | | | | | | | | | | | This is not the first time that GCC 4.2 on Mac has produced bad code surrounding the CPUID instruction (see also commit 81d1f79a7f4b0f67d71). So declare it broken beyond repair and don't run the instruction at all. Instead, initialise the set of features found to be exactly that which we detected at compile-time. For that reason, we can also disable the runtime checking of the processor (minFeatures == detected features). At the time of this commit, only the draw helpers and one QImage helper make use of the runtime detection. Since the detection now switches to compile-time, QtGui will start carrying dead code for GCC 4.2 and earlier: it will never run the SSE2/SSSE3 code on 32-bit builds. (GCC 4.2 does not support AVX, so that code won't be built) Note: all Clang versions report that they are GCC 4.2, so we need to exclude it from the test; ICC reports the same version as the system's GCC. Change-Id: I43f168a9480a2479c6444eea175782b2eadc2ab2 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Only emit headerDataChanged for valid proxy intervals.Stephen Kelly2012-08-151-7/+35
| | | | | | | | | | Modeltest asserts before the patch, and passes afterward. Task-number: QTBUG-26515 Change-Id: I08a89cd5c9c59613badcddbd056a3d0b8fbbca13 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Emit the highlighted signal if the model changes.Stephen Kelly2012-08-151-1/+5
| | | | | | | | | | | | | | | | | The bug is that the connection to emit that signal can be made obsolete if the connection is made too early and the model is replaced. In the bug report, the connection is made by calling view() early (thereby causing the creation of a view and a QItemSelectionModel which operates on the built-in QItemSelectionModel, and then connecting to that QItemSelectionModel), and then when QComboBox::setModel() is called later the built-in view creates a new QItemSelectionModel for it. The bug was that that new QItemSelectionModel is not connected to. This patch fixes that bug. Task-number: QTBUG-4454 Change-Id: Ibbdb8731f16ab071008b4a19dc2cc7ae03cebc84 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Fix QMessageLogger and associated qdoc errorsJeremy Katz2012-08-151-5/+100
| | | | | Change-Id: I4b9555c8a15a698ef5ce270288c88a0aa88e0033 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Add a module page for QtConcurrentLars Knoll2012-08-153-4/+42
| | | | | | | | Fix some foward references from QtCore in addition. This will require more work. Change-Id: Ib1bade18c2cc220a7afe25e9fca6a3f50cb1174b Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Mark QCollator as internal.Lars Knoll2012-08-151-0/+2
| | | | | | | The class is private in 5.0, we'll publish it in 5.1 Change-Id: Ia7511db0393528aafa8c8059b4eb1657c8cdcc64 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Fix QPointer qdoc errorsLars Knoll2012-08-152-16/+1
| | | | | Change-Id: I54082a87f076aa511329cfb7a6ed6ecabcfb40f7 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Make the "\internal" qdoc command stand on its own lineLaszlo Papp2012-08-1532-144/+312
| | | | | | | | | | The qdoc manual currently claims that the command must stand on its own line. The change follows the consistency with the rest and how the example looks like inside the qdoc manual for this command. Change-Id: I6b653dc95cf9d84e4adf32220dace5d313678419 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Fix undo and redo in QLineEdit when in password modeJani Honkonen2012-08-152-2/+24
| | | | | | | | | | | There are some security issues with undo/redo. User should not be able to get the erased password back in any situation. Therefore redo must be disabled completely and undo is limited only for erasing previously entered text. Task-number: QTBUG-14226 Change-Id: I2b38aca84adbad1c14db76b56ad6303d56b35b4d Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Make selectAll() do nothing if the mode is NoSelection.Stephen Kelly2012-08-151-1/+1
| | | | | | | | Task-number: QTBUG-26687 Change-Id: Iaa0197efe64c61505e22e4a63a1f5c012af0bc78 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Speed up construction of basic QVariantsHarald Fernengel2012-08-152-38/+100
| | | | | | | | | | | | | | | | | Instead of first creating an initialized Private struct, then overwrite the member variables, we added an internal constructor that initializes the private struct sanely. In the new (inlined, internal) constructor, both the MSB bits in the bitfield are 0, and since the value of internal meta-type ID is so low that the two MSB bits should never be set, the compiler can (hopefully) optimize away the bit-fiddling initialization of the bit-field. Callgrind shows about 33% speed-up in e.g. QVariant::QVariant(int) Change-Id: I706773a71c0d8dcbe119ad15411578b81892deb5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* rcc: use new qEnvironmentVariableIsEmpty()Marc Mutz2012-08-141-1/+1
| | | | | Change-Id: I48dd9b7b8dd51e1c662273eb37ac2e1f4c1c4d15 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtTestLib: use new qEnvironmentVariableIsEmpty()Marc Mutz2012-08-141-7/+10
| | | | | | | | | | Except where using the contents of the variable, in which case collapse two calls to qgetenv() for the same variable into one that stores the result in a temporary QByteArray and continues working with that one instead. Change-Id: I6c09a20ae946327ccb85e4833a60a373a8a07355 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtGui: use new qEnvironmentVariableIsEmpty()Marc Mutz2012-08-144-5/+5
| | | | | | | | In particular, static bool showRasterOverlay is safer. Change-Id: I9df6c9a9a56d2e61b13391b6889c0ac6e259e801 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtDBus: use new qEnvironmentVariableIsEmpty()Marc Mutz2012-08-141-1/+1
| | | | | Change-Id: If983083cc7f360199716a060464344340c089236 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtCore: use new qEnvironmentVariableIs{Set,Empty}()Marc Mutz2012-08-146-8/+8
| | | | | | | | | | | | In particular, qEmergencyOut() is now completely exception-free. Incidentally, this patch shows that Qt isn't consistent in how it treats empty environment variables used as flags, but that is something for a separate commit. This patch aims to be behaviour-preserving, except in exceptional circumstances, of course. Change-Id: Ie106e7b430e1ab086c40c81cc1e56cd0e5400cb4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix warning about change of signThiago Macieira2012-08-141-1/+1
| | | | | | | | | | | method_relative_ is unsigned, so we can't store a -1 in it. qobject.cpp(434): warning #68: integer conversion resulted in a change of sign callFunction_(0), method_offset_(0), method_relative_(-1) ^ Change-Id: If8bf3835590ef2c26b9ca5010d638aa84675ff62 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Deprecate Qt::WFlags.Stephen Kelly2012-08-142-0/+4
| | | | | | | | | It seems to date from the Qt 1 days, and such abbreviations are not current Qt style. Change-Id: Iea7259bd7ba78b2c0863e3f6675e10826712ffd9 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* (QNX) Make it possible to set physical screen sizeAndreas Holzammer2012-08-141-8/+51
| | | | | | | | | | | | | | | | It can happen that the system is reporting a screen width or height of zero, if the system does not know the size instead of returning an error. You can either set a define QQNX_PHYSICAL_SCREEN_WIDTH/QQNX_PHYSICAL_SCREEN_HEIGHT or set it as environment variable QQNX_PHYSICAL_SCREEN_SIZE. The preference order is: 1) Take detected size 2) Take size from env var 3) Take defined size if any define is set Change-Id: I493a2c8988a225224587a6c323efeb9e9b7b5a54 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Group functions in QAccessibleTextInterfaceJan-Arve Saether2012-08-142-17/+31
| | | | | | | | | | Do the same in QAccessibleTextWidget I got a bit annoyed by this, should hopefully make life easier when forward porting QPlainTextEdit Change-Id: Ib4b90d1892974ea39ecfcbc5cad6ed0694207b58 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Fix sockets for Windows CEAndreas Holzammer2012-08-141-2/+2
| | | | | | | | | Version numbers for CE are higher then for the desktop, so insert a check for this, as the api is not working as for windows 7 and above. Change-Id: I79baba9183e11c714cffd0bb43327c197043d6e0 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Tidy up QEvent::Type enums.Mitch Curtis2012-08-141-13/+13
| | | | | | | Corrected the list's ordering and added punctuation. Change-Id: I36a477801cd0cfd3d36db308b4263982b582106b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Implemented QAccessibleTextWidgetJan-Arve Saether2012-08-142-343/+456
| | | | | | | | | | | | | | | | | | A new class called QAccessibleTextWidget was added. This class should implement all methods of QAccessibleTextInterface and QAccessibleEditableTextInterface which only need a QTextCursor, and it defines two pure virtual methods, to obtain and set the text cursor, so accessible implementations of widgets which use a text cursor can implement these two methods. QAccessibleTextEdit is now a subclass of QAccessibleTextWidget and most of its methods were moved to QAccessibleTextWidget. This is a forward port of ba5d7d608cc31fc63354fd74d85a1bad7780fc45 from Qt 4.8, and is a prerequisite for forward-porting QPlainTextEdit Change-Id: I6093c4fa7e0a77b84de779479c6074db006efec1 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Document QFile::open() argument "handleFlags"Jeremy Katz2012-08-141-0/+2
| | | | | Change-Id: I5ef909b21ddd4782062dd4ebd0ea7bca33f3387f Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Add Linux Accessibility BridgeFrederik Gladhorn2012-08-1422-1/+4414
| | | | | | | | This is a plugin that bridges the QAccessible world to AT-SPI 2 on Linux. Change-Id: I7af22621ee6a3cefc723b137b7f227a611cf6641 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* qsql_oci: use OCI_COMMIT_ON_SUCCESS for SELECT without transactionMark Brand2012-08-131-7/+2
| | | | | | | | | | Otherwise, the open statement, say in QSqlQueryModel, will prevent other statements from running. Task-number: QTBUG-18608 Change-Id: Icdd6817fb981678be6fb70ade21a8123e152dcf6 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
* Fix declaration of qt_gettime for Q_DECL_NOTHROWThiago Macieira2012-08-133-1/+5
| | | | | | | | Since the #include wasn't present in the qelapsedtimer_{mac,unix}.cpp files, we did not notice that the declaration missed the macro. Change-Id: I3e4f23b28e127d41b12690cf306f47986be53d89 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* fix some QElapsedTimer doc grammar issuesJeremy Katz2012-08-131-3/+3
| | | | | Change-Id: I9bdb0b93b101119477a560b28396f88ea8103745 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use Qt::WindowFlags, not Qt::WFlags.Stephen Kelly2012-08-132-2/+2
| | | | | | | | | The latter seems to date from the Qt 1 days, and such abbreviations are not current Qt style. Change-Id: I83bc8722a309f4ece7e51881590d07b40fbe6bef Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Make QElapsedTimer always store nanoseconds in t2Thiago Macieira2012-08-131-18/+15
| | | | | | | | | | | | | Up until now, the value stored in t2 depended on whether we had found a monotonic clock or not. Fix that by always storing nanoseconds: we avoid extra calculations and accessing a global variable all the time. The impact is contained to the actual getting of the time. And we mitigate by using clock_gettime to get the realtime clock instead of gettimeofday, if that's available. Change-Id: Iceef2d050fd9472f1a66e11e7ded79fe5163a132 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix a ### Qt5 issue: remove limits.h from qreadwritelock.hThiago Macieira2012-08-131-1/+0
| | | | | Change-Id: I1fc54561aabd1be693f179e668031ddb0f86a130 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>