Commit Graph

1036 Commits (c83c08d84fe00a4033d7ba61fd95c150f643736d)

Author SHA1 Message Date
Konstantin Ritt 2af5567f3e Update QLocale locale database up to CLDR 23.1
This only added Kosovo [XK] territory and few valid locales for it.

Change-Id: Ia0b47041ed5cd1303b5bc233f2502a3725c74da9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-08-12 23:05:59 +02:00
Matt Broadstone ade0d8361c add QScopedPointerDeleteLater, a custom deleter for QObjects
This is a custom deleter for QObjects that are participating in an event
loop (e.g. waiting for signals to complete a task), which need to be
deleted using deleteLater() rather than just delete.

Change-Id: I3084ea28a6829a299c7400006c617fc23cf15160
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-08-12 19:41:05 +02:00
Oswald Buddenhagen 629bf43f16 un-confuse lupdate: make #ifdef'd braces symmetrical
as a side effect, this also de-duplicates the code, which is good in its
own right.

Change-Id: I504cb518276fdf610639c3337e3842570b97815f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: John Layt <jlayt@kde.org>
2013-08-12 19:01:24 +02:00
Friedemann Kleint 8fd3d53a93 QByteArray: Remove some reinterpret_cast<>.
Fix warning: QByteArray(QByteArrayDataPtr dd) constructor warning
C4946: reinterpret_cast used between related classes: 'QArrayData'
and 'QTypedArrayData<T>'.

Task-number: QTBUG-32559
Change-Id: I06356902f79ed6bf784127ff0c3a97d3263a25da
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-07-30 20:34:11 +02:00
Thiago Macieira 2c285b893c Add a few more typedefs to QString, for STL compatibility
Task-number: QTBUG-22890

Change-Id: I457be6367e577dee30532383d10c519b2f2617b3
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2013-07-30 02:57:54 +02:00
Jake Petroules fb25d6c7f6 Remove a left over cast that is now semantically incorrect.
CFPropertyListRef is a typedef for void*, which is why this code was
compiling OK prior to this change.

Change-Id: I78d65652a76721434056bd9f6d011917e2864125
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-30 01:14:16 +02:00
Richard Browne 9f8a724cda Work around msvc /clr LNK2005 errors with QList
This patch fixes a compatibility with Qt 5 and Microsoft C++ /clr mode.
The QList copy constructor defines a Cleanup class that causes LNK2005
errors. It is a compiler problem, but the patch is simple. The use of
QT_TRY/QT_RETHROW instead of a Cleanup class is more consistent with other
Qt code, so is arguably preferable even without the compiler bug.

Task-number: QTBUG-31949

Change-Id: I1acfbae1924f0a52ffb8d9722b52e01b61edd42e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-30 01:14:16 +02:00
Bernd Weimer cebac1ae2f Avoided zero devision in cube root approximation
Halley's method to get a better approximation is omitted, if it
would include a devision by zero (INFINITY/NaN is worse).

Change-Id: Ida09326e2b5892d7cb21bcb956631c289e5b56ba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-29 19:29:15 +02:00
Mitch Curtis 4f7727d861 Correct QHash::values() documentation.
Change-Id: Ia19bd0578591f77e5aee1c7e3e619ba97754f384
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-07-29 12:08:23 +02:00
Giuseppe D'Angelo 5b9006bbdb Implement move-ctor and move-assignment-op for QScopedPointer
It makes sense for a QScopedPointer to be movable, for instance
for allowing instances to be returned from a function.
Ownwership of the managed pointer is still tied to one (and one only)
QScopedPointer instance.

Moreover, a move assignment operator makes sense as well, as it
implementing the equivalent of

  this->reset(other.take());

