summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools
Commit message (Collapse)AuthorAgeFilesLines
* Doc: Add \inmodule QtCore to all QtCore class doc bodiesThiago Macieira2012-08-2340-1/+72
| | | | | Change-Id: I19100755c97cc155c76a859e19940e9f9222d34e Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Simple optimisation in toLocal8Bit(): call codecForLocale once onlyThiago Macieira2012-08-231-6/+9
| | | | | | | | | The function is only slow the first time we call it, but there's no reason we can't do this simple optimisation anyway. Change-Id: Icacbbeb340838b32f5278b76d1860ad22dc9f7b7 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Disregard milliseconds in QTime::secsTo().Mitch Curtis2012-08-211-1/+4
| | | | | | | | | | | | | | | | "The documentation states that "secsTo() does not take into account any milliseconds", however, this is not the case. Given times 12:30:01.500 and 12:30:02.400 secsTo returns 0. If milliseconds are not taken into account, I would expect this to return 1 (i.e. interprets the times as 12:30:01 and 12:30:02 thus truncating the milliseconds)." Note that tests were also written for QDateTime::secsTo(), as it uses QTime::secsTo internally. This addresses Javier's issue in the comments of QTBUG-9304. Task-number: QTBUG-9304 Change-Id: I9efe0c8f710db859c1d086d67ba3e5b349a56c4e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Serialise QDateTime as UTC and timeSpec() instead of private spec.Mitch Curtis2012-08-211-6/+27
| | | | | | | | | | | | | | | | | | | | | | | QDateTime currently serialises its private Spec enum. If a user was to deserialise the individual components of a QDateTime separately, the resulting timeSpec may be invalid when cast to the Qt::TimeSpec enum. E.g.: QDateTime dateTime(QDate(2012, 8, 14), QTime(8, 0, 0), Qt::UTC); // ... serialise // ... deserialise date, time, spec separately. // spec == 2, the value of QDateTimePrivate::UTC. // spec != UTC, will be set to LocalUnknown. QDateTime deserialised(date, time, spec); This patch serialises QDateTime objects in UTC and the value of timeSpec() as opposed to QDateTimePrivate's spec. This changes the serialisation behaviour of QDateTime for version 13 of QDataStream. Task-number: QTBUG-4057 Change-Id: If650e7960dca7b6ab44b8233410a6369c41df73a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* doc: Added \relates command to some function qdoc commentsMartin Smith2012-08-211-1/+1
| | | | | | | | | | | | | When a documented function is global, it must be related to a namespace or class, or its documentation won't be included anywhere. When a documented function is a class member, the function signature in the \fn command must include the class name qualifier, e.g. QImage::isValid(), not just isValid() Change-Id: I53e2230fa9468f94d51aec8cc76781d7ab755a13 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Add Q_DECL_NOTHROW to some qHash functionsThiago Macieira2012-08-205-34/+39
| | | | | | | | | | | | The hashing functions for QDateTime and QHostAddress did not get the noexcept keyword because they might allocate memory. QDateTime doesn't do it now, but it could in the future. QHostAddress does allocate memory today. Change-Id: Ia5f80942944bfc2b8c405306c467bfd88ef0e48c Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix a couple of qdoc errorsLars Knoll2012-08-182-4/+3
| | | | | Change-Id: I79f689e08ed4a496052529af38fca72c3d4e04cb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix most qdoc errors for QMapLars Knoll2012-08-181-18/+10
| | | | | Change-Id: I8cac3b63cab32c655f722aca467489730c3f0a42 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Fix spelling errorsSergio Ahumada2012-08-171-1/+1
| | | | | Change-Id: Ibae8d10183f6b15a16b1499daa2df8802dbb014e Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
* Remove trailing comma in enumThiago Macieira2012-08-151-1/+1
| | | | | | | | | | | 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>
* 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>
* 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>
* Make the "\internal" qdoc command stand on its own lineLaszlo Papp2012-08-155-10/+25
| | | | | | | | | | 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 declaration of qt_gettime for Q_DECL_NOTHROWThiago Macieira2012-08-132-0/+3
| | | | | | | | 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>
* 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>
* Use an include guard for qelapsedtimer.h that matches the file nameThiago Macieira2012-08-101-3/+3
| | | | | | | The class used to be called QTimeStamp before. Change-Id: I6e543f4f131a80299eb5dae78d8852b7899bab8a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Use Q_LIKELY instead of doing an #ifdef for GCCThiago Macieira2012-08-101-7/+2
| | | | | | | | This code predated the Q_LIKELY macro. Now that we have it, use the official macro. Change-Id: I0e43609f8d6827f8fef7b928655a965cba579b8d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Mark QElapsedTimer functions as Q_DECL_NOTHROWThiago Macieira2012-08-098-63/+63
| | | | | | | | | | | | | | | | | | All functions in QElapsedTimer are marked Q_DECL_NOTHROW. This code is often introduced in many places to deal with timeouts and doesn't need exception handlers. In particular, it's used in QMutex locking. In addition, mark QDateTime::currentMSecsSinceEpoch as nothrow, as it can't throw exceptions either and it is needed by the generic QElapsedTimer. Q{Date,Time}::current{Date,Time} operate on local time and run into at least one cancellation point, which we must consider throwing. And returning a QDateTime allocates memory. Change-Id: Id776c5ec831fc06d7419a9ff5442d9b35cff1a22 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Add Q_DECL_NOTHROW to QRefCount.Thiago Macieira2012-08-091-8/+8
| | | | | | | | | For the same reason as the previous commit (about the atomic classes), mark these functions as never throwing an exception. Change-Id: Idf46e41b226f54cb8658416efdf985ca40dd2952 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Rename QMapData::free to destroyThiago Macieira2012-08-091-3/+3
| | | | | | | | | | | | | The convention for QMap is that "free" methods simply free memory and that "destroy" ones also run destructors of types affected. Since this function calls destroySubTree, it should be more properly called "destroy". This also gets rid of another function called simply "free" in our headers. Change-Id: I3fa621c78848ede33dd5b78428c704d0423ba4e7 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Rename QLinkedList::free to freeData for consistencyThiago Macieira2012-08-091-6/+6
| | | | | | | | | QLinkedList does use allocations in the .h, by way of operator new and operator delete. But for consistency with other classes, don't call our function free(). Change-Id: I9295f5945619ad4ea82fd1f7f55b34700c54e06a Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Rename QContiguousCache allocate and free functions to say "Data"Thiago Macieira2012-08-092-20/+20
| | | | | | | | | | | The important change is to use functions not called malloc and free. On some old systems or under some weird circumstances, they might be #defined to something different. More importantly, this allows us to quickly verify whether we're using the stdlib.h functions in our public headers. Change-Id: I66b963ac2bc75d64028c04542e62a929e4b36b19 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove use of ::free from qlist.hThiago Macieira2012-08-092-5/+13
| | | | | | | | | | | | | | | | | The memory is allocated in qlist.cpp, so it should be freed in qlist.cpp. Freeing it in qlist.cpp ties our hands about future improvements to the allocator. In addition, silence the warning by the too-smart-for-its-own-good GCC that we're trying to free a non-heap object: qlist.h:763:14: warning: attempt to free a non-heap object "QListData::shared_null" [-Wfree-nonheap-object] The warning is wrong. It should say "possibly" somewhere because GCC failed to account for all conditions in the path to free(). Change-Id: I34a6c16bba9a2197fc83eb3c7a63ae06fb25bf15 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Clarify how days are counted in QDateTime::daysTo documentation.Mitch Curtis2012-08-081-1/+9
| | | | | | | | | Mention that the days are counted as the amount of times midnight is reached between the start and end date. Task-number: QTBUG-26780 Change-Id: I22ff6c56b748ac968d6991e0be3e10905c0634bd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix typos in qdatetime.cpp.Mitch Curtis2012-08-061-8/+8
| | | | | Change-Id: I1c2e3dafcca69590cd7a18fdf65e2c9083ba91b9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qdatetime: micro optimization in fmtDateTimehjk2012-08-051-36/+36
| | | | | | | | The function showed up in the profiler when doing heavy logging involving timestamps in Qt Creator. Change-Id: I81c4e22981a5de91df3da6a0f1df2a08552fa71a Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* fix a few qdoc command typosJeremy Katz2012-08-011-1/+1
| | | | | Change-Id: I5eb3a6d2bb7939f001f1fcb836660dd46a47c350 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Doc: QVarLengthArray::length is new in 5.0Christian Kamm2012-08-011-0/+1
| | | | | Change-Id: I796e67d677309460d79a7a64a6890dfbcfbace69 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix compilation: Move qHash(const T &t, uint seed) up.Friedemann Kleint2012-08-011-2/+2
| | | | | | | | | It needs to be visible from qHash(const QPair<T1, T2> &key, uint seed). Change-Id: Ibb63ce6da1e655bfb841c5e580e184ef66c5b766 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Mac: Don't crash if language preferences can't be retrieved.Eike Ziller2012-07-311-1/+1
| | | | | | | | | That can happen when e.g. running an application with sudo. Task-number: QTBUG-26547 Change-Id: Ib16ef7798ebcd1c9b8d661dd2e3ce3aadc393489 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
* Introduce QTypeInfoMerger.Jędrzej Nowacki2012-07-271-12/+1
| | | | | | | | | | | | QTypeInfoMerger class was created to allow "inheriting" QTypeInfo traits. The class implementation was based on the QTypeInfo<QPair<>> specialization, therefore the specialization was refactored to use the new class. Change-Id: I4ff3e5eac1d55da086dad84274cce2b2c0a721be Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove references to nonexistent QLocale::setDefaultLocale() in docs.Mitch Curtis2012-07-252-2/+2
| | | | | | | | | Should be QLocale::setDefault(). Task-number: QTBUG-23210 Change-Id: I0f5e6cc431f568c9b8c4be1411b7b47835304d0b Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
* More qHash(T, uint) supportGiuseppe D'Angelo2012-07-232-39/+75
| | | | | | | | Add the seed to QPair, QUuid, QPersistentModelIndex's qHash(), and fix qHash documentation for them and for many other datatypes. Change-Id: I1386f3ed42ee1a832371a242ee5c82895ba92c2b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* fix "No such ..." doc error for QString::toHtmlEscapedJeremy Katz2012-07-191-1/+1
| | | | | | | And a minor rephrase. [...] a HTML -> an HTML Change-Id: I49804d009737b58ca3bb43e60dac869e045b5536 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* fix "No such ..." in qmarginsJeremy Katz2012-07-191-2/+2
| | | | | | | | | Is it more appropriate to rename the parameter in question "margin", as suggested by the documentation, or have the documentation refer to "m", as suggested by the code? Change-Id: I5768ef044164e099ef1db77adda42171799cbf12 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Write qHash functions for QDate, QTime and QDateTime.Mitch Curtis2012-07-122-0/+41
| | | | | | | | These functions didn't exist - this patch implements them. Task-number: QTBUG-23079 Change-Id: I9eb6e238531d5cda878f5f2cdd27bab30aa60669 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add unary operator+ to QPoint and QPointF.Mitch Curtis2012-07-122-0/+26
| | | | | | | | | | | | | As requested by Winfried Schenke: "QPoint should have an unary operator+ (the unary operator- exists). Classes with arithmetic operators should provide a complete set of operators, because some template code relies on it." Task-number: QTBUG-22913 Change-Id: Ib0c5105975f56c15f00bb48d83c8d911f5a204ac Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Put the ICU libraries in LIBS_PRIVATEThiago Macieira2012-07-111-2/+2
| | | | | | | | We don't expose ICU in our public API, so there's no need for end-user applications to be forced to link to ICU. Change-Id: Ie7a1cef205b9859be4c6b21f486392d192cf6063 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Fix some spelling errorsSergio Ahumada2012-07-112-5/+5
| | | | | | Change-Id: I19d3b2e9a5180b13deb828b55195404ef20be295 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Make the documentation consistent with the header and QVector* classesLaszlo Papp2012-07-101-4/+4
| | | | | Change-Id: If0c5951029beb388cf4b1b8269de7305d0556ef1 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Use factor and divisor wording to be consistent with the documentation and restLaszlo Papp2012-07-101-27/+27
| | | | | Change-Id: If05bdcba8f94f4220bae4c40dc5fc3cf44ee41a0 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Speed up QCoreApplication construction a bitHarald Fernengel2012-07-101-2/+2
| | | | | | | | Remove all QString conversions during QCoreApplication construction on Linux. Saves multiple mallocs. Change-Id: Ia8ba071a750dd6a08dcf14ef3ecc424f70a3098d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Q_DECLARE_SHARED: mark the type movableMarc Mutz2012-07-103-3/+0
| | | | | | | | | | All implicitly shared classes are by definition movable, so this patch adds Q_DECLARE_TYPEINFO(Type, Q_MOVABLE_TYPE) to Q_DECLARE_SHARED. Change-Id: Idf8989ae1a7ed6d1ac13fccb7eaef7395a875350 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QtCore: mark some classes as sharedMarc Mutz2012-07-102-4/+4
| | | | | Change-Id: I811d3eebd87c230883cc579c20f9fa4e14ff9521 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make the x() and y() method documentation consistent with the restLaszlo Papp2012-07-101-2/+2
| | | | | Change-Id: I24d34fe32e2ed7673ba525db0543e705d08037c4 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Add note and references to the operator*=() methods for consistencyLaszlo Papp2012-07-101-0/+12
| | | | | Change-Id: Ic2681e1db39a30619d3b2a906595cdbdd0e766d6 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* QArrayData: Fix gcc warning about parentheses in 'a + b & c'.Friedemann Kleint2012-07-061-1/+1
| | | | | Change-Id: I2c08dc8170c77de401663b1643ebca8484dbfec0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Add QChar::SoftHyphen enum valueKonstantin Ritt2012-07-032-1/+2
| | | | | | | | | Just like for the QChar::ByteOrderMark, `ch == QChar::SoftHyphen` is much more readable than `ch == 0x00ad // (soft-hyphen)`, etc. Change-Id: I9c85f14cfd979037d35103c3259a435fd729b869 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Silence clang warning in QVector::reallocData()Kent Hansen2012-07-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | qvector.h:459:30: warning: destination for this 'memcpy' call is a pointer to dynamic class 'QImage'; vtable pointer will be overwritten [-Wdynamic-class-memaccess] ::memcpy(dst, srcBegin, (srcEnd - srcBegin) * sizeof(T)); ~~~~~~~~ ^ qvector.h:459:30: note: explicitly cast the pointer to silence this warning ::memcpy(dst, srcBegin, (srcEnd - srcBegin) * sizeof(T)); ^ (void*) QImage inherits from QPaintDevice, which has virtual functions. qimage.h declares QImage as a movable type, so QTypeInfo<QImage>::isStatic is false. Hence, the memcpy codepath will be reached when the vector is not shared. We should trust that people declaring such type traits know what they're doing, so silence the warning. Change-Id: If36582f57a398fc237fb4bd4f72938fb09667118 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>