Commit Graph

15 Commits (f8b727d94bf1cbbb61eee6efaf04de46787eccc4)

Author SHA1 Message Date
Marc Mutz e721cf1508 QCollatorSortKey: inline operator<
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>
2013-11-17 09:47:34 +01:00
Marc Mutz 3e803b5180 QCollator: enable move semantics
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>
2013-11-17 09:47:07 +01:00
Marc Mutz 2c450d90b6 QCollator(SortKey): add member-swap
This is required for a Qt value type these days.

Change-Id: Ibd4e1581a4f4791a410caa10fede92c26b35dd9d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-15 16:44:03 +01:00
Jerome Pasion 4533cc9944 Doc: Adding mark-up to boolean default values.
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>
2013-10-08 00:46:27 +02:00
Aleix Pol 1864b485e4 Make QCollator more flexible to use in different platforms
So far we've known that we want QCollator as public API. It hasn't
been possible yet due to the strong dependency that QCollator used
to have on ICU.

This patch adds collation support for the platforms where ICU is not
the best option by using native collation API. Namely Windows and
Mac OS X.

Additionally a fallback POSIX back-end is added, so that we can make
sure it will work on any posix-compliant platform.

Change-Id: Ia1734acbf5f596698a81f2af927cc15636e4c908
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-09-13 05:48:10 +02:00
Aleix Pol c517a6d6ff Refactor QCollator to be able to use it in different platforms
Propose the API to be changed so that we can implement QCollator in the
different platforms where Qt is available.

Change-Id: I7b3e933d7e3d1aa26c1b78d21ef75b71c692827f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-09-13 05:47:55 +02:00
Lars Knoll ec64d514fb Make the QCollator class public
The class missed the feature freeze for Qt 5.0, but has been ready
for quite a while. So make it public in time for Qt 5.2.

Change-Id: I9ac3f579ff5e371925fad40684762fff7ee4abd8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-13 05:47:37 +02:00
Sergio Ahumada 48e0c4df23 Update copyright year in Digia's license headers
Change-Id: Ic804938fc352291d011800d21e549c10acac66fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-01-18 09:07:35 +01:00
Giuseppe D'Angelo 11b5c54f55 Remove qSort from QCollator docs
Change-Id: I4523b7e4cd2a7f9e07a39e48e8024ceb0d7eb839
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-11-16 12:06:49 +01:00
Iikka Eklund be15856f61 Change copyrights from Nokia to Digia
Change copyrights and license headers from Nokia to Digia

Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2012-09-22 19:20:11 +02:00
Thiago Macieira 7b39a06fab Doc: Add \inmodule QtCore to all QtCore class doc bodies
Change-Id: I19100755c97cc155c76a859e19940e9f9222d34e
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-23 13:22:23 +02:00
Lars Knoll 1bf5865a41 Fix a couple of qdoc errors
Change-Id: I79f689e08ed4a496052529af38fca72c3d4e04cb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-18 10:55:47 +02:00
Lars Knoll 03dba8c596 Mark QCollator as internal.
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>
2012-08-15 11:38:37 +02:00
Friedemann Kleint 378e65c07a Windows/ICU: Compile fix.
Change-Id: I95c281b0e577a89e4d92dd16fd039ab9e53036f5
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-12 07:11:39 +02:00
Lars Knoll 1e9be1327b Add proper collation support to Qt
QString::localeAwareCompare() has always been a broken
way to support collation. The current implementation is
not even thread safe.

This adds a proper collation class that fixes the problems
and finally allows Qt to sort properly according to locale
rules.

The class is private for now, but is intendent to be made
public with 5.1

Change-Id: Idb4e75ff68a398c9813af622af884a90898d2be9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-10 19:08:56 +02:00