only when other is a rvalue and not a lvalue (so either it's a temporary
or it's getting explicitly moved in with std::move).

This makes QScopedPointer API's a bit closer to std::unique_ptr's one.

Task-number: QTBUG-29754
Change-Id: If1ac0c688327a67af4ad5b7ad45b439b022ed1c6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-28 23:09:10 +02:00
Kevin Ottens 288e50227d Add the RFC2822Date format
QDateTime can now be converted to strings compliant to RFC 2822.
Additionally, it supports RFC 850 and RFC 1036 during parsing.
By having them all together, all type of dates found in exchanged
messages on the internet (including USENET) get supported.

Change-Id: I771066c23f409d20b31b7d802f37852ea68ca2a0
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-07-24 15:02:35 +02:00
David Gil 7dbe4df27b Add reminders to change uint to quint64 in Qt6 QDateTime time_t methods
In order to avoid problems in 2038 with time_t dates in 32-bit machines,
add reminders to change uint to quint64 in Qt6, in time_t-related methods
of QDateTime.

Change-Id: I1596a64fe1806df17c28c7586bb1ce6283b9ae02
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-15 10:15:33 +02:00
Thorbjørn Martsum 659f62981f QVarLengthArray - check if iterators arguments are valid (in debugmode)
This add checks on iterators on insert and erase.

Change-Id: I41d96e038d74668cc1df10b6d42cde4b82f8a696
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 16:15:44 +02:00
Thorbjørn Martsum 012d3750e7 QSet - check if iterator argument is valid (in debugmode)
This adds a check on erase that the iterator is from the set.

Change-Id: I9f4e127d53a5b1f5f8c70652604f1f5574c73688
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 16:15:44 +02:00
Thorbjørn Martsum 1c0a924a2e QHash - checks if iterator argument is valid (in debugmode)
This checks if the iterator argument in erase is valid in debug mode.

Change-Id: I8768f4263d1464ff78986a1a30702e210e561dc1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 16:15:44 +02:00
Thorbjørn Martsum ca3d8411b2 QList - check if iterators arguments are valid (in debugmode)
This adds a check of the iterator values in erase and insert.

Change-Id: I78403dcbd24fd7c6beb86d3c827a8e233963e770
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 16:15:44 +02:00
Thorbjørn Martsum 578fc87dff QVector - check if iterators arguments are valid (in debugmode)
This adds a check of the iterator values in erase and insert.

Change-Id: I28e660153dbfc5f0054a5b25cba2c5725c678a81
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 16:15:44 +02:00
Thorbjørn Martsum d24aa28b4c QMap - check if iterator arguments are valid (in debugmode)
This patch adds a debug-tests in erase, insert (with hint)
and insertMulti (with hint) that ensures the iterator-argument
is valid (and e.g not from another map)

Change-Id: I7920131bc9712543183cabf13c7603bd0e12880d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 16:15:44 +02:00
Sergio Ahumada 3ef6cf060e Merge branch 'stable' into dev
Conflicts:
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/json/qjsonwriter.cpp
	src/corelib/kernel/qeventdispatcher_blackberry.cpp
	src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm

Change-Id: I24df576c4cbd18fa51b03122f71e32bb83b9028f
2013-07-11 16:42:01 +02:00
Eskil Abrahamsen Blomfeldt f84dc0ff62 Implement system locale for Android
On Android, we would default to C locale always. We need a connection
to Java in order to get the locale, so this has to be done in the
platform plugin rather than the QtCore library. It's enough to
instantiate the QSystemLocale subclass, since this will automatically
register itself as the current system locale.

Task-number: QTBUG-31651
Change-Id: I76f3e30f7dff90e8101cb560cee2b96c9300d9af
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-07-04 12:14:03 +02:00
Thiago Macieira fc4d45d97d Fix change-of-sign warning found by ICC
qstring.cpp(3896): error #68: integer conversion resulted in a change of sign

The line before also had 0x8000, but since there was no addition,
0x8000 was a literal converted to short. However, 0xff + 0x8000 is an
int, and 0x80ff is positive, while short(0x80ff) is negative.

Change-Id: I445ff401d817b643479e54320525890ce12bbfe5
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-07-03 01:24:12 +02:00
Frederik Gladhorn 6213b81457 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
	src/plugins/platforms/qnx/qqnxrasterbackingstore.cpp
	tools/configure/configureapp.cpp

Change-Id: I3092bd3276af14304b7ab3ae1e1cc05d11cdede0
2013-06-20 16:45:12 +02:00
Konstantin Ritt e3dadce470 Ensure we don't repeat QTBUG-30931 in Qt5
The issue is already fixed in 5.0 but let's be nice and ensure the issue
won't be reintroduced later.

Task-number: QTBUG-30931

Change-Id: Ia6944acaf6e7217f8d0f1fa75d0e9977db11d892
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-06-18 13:36:23 +02:00
Mitch Curtis 8a680201f1 Fix roundtrip conversion of datetimes.
QDateTime.toString() is writing out milliseconds since change
15da0a5af2. Unfortunately this breaks
QDateTime::fromString() with Qt::TextDate which can't handle the new
format.

Fix by making QDateTime::fromString split up seconds and milliseconds
on a period, if any. Now
QDateTime dt = ...;
assert(QDateTime::fromString(dt.toString(), Qt::TextDate) == dt)
works again.

Change-Id: Ibfe9032e357ceaf894e33f3e33affe94f56dbf5c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-06-17 13:21:49 +02:00
Stephen Kelly d9fb6e6dbb Remove use of 'register' from Qt.
It is deprecated and clang is starting to warn about it.

Patch mostly generated by clang itself, with some careful grep
and sed for the platform-specific parts.

Change-Id: I8058e6db0f1b41b33a9e8f17a712739159982450
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-17 09:44:22 +02:00
El Mehdi Fekari 686c94c892 QSystemLocale: Fix the time format on BlackBerry 10
The time format should depend on the device settings (24 hour format)

Change-Id: I452d9b7158d39c4a657adfd9e64c99549eeda4ff
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-06-14 10:21:42 +02:00
Frederik Gladhorn e2776b44a0 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/cocoa/qcocoamenubar.mm

Change-Id: I4a699fc8a7f30b2af9de8e496c3d5f027b7495bb
2013-06-12 19:17:07 +02:00
Albert Astals Cid f7dee7383d Q_DISABLE_COPY doesn't need a ; at the end
Fixes warnings when -Wpedantic is enabled

Change-Id: I8fcfbfa9bb3a5ab61c85f8cb74660f6f7e459fc0
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Alejandro Exojo Piqueras <suy@badopi.org>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-06-10 12:17:11 +02:00
Friedemann Kleint 274e571be1 QtCore: Fix MSVC-64 warnings about integer truncation.
warning C4267: 'argument' : conversion from 'size_t' to ' int', possible
loss of data.

Change-Id: I79af7497420d468b5bc7c48c9ae21b86117519a9
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2013-06-08 10:29:34 +02:00
Sérgio Martins 805031814b Initialize variable to quiet valgrind.
It's accessed by the Q_ASSERT in QArrayData::data().

Change-Id: I859ef9c736b24857cd3f57f9fa54aafd36e57afc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-05 18:24:10 +02:00
Mitch Curtis bd01db4a98 Fix typo in QAlgorithms documentation.
Change-Id: Ic9107f427acc1e009779d39e0a204ea81d54aee7
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-06-05 12:56:00 +02:00
Mitch Curtis 9aa24645eb Prevent negative size in QBitArray, QVector and QVarLengthArray ctors.
As shown in QTBUG-24345, QBitArray will exhibit invalid reads when
initialised with a negative size and run under valgrind.

QVector and QVarLengthArray both cause a crash if initialised with a
negative size.

This patch enforces sizes greater than or equal to 0 with asserts and
existing if statements, and hence impose no performance penalty for
release builds.

Task-number: QTBUG-24345
Task-number: QTBUG-30037

Change-Id: I9a969f6016e0a59904a60bbfe9e5360e6f523b87
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-05 10:46:51 +02:00
Mitch Curtis 4f2c96eaa8 Iterate over the smaller set in QSet::intersect().
When calling intersect() on a large (1000000 items) QSet, with a small
(1000 items) QSet as the argument, the function takes signifcantly
longer than when the operand and the argument are reversed. This is
because the operand set is always iterated over in its entirety.

This patch changes intersect() to iterate over the smaller set. This
reduces the large operand scenario's benchmark to ~0.000063
milliseconds, compared to the current ~134 milliseconds:

1000000.intersect(1000) = empty: 0.000063 (was 134)
1000.intersect(1000000) = empty: 0.000039 (was 0.000036)
1000000.intersect(1000) = 500: 0.10 vs (was 130)
1000.intersect(1000000) = 500: 0.023 vs (was 0.093)
1000000.intersect(1000) = 1000: 0.20 vs (was 139)
1000.intersect(1000000) = 1000: 0.017 vs (was 0.016)

Task-number: QTBUG-22026

Change-Id: I54b25c49c78c458fef355e9c6222da8a64c7681f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-05 09:35:42 +02:00
Frederik Gladhorn 80604a0786 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/global/qglobal.h
	src/plugins/platforms/cocoa/qnsview.mm

Change-Id: I6fe345df5c417cb7a55a3f91285d9b47a22c04fa
2013-06-04 19:34:36 +02:00
Thiago Macieira 76d75fd7df Use the GCC inline assembly when building for MinGW
MinGW has a longstanding problem of providing the MSVC intrinsics that
every Windows developer expects to be there. Other projects have run
into those problems.

So instead just use the GCC inline assembly.

Change-Id: I5651f97f9a4dfbf98ebbf063f91f221eab80b224
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-06-04 18:33:02 +02:00
Mitch Curtis 46e6bbd229 Mention QRect's int min/max constraints in detailed description.
Task-number: QTBUG-25732

Change-Id: If330768c3075568f09593ed17f26389d3dec3335
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-06-04 02:22:47 +02:00
Mitch Curtis 15da0a5af2 Make QTime::toString output milliseconds for Qt::TextDate, Qt::ISODate.
Section 4.2.2.4 of ISO 8601 allows for decimal fraction representations
of dates and times. Currently, when calling
QDateTime::toString(Qt::TextDate) or QDateTime::toString(Qt::ISODate),
the milliseconds will be omitted. However,
QDateTime::fromString(str, Qt::TextDate) and
QDateTime::fromString(str, Qt::ISODate) already support decimal
fraction representations, so this patch just adds this support to
QTime::toString, and hence QDateTime::toString().

Task-number: QTBUG-30250
Change-Id: If58e4b3d3105322c51d11a76b832e5e634d8991f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-03 17:05:12 +02:00
Frederik Gladhorn d3a8bc803c Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/io/qdatastream.cpp
	src/corelib/io/qdatastream.h
	src/corelib/json/qjsonwriter.cpp
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/xcb/qxcbkeyboard.cpp

Change-Id: I46fef1455f5a9f2ce1ec394a3c65881093c51b62
2013-05-23 21:27:07 +02:00
jian liang 403c46b9b7 Fix QLocalePrivate object leaking
Set ref count to zero in QLocalePrivate::create() to avoid QLocalePrivate
object leaking.

Change-Id: I8948c27d59b2038266ab04c6113610b9b4481b45
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-05-20 10:06:04 +02:00
Jake Petroules bf10f2be19 Repurpose the former Q_OS_MAC synonym "Q_OS_MACX" to mean "OS X".
The equivalent was done earlier for qmake, and this will enable
developers writing OS X-specific code to use #ifdef Q_OS_MACX as
opposed to overly verbose #if defined(Q_OS_MAC) && !defined(Q_OS_IOS).

The sole usage of Q_OS_MACX within qtbase has been changed to the
now appropriate value and documentation has been updated.

Change-Id: I2c59eea02e94b691b705170b2f96a97940fdc756
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-09 12:17:59 +02:00
Mitch Curtis 83315ce8b2 Revert QDateTime serialisation to pre-Qt 5 behaviour.
In Qt 5, I managed to break the guarantee that a deserialised local
datetime is the same time of day (potentially different UTC time),
regardless of which timezone it was serialised in. This happened after
I fixed QTBUG-4057 with If650e7960dca7b6ab44b8233410a6369c41df73a,
which serialised datetimes as UTC.

This patch reverts QDateTime serialisation to pre-Qt 5 behaviour to
restore the guarantee and consequently re-opens QTBUG-4057.

Change-Id: Iea877f7ed886f530b928067789b53534e89fe8cb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-08 10:00:29 +02:00
Thiago Macieira bf2a0c795e QLocalePrivate: remove unused dataPointerForIndex function
Change-Id: I0cd3f8a526e11c3df53fe0cbb063e01c5a3564f9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-05-08 06:05:40 +02:00
Thiago Macieira 8aff3d0bed Add a pair of constructor/assignment function pairs to QPair
To allow copying one QPair of two types to a QPair of two different
types.

Change-Id: Ie7aa84cf5a361be6b7d242517578172c35bcacfd
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-05-08 06:05:35 +02:00
Jonathan Liu 157596b1c2 Specify gnu_printf for message formatting with MinGW
The custom printf formatter Qt ships supports e.g. %lld, which is part
of gnu_printf, but not ms_printf. This fixes a lot of MinGW warnings.

Change-Id: Iff600f20ac23ecb88c4b569d2e668f5d4af6ef27
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-05-08 03:16:35 +02:00
Giuseppe D'Angelo 66ff3f7fa4 Add qt_hash(QStringRef) overload
This enables fixing a performance regression compared to Qt 4.
Also, add some qt_hash tests.

Change-Id: Id830e17dec99fb67e5930c80029ac2233b2f427e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-07 22:43:14 +02:00
Sergio Ahumada db44b891fb Merge branch 'stable' into dev
Change-Id: Ica003a10ede86914bbbb062a2dc277a2ce39a259
2013-05-07 12:02:41 +02:00
Thiago Macieira 4d6572aac0 QLocale: cache the QLocalePrivate for the default QLocale
Change-Id: I6f05da4d426a0aa685dd9f2fd0020e413a4bebad
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-05-01 23:05:35 +02:00
Thiago Macieira 30a8d73fdc QLocale: cache the C locale's private
Change-Id: I81bbfeffebb5b7fc29d67bb7127beaf13838ac9f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-05-01 23:05:35 +02:00
Albert Astals Cid b1de018e9a Fix QLocale::standaloneMonthName when d->m_data == systemData()
At the moment if  d->m_data == systemData() it calls
systemLocale()->query but forgets about the standalone part
so you get the wrong data

This patch introduces the new enums so that backends can implement
properly the standaloneMonthName feature properly. At the moment the Windows
and Mac ones still return the monthName, the Unix and Blackberry ones return
the data we store in months_data

Change-Id: Idc5a50b04ab1f914f16c7385be1dca2e027feae3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Mehdi Fekari <mfekari@blackberry.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-01 21:05:33 +02:00
Thiago Macieira 08ac38a6e3 Make QLocalePrivate POD
QSharedDataPointer does not actually need a class derived from
QSharedData. All it needs is a member called "ref".

Change-Id: I2f7fe4cc143478ef7ef64681eada16e2d4c2e63a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-04-30 17:21:21 +02:00
Thiago Macieira 50ab31a5df QLocalePrivate: remove QLocalePrivate::m_index
It's not used anywhere, so we don't need to cache the locale data
index. We already have the pointer to the QLocaleData anyway.

This saves us a few roundtrips calculating the index from the data
pointer only to get the data pointer again.

Change-Id: I6905d20a382ddcb9fb04cc886a17499b467f905a
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-04-30 17:21:21 +02:00
Thiago Macieira 600c538cd6 Move the code that creates QLocalePrivate to separate functions
Direct benefit is that the code between the two QLocale constructors
taking language, country and (maybe) scripts is merged.

This will also allow us to cache the QLocale::c() result.

Change-Id: Ia46c5a37764dc287bfcd3a52a022ac413c53a582
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-30 17:21:21 +02:00
Frederik Gladhorn 85e3c53e5c Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2a54058b64ac69c78b4120fdaf09b96e025a4c6c
2013-04-29 14:17:09 +02:00
hjk 01cbd7e4b5 Remove QLocalePrivate::m_localeID
It was only used for toUpper/toLower but always computed in the
constructor, including QString::toLatin1 conversion and allocations.

This needlessly slows down all other uses, including supposedly "cheap"
operations QString::toDouble, or accesses inside QResourceFileEngine.

The benchmarks indicates that doing it always when needed is bearable.
There's still a lot of improvement potential on these code paths.

Change-Id: I88b637ee11f9f7ea614f8da4ec5df0bf40664fce
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-04-23 18:57:45 +02:00
hjk 32629676b9 Use a QVector<QDateTime> instead of an array in QFileInfoPrivate
Since QDateTime is pimpled, default allocation is expensive and
regularly shows up in profiles of code using QFileInfo.

For Qt 6, QDateTime's data members should be put into the class
proper, and this change here reverted.

Change-Id: I94a50e467b12772e1076181eb2ac6031984d8802
Reviewed-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-23 18:57:45 +02:00
Frederik Gladhorn 4c231d5df3 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I059725e3b7d7ffd5a16a0931e6c17200917172b5
2013-04-22 16:35:43 +02:00
Thiago Macieira 96134c6f58 Make sure to also check for null CFPropertyLists.
In 1b08e0307d, I removed the null check
by accident. It's possible for the Darwin API to return a null
property list.

Task-number: QTBUG-30760
Change-Id: Iaf0125767fe4b47c19810b70483a5219e94e4305
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-19 07:53:21 +02:00
Morten Johan Sørvig c5a3cfa488 Compile with Clang.
This bug surfaced after we switched Mac over to use
clang's libstdc++, which has __builtin_popcount but
does not mark it as constexpr.

Change-Id: I4260af48b00c6db3322e52fb113075d305b1e1ec
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-04-18 22:27:04 +02:00
Frederik Gladhorn aa3754d105 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Iee73c93067c5822d8dd51a8692e6da9df4ba49f5
2013-04-12 12:53:13 +02:00
Friedemann Kleint 0b12cf613f QVector: Fix signedness warning in assert.
Task-number: QTBUG-30331

Change-Id: I91b346b36162e8146a05babd24afa4bfb7259bec
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-04-11 10:03:00 +02:00
Marc Mutz e3e42322c0 Add some easy move constructors
These are easy, since they can be inline. Most types that would
benefit from move constructors can't have inline move constructors
because these types use smart pointers whose destructor is invoked
in the type's move constructor. Implementing move constructors
out-of-line would break binary compatibility between C++98 and C++11
builds of Qt and its users, so that is not attempted here.

Change-Id: I7f14437c2069cce54c498c7858f4e9060ff05e7b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-05 13:29:43 +02:00
Frederik Gladhorn 814f713f01 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Id96d4076610366a7cc66c8d8382ca25c33eaa71d
2013-04-03 14:40:26 +02:00
Marc Mutz 52ebf1f191 With GCC, use __builtin_popcount{,l,ll} for qPopulationCount()
Change-Id: Ied7a98fa17404f1d9678bfbc1ced4817ab52f40e
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-03 11:38:35 +02:00
Marc Mutz 76e0223619 Add qPopulationCount() function, extracted from QBitArray
This functionality is used in multiple places in Qt itself, so it makes
sense to have a global function for this. This also allows to map this
onto specialized assembler instructions, should an architecture provide
them, later on.

Also added comprehensive tests, using a 4-bit lookup-table implementation
as a reference.

Change-Id: I8c4ea72cce54506ebb9fbe61141dbb5f1b7a660f
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-03 11:38:35 +02:00
Konstantin Ritt f0af3ed4e5 Update QLocale data to CLDRv23
Say hello to Interlingua and Mongolian once again.

Change-Id: I735fbc5793f34620be1f6932a251224b9ded02e3
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 12:03:55 +02:00
Konstantin Ritt af553b7b1b Replace HB_JustificationClass with QGlyphAttributes::JustificationClass
Also move stringToGlyphs() helper closer to shapeTextWithHarfbuzz(),
where it is only used.
As of now, Harfbuzz-old dependency in QTextEngine can be disabled
by simply if-defing a single piece of code.

Change-Id: Ic6f7d9b64bf9201d7540c58db46e20f28de8120d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 11:53:58 +02:00
El Mehdi Fekari 2523f20c61 Fix typos in QBBSystemLocaleData
Change-Id: Ic893cdf4a274af660fae7f39011851318f0d244b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-30 10:50:40 +01:00
Konstantin Ritt bc4dcb6994 QLocale: Report textDirection() by looking to the locale script
Change-Id: Ic562b0301271ba414d5d3ff75a308d84bd288f56
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-30 08:23:04 +01:00
Thiago Macieira bafd3fdf1c Make the inline CPU detection functions also static
Since qCpuHasFeature() checks the static qCompilerCpuFeatures variable
and that variable's value might change depending on the compiler flags,
it's best to ensure that the function is not subject to link-time
merging. That would be bad if it happened when qCpuHasFeature() was used
from a file with higher CPU compiler settings than the default, as it
would incorrectly conclude that certain features are always available.

Change-Id: I8bacde056fb89869ec1d306a163742e72522315e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-03-26 21:44:15 +01:00
El Mehdi Fekari f1d8987b82 Fix a bug in QSystemLocale on BB10
Call qt_safe_open in the constructor
to avoid opening the pps files several times.

Change-Id: I1bf79284850353a47ee1fc17797cd667536e17b1
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-03-26 18:58:29 +01:00
Rafael Roquetto 17159b4500 QLocaleBlackberry - fix include statements
Change-Id: Ifb5678094806e4aab19015d3a600217b4cf9ac5f
Reviewed-by: David Faure <david.faure@kdab.com>
2013-03-26 18:54:42 +01:00
Oswald Buddenhagen fa62b6c73e match #ifdefs relating to arm compilation
use the same conditional around the #include as the actual code below
uses, otherwise we risk mismatches.

Change-Id: I8ca32c0178b1970928626a927948b06d4c6d31b9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-24 03:24:52 +01:00
Thiago Macieira caffabc798 Mark Q_UNUSED the private members that aren't used
Apple Clang 4.2 has a new warning, letting you know when a private
member isn't used by any member function (and, I guess, if the class
has no friends):

  private field 'd' is not used [-Werror,-Wunused-private-field]

