summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools
Commit message (Collapse)AuthorAgeFilesLines
* Doc: corrected invalid ref. to output iteratorsNico Vertriest2013-11-291-4/+4
| | | | | | | Task-number: QTBUG-34749 Change-Id: I7abd504b6081e84a8e67c7957e13d402999e9d38 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* QTimeZone - Fix dateForLocalTime() to check validity of next transitionJohn Layt2013-11-211-3/+6
| | | | | | | | | The private method dateForLocalTime() was not checking that transitions were valid, resulting in infinite looping when a time zone didn't have any future transitions. Change-Id: I0e5d07063861778dd86056a80c36fdd9f9d36133 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QTimeZone - Fix TZ file abbreviationsJohn Layt2013-11-214-100/+171
| | | | | | | | | | | | | | | | Fix parsing of TZ file abbreviations, to correctly return cases where POSIX rule doesn't have separate DST rules, and where abbreviation is a sub-string of another abbreviation, otherwise any toString() call will crash. Add test to exercise all available time zones, especially useful for TZ file to confirm all file format variations dealt with. Fix parsing of Version 3 of TZ file, and ICU display name, to allow all files generated from release 2013f to pass, otherwise isValid() call will crash. Task-number: QTBUG-34061 Change-Id: Ie0b6abc218adff1c8967eb33fdb0762041d2305f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QTimeZone - Fix Windows Transitions with null rulesunknown2013-11-211-1/+10
| | | | | | | | | | Fix the Windows handling of null DST rules for a given year, if the calculation rules have a null value then can skip trying to loop through the calculations until the min/max year is hit which causes the stress test to time-out in CI, and instead return a value immediately. Change-Id: Ie2d4ee55c5487e040e0cead91d1be2a0c06d3074 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QTimeZone - Change Olsen ID to IANA IDJohn Layt2013-11-215-76/+79
| | | | | | | | | | | | | | | The name Olson was misspelled as Olsen in the public api of QTimeZone which is needed to be fixed before first public release in 5.2 would freeze the api and prevent it being fixed. It has been decided that renaming as IANA ID would be more future-proof. Fixes to the private code will be done separately to keep this patch against release branch to the minimum required. Task-number: QTBUG-34735 Change-Id: I8ee90644862c907f6d1937b8536f0c02583ae736 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QCollatorSortKey: inline operator<Marc Mutz2013-11-176-25/+10
| | | | | | | | | | | | | This code was duplicated in every qcollator_platform.cpp and identical everywhere, except in _icu, which uses a QByteArray m_key and the implementation used QByteArray::operator<, which is semantically and probably code-wise identical to what the other implementations did (after inlining). Inlining this function removes a potential maintenance problem and increases speed without violating encapsulation. Change-Id: If3e9d38a7d4326b49f0611a9f4187c53960e8a03 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QCollator(SortKey): declare as sharedMarc Mutz2013-11-171-0/+3
| | | | | | | | | | | | This enables specialisations of (std and q) swap using member-swap and declares the types movable for efficient use in Qt containers, and QList in particular. This is a binary-incompatible change, so cannot wait for 5.2.1. Change-Id: I7e90b6397ac4d00d0a7a5c42bae166c1b43e1994 Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QCollator: enable move semanticsMarc Mutz2013-11-172-3/+29
| | | | | | | | | | | | | | | This necessitates adding d==0 checks in QCollator. By documenting that moved-from instances can only be assigned to or destroyed, we can limit the functions in which to check for d==0 to the assignment operator and the destructor. Doing otherwise would destroy all advantages of move semantics by introducing a heap allocation to re-populate other.d. Add a test for this (QCollator didn't have any before). Change-Id: Ic6ff202072822bebfd5e48259c3d0fa345a63118 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QCollator(SortKey): add member-swapMarc Mutz2013-11-152-1/+13
| | | | | | | This is required for a Qt value type these days. Change-Id: Ibd4e1581a4f4791a410caa10fede92c26b35dd9d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QCollator: mark ctor explicitMarc Mutz2013-11-151-1/+1
| | | | | | | | | QCollator and QLocale are not equivalent types, so there should be no implicit conversion between them. Change-Id: I395f8dc3c35b4202c9276c3eea0686176f8e07cc Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Add missing \since 5.2 to QMap::first/last{,Key}Marcel Krems2013-11-141-0/+6
| | | | | Change-Id: I04b356bfdd2298dccb174ac7cc83d54a3fbcdc02 Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* QTimeZone: mark ctors as explicitMarc Mutz2013-11-141-2/+2
| | | | | | | | | | | An int is not a proper representation for a QTimeZone, so don't provide an implicit conversion from it. OTOH, {QByteArray, int, QString, QString} _does_ nicely represent a QTimeZone, so explicitly state the implicitness of that constructor so {}-init continues to work in C++11. Change-Id: I865a6b38b8ab3c577625b7b08efbfc98914abfbe Reviewed-by: John Layt <jlayt@kde.org> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Doc: remove superfluous \since 5.2Marc Mutz2013-11-141-2/+0
| | | | | | | | The whole QTimeZone class is \since 5.2. Change-Id: I681b924b534f2f75315b2eaf506aaa7d9590efa1 Reviewed-by: John Layt <jlayt@kde.org> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QTimeZone: declare as sharedMarc Mutz2013-11-141-0/+1
| | | | | | | | | | | | This enables specialisations of (std and q) swap using member-swap and declares the types movable for efficient use in Qt containers, and QList in particular. This is a binary-incompatible change, so cannot wait for 5.2.1. Change-Id: I431315e148b95f82dc3d4471c57ef729539dca9f Reviewed-by: John Layt <jlayt@kde.org> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QTimeZone: add member-swapMarc Mutz2013-11-142-1/+11
| | | | | | | | This is customary for Qt value types these days. Change-Id: If5374c2595a904337eaef4afc08cdc993229ac25 Reviewed-by: John Layt <jlayt@kde.org> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Avoid signed integer overflow by making an addition a subtractionThiago Macieira2013-11-091-1/+1
| | | | | | | | | | | The task has a very good explanation. The use-case was ba.remove(n, INT_MAX); since you can't pass -1 to the length, and that results in overflow when you add n+INT_MAX. Task-number: QTBUG-34694 Change-Id: I365eb86b2d0dabbe0bde67e4e7f33d64fd5793af Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QTimeZone - Fix Windows Transitionsunknown2013-11-091-63/+89
| | | | | | | | | | The Windows tz transition routines were not checking for a number of invalid scenarios, in particular where there are no next transitions able to be calcualted, leading to infinite loops. Change-Id: I262b4321a95be1df4228774ada3908f8d3ed6c1a Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QTimeZone - Fix Mac TransistionsJohn Layt2013-11-091-19/+38
| | | | | | | | Fix nextTransitions() where there are no next transitions and improve performance of previousTransition() and data(). Change-Id: I5d44525554243d139ba8d5f86e41bdfc0f7bfc25 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add missing \since 5.1 for QVector::takeFirst() and ::takeLast()Pekka Vuorela2013-11-051-0/+2
| | | | | Change-Id: Ic2d7e82187a17e21c2ed0e81318294730c3a0930 Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* Declare Cocoa conversion funcs in objc-mode only.Morten Johan Sørvig2013-11-051-1/+5
| | | | | | | | | | | | | | | | | In practice, there are several ways to forward-declare objective-c classes. Qt uses "struct objc_object", other projects may use a plain "class". Mismatched forward declarations will lead to compile errors, and this is a form of header pollution. dd5e40d9 added a workaround where Q_FORWARD_DECLARE_OBJC_CLASS can be predefined in order to sync up the declarations. Make forward declaration clashes less likely by forward-declaring in objc-mode only. Change-Id: I9f7a399d64dc88bfe05d5385b3d46b5302112aef Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Add qcollator_p.h to the list of headers.Thiago Macieira2013-11-051-0/+1
| | | | | Change-Id: I91963843e10fe0c33e5f13c06562dc5f9fdc2b6d Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Doc: Fix broken linksSze Howe Koh2013-11-052-6/+6
| | | | | | | | Task-number: QTBUG-33360 Change-Id: Ic944cb2f575c35ebad64852ef5fc44a50ac03571 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Ensure QLocale's shared C-locale QLocalePrivate is never deletedTor Arne Vestbø2013-11-041-3/+7
| | | | | | | | | | | | | | | | | Other static data such as QTextStream might be initialized before the static C-locale, in which case QLocale would adopt c_private and bump the ref-count to 2, only to see it reset back to 1 when the c_locale's static initialization happened. The result was that at application shutdown the ref-count would fall down to 0, and we tried deleting the static data. This issue was observed with clang in a debug build, where the c_private is initialized at runtime. Change-Id: If05221a5e87886e1805ad3c1b1520483f425c0fb Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QDateTime - Optimize refreshDateTime()John Layt2013-10-311-4/+1
| | | | | | | | | | A small optimization to the private refreshDateTime() function, improves standard performance tests by 0.3 msecs per iteration for affected functions, e.g. isValid() and offsetFromUtc() improve from 5.4 to 5.1. Change-Id: Ie67812649ef244388b484af35848b09d92dee38a Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QDateTime - Optimize date() and time() methodsJohn Layt2013-10-311-6/+8
| | | | | | | | | | | | | | | | | Optimize the performance of date() and time(), resulting in a one-third improvement, and subsequent improvements in all date/time based functions. Tested over 1000 iterations of the standard benchmarks, in msecs per iteration: Before After date()/time() 0.3 0.2 setDate()/setTime() 0.9 0.8 daysTo() 0.6 0.4 Note original performance before msecs storage was 0.06. Change-Id: Ie838e560ddf7129281531dc965af56ac19cce91d Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove unused static function systemtimeToMsecs()Kai Koehne2013-10-281-8/+0
| | | | | | | See also commit 660aed3516f91c that removed the reverse method. Change-Id: Ib20c5be863ba6644485c581e3ece47a390ce467d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Change an addition into a subtractionThiago Macieira2013-10-191-1/+1
| | | | | | | | | | | | | | | | This potentially resolves the long-standing warning from GCC: assuming signed overflow does not occur when assuming that (X + c) < X is always false GCC prints the warning to warn people that you can't check for overflow with signed integers by doing that (signed integers don't overflow in the standard). If we change this to X < X - c, there's no overflow. Task-number: QTBUG-33314 Change-Id: I5b166610a39559ec7b03c4c31ee5999efefa0c06 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QDateTime - Fix RFC 2822 Date FormattingJohn Layt2013-10-171-25/+3
| | | | | | | | | The RFC 2822 date format should always use en_US locale for month and day names instead of whatever the system locale is. Also remove some duplicate code. Change-Id: Ia2f7ee405b4e0e2f04980301783b9488628da73f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QLocale - Mac fix typos in commentsJohn Layt2013-10-171-2/+2
| | | | | | | Fix some typos in the comments. Change-Id: I14eed0ffed74f0a60b05441430158f71cb530c01 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* QDateTime - Fix toTimeSpec() for invalid datetimesJohn Layt2013-10-161-3/+30
| | | | | | | | | | Check if the datetime is valid before converting it to a different time spec. If it is invalid then just change the spec to keep behavior consistent with 5.1. Task-number: QTBUG-34020 Change-Id: I6630ec1d50f810a2178ab3222bd32af018085f81 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix wide-char use in Posix collatorMatt Hoosier2013-10-161-1/+2
| | | | | | | | | | | | | | Although the C++ language builds in the 'wchar_t' datatype, the library functions such as wcscmp() which manipulate them are not automatically available. For these, inclusion of the <cwhar> header is still required. This changeset fixes build breakage observed from failure to include the requisite system header for accessing wcscmp() and other related functions on non-GNU standard C++ library implementations. Change-Id: I5b2f9148ea011004e5dd00cf41698339db172de8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QTimeZone - Fix finding Linux System Time ZoneJohn Layt2013-10-151-2/+2
| | | | | | | Extract the correct length sub-string from the /etc/sysconfig/clock file Change-Id: I37b4f625a51b172ed11ecefbd1b7dc562c5bb89d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add missing operators QMargins -=,+= (int).Friedemann Kleint2013-10-151-0/+18
| | | | | | | Task-number: QTBUG-34079 Change-Id: If61cc01ba70345b01f13072769d3a38f23e8cefc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QMap - improve docs a bit (mainly by adding more time complexities)Thorbjørn Martsum2013-10-151-2/+13
| | | | | | Change-Id: I8a361ef09c338bbba228fd774b2bfd938869adc5 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Improve implicit shared documentation a bitThorbjørn Martsum2013-10-156-7/+61
| | | | | | | | Task-number: QTBUG-27061 Change-Id: I66e000a9f59fda3654066013e6e78c3ba6fd27fe Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QList - fix a few doc issuesThorbjørn Martsum2013-10-151-10/+14
| | | | | | | | | Though some of it was mensioned in the introduction to the class, we are not in O(1) if we modify a shared container. Change-Id: If63b4cb4bdfc98d6b1333bae307e5650341e5484 Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Fix typos and add missing words.Marcel Krems2013-10-122-3/+3
| | | | | Change-Id: I40e4780bcabbca29425945a69d8a0781cd5c0e9f Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* QVector: add some functions missing for QList compatMarc Mutz2013-10-112-9/+52
| | | | | | | | | | | | Eases migration from QList to QVector. Had to rename the 'length' parameter to mid() to suppress -Wshadow warnings. Task-number: QTBUG-3781 Change-Id: I755c6caefe4de81ea42a81b1c76aab728e639613 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Doc: Adding mark-up to boolean default values.Jerome Pasion2013-10-0839-635/+635
| | | | | | | | | | | | | | | | | Default values should have mark-up to denote that they are code. This commit changes: -"property is true" to "property is \c true". -"Returns true" to "Returns \c true". -"property is false" to "property is \c false". -"returns true" to "returns \c true". -"returns false" to "returns \c false". src/3rdparty and non-documentation instances were ignored. Task-number: QTBUG-33360 Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* QCommandLineOption: declare as sharedMarc Mutz2013-10-071-0/+2
| | | | | | | | | QCommandLineOptions are held in a QList in QCommandLineParser, so they better be declared movable, which is one of the things Q_DECLARE_SHARED enables. Change-Id: I75c8185534b4e9c1ea4417a9507095c8a6512aab Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Remove unused static function msecsToSystemtime() from qtimezoneprivate_win.cpp.Friedemann Kleint2013-10-011-11/+0
| | | | | Change-Id: I8d6b4c9215fb4499affefd0b892cea1b77aa8ac9 Reviewed-by: John Layt <jlayt@kde.org>
* Fix grammar in QScopedPointer.Mitch Curtis2013-09-301-1/+1
| | | | | | | have => has Change-Id: Ib77110b8ffd2f970e15c2159480e56be9ef964ca Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* QDateTime - Fix round-trip of second occurrence timesJohn Layt2013-09-272-15/+55
| | | | | | | | | | | | | | | | | | | | | | | At the Daylight Tme to Standard Time transition, the local time repeats itself, i.e. 2am occurs twice. Qt's behavior when setting this using the local time is ambiguous, as it depends on the system implementation of mktime, which behaves differently on different platforms. Currently this behavior remains undefined. When setting using an msecs or time_t value however we can determine the correct instance to use and cache it to ensure that any conversion back from local time to msecs is performed consistantly on all platforms. Note that caching this value will result in any calculations being wrong should the system time zone change, or its rules change. This will be fixed in Qt 5.3 when the system time zone change signal is implemented and QDateTime switches to using QTimeZone instead of mktime to provide consistnt behavior across platforms. The QTimeZone spec does not require this fix as it already caches the correct offset in setMSecsFromEpoch(). Change-Id: I799588db474e744a6d81e80f6a0442920569ebd3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Add docs for rvalue references and move constructorsGeir Vattekar2013-09-2714-0/+219
| | | | | | | | | These members were introduced in 4.8, but left undocumented. Because we consider undocumented API to be internal, the members are \since 5.2. Change-Id: I52e2840a8cfaa7f59f410b3e2a06c0942ea06539 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QVarLengthArray - doc fix.Thorbjørn Martsum2013-09-271-2/+2
| | | | | | | | | QVarLengthArray actually does support iterators. It was added in Qt 4.8. Change-Id: I9f714a09eab1d2e5dc023bd701ab7c743b078ec0 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QLocale - Fix Mac date format code translationJohn Layt2013-09-261-29/+76
| | | | | | | | | | | | | | | | | | | | Mac uses the CLDR format codes which need to be translated into their Qt equivalent. The existing code mistranslates the year code, is outdated for a number of new codes introduced in recent versions of CLDR, and by default accepted any codes it didn't recognize. This change updates support to the latest version of CLDR, fixes the treatment of years, and defaults to ignoring any new format codes added in the future. Note that this change cannot have auto tests written as the system locale formats change between versions of OSX. Testing must be done manually by changing system locale and formats. Task-number: QTBUG-25057 Change-Id: I69dda25b4a0b38d3971995644546306876922d57 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* QString::reserve fix to avoid truncationMarko Pellikka2013-09-261-2/+2
| | | | | | | | | | In case of implicit memory sharing, QString::reserve caused data truncation if given size was smaller than size of data. Task-number: QTBUG-29664 Change-Id: If2da5ad051385635ebb829c18b5ebaa349f08e8a Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Fix truncation and conversion warnings on MSVC2010.Mitch Curtis2013-09-251-1/+1
| | | | | Change-Id: I44845e13b97753333a7c80a80ead0b352b8906b0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Fix configure warnings on Windows 7 with MSVC2010.Mitch Curtis2013-09-251-1/+1
| | | | | Change-Id: I5c4e27d6437cdf7b0dfd17df812d4506d1be4fb9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Fix warning about uninitialized variableLars Knoll2013-09-251-1/+1
| | | | | | Change-Id: I9c1a04556d4c77183d7025ca33314e7dfbf953ab Reviewed-by: John Layt <jlayt@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>