Qt has a few of those for future expansion. It's not an error for us.

Change-Id: Id2edb1159589572f97a07f93181c9c96c5dd983c
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2013-03-23 01:55:58 +01:00
Samuel Rødal 2ab9b747fc Merge remote-tracking branch 'gerrit/release' into stable
Conflicts:
	configure
	mkspecs/features/qt_module_headers.prf
	mkspecs/features/qt_tool.prf
	src/angle/angle.pro
	src/tools/bootstrap/bootstrap.pro
	tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp

Change-Id: Ide5759fe419a50f1c944211a48f7c66f662684e0
2013-03-21 08:49:01 +01:00
Oswald Buddenhagen 76c0be34cd Merge branch 'dev' into stable
This starts Qt 5.1 release cycle

Conflicts:
	src/gui/text/qfontdatabase.cpp
	src/gui/text/qharfbuzz_copy_p.h
	src/widgets/kernel/qapplication.cpp
	src/widgets/kernel/qcoreapplication.cpp

Change-Id: I72fbf83ab3c2206aeea1b089428b0fc2a89bd62b
2013-03-20 13:49:28 +01:00
Konstantin Ritt 0d866c35d6 QLocalePrivate: Add convenience language/script/country to code helpers
Change-Id: Id9126a95f1b3a75f510e642ab08c68cefaf3d142
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2013-03-19 18:33:16 +01:00
Thiago Macieira d1b4857d17 Make sure that we #include qconfig.h before testing for features.
This is mandatory in public headers (qiodevice.h, qopengl*, etc.), but
it's a good idea even in private headers, in case someone includes
that header first somewhere. In particular, all platformsupport API is
private.

Change-Id: If287baa5d9ed14e93c1666efa0e6332c4c1cd9a4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-19 07:02:57 +01:00
Laszlo Papp c82121fd7f Amend the missing documentation for the from*() static overloads
c951908bc2 sneaked in without adding documentation
to those public static methods. Hence, the public documentation online for those
methods appear to be empty.

More importantly, they have been missing the indication that the introduction
took place in Qt 5.0.

Change-Id: I3ca3fa57a96e28e2d64d0af28159d8bda9cbe71a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-17 14:44:41 +01:00
Axel Waggershauser b11317a643 Whitespace cleanup: remove trailing whitespace
Remove all trailing whitespace from the following list of files:
*.cpp *.h *.conf *.qdoc *.pro *.pri *.mm *.rc *.pl *.qps *.xpm *.txt *README
excluding 3rdparty, test-data and auto generated code.

Note A): the only non 3rdparty c++-files that still
have trailing whitespace after this change are:
* src/corelib/codecs/cp949codetbl_p.h
* src/corelib/codecs/qjpunicode.cpp
* src/corelib/codecs/qbig5codec.cpp
* src/corelib/xml/qxmlstream_p.h
* src/tools/qdoc/qmlparser/qqmljsgrammar.cpp
* src/tools/uic/ui4.cpp
* tests/auto/other/qtokenautomaton/tokenizers/*
* tests/benchmarks/corelib/tools/qstring/data.cpp
* util/lexgen/tokenizer.cpp

Note B): in about 30 files some overlapping 'leading tab' and
'TAB character in non-leading whitespace' issues have been fixed
to make the sanity bot happy. Plus some general ws-fixes here
and there as asked for during review.

Change-Id: Ia713113c34d82442d6ce4d93d8b1cf545075d11d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-16 20:22:50 +01:00
Konstantin Ritt c20422af13 Move Unicode script itemization code from text engine to UnicodeTools
This is still the same trivial implementation with the only difference in that
that it properly handles surrogate pairs and combining marks.

This temporarily makes QTextEngine::itemize() insignificatly slower due to
using intermediate buffer, until refactoring is done.

Change-Id: I7987d6306b0b5cdb21b837968e292dd70abfe223
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-03-14 19:49:38 +01:00
El Mehdi Fekari a0c4a71226 Inital port of QSystemLocale on BlackBerry 10
Change-Id: Ic177e2867d9fa3dbaec221766964ac28656a2662
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-03-14 19:49:38 +01:00
Mitch Curtis 958b621ba2 Correct QDate and QTime documentation.
Task-number: QTBUG-30055

Change-Id: I94c8e023f5e3d23ff2f1c74d0763b1c825deb3d1
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-03-14 16:17:22 +01:00
Jan Arve Saether 75614792fa Fixed bug in QTimeLine::setPaused(false)
The problem was that the elapsed timer was not restarted,
causing the currentTime() not being adjusted for the time
it was paused.

Task-number: QTBUG-30108

Change-Id: Ib9b2c5a0dea52762109e0b25f1068dd7c88e15ba
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-03-13 14:51:05 +01:00
Konstantin Ritt 0194fa135b Hide Harfbuzz from the outer world
Don't export, don't generate private headers, don't mention HB in API.

Change-Id: I048ebd178bf4afaf9fda710a00933b95274cf910
Reviewed-by: Josh Faust <jfaust@suitabletech.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-13 14:46:26 +01:00
Oswald Buddenhagen 4d2bf663eb interpret format argument of QString::sprintf() as UTF-8
we expect our source code to be utf-8 throughout, so it doesn't make
sense to expect the specifier to be latin-1, as that limits the
effective charset to ascii.

Change-Id: I22335509ba6c5805d8b264cfd01d7f9a4cf7ef76
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-12 18:13:37 +01:00
Mitch Curtis c1771a78ed Correct QString's warnings involving QRegularExpression.
Replaces "QRegularExpresssion" with "QRegularExpression" and adds some
auto tests for the warning itself.

Task-number: QTBUG-30054

Change-Id: Iba333a4388795eccca809fb430c295f503794263
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-03-12 11:43:01 +01:00
Mitch Curtis 6bc691dde5 Revert 6497649730 and clarify docs.
It introduced a regression by requiring that a p/P was also present:

QTime time = QTime::currentTime();
qDebug() << time.toString("h:mm:ss a");
// Outputs "10:05:42 am" in Qt 4.8.
// Outputs "10:05:42 a" with 6497649730.

This patch also clarifies the QTime::toString(QString) documentation.

Change-Id: I4d73a959c2ca76304f03a4ce9717b540ad4e8811
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-03-12 11:43:01 +01:00
Giuseppe D'Angelo 6b821a3dc8 QRegularExpression: refactor the handling of the study data
Consider the following situation:
- threads A and B have shallow copies of the same QRegularExpression
- threads A and B both call match() on a string
- thread A calls optimizePattern(), which doesn't optimize
- thread B calls optimizePattern(), which does optimize, and sets
  studyData
- thread A uses studyData (set by B)

A needs to properly acquire the memory pointed by studyData
(which, in turn, needs to be released by B). This commit implements that.

(Before, we used to return a copy of the current studyData from
optimizePattern(), so A didn't see that B optimized the pattern
and set studyData).

Change-Id: I9e4741a3d3229905c247491a07099519815680bb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-12 09:16:42 +01:00
Kai Koehne 124da59cb4 Fix static builds with ICU
Make sure we actually link against the static version of the ICU libs for
static builds.

Task-number: QTBUG-29478

Change-Id: Ida7b439f11c5393bee43bfe804f9ec84bf272b34
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-12 09:07:38 +01:00
Frederik Gladhorn 72e5124b85 Merge remote-tracking branch 'origin/release' into stable
Conflicts:
	tests/auto/opengl/qgl/tst_qgl.cpp

Change-Id: I3c601351c984c1f4b00478d3c47ac9eeb021e892
2013-03-08 16:11:33 +01:00
Laszlo Papp 0e8520d18f Update the documentation for C++11 initializer lists support
The documentation was written for 4.8 when the C++11 standard did not have the
name yet.

Change-Id: I08640a5ae62385b09e181eefafd4cc831e4de456
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-03-07 11:14:20 +01:00
Thorbjørn Martsum 3222db0937 QVector - removeLast optimize
In case somebody uses QVector as a stack, it is not fair to have
takeLast, removeLast and pop_back to do way too much work.

This is still very slow compared to std::vector::pop_back
(mostly due implicit sharing), however it is more than a
factor faster than before.

Change-Id: I636872675e80c8ca0c8ebc94b04f587a2dcd6d8d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-07 08:37:26 +01:00
Thorbjørn Martsum ab52e72292 QVector - add functions takeFirst and takeLast
This patch adds takeFirst and takeLast which are functions
that QList also has.

Change-Id: I761f90b529774edc8fa96e07c6fcf76226123b20
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-07 06:13:06 +01:00
Thorbjørn Martsum 510660080d QVector - add remove functions
This patch adds the functions removeFirst() and removeLast().
Functions that QList has.

Beside making these functions, pop_back and pop_front are
redirected to these rather than calling erase.

Change-Id: Ifc5f8a78e33f436f06f21095a920ec5d4311fd6f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-07 06:12:59 +01:00
Mitch Curtis a8c6708260 Correct QLocale(const QString &) documentation.
Change-Id: I6430ff2636083204fa12437980626260f848e269
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-03-07 00:44:21 +01:00
Thorbjørn Martsum f0533ba8c2 QMap - add multiInsert with hint
This provides a fast multiInsert in QMap (and a fast insert in
QMultiMap) when providing a correct hint.

Change-Id: I3c864c3a7842765fe63f8ecb4b54d0e8c9fd22d7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-06 18:56:30 +01:00
Thorbjørn Lund Martsum ca6a4258d0 QMap - add insert overload that provide a hint
This adds a fast insert on QMap when providing a correct hint.

Change-Id: I256bba342932c1d4f24c6e65074e1bf47b519537
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-06 18:56:17 +01:00
Frederik Gladhorn 49a2ec05b4 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/qnx/qqnxscreen.cpp
	src/plugins/platforms/windows/qwindowsdialoghelpers.cpp

Change-Id: Ib64f21c077b54f2291d19187590bfe869b98477a
2013-03-06 14:38:07 +01:00
Frederik Gladhorn b861063873 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-03-06 00:11:52 +01:00
Fabian Bumberger 56820382f2 Workaround a bug in mktime on QNX
Under certain circumstances, mktime failes to convert the tm struct into secs since epoch.
This is a workaround and fixes the qdatetime and qqmllocale autotests.

Change-Id: If99385142a049c5315429dca177df7fc8e947d55
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Wolfgang Bremer <wbremer@rim.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-05 21:56:52 +01:00
Frederik Gladhorn 5e8ae03578 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/kernel/qtimerinfo_unix.cpp
	src/plugins/platforms/cocoa/qcocoabackingstore.mm
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/windows/qwindowswindow.cpp
	src/plugins/platforms/xcb/qglxintegration.cpp

Change-Id: I8d125fe498f5304874e6976b53f588d3e98a66ac
2013-03-05 13:42:11 +01:00
Konstantin Ritt b1c3f71a7b QLocale: Add some more languages and scripts
Change-Id: Iab23128c1567974154cdcce7412b2e1468bb8462
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-05 12:18:30 +01:00
Paul Olav Tvete 97fcf3bc98 Introducing the Qt Android port
Based on the Necessitas project by Bogdan Vatra.
Contributors to the Qt5 project:

BogDan Vatra <bogdan@kde.org>
Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
hjk <hjk121@nokiamail.com>
Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Paul Olav Tvete <paul.tvete@digia.com>
Robin Burchell <robin+qt@viroteck.net>
Samuel Rødal <samuel.rodal@digia.com>
Yoann Lopes <yoann.lopes@digia.com>

The full history of the Qt5 port can be found in refs/old-heads/android,
SHA-1 249ca9ca2c7d876b91b31df9434dde47f9065d0d

Change-Id: Iff1a7b2dbb707c986f2639e65e39ed8f22430120
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-05 08:31:23 +01:00
Konstantin Ritt 2f31bbd9cc Fix potential issue in QTBF itemization code
Since 5.0, script is QChar::Script which isn't of 1:1 mapping to HB_Script

Change-Id: I2d88f929d7d3c3c994076a4e92ea22370962c41c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-04 14:54:57 +01:00
Thiago Macieira d93b2ef968 Mark all qtbase headers that aren't clean
QtCore has a few headers that, though public, aren't meant to be
included directly. Those are the atomic headers, the three _impl.h
headers and qt_windows.h.

QtGui includes two OpenGL headers that don't compile on their own.

Other libraries should not have headers like that (but they do,
something we need to fix eventually).

Change-Id: I55e4eb057748f47df927ee618f9409acbc189cc1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-03 20:15:21 +01:00
Friedemann Kleint f3f6074355 Document MSVC-restrictions regarding QStringLiteral.
Task-number: QTBUG-28885

Change-Id: I02eed2b27970ec31479a6c80fbe4c336431e13de
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-02-28 01:06:43 +01:00
Konstantin Ritt 996db96d5e Fix QString::toUcs4() returns incorrectly resized QVector
...when the string contains surrogate code points.

Task-number: QTBUG-25536

Change-Id: I07251fee641c14f33175678768ddbe551dbe2bb1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-27 03:13:30 +01:00
Debao Zhang 6d270051a2 Doc: Add the missing \since 5.0
Change-Id: I79f67e18b64efe7d22ed80adbc6f024ef35b3aac
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-02-25 15:06:10 +01:00
Thiago Macieira 44cb71d6fd Compile only the SHA-1 code into qdoc
There's no need to compile the other codecs if they never get
used. It's possible that a whole-program optimisation would remove the
dead code away, but it's not very likely.

Change-Id: I75d7618c174566beec2fab44f60a9f7120133775
Reviewed-by: Richard J. Moore <rich@kde.org>
2013-02-23 18:38:49 +01:00
Thiago Macieira 1b08e0307d Don't assume that all CFPropertyListRef are CFArrayRefs
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
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
2013-02-23 00:29:13 +01:00
Keith Gardner 3b5600f6ee QStringRef: Added toInt(), toUInt(), etc... functions to QStringRef.
Added the following functions to QStringRef: toShort, toUShort, toInt,
toUInt, toLong, toULong, toLongLong, toULongLong, toFloat, and toDouble.
These functions use the corresponding functions found in QLocale.
Updated tst_qstringref.cpp to exercise the new functionality.

Change-Id: I38668a0cc7da0c101a62613fd16cb5a98286617f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-22 21:23:33 +01:00
Jędrzej Nowacki dacc222d5a Fix QVector detaching in one thread while another destroys it.
The patch adds handling for a case when a QVector is shared between two
threads. In such scenario detaching in one thread could collide with
destruction in the other one, causing a memory leak or assert in debug
mode.

Task-number: QTBUG-29134
Change-Id: Idbff250d9cfc6cf83174954ea91dbf41f8ea4aa4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-20 15:22:55 +01:00
Erik Verbruggen 436c65ba21 Fix compilation with Clang on MacOS.
Apparently Clang does not like methods to be declared static inline,
and then have their definition somewhere else. Error messages:

../../../include/QtCore/../../src/corelib/tools/qpoint.h:156:37: error: conflicting types for 'dotProduct'
Q_DECL_CONSTEXPR inline int QPoint::dotProduct(const QPoint &p1, const QPoint &p2)
                                    ^
../../../include/QtCore/../../src/corelib/tools/qpoint.h:77:40: note: previous declaration is here
    Q_DECL_CONSTEXPR static inline int dotProduct(const QPoint &p1, const QPoint &p2);
                                       ^
../../../include/QtCore/../../src/corelib/tools/qpoint.h:338:40: error: conflicting types for 'dotProduct'
Q_DECL_CONSTEXPR inline qreal QPointF::dotProduct(const QPointF &p1, const QPointF &p2)
                                       ^
../../../include/QtCore/../../src/corelib/tools/qpoint.h:239:42: note: previous declaration is here
    Q_DECL_CONSTEXPR static inline qreal dotProduct(const QPointF &p1, const QPointF &p2);
                                         ^

Change-Id: I041b96d79506d2898daf40d70b37f02459de35bd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-19 10:35:06 +01:00
Keith Gardner cfc09b6564 QLocale: Added QStringRef overloads to toInt(), toUInt(), etc...
Added the following function overloads to QLocale: toShort, toUShort,
toInt, toUInt, toLong, toULong, toLongLong, toULongLong, toFloat, and
toDouble.

Change-Id: I8cd90ca08b88338b08a73a72492f4c91c4f46ea4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-18 22:24:54 +01:00
Tor Arne Vestbø 0768920dbd Remove ifdefs for supporting Mac OS <= 10.5
Qt5 requires Mac OS 10.6, so we can remove checks such as
if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6

Change-Id: Iea21727a277291148704ecf9677ed0b68c24920f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-18 00:31:54 +01:00
Giuseppe D'Angelo e88011357e Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-02-17 20:31:38 +01:00
Keith Gardner b26c9da892 QLocalePrivate: Generalized numberToCLocale.
Modified QLocalPrivate::numberToCLocale to take a const QChar * and an
integer instead of a QString. This allows for passing QStrings and
QStringRefs into the same function. Updated the
QLocalePrivate::stringToDouble, QLocalePrivate::stringToLongLong, and
QLocalePrivate::stringToUnsLongLong to use this new function signature.

Change-Id: Ifee5dfcd9b743e1d3b9123a65007c89e8ed93e83
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-02-16 14:51:21 +01:00
Jędrzej Nowacki 8ec2c0a70e Revert "Provide better error if min (or max) is defined in QDateTime"
This reverts commit d0804ff2dd.

The commit breaks JSC which is used by QtWebKit, QtScript and
indirectly by QtQuick1, which blocks integration stable->dev.
JSC should be fixed upstream, but until then we need to revert
the change.

Change-Id: I3f7b8be08b68181e08422d2cb00d7cd70a7fc07f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-02-16 08:07:30 +01:00
Frederik Gladhorn e65cd6f379 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/concurrent/doc/qtconcurrent.qdocconf
	src/corelib/doc/qtcore.qdocconf
	src/corelib/global/qglobal.h
	src/dbus/doc/qtdbus.qdocconf
	src/dbus/qdbusmessage.h
	src/gui/doc/qtgui.qdocconf
	src/gui/image/qimagereader.cpp
	src/network/doc/qtnetwork.qdocconf
	src/opengl/doc/qtopengl.qdocconf
	src/opengl/qgl.h
	src/plugins/platforms/windows/qwindowswindow.cpp
	src/printsupport/doc/qtprintsupport.qdocconf
	src/sql/doc/qtsql.qdocconf
	src/testlib/doc/qttestlib.qdocconf
	src/tools/qdoc/doc/config/qt-cpp-ignore.qdocconf
	src/widgets/doc/qtwidgets.qdocconf
	src/xml/doc/qtxml.qdocconf

Change-Id: Ie9a1fa2cc44bec22a0b942e817a1095ca3414629
2013-02-14 14:24:57 +01:00
Stephen Kelly cc7239da8d Make it possible to use QPointer<const T>
This is possible with QWeakPointer, so allow it for migrating
code too.

In the process, replace the QPointerBase with a member variable for
simplicity. The functionality of the QPointerBase is replaced
by a TypeSelector template.

Change-Id: I3b4c77bdeda2b863cc33e84a3da8a25bae928c8c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-02-13 15:15:56 +01:00
Giuseppe D'Angelo ad0a4eaf8d Improve QRegularExpression captureCount / namedCaptureGroups docs
We need to clarify what's the status of the implicit capturing
group #0 in both of this methods. The former doesn't include it,
while the latter does for convenience/consistency in the way
we count the capturing groups.
(Note that this last behavior is actually autotested.)

Change-Id: I2170842c2a6dffa34fa56389ceead61a92c07cd1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-12 22:40:29 +01:00
Giuseppe D'Angelo d57731b0d7 QRegularExpression: print a warning if (?J) is used in a pattern
(?J) inside a pattern string can be used to allow or disallow duplicated
capturing group names in the pattern string itself.
Although PCRE supports duplicated names, in Qt we don't yet.

Change-Id: I21cd0c41273cd7ef42870ced3a0fad6ba7035cbc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-12 22:40:21 +01:00
Giuseppe D'Angelo bcd04af4e8 QRegularExpression: don't use study data when getting the pattern info
Information about the pattern (number of capturing groups, newline
settings, etc.) are grabbed when the pattern is compiled the first time.

Studying (=> optimizing) is always done later, after a certain amount
of usages. In case this ever changes, add an assert.

Besides, we're not grabbing any info that require studying the pattern
first.

Change-Id: Ica15fa21f7bf13213288d7090d3396a89900078e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-12 22:40:11 +01:00
Thiago Macieira 8f00f2020b Leave some Qt 6 remarks for QStringRef
QStringRef could have been trivial. The destructor is empty, the copy
constructor copies exactly the members and has an empty body and all the
members are POD. Both functions should be removed or defaulted in Qt 6.
When the destructor is defaulted, we can make the constructor constexpr.

We can't do that now because QStringRef is exported and some nasty
compilers (MSVC) like to export all functions, even inline ones, and
then call them without emitting a local copy.

Change-Id: Ie7509fd1a3f737a6c9156ea078d13bb347fc6be0
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-02-12 20:19:43 +01:00
Mitch Curtis 4aa86461eb Ensure QDateTime can handle QDate's full range of julian dates.
Currently, using QDate::maxJd() in tests will fail. This patch changes
some ints to qint64s to prevent overflows where necessary.

Change-Id: I61ebf8f233411a7544689fd5bfa9c3abee54e933
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-12 07:29:36 +01:00
Richard Moore 20bde28448 Add support for SHA3 to QCryptographicHash.
This commit adds SHA3 support to QCryptographicHash. Two implementations
are provided, one optimised for 32 bit and one for 64 bits. The code has
been written to make it easy to add further implementations, for example
ones using NEON instructions on ARM.

Change-Id: I3be9c45bbd4fcc2771d697e7f7ae74e48a831e8f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-02-09 15:58:09 +01:00
Thiago Macieira 8200e49bbe Allow x86intrin.h with ICC 13.1
The Intel C++ Composer XE 2013 Update 2 (a.k.a. ICC 13.1) has fixed the
bug of the undefined intrinsics.

Change-Id: If837a0800725d55fed7eff39b9d52c359dabb073
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-02-06 22:32:48 +01:00
Mitch Curtis 2f555cf6b7 Fix typo in QString documentation.
Change-Id: Ic7ee426e17bb851d948ff5a772559d80ec7fa059
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-02-06 14:21:44 +01:00
Giuseppe D'Angelo 53f9e77140 QRegularExpression: add method for extracting the capturing group names
It may be useful to know which named capturing groups are defined
in an regular expression, and for each of them, what's the
corresponding index. This commit adds the needed method
to QRegularExpression.

Note that extracting the information doesn't happen while holding
the mutex in the private -- pcre_fullinfo just reads information
from the compiled pattern, so that's thread-safe.

Task-number: QTBUG-29079
Change-Id: I50c00ee860f06427c2e6ea10417d5c0733cc8303
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-05 13:46:25 +01:00
Thorbjørn Martsum d0804ff2dd Provide better error if min (or max) is defined in QDateTime
This is better than getting a regular compiler error without
knowing where min was previously defined.

Change-Id: I5a86599cdf76a9a8d87a51e119543206d9f835c1
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-02 10:35:22 +01:00
Thiago Macieira 4c5b503f33 Remove unused variables and functions from the source code
Change-Id: I5f37414ee4846b4fe774361f49367bc0d5874039
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-02-02 10:35:22 +01:00
Thiago Macieira 4b6bd14063 Let ICC 13 build Qt again if the system compiler is GCC 4.7.
GCC 4.7 has new builtins in x86intrin.h that ICC 13 does not (yet)
understand, causing compilation errors.

/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/adxintrin.h(36): error: identifier "__builtin_ia32_addcarryx_u32" is undefined

Change-Id: I1845ccc3bf3ac15aef063bc3f998c5839fa51866
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-02-01 00:48:16 +01:00
Keith Gardner 159e17bc5b QStringRef: Added a trimmed() function.
Change-Id: I67c5d10f29f420e0aea95cf32b5d3c17c141899c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-01-29 22:28:17 +01:00
Frederik Gladhorn 3eb588078e Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-01-29 11:33:35 +01:00
Sergio Ahumada 07e3bcdc10 Remove QT_{BEGIN,END}_HEADER macro usage
The macro was made empty in ba3dc5f3b5
and is no longer necessary or used.

Discussed-on: http://lists.qt-project.org/pipermail/development/2013-January/009284.html
Change-Id: Id2bb2e2cabde059305d4af5f12593344ba30f001
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-01-29 01:06:04 +01:00
Peter Kümmel 70a9caf4de QVarLengthArray: add squeeze function
Add function to move back data to the stack.

Change-Id: Ic78a368459bce68629e29602e4eeae2e1afe398b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-01-28 16:52:40 +01:00
Sze Howe Koh 22550ed78d Doc: Fix broken \keyword link
Fix 19 counts of "Can't link to 'default-constructed value'"
warnings.

There was only one link to "default-constructed values", so the
cleanest solution was to change the keyword.

Also included a related typo fix.

Change-Id: I84b47743ecb72a1b2731ef65080fa1e630d478a4
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-01-28 14:07:34 +01:00
Frederik Gladhorn 02ba93dd3d Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I12b4d8b99bdccae53b1a978cd6eb8f4ac6fb3c76
2013-01-28 11:10:29 +01:00
Thiago Macieira bf5f2a9e3e Switch to struct timespec everywhere instead of timeval
This avoids an extra division by 1000 when getting the current time.

This can't overflow, under normal circumstances, even on 32-bit: when
adding two values less than 1 billion, the result is less than 2
billion, which is less than 2^31.

Change-Id: I6f8e1aadfe2fcf6ac8da584eab4c1e61aee51cbb
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-01-28 07:13:23 +01:00
Laszlo Papp e335fb7254 Add static dotProduct methods to the QPoint(F) classes
Change-Id: I66ac9433b74341a83569a60038ea2f7a025e81b1
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-01-26 00:09:14 +01:00
Sze Howe Koh 63569a68d2 Doc: Fix module name format
Follow the conventions at
http://qt-project.org/wiki/Spelling_Module_Names_in_Qt_Documentation

QtCore         -> Qt Core
QtDBus         -> Qt D-Bus
QtDesigner     -> Qt Designer
QtGui          -> Qt GUI
QtImageFormats -> Qt Image Formats
QtNetwork      -> Qt Network
QtPrintSupport -> Qt Print Support
QtScript       -> Qt Script
QtSql          -> Qt SQL
QtSvg          -> Qt SVG
QtTest         -> Qt Test
QtWebKit       -> Qt WebKit
QtWidgets      -> Qt Widgets
QtXml          -> Qt XML

QtConcurrent   -> Qt Concurrent (partial)
QtQuick        -> Qt Quick      (partial)

Also, distinguish between "module" and "library"

Change-Id: Icb8aa695ae60b0e45920b0c8fce4dc763a12b0cd
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-01-25 17:27:44 +01:00
Roman Pasechnik 45be71bf7d Added initializer list constructors for Qt associative containers.
Affected: QSet, QMap, QMultiMap, QHash, QMultiHash.

Task-number: QTBUG-25679
Change-Id: I01f3ecfbca805f4c053a75232188bd2a77fdb1f2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-01-24 11:38:54 +01:00
Frederik Gladhorn 7df08a8b63 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-01-23 22:12:54 +01:00
Pasi Petäjäjärvi 1309d9a9d6 Use stub function gettimeofday for VxWorks
Vxworks does not have gettimeofday function, use function
implementation from qfunctions_vxworks.h/cpp instead.

Change-Id: Iad2a71c8484ba00dd9406706b1c136297260de4b
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-01-23 10:38:52 +01:00
Thiago Macieira f8b681deed Don't clear the pointer in QScopedPointer's destructor
It helps in valgrinding applications. It's the difference between:
==17609==  Address 0x38 is not stack'd, malloc'd or (recently) free'd

and
==19789==  Address 0x598f478 is 56 bytes inside a block of size 112 free'd
==19789==    at 0x4A0736C: operator delete(void*) (vg_replace_malloc.c:480)
==19789==    by 0x53A77CD: QObjectPrivate::~QObjectPrivate() (qobject.cpp:239)
==19789==    by 0x53B4EB5: QScopedPointerDeleter<QObjectData>::cleanup(QObjectData*) (qscopedpointer.h:63)
==19789==    by 0x53B3980: QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer() (qscopedpointer.h:99)
==19789==    by 0x53A8EEC: QObject::~QObject() (qobject.cpp:750)

Change-Id: If42107c94401a96c05caa511442d6bd010fd4e29
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-01-23 07:53:34 +01:00
Frederik Gladhorn c608ec8254 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/io/qsavefile_p.h
	src/corelib/tools/qregularexpression.cpp
	src/gui/util/qvalidator.cpp
	src/gui/util/qvalidator.h

Change-Id: I58fdf0358bd86e2fad5d9ad0556f3d3f1f535825
2013-01-22 18:40:13 +01:00
Giuseppe D'Angelo f8c389bc3c QRegularExpression: fix wrong argument type for pcre_fullinfo
The pcre(3) man page says that the 4th argument of pcre_fullinfo,
when requesting PCRE_INFO_OPTIONS, should point to an unsigned
long int variable.

Change-Id: I72cd5ab208687715329566556c5f279db57f7872
Reviewed-by: Richard J. Moore <rich@kde.org>
2013-01-20 23:09:56 +01:00
Giuseppe D'Angelo 12d90d6202 Add a note for merging QString::contains(QRE, QREM) overloads in Qt 6
Change-Id: I19609b192618287dbac0de2e893e3e9b40d6a969
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-01-20 22:46:32 +01: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
Frederik Gladhorn 7075e29199 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/widgets/styles/qstyleanimation.cpp

Change-Id: Iae570895be6544de80f9c1ec309d1a08c59daff8
2013-01-16 01:22:45 +01:00
Thiago Macieira dbfa651889 Doc: Update the info on the QSharedPointer internals
Some of it still referred to classes that were cleaned up in Qt 5.0

Change-Id: Ief4ed4b4fce074884f755b0d18a526ac40ad1b0b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-01-15 03:29:15 +01:00
Ruslan Nigmatullin d4adcfb8cc Added QMessageAuthenticationCode
QMessageAuthenticationCode is HMAC implementation based on
QCryptographicHash abilities. HMAC is often used in OAuth and similar
authentication protocols.

Change-Id: Ifc73947ad06c36a1b770315b7e89ba5c01c5e79e
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-01-14 23:44:15 +01:00
Rafael Roquetto 791eb399d2 Split QQNXLocaleData::readPPSLocale()
Because this method creates a QSocketNotifier, it needs
to be split into a part that is run on initialization, namely
QQNXLocaleData::initialize(), and one that is run delayed
through event loop invocation, namely QQNXLocaleData::installSocketNotifier().

Task-number: QTBUG-28701

Change-Id: Ib60000902692bbca4820d3d0bc7719212668dfa9
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-01-14 16:28:21 +01:00
Giuseppe D'Angelo 9110d4f1ed QString::contains overload that returns the match results
This convenience overload allows one to write

    QRegularExpression re1, re2, ...;
    QRegularExpressionMatch match;
    QString subject;

    if (subject.contains(re1, &match)) {
        // ...
    } else if (subject.contains(re2, &match)) {
        // ...
    } // ..

One can then inspect the results of a successful match in each block
(as well as extracting the captured substrings, etc.).

Change-Id: I0fb8be8b577656e8db994198f8105c26c4fe67b0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-01-14 10:26:59 +01:00
Giuseppe D'Angelo 65fba49d63 Introduce default ctors for QRegularExpressionMatch(Iterator)
This allows to put them in containers, and to enable subsequent
features for QString.

Change-Id: I3b3fe695ffe6930331ed9f670738376722e0fc36
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-01-14 10:25:39 +01:00
Giuseppe D'Angelo 0ae529c911 Avoid a QVector allocation in QRegularExpressionMatchPrivate
Explicitely pass the number of capturing groups for which the
offsets should be reserved in the capturedOffsets vector,
instead of relying on it adding 1 (for the implicit capturing
group #0).

In case 0 is passed, don't allocate any space for that vector.
This is being used in case of NoMatch match type or failing
match (invalid regexp, out of bounds offset, etc.).

Change-Id: I0ec7646d5bd53e7a7973177100b163a5e5030307
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-01-14 10:24:49 +01:00
Sergio Ahumada 63f24f6ba8 Merge branch 'stable' into dev
Change-Id: I7f0dab6bdb1f3cc1d3e6c30166ff6db9dfae37e9
2013-01-09 11:49:47 +01:00
Debao Zhang 39795b1411 Replace macro qdoc with Q_QDOC
Both qdoc and Q_QDOC are used in source code, which looks not good.

Change-Id: I4f3a71670278b0758d92bfa5db086a07e1b1acfd
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-01-08 10:48:33 +01:00
Jędrzej Nowacki ae2359d49e Merge "Merge branch 'stable' into dev" into refs/staging/dev 2013-01-07 18:07:29 +01:00
Giuseppe D'Angelo 998899cf3a Introduce QRegularExpression::NoMatch match type
This match type doesn't do any match at all; it's only necessary to
properly introduce default constructors for QRegularExpressionMatch
and QRegularExpressionMatchIterator (since they return the match type
that created them).

Change-Id: Ibfe92459c7fdd23129cf3afe073cd443c461ddeb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-01-07 16:11:19 +01:00
Friedemann Kleint bc5a2336ab Provide operators for QMargins.
Provide addition/subtraction for QMargins as well as
multiplication and division for int/qreal similar
to QPoint. Add unary minus.

Change-Id: If4eb831cfd610b34b5ca361619b1636031811d0a
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2013-01-07 16:11:19 +01:00
Friedemann Kleint 6ecc3e76e8 Add API dealing with QMargins to QRect.
- Addition of a QMargin to a QRect.
- Removal of a QMargin from a QRect.
- Remove implementation from Windows platform plugin.

Change-Id: Iae54bc13e94a7ece48853b1d3f3de2bfc154d2dd
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2013-01-07 16:11:19 +01:00
Giuseppe D'Angelo 59eb393cf5 Rename QRegularExpression-related feature defs to QT_NO_REGULAREXPRESSION
QRegExp and QRegularExpression are totally independent, therefore
using two different defines is the right thing to do.

Also, document the new define in qfeatures.{txt,h}.

Change-Id: Ice4826ea543f4b22f1cc27bf31ed6e043d0c43b0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-01-07 16:11:19 +01:00
Frederik Gladhorn cdf13ce286 Merge branch 'stable' into dev
Conflicts:
	tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp

Change-Id: I6b8d505fc22f052c307ca27f58f7d16f98965f47
2013-01-07 15:18:16 +01:00
Stephen Kelly 6769e0783a Fix the \since version for QSharedPointer::create().
It is not relevant that it has been part of the class since Qt 4.6. It has
always been internal until now. The release where it became public API (5.1)
is what is relevant.

Change-Id: Ib740f3ed6df190884a94fb2c11dd74cd7edb7b1a
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-01-07 12:05:51 +01:00
Joerg Bornemann fbd3cd8679 remove unused member from QSystemLocalePrivate
This is a refactoring leftover from commit
bb86e77cc437b92d49692bb7026c57626d77079f in qt/qt.git.

Change-Id: I04993faca44ad0ffca2ae163049770c29d232a47
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
2013-01-04 18:43:40 +01:00
Thiago Macieira a094bf5a89 Don't increase the reference count if dynamic_cast failed
If the dynamic_cast failed in QSharedPointer::dynamicCast or
qSharedPointerDynamicCast, we should avoid creating the QSharedPointer
that shares the weak and strong reference counts. In Qt 5, this does
not imply a leak since the original pointer is stored internally for
deletion. In Qt 4 it implies a leak under certain circumstances, which
this change fixes.

Task-number: QTBUG-28924
Change-Id: Id2de140de4cf676461e14b201ad250c53666b79d
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-01-04 17:30:19 +01:00
Frederik Gladhorn ca2f44680c Merge branch 'stable' into dev
Conflicts:
	examples/widgets/painting/shared/shared.pri
	src/corelib/tools/qharfbuzz_p.h
	src/corelib/tools/qunicodetools.cpp
	src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp
	src/plugins/platforms/windows/qwindowsfontdatabase.cpp

Change-Id: Ibc9860abf570e5ce8b052fb88feb73ec35e64bd3
2013-01-04 11:12:05 +01:00
Mitch Curtis 1b47059c88 Clarify how two digit years are parsed by QDateTime::fromString().
It's currently not obvious that two digit years will always be in the
20th century (1900's).

Task-number: QTBUG-28797
Change-Id: I7dee9a46e0cb803a8f097debc5443d1789c2f16c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
2013-01-03 18:19:28 +01:00
hjk 03a666760c Speed up and fix QByteArray::setNum()
Going through QLocale and QString is not really needed.

This also makes the result of the conversion of negative numbers
in bases other than 10 independent of the architecture and
implements the documented behavior of treating them as
unsigned types.

Change-Id: Ibc231dc5241deb5cbadd9796484a8b5f79c29410
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-12-30 10:44:44 +01:00
Thiago Macieira 9ea5754291 Fix Clang warning about memcpy a class with vtables
Change-Id: I7966014a49cdf4c6c82f012d8b1d16ba8ddc3fcc
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-12-23 17:53:40 +01:00
Thiago Macieira 7ee9551b62 Add support for multiple arguments to QSharedPointer::create()
Requires C++11 rvalue references and variadic templates so we can
implement perfect forwarding.

Change-Id: I62e47d1ffd0c61e8386f9f246aa79031b7430b46
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-12-23 17:51:45 +01:00
Sergio Ahumada 7706c31eaa Fix some typos
Change-Id: I4e8d9bd8ea66ec810e4f1fbfd8ddbf25c4b3d980
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2012-12-21 19:05:02 +01:00
Konstantin Ritt 9b0fab6b62 Update Qt internals to use QChar::Script
...and remove the outdated QUnicodeTables::Script enum.
QFontEngineData now has one extra slot that never used
(engines[QChar::Script_Inherited]). engines[QChar::Script_Unknown],
if accessed, would be set with a Box engine instance, and could be used
as a minor optimization some time later.

In order to preserve the existing behavior, we map all scripts up to Latin to Common.

Change-Id: Ide4182a0f8447b4bf25713ecc3fe8097b8fed040
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-12-21 19:01:35 +01:00
Konstantin Ritt f7639c0a6d Add QChar::Script enum
...where the values are not aliased to Common script.

The old QUnicodeTables::Script enum was retained for compatibility reasons
until Qt internals are updated to use QChar::script().
Using QChar::Script instead of QUnicodeTables::Script would improve both
the text analysis (itemization, boundary finding) and the text shaping quality.
This also a required step for switching to Hurfbuzz-NG.

/* This adds 6668 more .rodata bytes */

Change-Id: I5aa3d12c550528d0052542436990f8d0779ea8e5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-12-20 14:48:32 +01:00
mfekari dcfa8926ff Add a Q_ENUMS for MeasurementSystem
Change-Id: Ib60de407f7ec8df907884ad2cf2fbf8e7b2c02f4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-17 14:08:17 +01:00
Leonard Lee 4cf112b641 Elaborate shortDayName(), etc using default locale.
QDate::toString() should explain QDate::shortDayName() and
QDate::shortMonthName() will be localized name using the
default locale from the system.

Task-number: QTBUG-28522
Change-Id: I027a72773b5772bf00344f14a4b522e41c9e63db
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-12-14 23:29:42 +01:00
Christian Stenger e262f221aa Docs: Fix references
Change-Id: I48173186afb874d307010f4f303d0e4f97ec0287
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-12-13 00:07:20 +01:00
Konstantin Ritt 159713de3b QLocale: Report RTL text direction for pa_Arab and uz_Arab
Change-Id: I97c785c9cbf550ef1ab330a4905ff7ae97ee6a30
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-12-10 20:50:34 +01:00
Christian Stenger 8bb6ba0e2f Doc: Fix some enums
Change-Id: I58f2906e9605e8ab09cad29880006ed60cc23e80
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-12-06 16:45:52 +01:00
David Schulz ad0f3c4edb QtBase: Doc: Fix links to STL-style iterators
Change-Id: I2822c2a7e9bfc1949c20ff81e08961f641e961fb
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-12-06 14:46:13 +01:00
Oswald Buddenhagen 5ea41a2efa properly syncqt-ize harfbuzz headers
we were already installing them into QtCore/private, so turn them into
proper private headers to start with. this cleans up our project files.

Change-Id: I0795f79e03b60b5854de9e4dc339e9b5a5e6fd87
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-12-04 13:57:55 +01:00
Giuseppe D'Angelo 930207fc1f Add more qtbase implictly-shared classes to the list
QText*Format and QDns* ones are still missing.

Change-Id: I8e87fba596e87289ca935717e0a90bfc0b0a26c0
Reviewed-by: hjk <qthjk@ovi.com>
2012-11-30 21:57:49 +01:00
Oswald Buddenhagen 76af113867 fix harfbuzz header install location
Change-Id: I2e02f6c80ed7b1df00ad74a3e301997ba3bbd566
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-11-30 21:57:49 +01:00
aavit ca35995c1b Provide the bundled zlib headers for external access
(Currently, the Qt5 windows packages lack the tiff and mng plugins
from qtimageformats because of this issue.)

If Qt is configured to use its bundled zlib, it is compiled into
QtCore, and the public symbols are exported so that it can be used
by other Qt libraries. However, after modularization, this did not
work for libraries outside qtbase, since they did not have access
to the headers of the bundled zlib.
This commit fixes that.

Ref. also 1f461ac45b

Change-Id: Ie986f47e00fd0c16f2ba04d27f4258a20d61b260
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-28 16:21:57 +01:00
mfekari 5e59215ac6 Qnx: Check if QCoreApplication::instance() exists before using QSocketNotifier
Change-Id: I9f00314ea1ef73b87bc56ca1f8fcf859c9cd1824
Reviewed-by: Bernd Weimer <bweimer@rim.com>
Reviewed-by: Peter Hartmann <phartmann@rim.com>
2012-11-28 16:21:57 +01:00
Stephen Kelly 2e05a15784 QtCore: Make more signals private.
Change-Id: Ida190e8b9c1ff47a6f54a5bf68673ab50a2f1bfe
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-28 08:49:38 +01:00
Nils Jeisecke 24539dc3d8 Enhanced QSharedDataPointer documentation with container performance section
Added a section motivating the use of Q_DECLARE_TYPEINFO to mark
shared data classes as movable types.

Change-Id: I26664500aef7d83d779d90f97f3f2b0043966480
Reviewed-by: Casper van Donderen <casper.vandonderen@gmail.com>
2012-11-28 08:22:59 +01:00
Konstantin Ritt 9b85b81bc8 QLocale: Fix matchingLocales() behavior if script or country is not Any*
Since the documentation doesn't mention the search should be done by language only,
consider the current behavior incorrect.
As of now, it is possible to get a list of locales by Country or Script as well.

Also fix countriesForLanguage() to be in-sync with matchingLocales().

Change-Id: I6a09ca459120143565fa6099d2b823df1fed7c25
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
2012-11-25 04:06:51 +01:00
Konstantin Ritt dec4eb7ecc [SIC] QLocale: Update some language names with their modern values
Some of them were incorrectly spelled (for a while)

Change-Id: I871968e3bbdd2172f4c4dfb6e74729c05e7e8e01
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-11-24 06:15:25 +01:00
Konstantin Ritt 3c0ac52081 QLocale: Fix toCurrencyString() didn't respect group separator option
Change-Id: Icda43d71d600d77fe1ed4fcde1ef4478ef29c1d5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
2012-11-23 22:58:59 +01:00
Lars Knoll 226e108fbb Fix \brief for QEasingCurve
Change-Id: Ibb8ce4e87e6338cc9d436344d1336397db093cb0
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2012-11-23 17:04:00 +01:00
Konstantin Ritt 2fbb69a093 QTBF: Fix issue with no splitting the words at "." (FULL STOP)
As of Unicode 5.1, some punctuation marks were mapped to MidLetter and MidNumLet
for better URL and abbreviations handling which caused "hi.there" to be treated
like if it were just a single word;
until we have the Unicode Text Segmentation tailoring mechanism, retain
the old behavior by remapping (some of) those characters back to their old values.

Change-Id: I49dea6064f2ea40a82fc0b1bc3c4f0b4e803919f
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-23 11:59:50 +01:00
mfekari 18260ed212 BlackBerry: The MeasurementSystem port was for BlackBerry OS not QNX
Change-Id: I87708aad18ebe1c6a08fe89376290be66f9c0577
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sérgio Martins <sergio.martins.qnx@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-11-21 20:13:47 +01:00
Konstantin Ritt 3791d21f72 Update Qlocale data up to CLDR 22.1
Change-Id: Ie6ddfec14cb052e0b89230dc93290ff79488fb25
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-21 18:23:59 +01:00
Konstantin Ritt 4a115ab4ae Update Qlocale data up to CLDR 2.0.1
Change-Id: I4279fac57436d7009a6d61dab5936b72fd39fc14
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-21 18:23:59 +01:00
Konstantin Ritt fe8962d3a5 Use likelySubtags to instantiate a locale id from it's short form
...just like described in http://www.unicode.org/reports/tr35/#Likely_Subtags.
This is much more effective than current "guessing" algorithm
+ makes it possible to instantiate a locale by the script or territory code only.

Change-Id: I674f8476e65b01c56960b6e83a1a346df0715274
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-21 18:23:59 +01:00
Konstantin Ritt e7c79face6 [SIC/BIC] QLocale: update enums up to CLRD 1.9.1
This patch adds some missing codes (two-letter ones only),
removes an outdated ones, and updates some names.
The legacy language codes are handled in QLocalePrivate::codeToLanguage()
(fortunately, there are only 4 of such codes).

Change-Id: Iff50aecd1c762b6399cd151aebb955f341d366c6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-21 18:23:59 +01:00
mfekari 3853035a45 Qnx: Handle the MeasurementSystem value in QNX
Change-Id: I00837421431d82aa831b785d3effb0920b4541f3
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-11-20 18:53:49 +01:00
Oswald Buddenhagen b4479cc409 exclude 3rdparty from lupdate
Change-Id: I00c569787943a87dda60786b179af1f55a94ea68
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-20 14:13:07 +01:00