Commit Graph

6123 Commits (78b8f7803bb662e3e73daa796d61baae84cd6ea9)

Author SHA1 Message Date
Marc Mutz 50ab7c16d4 QString: prevent resize() from shedding capacity
...even if reserve() hasn't been called before.

[ChangeLog][QtCore][QString] resize() will no longer shrink the
capacity. That means resize(0) now reliably preserves capacity().

Change-Id: If499a20990bbf3a20553da14e50a42918d310c9f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-01-06 13:07:31 +00:00
Edward Welbourne e5724533e4 Remove declaration of method nowhere defined
Change-Id: Ia95aac626803a85fea0bc0bc99972eb34215d351
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2016-01-06 09:10:38 +00:00
Alex Trotsenko 02f70004c2 Allow socket events processing with a foreign event loop on Windows
While a native dialog is open, the application message queue is
handled by the native event loop which is external to Qt. In this
case, QEventDispatcherWin32::processEvents() does not run and socket
notifiers will not be activated. So, this patch moves the notifier
activation code into the window procedure, which enables socket
event processing with native dialogs.

Task-number: QTBUG-49782
Task-number: QTBUG-48901
Change-Id: Icbdd96b2e80c50b73505f4fe74957575b83d6cf1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-01-05 13:05:35 +00:00
Ulf Hermann 9d6a4e7094 QLocale: Accept trailing junk in qstrtod()
qstrtod() used to accept trailing junk until libdouble-conversion was
introduced and we need this behavior in order to implement EcmaScript's
parseFloat() correctly. The QString and QByteArray methods should not
accept trailing junk, though.

Task-number: QTBUG-50131
Change-Id: Ide922da0d65b2576be2c9f47f6053057eff77994
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-01-05 11:29:29 +00:00
Marc Mutz 8b2f133822 QFactoryLoader: generalize qLoadPlugin()
- Use perfect forwarding for the additional argument.
- Provide a variadic template version
- Deprecate qLoadPlugin1() — there's no reason for a different name
  — and fix all callers in qtbase.
- Provide non-variadic overloads for up to three additional args
  (QPlatformIntegration rolled its own function because it needs
  three args).

Change-Id: I72fb2dd9a021de704cbf5e4b6ea31c80447fb3b1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-01-05 10:28:27 +00:00
Marc Mutz 32bd53c6b1 QStateMachine: replace a QPair with a small struct
The use of QPair made the return type of initializeAnimation()
so complicated, that the original author opted to declare the
pair on one line, then assign to it in the next, to keep below
the line length limit.

She also copied a member of the pair just so as to give it a
descriptive name.

Fix both by introducing a small result struct. It has a nicer
name, compared to the pair, but still port callers to use 'auto'.
The member names are descriptive enough now.

Saves more than 0.5KiB in text size on optimized GCC 4.9 Linux
AMD64 builds, too.

Change-Id: I7ed007ffa0fb16e182e38cd405cfd54da4e363fb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2016-01-05 10:28:09 +00:00
Marc Mutz 01d8abdbf1 [docs] Gently steer people away from QPair
Change-Id: Ib0fb69f856606612d516426732f619422630c93f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-01-05 10:25:05 +00:00
Masaru Ueki e0a5f661e5 QStateMachine: fix ignore high-priority events.
When a high-priority event is posted in overrided
'QStateMachine::beginSelectTransitions', the event may be remained in
event queue, and be not dispatched until another event posted.

Change-Id: Ifda288d9c00ac7985e426b9cc02bda382ebaac35
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2016-01-05 10:05:40 +00:00
Oliver Wolff 275f182872 winrt: Added timeout to await function
Instead of using a "custom wait function" in cases,
where a timeout is needed (like in qhostinfo_winrt.cpp)
we should have the timeout as part of our await
function.

By having one common place to handle this, we can avoid
unnecessary warnings, that might be caused by custom
functions. The current implementation in qhostinfo
for example causes at least 1 "originate error"
exception per call.

Change-Id: I7b6cfdfd861af2b0d271465eecaefe4a93e3109b
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2016-01-05 08:14:37 +00:00
Oliver Wolff 452a27e1f0 Winrt: Show message when command line processing fails/usage should be shown
Change-Id: If8f69906beb22f632ccbde92aab5caf914dcb31b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2016-01-05 08:14:35 +00:00
Oliver Wolff 190c76f685 winrt: Use winsock2 API for hostname resolution on WinRT/WinPhone
That API has been available for WinRT and Windows
Phone for some time now. By using it to get the
machine name and for hostname resolution we can get
rid of some winrt-only code and use qhostinfo_win.cpp
on WinRT and Windows phone as well.

Additionally the required capability was added to
tst_qhostinfo so that this auto test can be run without
any manual editing.

Change-Id: I63fa5521bf8cdb0c919bd5a0100ea977c865622a
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2016-01-05 08:14:31 +00:00
Samuel Nevala 2ca20724dd WinRT: Add camera button events on Windows Phone
Windows Phone 8.1 provides access to the camera button and press/release
events get passed as Key_CameraFocus and Key_Camera. Unfortunately a
release does not provide what has been pressed before, hence this
information needs to be cached when the press happens.

Done-with: Maurice Kalinowski<maurice.kalinowski@theqtcompany.com>
Task-number: QTBUG-39115
Change-Id: I6ce58a1f07a6bf7183b8d99a26e5cd7b0d32d6db
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2016-01-05 08:14:28 +00:00
Marc Mutz a3ce123549 QtCore: eradicate all Q_FOREACH loops [tools]
Saves just under 5.5KiB in text size on optimized GCC 4.9 Linux
AMD64 builds.

Change-Id: I6d868a7d2e469cf0564127b0e66cd7b272a0c9cd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-04 20:35:38 +00:00
Marc Mutz 5feebcc973 QMimeDatabase: replace a QStack<QString> with std::stack<QString, QStringList>
A QStringList is almost as efficient as a QVector<QString>.
More importantly, the QStringList case can share code with
the myriad of other QStringList users, in particular
because std::stack is but the thinnest of wrappers around
its underlying container.

Saves 1400b in text size on optimized GCC 4.9 Linux AMD64
builds.

Change-Id: If37ed55802aa8a529ca772df465990ded0aaba7f
Reviewed-by: David Faure <david.faure@kdab.com>
2016-01-04 20:35:33 +00:00
Marc Mutz cc2ea22a30 QMimeAllGlobPatterns: optimize string handling in matchingGlobs()
... by not re-creating the same string in every loop iteration.

Change-Id: If17c5980bec8276b531267b309578dac8901c93e
Reviewed-by: David Faure <david.faure@kdab.com>
2016-01-04 20:35:28 +00:00
André Klitzing 0cd73f23f2 Print correct OS name if it is a server version
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724833%28v=vs.85%29.aspx

Change-Id: I7ee4c78959696ee2b662899a6a1408cfd1ebcacd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2016-01-04 13:29:31 +00:00
André Klitzing a862474839 Print out "Service Pack" version of underlying Windows
Change-Id: I1f7dbf8f1244e8b7bf2f459fdce381838d776dbe
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2016-01-04 13:29:26 +00:00
Samuel Nevala 7fdfaad43f Fix deadlock when setting environment variables.
Qt uses QHash as the container for faking environment variables on
Windows Runtime and CE. Environment variable manipulation functions are
protected by mutex. Accessing the QT_HASH_SEED environment variable
inside QHash can lead to situation where qputenv() call leads to
qgetenv() call and that leads to a deadlock. Change the container
from QHash to QVector to avoid deadlock.

Task-number: QTBUG-49529
Change-Id: I550ead4ab12e7abebc044f52339063a44fcf0170
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2016-01-04 13:12:19 +00:00
Marc Mutz 194e158beb QtCore: eradicate all Q_FOREACH loops [io]
Saves more than 1KiB in text size on optimized GCC 4.9 Linux
AMD64 builds.

Change-Id: I1a974e903bc8352af800fa26edae0194c1e51705
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-04 12:22:55 +00:00
Marc Mutz 5170c0416b QWindowsFileSystemWatcher: increase concurrency when canceling threads
The old code asked each thread to stop, and then waited for
that one thread to finish before deleting it and turning
to the next thread in line.

Split the three actions, ie. first ask all threads to stop,
then wait for all threads to finish, and only then delete
all of them.

Apart from being more icache-friendly, this enables more
concurrency, as stopped threads' cleanup work can overlap
with other's, thus reducing the wait() time per thread to
potentially zero.

Did not replicate the inefficient foreach loop, but went
with C++11 range-fors directly.

Change-Id: I53e598e31999a772c0f81ff5885490216e13d492
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-04 12:22:50 +00:00
Marc Mutz 90484f3901 QtCore: eradicate all Q_FOREACH loops [itemmodels]
Saves more than 4KiB in text size on optimized GCC 4.9 Linux
AMD64 builds.

Change-Id: Ice3fe915622a399d1ed10e0ce364cf54b4b835fe
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-01-04 12:22:45 +00:00
Marc Mutz 2d2d44a3d1 QtCore: eradicate all Q_FOREACH loops [statemachine]
Saves a bit over 2.5KiB in text size on optimized GCC 4.9 Linux
AMD64 builds.

Change-Id: I18a635d65a3c20c4bf5ec2cbfa4ed81a8153cab3
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-01-04 12:22:39 +00:00
Marc Mutz 8faf51429e QtCore: eradicate all Q_FOREACH loops [threads, plugins]
Saves just shy of 4KiB in text size on optimized GCC 4.9 Linux
AMD64 builds, iow: ~0.07% of the total QtCore library size.

Change-Id: I87fdcc8ee25c6bb5dabddb9a694ab4496b1538fa
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-04 12:22:34 +00:00
Marc Mutz 0ff221f522 QtCore: eradicate all Q_FOREACH loops [mimetypes]
Saves just shy of 6KiB in text size on optimized GCC 4.9 Linux
AMD64 builds, iow: ~0.1% of the total QtCore library size.

Change-Id: I087e1e34a64944affb1211e16371e314012c4b2c
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-04 12:22:29 +00:00
Marc Mutz 264c72837d Add qAsConst
...to turn mutable lvalues into const lvalues.

Like the proposed std::as_const, it should not apply to
rvalues to avoid lifetime issues in code like

     for (auto x : qAsConst(someFunc()))
         // dangling

At a more basic level, qAsConst isn't useful for rvalues,
because one can always store them in an lvalue first, with
no loss in performance (the object is created by the
compiler silently anyway). So the correct way to write the
above is:

    const auto funcResult = someFunc();
    for (auto e : funcResult)

To fail compilation when passing rvalues, I used the
const-&& pattern also employed by std::cref(), and the
proposed std::as_const.

Intended as internal API, but not put into the QtPrivate
namespace to make it simpler to use.

We could wait for std::as_const, but that is far, far
away (just entered the current C++17 draft as of this
writing), and the Qt containers with their tendency to
detach are a problem _now_.

Change-Id: I8824a59d2274de5c5cd642f117212322e4648025
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-01-04 12:22:12 +00:00
Olivier Goffart c7ab816af1 qmutex_unix: use a semaphore when available
It makes tst_QMutex::contendedQMutex with no msleep 8 times faster

Change-Id: Ic300e7618b4467e4e08b30f0213bd23c06d4d90a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-04 08:40:18 +00:00
Marc Mutz e0c8316e17 QUrlQuery: remove misleading comment
The 'itemList' is a QList and is not maintained in sorted order.

Change-Id: I8f221281803ff0e9caa054007bee3058214f2f30
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-04 06:10:51 +00:00
Marc Mutz b20de8a23d QTranslator: Extract Method is_readable_file from find_translation()
The old code re-used a QFileInfo object, repeatedly
setting new file names with QFileInfo::setFile(QString).

But QFileInfo::setFile() simply assigns itself a
new QFileInfo object:
    *this = QFileInfo(...)
so it's just as efficient to re-create a new QFIleInfo
object for every file name under test.

To avoid extra {} for object lifetime scoping, factor
the repeated evaluation of isReadable() && isFile()
into a small helper function, which also creates and
destroys the QFileInfo object.

The deeper significance of this change is that it
avoids implicit sharing of 'realname', which is
permanently modified. A later patch will make
changes that make 'realname' re-use its capacity
through the lifetime of the find_translation()
function, and sharing the variable implicitly will
nip any auch attempts in the bud.

Force the compiler to not inline the new function.
There's really no point in spending ~0.5KiB in text
size on inlining the code; the miniscule speed
improvement is dwarfed by the memory allocation of
the QFileInfo ctor, anyway.

As a consequence, this change even saves 96b in text
size on optimized GCC 4.9 Linux AMD64 builds, even
though that wasn't even the goal.

Change-Id: I08c5cbb7b6f1ba59440a1597e28d962ce63a7c65
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-04 06:10:45 +00:00
Raphael Kubo da Costa 655246969e forkfd: Also define BSD visibility macros in forkfd_qt.cpp.
This is a follow-up to c8c4ad0 ("forkfd: Define __BSD_VISIBLE and
_NETBSD_SOURCE").

Defining those macros in forkfd.c is not enough: forkfd_qt.cpp also sets
_POSIX_C_SOURCE, and sys/cdefs.h can be included implicitly via Qt's
headers (<algorithm> ends up pulling unistd.h that leads to sys/cdefs.h
and sys/types.h with both libstdc++ and older libc++ versions). In this
case, __BSD_VISIBLE/_NETBSD_SOURCE are not defined, _POSIX_C_SOURCE is,
several type definitions are omitted and by the time we include
sys/time.h in forkfd.c the build fails. On FreeBSD < 11, the error looks
like this:

In file included from io/../../3rdparty/forkfd/forkfd.c:36,
                 from io/forkfd_qt.cpp:80:
/usr/include/sys/time.h:94: error: 'u_int' has not been declared

Change-Id: I01fa2f5861027d99936d3026faeee9f0db3ecabd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-03 13:40:23 +00:00
Marc Mutz 9059931cd2 QStateMachine: replace a Q_FOREACH with QSet::op-=
Both 'configuration' and 'pendingErrorStates' are
QSet<QAbstractState*>, so we can use QSet::operator-=
to subtract one from the other. No need to loop
over QSet::remove() here.

Nevermind that QSet::operator-= is really poorly
implemented atm. That needs to be fixed in QSet.

Change-Id: I3f3172ce9a485c4c2abf7d19b831fb0dc1ea61b1
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-31 18:44:53 +00:00
Marc Mutz eb9fdf7c07 QAbstractModelPrivate: de-inline functions
These functions have no business being inline.

Change-Id: Ib565fb4870f886be133e9360155bd514935e5e72
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-31 18:44:49 +00:00
Marc Mutz e9ec0ff4bb QTimeZone: replace a Q_FOREACH loop with QList::op+=
Change-Id: I6d2cede8126346f7cd4425dafc07c794c2a7bc1d
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-31 18:44:45 +00:00
Rolland Dudemaine 79a03c8457 Move the QVariant declaration up in the file.
This is especially necessary for the GHS toolchain which otherwise
chokes on the lack of some local definitions made by the
Q_DECLARE_SHARED macro.

Change-Id: Ie4e355226e4a66e1589e1d422d3a622b11bd9aef
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-12-30 12:57:20 +00:00
Marc Mutz 96dc9a19ae QUrlQuery: fix a very expensive always-true check
In a non-const function, if (d), d being a QSharedDataPointer,
will resolve to if(d.data()), which detaches and returns a
pointer to an unshared copy of the data. Thus, the test if (d)
is always true.

Fix by explicit use of constData(), as in other QUrlQuery
functions.

Change-Id: Ib926abdcdb069d69e34c3202c4cf451b7fc6a329
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-30 12:05:59 +00:00
Marc Mutz d681107f1f Add qHash(std::pair)
We already include <utility> in <qglobal.h>, so we might
as well provide a qHash() overload for std::pair.

[ChangeLog][QtCore] Added qHash(std::pair), defined in
<QHashFunctions>.

Change-Id: I0f61c513e82e05ce9d2e56bcf18f3be9e2da4da9
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-30 11:37:53 +00:00
Marc Mutz ad74c95399 Optimize string building in QCommandLineParserPrivate::helpText()
- Don't detach QCoreApplication::arguments() by calling first(),
  call constFirst()
- Use
    QString foo;
    foo += initial;
  instead of
    QString foo = initial;
  where 'foo' receives more appends later (does not force an
  initial capacity that is known to be too small).
- Use QStringBuilder more
- Don't use QStringLiteral in QStringBuilder expressions
- Reserve optionNameList. Its max. size is known ahead of time.
- Don't create optionNameStrings for hidden options.
  The result was never used, they just served as placeholders
  for the lock-step iteration that followed and wrapped the text.
- Don't create a QStringList to join(), append to the result
  string directly.
- Cache the return value of option.valueName().

Not only is this faster, it also saves more than 2KiB in text
size on optimized GCC 4.9 Linux AMD64 builds.

Change-Id: Id1d88f3c36a521ac71f3a7436810ed31319077ae
Reviewed-by: David Faure <david.faure@kdab.com>
2015-12-29 19:02:18 +00:00
Marc Mutz db0453742c QTimeZone: don't iterate over QHash::keys()
... iterate over the hash directly.

Prevents hash lookups and the creation of a temporary QList.

Saves over 376b in text size on optimized GCC 4.9 Linux
AMD64 builds.

Change-Id: I7f1a22da33b94bc91bec89f62c471f8279a5d702
Reviewed-by: Sérgio Martins <iamsergio@gmail.com>
2015-12-29 19:02:11 +00:00
David Faure 72b4f0d474 QMimeDatabase: follow symlinks when checking for FIFO etc.
This was documented, but not what the code did.

Task-number: QTBUG-48529
Change-Id: I4849778c61dcae13be27c62b24717693c0c07d78
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-29 11:06:13 +00:00
Marc Mutz c6177dcccf QMimeDatabase: return a sorted list from d->mimeTypesForFileName()
All but one of the callers sorted the list in at least one
code path, with code paths that use the list unsorted looking
suspiciously non-deterministic. The one caller that doesn't
sort the list doesn't use it at all (but uses the out parameter,
which none of the other callers do, suggesting that the function
be split into two at some point).

Change-Id: I178c1476919e4877ef4f4a3cc8934dbd04bd7a58
Reviewed-by: David Faure <david.faure@kdab.com>
2015-12-29 10:58:44 +00:00
Kevin Funk 9871c3d8bd CMake: Add -fPIC to CXX flags only where necessary
Before this patch, Qt5Core_EXECUTABLE_COMPILE_FLAGS was populated with
-fPIC unconditionally. This causes warnings on MSVC, since the compiler
does not understand this flag.

In fact, -fPIC is only required in case an older release of CMake is
being used and the compiler is GCC 5.x (according to documentation), so
let's really add it just in this case.

Task-number: QTBUG-47942
Change-Id: I9d09b8b257a0647235d6d781ee5c023af34f8f88
Reviewed-by: Stephen Kelly <steveire@gmail.com>
2015-12-28 22:39:58 +00:00
Marc Mutz e979f87217 QLoggingRegistry: don't iterate over QHash::keys()
... but use the new key_iterators instead.

Saves creating a temporary QList just to iterate over it
and ~1.3KiB in text size on optimized GCC 4.9 Linux AMD64
builds.

Change-Id: Id5223fc5fcb4a4e7c012718c1bb2674b8ea0439d
Reviewed-by: Sérgio Martins <iamsergio@gmail.com>
2015-12-28 14:30:38 +00:00
Marc Mutz 17504a7b32 QTextStream: use new QString::resize(int, QChar) for padding
Change-Id: I17c90ea32614c45f038f5f3386749dfa74bad438
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-28 09:15:31 +00:00
Marc Mutz 8f166ccf40 QString: add resize(int, QChar)
This will be used in QTextStream to speed up padding processing.

[ChangeLog][QtCore][QString] Added resize(int, QChar) overload.

Change-Id: Id51f8cdacb167310157100b05cacf20e9a5d2716
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-28 09:14:59 +00:00
Lars Knoll 26237f0a2d Fix QJsonValue::fromVariant() if the variant contains a json object
If the variant contains a known json type (value, array, object or
document), simply unwrap those. In the case of the json document
wrap the contained object/array into a QJsonValue.

This should be the expected behavior, and makes more sense than
returning a null QJsonValue.

Task-number: QTBUG-41234
Change-Id: Id084fc11220d51aaf78b7694fd0ebef1411f5c51
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-22 10:00:46 +00:00
David Faure 2e1de7f3c4 QUrl: revert path-normalization in setPath().
Path normalization should happen only when NormalizePathSegments is set.
Use a less intrusive fix for the setPath("//path") issue that
commit aba336c2b4 was about.

This allows fromLocalFile("/tmp/.") to keep the "/." at the end,
which is useful for appending to the path later on (e.g. to get "/tmp/.hidden")

Change-Id: Ibc3d4d3276c1d3aaee1774e21e24d01af38fa880
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-22 09:56:27 +00:00
David Faure 5f03b48cb3 QStandardPaths: warn if $XDG_RUNTIME_DIR doesn't exist
If the environment variable is set, but points to a non-existing directory,
the user would get a warning about chmod failing. Better be clear and
warn about the fact that the directory itself doesn't exist.

Also warn if $XDG_RUNTIME_DIR points to a file rather than a directory.

Task-number: QTBUG-48771
Change-Id: If84e72d768528ea4b80260afbbc18709b7b738a8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-22 09:56:23 +00:00
Kevin Funk feea236d92 Qt5CoreMacros: Sync with CMake project counterpart
Port of CMake commits:

commit 2622bc3f65162bf6d6cb5838da6999f8b5ca75cf
Author: Rolf Eike Beer <eike@sf-mail.de>
Date:   Sun Apr 6 21:30:00 2014 +0200

    Clean up usage of if(... MATCHES regex) followed string(REGEX REPLACE regex)

commit 7beba98652212c7a44f291b51dd03681e5193c49
Author: Robert Maynard <robert.maynard@kitware.com>
Date:   Thu Apr 3 11:27:58 2014 -0400

    Qt4Macros: Make QT4_CREATE_MOC_COMMAND a function

Change-Id: I5b928d114adb393ed9370163609311b7486e4a36
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-21 22:42:19 +00:00
Joerg Bornemann e96fa5a780 Fix timeout calculations using qt_subtract_from_timeout
Commit ed0c0070 introduced qt_subtract_from_timeout but used it
incorrectly in several places.

Change-Id: I80ea16088707929a45d5a61ec6f3370f8e63d1cd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-21 22:26:40 +00:00
Daniel Levin a206583da1 Add DEPENDS option to qt5_wrap_cpp()
Currently the moc rule does not support dependency scanning, so after
successful moc file generation it will ignore implicit dependencies
in the header file.

Although this works in most typical scenarios, at least in one case
incremental builds become broken: when using Q_PLUGIN_METADATA() with
the FILE argument.

If FILE refers to a JSON file and latter was updated, then the expected
behavior is to regenerate the moc file. Since CMake add_custom_command()
does not support late dependency setup, all dependencies should be
explicitly listed in a DEPENDS section.

This patch adds the DEPENDS multiarg option to qt5_wrap_cpp(),
allowing to specify additional dependencies to the moc rule.

Task-number: QTBUG-44009
Change-Id: I2052ce23d3cb0c87c6bd99fcb7e8a71a7be9a330
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Daniel Levin <dendy.ua@gmail.com>
2015-12-21 16:05:36 +00:00
Thiago Macieira 32e4546cc3 qprocessordetection.h: Fix detection of 32-bit ARMv8
This is more future-proof. It fixes the detection of 32-bit on ARMv8-A
processors since it uses the __ARM_ARCH macro that GCC and Clang
define. For MSVC, we use _M_ARM, which also contains the architecture
version. MSVC does not currently support ARMv8 code, but when it does,
this commit should make the support automatic.

I don't know which compiler defines __TARGET_ARM_ARCH, but support it
too.

Change-Id: I8de47ed6c7be4847b99bffff141c8ede54a849eb
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-12-21 13:33:21 +00:00
Erik Verbruggen 1823c8f2dd Fix utf8->utf16 BOM/ZWNBSP decoding.
When the byte sequence for a BOM occurs in the middle of a utf8 stream,
it is a ZWNBSP.

When a ZWNBSP occurs in the middle of a utf8 character sequence, and the
SIMD conversion does some work (meaning: the length is at least 16
characters long), it would not recognize the fact some charactes were
already decoded. So the conversion would then strip the ZWNBSP out,
thinking it's a BOM.

The non-SIMD conversion did not have this problem: the very first
character conversion would already set the headerdone flag.

Change-Id: I39aacf607e2e068107106254021a8042d164f628
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-21 09:56:49 +00:00
Joerg Bornemann 7cde1c029e Remove superfluous ReleaseSemaphore/WFSO calls
Factor out the dispatching of IO results into a separate function.
Do not increment the semaphore count in waitForAnyNotified just to
decrement it again in _q_notified.

Change-Id: I7d4a04b679bb152ab3a5025513f885aee276d086
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-21 09:12:02 +00:00
Marc Mutz 66441d7a82 Make use of new QHash::erase(const_iterator) overload
Drive-by changes:
- use auto for iterators
- add Q_UNLIKELY for conditions leading to a qWarning etc

Change-Id: Iff8f36d67c96674d354a501b26640f73c15ce58d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Sérgio Martins <iamsergio@gmail.com>
2015-12-19 07:41:50 +00:00
Marc Mutz 0f923a8ce4 QHash/QSet: add erase(const_iterator)
This is the signature the functions have in C++11. For the std
containers, this is just convenience, but for Qt containers
with their implicit sharing problem, the combination of erase()
with constFind() can delay a detach until absolutely necessary.

[ChangeLog][QtCore][QHash/QSet] Added erase(const_iterator).

Change-Id: I2fc841c664cd7515b0f56fd7210fcd17c37f9014
Reviewed-by: David Faure <david.faure@kdab.com>
2015-12-19 07:41:47 +00:00
Liang Qi beb65dcd79 Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
	src/gui/painting/painting.pri
	src/plugins/platforms/xcb/qxcbconnection.cpp
	tests/auto/corelib/thread/qthreadstorage/qthreadstorage.pro
	tests/auto/corelib/tools/qlocale/test/test.pro
	tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
	tools/configure/environment.cpp

Change-Id: I9c40f458b89b2c206de2d2c24e90b5f679c93495
2015-12-18 08:37:31 +01:00
Maurice Kalinowski 44c6c3ae27 winrt: Align error code handling with WinCE
Both specify 87 (invalid parameter) as error code for non existing
shared memory.

Change-Id: I02b02da106e9e4e574a21359c25bc2a03e385a7c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-15 16:51:49 +00:00
Friedemann Kleint 3c8cf55074 QProcess/Windows: Fix handling of workingDirectory.
Store nativeWorkingDirectory in a variable on the stack to prevent
accessing the buffer of a temporary string.
Fix breakage introduced by 068baa9bb6.

Change-Id: I8cf9ffe39c97afc9383c33cafaeffb1245b3e2b9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-12-14 15:53:42 +00:00
Maurice Kalinowski 7f92edb7ac winrt: Avoid blocking for the first processEvents run
When calling WaitForMultipleObjectsEx, do not use a
timeout for the initial call. This saves around 10%
of blocking invocations in the QEventLoop autotests.

Change-Id: Ib24436ed11de1865e31f9ff0ddf6ce1bc5562f42
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-14 08:43:31 +00:00
Marc Mutz e5a20cb864 QString: mark relational operators (and compare()) nothrow
Saves ~3K in QtCore text size on GCC 4.9 Linux AMD64 relase builds.

Change-Id: I74171ba5499de200b9584660241ca1fae4bcad79
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-13 13:14:36 +00:00
Marc Mutz 1865145fa2 QChar: mark remaining relational operators nothrow
Equality and inequality were already marked nothrow, but
less/greater than (or equal) were not.

Fixed.

Change-Id: I3f7a3388b31fcaa2535353f357b5bd1fc86f261d
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-13 13:14:31 +00:00
David Fries b2c7c489ab QLockFile: decide on locking strategy per path
It is filesystem dependent if flock and fcntl locks are independent or
the same underlying lock (which causes getting the second lock to fail).
A temporary file in /tmp might be on a local file system and pass
while the lock file is placed on NFS and fail with:
  setNativeLocks failed: Resource temporarily unavailable
Instead check for lock conflicts per path and cache the result.

Change-Id: I39c59bb240cd99ef0a0ec271243770ffd5df8a7d
Reviewed-by: David Faure <david.faure@kdab.com>
2015-12-11 17:59:52 +00:00
Erik Verbruggen b894dfe311 Fix compilation of isnan/isinf for MSVC2012.
MSVC doesn't define float versions for _isnan/_isfinite, so the double
versions need to be used. This is already done in the surrounding
functions, but not in these two.

Change-Id: Ic183358dc1790279e18d00a08b7279e76c02af60
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-11 11:17:42 +00:00
Andy Shaw 6e14d63db0 Add explicit note about removeMappings() not disconnecting the signal
There can be a bit of confusion here regarding what removeMappings()
will do in this case so add an explicit note to be clearer.

Task-number: QTBUG-49499
Change-Id: Iabcf5cb2653f0b747727b2c92a244e95ec1836f8
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-11 09:41:14 +00:00
Andy Shaw 1440c13c8c Check if the file is writable even while QT_BOOTSTRAPPED
QConfFile::isWritable() has the extra effect that it will try and
create the path where the file should be if it does not already
exist. So this cannot be omitted as 'qmake -set' may be used in a
situation where the path does not yet exist.

Change-Id: I0113644259f78d090a0687c44cf60d400be9c859
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-11 09:41:05 +00:00
Maurice Kalinowski cf6d671a11 winrt: Use Windows 10 features when available
OpenFileMappingFromApp has been added for Windows 10. Using it,
QSharedMemory autotests succeed without any failure.

Change-Id: I5a4fbec004f121f41909ae13f3db02c384810645
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-12-11 07:39:18 +00:00
Giuseppe D'Angelo 4a318a6182 QJsonObject::(const_)iterator: add pointer typedef
Otherwise they're unusable with std::algorithms or anything else
that requires iterator_traits.

Change-Id: Ia29c1e7c1778844e37d43eaa8aef2871afe3c991
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-11 00:43:33 +00:00
BogDan Vatra e3689949ba Android: Remove support for API < 16
Starting with Qt 5.7 we removed support for API < 16 (Android v4.1)

[ChangeLog][Android] Support for Android API < 16 was removed.

Change-Id: I8bf396a9d70ab0996965e0c9f629800aa1fa6a45
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-12-10 19:53:36 +00:00
Sérgio Martins 53697fe078 Don't allocate memory when creating an invalid QDateTime
Task-Id: QTBUG-47779
Change-Id: I5aad835c9fbf50962d64d14519ec31cf38cf9e3b
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-12-10 19:17:18 +00:00
Joerg Bornemann 068baa9bb6 add a way to modify CreateProcess parameters
[ChangeLog][QtCore][QProcess] Added method
setCreateProcessArgumentsModifier to QProcess on Windows to enable
users to intercept and modify CreateProcess parameters.

With such a modifier, calling code can decide whether to inherit
handles, modify the STARTUPINFO struct, and pass its own
combination of process flags to CreateProcess.

Task-number: QTBUG-390
Task-number: QTBUG-6917
Task-number: QTBUG-9350
Task-number: QTBUG-24619
Change-Id: I14757dbbacfebb1c89f52402d36fba0ba9c45f3a
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-10 16:29:33 +00:00
Edward Welbourne ea8a92c9c9 Clarify what time-zone "transitions" are.
Change-Id: Idad5b841c3c693e2040ca606894187988615c9b0
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-09 12:55:32 +00:00
Timur Pocheptsov 7d2c87311e QProcessPrivate::startProcess - fix invalid encodedProgramName (OS X)
CFBundleCopyExecutableURL returns different URLs (can be absolute or relative)
for the same bundle (caching) - and this results in an
invalid encodedProgramName (in case we try to start the same process twice),
for example, if we start: QProcess p; p.start("nestedDir/nested.app")
twice, the second time we'll have an error trying to start something like
nestedDir/nested.app/_and_here_absolute_url.

Change-Id: I8ac42e20fe3b9fe8b80d5b5c663672e77d88269d
Task-number: QTBUG-49837
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
2015-12-09 12:29:13 +00:00
Nico Vertriest 8f74fe1b66 Doc: Circumvented qdoc parsing by removing '!'
Qdoc gave warning "Cannot link this to anything"

Task-number: QTBUG-43810
Change-Id: Id903040ed7b2860a2ec64a52f7fbe8269c6927b0
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-09 09:36:17 +00:00
Anton Kudryavtsev 8dc43adcbb QtBase: use preincrement for iterator types
... because it's useful for non-primitive types.
Except for index-based loops, these were the only two
remaining instances in QtBase.

Change-Id: I0fafa502d78a70f98b4a90f4d3c7fdfbb401a90f
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-12-09 00:07:32 +00:00
Marc Mutz 6de49f4ab6 QString: where possible, re-use existing capacity in op(QChar/QL1S)
If the LHS is detached and has existing capacity that is large
enough to hold the RHS, re-use the memory instead of allocating
a new buffer and throwing away the old.

Change-Id: I53d42825da92c264c7301e8e771cba9fb35c321b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-08 23:48:12 +00:00
Tobias Koenig df3a05b918 Haiku: Implement QLockFilePrivate::processNameByPid
Change-Id: Ie9b76d14f901f5aadf7409183165eaccc288effd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-08 19:18:20 +00:00
Alex Trotsenko 330f8f6d80 Allow Q_CHECK_PTR when asserts are forced
Since the commit 9f83e75d3fbfc01a5ca8d87b4c33ca1ad848387d we can build
the release packages with Q_ASSERTs still enabled. As this feature was
targeted to embedded platforms it would be nice to enable Q_CHECK_PTR
macro as well.

Change-Id: I2d549d92b7196935665d927e6aaed3e9f31593b1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-08 19:10:15 +00:00
André Klitzing 63827c4d27 Add PointerToMemberFunction for ctor of QSignalTransition
[ChangeLog][QtCore][State Machine] Added constructor overload that
takes a pointer-to-member for the QSignalTransition.

Change-Id: I80ac6e16d0edf7d2ab09882b6f6db4cbd73364e1
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-08 17:07:04 +00:00
Marc Mutz d6ffbedc49 QString::vasprintf: Extract Method parse_length_modifier
... and simplify it:

De-duplicate ++c by moving it from every case into the
switch statement, undoing it only in the default case.

Introduce a small helper function can_consume() for dealing
with the two-letter length modifiers.

Also return the result from each case instead of storing
it in a temp variable.

Change-Id: I28a527920aabba067ebb2152a67995c8f2ec7ae7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-08 16:24:57 +00:00
Kai Koehne 2baeeb4026 Win: Use native separators in QLibrary errors
Fixes output like

  plugin cannot be loaded for module "QtWebEngine": Cannot load library D:/dev/qt/5.6/msvc-2015-32/qtbase/qml/QtWebEngine/qtwebengineplugind.dll: The specified procedure could not be found.

Change-Id: I159113a6a1f40b924905da15267a42e5b627d56e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-08 08:14:48 +00:00
Thiago Macieira 401507b348 Fix constructing a QSharedPointer<const> of a QEnableSharedFromThis type
It should compile, since the std::shared_ptr does.

[ChangeLog][QtCore][QSharedPointer] Fixed a problem that would cause a
compilation error when constructing a QSharedPointer of a const type
when the type derives from QEnableSharedFromThis.

Task-number: QTBUG-49748
Change-Id: I8de47ed6c7be4847b99bffff141c84f5e0b6bea8
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-08 06:32:20 +00:00
Thiago Macieira 7499e642e0 QVariant: retain duplicate keys when converting
Task-number: QTBUG-49520
Change-Id: I3e15a26e0e424169ac2bffff1417e3f4398c2277
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-12-08 06:32:18 +00:00
Simon Hausmann 3ec31ef9c5 Merge remote-tracking branch 'origin/5.6' into dev
Change-Id: I2532c7f7db5e6cc3ef09753d886279816dd662b2
2015-12-08 07:09:47 +01:00
Friedemann Kleint df053dc642 WinRT: Add RETURN_[]_IF_FAILED_WITH_ARGS macros.
Make it possible to pass arguments to the messages by
introducing variadic macro versions of RETURN_[]_IF_FAILED.

Change-Id: Iec27adb33d9d3211fdc299f07777fcdf33f08a93
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-07 19:37:33 +00:00
Martin Klapetek 891c98ebd6 Don't treat "/etc/localtime" in TZ env var as a valid timezone id
On some Debian distros, the TZ environment variable can be set to
":/etc/localtime", which libc defines as "default value". If this is
set, the current QTimeZone parsing code will return "/etc/localtime"
as the system timezone id, which is clearly wrong.

So in that case, just unset the ianaId variable and let the other
blocks look for the timezone.

Change-Id: I3f5795d0a05f4974a60556387a07a1e2e1e7aa30
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-07 18:03:17 +00:00
Risto Avila c7b26e632e Add missing include to qabstractitemmodel_p.h
qabstractitemmodel_p.h should include qabstractitemmodel.h since
it's using QModelIndex.

Change-Id: Ie2e3f9e1b324e080e1159e49fa89dd70f920dd1d
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-12-07 13:24:49 +00:00
Marc Mutz 80ae3baed0 Q_UNIMPLEMENTED: remove explicit file, line and funcinfo information
This information is already registered by the QMessageLogger ctor.

Change-Id: Iac378777675f00ad5d07b938605484b1466aa5c5
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-07 11:29:28 +00:00
Sérgio Martins 4b365cb446 Fix typo in QObject::disconnect() documentation
Change-Id: I65f95c7f22399b9fea65c44b971afc7efbb73d64
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-07 10:23:49 +00:00
Louai Al-Khanji f0a6d45cc8 qt_poll: split out into separate file and sanitize build
The qt_poll function calls recv to query whether fds marked by select
as readable should be marked POLLIN or POLLHUP in the pollfd structure.
On many platforms such as QNX this requires extra link-time libraries
which were not previously required by QtCore.

While the qt_poll function is intended as a fallback mechanism only for
those platforms which do not implement poll natively, the function was
compiled unconditionally whenever QT_BUILD_INTERNAL was defined, e.g.
in developer builds.

Additionally the function was included on those systems that define poll
in system headers so that configure determines build-time availability,
but do not define _POSIX_POLL > 0 or indicate POSIX:2008 compliance via
either the _POSIX_VERSION or _XOPEN_VERSION macros. On those systems a
sysconf query for _SC_POLL was performed to determine at runtime whether
to call the system poll or qt_poll.

Both of these cases are in fact counterproductive. In the first case the
sole consumer of the function is a single manual unit test. In the
second, to my knowledge no platform requires the runtime fallback.
Despite that, we were forcing an extra dylib in both cases.

Both cases are fixed by 1) moving the implementation into its own file
for the unit test to include and 2) dropping the dynamic fallback if
configure determines availability of poll at compile-time.

This also reverts commit 1377709711, which
added -lsocket for QtCore on QNX.

Change-Id: I2dd10695c5d4cac81b68d2c2558797f3cdabc153
Reviewed-by: James McDonnell <jmcdonnell@qnx.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-05 00:47:36 +00:00
Thiago Macieira f5f47987ce qCount{Leading,Trailing}ZeroBits: Use __builtin_clzs for 16-bit
If possible.

The BSF/BSR/TZCNT/LZCNT Intel instruction does not exist for 8-bit. And
it's a good idea to use the 32-bit instruction instead of the 16-bit one
for that case, to avoid the Length Changing Prefix (LCP).

GCC doesn't allow us to use __builtin_cl[tz]s unless BMI is active,
while ICC generates the same code either way (Clang understands
__has_builtin).

Change-Id: I8de47ed6c7be4847b99bffff141c91603c7024dc
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2015-12-05 00:11:28 +00:00
Marc Mutz d730281753 QEasingCurve: mark nothrow move constructible/assignable and nothrow swappable
Change-Id: Ib81e6f2278608e102ed7bfc799525777737a4e87
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-04 23:21:06 +00:00
Louai Al-Khanji 6b1dc2641e QEventDispatcherUNIX: Remove unused mainThread member variable
Change-Id: I400c3fc7430c2a7d273325a03ba3499369d30a4f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-04 16:42:59 +00:00
Thiago Macieira 2398e225ab Auto-detect whether 64-bit std::atomic really works
The C++ standard says it must, but some badly-configured toolchains seem
to be lacking support.

In particular, for some 32-bit platforms without native support for
them, GCC implements 64-bit atomics via out-of-line functions in
libatomic. If that library is missing... well, then std::atomic 64-bit
doesn't work and we mustn't try to use it.

This was found when trying to compile Qt 5.6 for MIPS 32-bit:

Linking library libQt5Core.so.5.6.0
.obj/qsimd.o: In function `std::__atomic_base<unsigned long long>::load(std::memory_order) const':
/opt/poky/1.7/sysroots/mips32r2-poky-linux/usr/include/c++/4.9.1/bits/atomic_base.h:500: undefined reference to `__atomic_load_8'
.obj/qsimd.o: In function `std::__atomic_base<unsigned long long>::store(unsigned long long, std::memory_order)':
/opt/poky/1.7/sysroots/mips32r2-poky-linux/usr/include/c++/4.9.1/bits/atomic_base.h:478: undefined reference to `__atomic_store_8'

Yocto bug report: https://bugzilla.yoctoproject.org/show_bug.cgi?id=8274

Change-Id: I42e7ef1a481840699a8dffff140224d6614e5c36
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit 3d7586b760)
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
2015-12-04 05:20:26 +00:00
Rolland Dudemaine 6d39e8425e Remove the socketpair special case for eventdispatcher on INTEGRITY.
The special case was needed for INTEGRITY 5, but select support has
since long been added.

Change-Id: Ice25c5becc9d7dcdf6c5bc9eeac36b70e1b94df3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-04 01:04:28 +00:00
Rolland Dudemaine ab352b8b0d pwd and group variables should be declared inside Q_OS_INTEGRITY.
The variables were always intended to be located inside the #ifdef
Q_OS_INTEGRITY.

Change-Id: I5e223ff8b5b2a686e4b45e2b8eb731e8406a199f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-04 01:03:20 +00:00
Rolland Dudemaine f64c992ec5 sys/flock.h should not be included for Q_OS_INTEGRITY.
More specifically, equivalent declarations to this BSD header are
defined implicitly on INTEGRITY, and the header does not exist.

Change-Id: Ib0bd4b22742ef403c83dab0d72c268c1571b8250
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-04 01:03:11 +00:00
Rolland Dudemaine 614acc29a7 Use portable temporary directory implementation for Q_OS_INTEGRITY.
Change-Id: I667dece31d6b60e67363d7b2cc26fdd0621641a8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-04 01:02:17 +00:00
Rolland Dudemaine bb7deb69c8 Add GHS toolchain architecture macros.
Change-Id: I4967451d52443a5f301b3706bcbbc2713ae70942
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-04 01:01:58 +00:00
Rolland Dudemaine c0b912efd9 Use intrinsics for GHS toolchain for CPU feature detection.
cpuid and cpuidex are available as intrinsics, but the GNU-style
assembly is needed for xgetbv.

Change-Id: Ib9f280ac6b69b7ffb9c39289b52fa4af5e2de9ba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-04 00:54:09 +00:00
Rolland Dudemaine dff4120a37 Add an else clause that clears the return value.
This avoids several warnings with the GHS toolchain, in the form:
warning #111-D: statement is unreachable
This is because the sizeof() equality test is statically determined,
but the following code is not discarded automatically. It is when
using an explicit else clause.

Change-Id: Ic0584aafc72f70badcf5285ab635f9d99eac161a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-04 00:28:10 +00:00
Rolland Dudemaine 7cff3e807e Remove inclusion of sys/sem.h for INTEGRITY.
On INTEGRITY, the header does not exist and is not needed for compilation.

Change-Id: I7e473c30d23f213a31fc39ad4ef86c06db299f16
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-04 00:27:39 +00:00
Marc Mutz dd9df8d31f QAbstractItemModelPrivate::Change: add some constexpr
Change-Id: Ie852a20463af42db7d9959f8b79512e0d521e73d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-03 19:58:38 +00:00
Samuel Nevala ba40d1a872 Combine environment variable implementations
Environment variable storage implementations on Windows Runtime and CE are
very similar. For better maintainability have just one implementation.

Change-Id: I12ec38f7bde3fcc0bcc56face88d5f19cf3b3504
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-12-03 14:33:18 +00:00
Nico Vertriest 1c720be3fb Doc: corrected statement about QByteArray::clear
Task-number: QTBUG-45096
Change-Id: I30a49044690c2f0ef5bf6ee80712e1395c60ac77
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-03 13:50:14 +00:00
Nico Vertriest b07c10c5de Revert "Doc: Added info about sorting in QItemSelectionModel::selectedIndexes"
This reverts commit d0f57439d0.
This commit had introduced a wrong statement about the sorting.

Change-Id: I2f6ea6f7cfb318bca7bd44c686956ba135b65b20
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-03 13:49:43 +00:00
Friedemann Kleint afaa7351c0 QStandardPaths::standardLocations()/WinRT: Return empty lists.
Previously, lists containing one empty string were returned for the
unimplemented functions.

Change-Id: Ia64b53325420e32076f2bacf22c48885d7121df0
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-12-03 10:48:25 +00:00
Liang Qi 72f5867f14 Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
	src/corelib/kernel/qcoreapplication.cpp
	src/corelib/kernel/qeventdispatcher_blackberry.cpp
	src/network/bearer/qnetworkconfiguration.cpp
	src/plugins/bearer/blackberry/qbbengine.cpp
	src/plugins/platforms/android/androidjnimain.cpp
	src/plugins/platforms/android/qandroidplatformtheme.cpp
	src/plugins/platforms/qnx/qqnxbpseventfilter.cpp
	src/plugins/platforms/qnx/qqnxfiledialoghelper_bb10.cpp
	src/plugins/platforms/qnx/qqnxinputcontext_imf.cpp
	src/plugins/platforms/qnx/qqnxintegration.cpp
	src/plugins/platforms/qnx/qqnxnavigatorbps.cpp
	src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp
	src/plugins/platforms/qnx/qqnxwindow.cpp
	src/widgets/kernel/qwidgetwindow.cpp
	src/widgets/styles/qwindowsvistastyle.cpp
	src/widgets/styles/qwindowsxpstyle.cpp
	src/widgets/widgets/qtoolbararealayout.cpp
	tests/auto/corelib/global/qflags/qflags.pro
	tests/auto/corelib/itemmodels/qitemmodel/modelstotest.cpp
	tests/auto/corelib/tools/qversionnumber/qversionnumber.pro
	tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp

Change-Id: I37be88c6c185bb85404823353e027a0a6acdbce4
2015-12-02 23:33:06 +01:00
Matt Hoosier db06745fe2 Fix overflow-checking additions and multiplication on MinGW
Intrinsics headers are associated with compilers, not OS's. This
change fixes a broken MinGW build triggered by
29bc68cf16.

Change-Id: Ib9e4ea3e25bf49d38a754a246b9433bc078bbb18
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-02 15:41:52 +00:00
Thiago Macieira 8d7d481772 doc: add a note about cmd.exe and the QProcess string splitting/joining
cmd.exe uses a different set of characters to split arguments on, which
is not compatible with CommandLineToArgvW().

See https://technet.microsoft.com/en-us/library/bb490880.aspx.

Task-number: QTBUG-49641
Change-Id: Ic90fe6b1cbe84978a02fffff141b8f961a43ad28
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-02 15:38:38 +00:00
Erik Verbruggen 4e8f07cd0f Use __builtin_clz/ctz when available.
Nicely ask the compiler if it has a built-in for clz/ctz before
resorting to CPU specific brute force measurements.

Change-Id: Ifa992267ec4528219d7da14524af738316ceeaea
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-01 12:51:04 +00:00
Louai Al-Khanji 105fc117b7 Add qt_safe_poll
This function is introduced to safely provide poll(2)-like semantics for
socket multiplexing on Unix-like platforms. For platforms where no poll
system call is available, an implementation based on select(2) is provided.

Change-Id: I320e97dae5924316675a74d1897c48cae292ac6d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-01 00:13:41 +00:00
Topi Reinio 10379e48f1 Doc: Omit default argument in describing a function call
QKeySequence::PortableText is the default value for argument passed
to QKeySequence::toString(), and it doesn't need to be mentioned
specifically in description for Qt::AA_MacDontSwapCtrlAndMeta enum
value.

Dropping the parameter shortens the text string, allows browser to
better wrap the table text, and gets rid of the automatic horizontal
scrollbar in online style. This improves readability for the entire
table.

Change-Id: I7051f5415a7a100b8c76f23b06b6cb9a2b0699ef
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
2015-11-30 11:55:44 +00:00
Nico Vertriest 9b23e36bbd Doc: improvement in if condition about inserting item in list
Task-number: QTBUG-41708
Change-Id: Ibbb115a8ad81f7fba0ce162ae131d4843b19c188
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
2015-11-30 09:10:17 +00:00
Nico Vertriest 949ed98b2b Doc: added QQuickItem also uses UngrabMouse
Task-number: QTBUG-37311
Change-Id: I8beac262d92ddb16c225da65aa8a3f80da59074f
Reviewed-by: Michael Brasser <michael.brasser@live.com>
2015-11-30 09:10:09 +00:00
Lars Knoll 63a5b3b09d Remove a reference to Mac OS X 10.4
It's been a while since we stopped supporting that version :)

Change-Id: I2fa4900945551024ac920c36c47d20b47aee50c0
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
2015-11-30 08:22:42 +00:00
Lars Knoll 9e5133f4cc Document platform limitations for QCollator::ignorePunctuation
OS X and iOS do have a flag for this in their API, but it does
not seem to work. We can't support this on Linux without ICU.

Change-Id: I81613ad425cb054597f23fac112be665f8d958b6
Task-number: QTBUG-41978
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
2015-11-30 08:22:38 +00:00
Marc Mutz 51089a5742 Use Q_UNLIKELY for every qFatal()/qCritical()
If, after checking a condition, we issue a qFatal()
or a qCritical(), by definition that check is
unlikely to be true.

Tell the compiler so it can move the error handling
code out of the normal code path to increase the
effective icache size.

Moved conditional code around where possible so that
we could always use Q_UNLIKELY, instead of having to
revert to Q_LIKELY here and there.

In some cases, simplified the expressions newly wrapped
in Q_UNLIKELY as a drive-by.

Change-Id: I67537d62b04bc6977d69254690c5ebbdf98bfd6d
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-29 22:59:17 +00:00
Marc Mutz 9291e2e667 QXmlStreamStringRef: overload ctor from QString with an rvalue version
The only tricky part here is to take the size of the moved-to
member, not the moved-from parameter QString object.

To avoid accidents, give the lvalue version the same structure.

Change-Id: Ic68bb896f1d817c21d913feab43522235c51029b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-29 11:51:15 +00:00
Alex Trotsenko 9ac0f47e64 QFile: document a default constructor as public
Change-Id: Ia45b7e9d2c985432bbac9b5428b5424f8d0d78c7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-11-29 09:45:33 +00:00
Marc Mutz 9f591b3b6c QVector: prevent resize() from shedding capacity
...even if reserve() hasn't been called before.

[ChangeLog][QtCore][QVector] resize() will no longer shrink the
capacity. That means resize(0) now reliably preserves capacity().

Task-number: QTBUG-39293
Done-with: Robin Burchell <robin.burchell@viroteck.net>
Change-Id: Ie7e4e597126832990b6cfb83bba875c3963b143e
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-28 21:34:23 +00:00
Marc Mutz 678a4273a3 QtBase: combine adjacent qDebug()/qCritical() lines
For qDebug() and qWarning(), this is just an optimization.
For qCritical(), which can be fatal, the old code was just wrong.

Change-Id: I6d8ab1d7531d766cd41b49569dc0fd4420ecab8b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-28 16:34:32 +00:00
Marc Mutz 40a8302115 QtBase: remove explicit function info from qWarning() etc
This information is already registered by the QMessageLogger ctor.

Where, by dropping the << Q_FUNC_INFO in ostream-style qDebug(), only
a string literal remained, converted to printf-style qDebug() on the
go.

Change-Id: I3f261c98fd7bcfa1fead381a75a82713bb75e6f3
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-28 16:34:26 +00:00
Marc Mutz ca1f842158 QDebug: reduce template bloat
When streaming non-Q_FLAG QFlags, factor the common code
into a helper function only templated on QFlags<T>::Int
and pass what varies as parameters.

Then overload the helper function for the most common int
type (int) as an out-of-line function, implemented via the
primary template to avoid the two going out of sync.

That leaves the primary helper template only for special
cases (such as future extensions).

Change-Id: I70e0001bcfacab9f8765c9b1075fe80b596223f1
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-28 16:26:24 +00:00
Marc Mutz 88d7c8f963 QDebug: refactor streaming of sequential containers and add suppoprt for STL types
What triggered this change was the use of QVector::toList() in
op<<(QDebug, QVector).

Only added support for STL types of which we already include the
headers.

[ChangeLog][QtCore][QDebug] Can now output std::vector, std::list,
std::map, and std::multimap.

Change-Id: I49581e3038daa7626b00169430b72d3d5175eae7
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-28 16:25:52 +00:00
Liang Qi 8c57e8c012 Merge remote-tracking branch 'origin/5.5' into 5.6
Conflicts:
	src/network/socket/qnativesocketengine_p.h
	src/network/ssl/qsslsocket_mac.cpp
	src/network/ssl/qsslsocket_mac_p.h
	src/widgets/kernel/qwidget.cpp

Change-Id: I39592cb37d710dfaf8640769ba3c1b637927d7f4
2015-11-27 08:35:45 +01:00
Simon Hausmann ea5f40a788 Merge remote-tracking branch 'origin/5.6' into dev
Change-Id: Ib43c6f126998eefcfed9a7c1f2bcbac8b4dd05ec
2015-11-27 08:27:53 +01:00
Erik Verbruggen 0c9b4c84ad Aarch64: fix Q_PROCESSOR_ARM_V8 detection.
The macro __ARM64_ARCH_8 is only set by Apple's flavor of clang. GCC and
mainline clang set __ARM_ARCH to 8, and set __ARM_ARCH_8A (when
applicable).

Change-Id: I356b785ffdbfedf8f1ed682840db431db2779ba5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-26 16:18:30 +00:00
Allan Sandfeld Jensen 07fdfa5598 Detect NEON on AArch64
The __ARM_NEON is the standard define for NEON instructions support
__ARM_NEON__ is only legacy, and specifically not defined in
AArch64 builds, which causes us not to detect NEON support there.

The NEON assembler files doesn't build with AArch64, so the NEON
drawhelper methods must be excluded for now.

Change-Id: Ie32f855bde94ee7efd8a8ddb7766c931778e729b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-26 15:40:41 +00:00
Edward Welbourne 2277e3b873 Proof-reading fixes to QCoreApplication documentation.
Things I noticed while reading - so I fixed them.

Change-Id: I48f6f2eef7ac3cf901e2f1305c503fb18f5ab2ae
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-11-25 13:14:14 +00:00
Oliver Wolff c7251e7dcd Revert "Fix deadlock when setting environment variables."
This reverts commit 5b62a5e7aa.

This commit is reverted due to two reasons:
1) It was written incorrectly and does not work as is. The
   ifdefs should be ifndefs. In its current state, it does
   the exact opposite of what it is supposed to be doing.
2) There is another environment access inside qsimd.cpp
   (which checks QT_NO_CPU_FEATURE). This access causes the
   app to hang.

All in all that approach is not sustainable as we might get
bitten by environment access again and again. Instead we should
use another environment container or use a recursive mutex for
WinRT and Windows CE.

Task-number: QTBUG-49529
Change-Id: Iaca76404dc1023551a7c25489a609681135765fd
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
2015-11-24 15:12:00 +00:00
Ulf Hermann 4c2dd1a9c1 Centralize dropping of trailing zeroes when converting doubles
We're never interested in trailing zeroes, unless the number is exactly
0. qdtoa would return an empty string if the result was exactly '0',
which is also fixed by this change.

Change-Id: I3ba2f7e835b92d54d9008ad03fdf6ce5fb3af8a4
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-24 14:01:08 +00:00
Ulf Hermann 5c8c4d0b21 Don't call setlocale(3) in bootstrap code
When bootstrapping we might rely on sscanf(3) for parsing doubles from
strings. We don't want this to be localized.

Task-number: QTBUG-49616
Change-Id: I1607bb750b479fd7007dd0d875d600be59caa859
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-24 13:35:11 +00:00
Friedemann Kleint 045abe631c Remove arch/qatomic_mips.h from src/corelib/arch/arch.pri.
Amend change 110a8c339f, fixing:
WARNING: Failure to find: arch/qatomic_mips.h

Task-number: QTBUG-49168
Change-Id: I7009037d3f4c51c9ed9713b6e94ee43022fe2645
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-24 05:24:39 +00:00
David Faure 4992ba2a52 QFileSystemWatcher: print out path in case of error.
Before:
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No such file or directory

After:
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch("/home/dfaure/.local/share/user-places.xbel") failed: No such file or directory
(assuming "%{function}:" in $QT_MESSAGE_PATTERN)

Change-Id: I6cc68529516b33683bd69fbb61e04df8a8aa880d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-23 22:07:05 +00:00
Samuel Nevala 5b62a5e7aa Fix deadlock when setting environment variables.
Qt uses QHash as the container for faking environment variables on
Windows Runtime and CE. Environment variable manipulation functions are
protected by mutex. Accessing the QT_HASH_SEED environment variable
inside QHash can lead to situation where qputenv() call leads to
qgetenv() call and that leads to a deadlock. Since the application
environment is faked anyway, drop support for QT_HASH_SEED and ifdef
that functionality out on those platforms. Documentation is updated
to reflect changes.

Task-number: QTBUG-49529
Change-Id: I1b1c28cb0b041fe2a63ca3dce57068fcb46505a7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-11-23 19:58:16 +00:00
Liang Qi 746f54c6df Merge "Merge remote-tracking branch 'origin/5.6' into dev" into refs/staging/dev 2015-11-23 19:17:25 +00:00
Ulf Hermann 573f87d813 Use "shortest" double conversion for JSON
Task-number: QTBUG-42419
Change-Id: I649c4de96a2e41078e139c0f382e5a6cf96d3bb9
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-23 14:13:48 +00:00
Ulf Hermann 15b5b3b3f0 Add flags to omit/reject padding in scientific notation exponents
The EcmaScript format for printing doubles in exponent form differs
from Qt's format only in this aspect. EcmaScript explicitly prohibits
leading zeroes in exponents. It is thus worthwhile to add those flags
in order to be able to generate and parse doubles in compliance with
EcmaScript.

[ChangeLog][QtCore][QLocale] Additional flags in QLocale::NumberOption
allow generating and parsing doubles in EcmaScript compliant format.

Change-Id: Ia7b82c2e67bb8b80bd890014ff5cd4563faf2a03
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-23 14:13:42 +00:00
Ulf Hermann 726fed0d67 Interpret precision == -128 as "shortest" double conversion
Also use this for converting doubles with QVariant. We generally want
exact results there, rather than adding rounding errors whenever we
convert.

[ChangeLog][QtCore][QLocale] Added special value for double conversion
precision to get shortest accurate representation.

Change-Id: I905b8a103f39adf31d24b6ce2c8a283cf271b597
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-23 14:13:34 +00:00
Liang Qi 1ed7a67a4c Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
	src/corelib/kernel/qcoreapplication.cpp
	src/corelib/thread/qthread_unix.cpp

Change-Id: Ia08d613c3f0bd08cb6dc3e3a57257207dfd4a099
2015-11-23 07:13:00 +01:00
Andrew McCann bc7d0da741 OS X: Fix QStandardPaths::standardLocations()
Task-number: QTBUG-49443
Change-Id: I0699dfd3cb4c710ab96c324219444c6294c9d732
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
2015-11-22 20:40:15 +00:00
Louai Al-Khanji dbb7817e13 Remove remaining support for Blackberry
The platform is no longer supported or actively maintained, and is
in the way for improvements to the Unix event dispatcher and QProcess
implementations.

Change-Id: I3935488ca12e2139ea5f46068d7665a453e20526
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-21 15:38:39 +00:00
Marc Mutz 1005b7a0de Long live qUtf16Printable()
QString::asprintf() has the ability to take a ushort* array as
obtained from QString::utf16() and insert that into the output
with an %ls conversion.

But no-one ever used this, because just passing QString::utf16()
to QString::asprintf() creates a warning about wchar_t* expected,
but ushort* provided.

The new qUtf16Printable() macro adds the necessary casts (via void*
to prevent any "type-punned pointer" warnings) to make
passing QString::utf16() to QString::asprintf() work silently.

This should greatly reduce the need to do a round-trip via utf-8
just to print the contents of a QString.

[ChangeLog][QtCore] Added qUtf16Printable().

Change-Id: I7ddd8d2b2a2191c9faa26aca95d49850d94b287c
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-21 14:25:55 +00:00
Erik Verbruggen ecb6835a9f OSX: fix build.
Move the QT_USE_NAMESPACE up, so any use of Q* classes won't result in
compilation errors when Qt is configured to be in a namespace.

Change-Id: Id559c86798529f6cad43a75fce303c108ce820bc
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2015-11-21 06:09:00 +00:00
Marc Mutz 226ce6020e QPair: use std::type_traits for exception specifications
This should solve problems with our use of the noexcept
operator, because that's how std::pair is defined, too.

Mid-term, we should kill QPair and use std::pair instead.
It really has gotten way too complicated to implement a
C++11 pair correctly.

Task-number: QTBUG-48780
Change-Id: Ied0acd220e5131000a957dc356d6efcdd8f83828
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-20 20:17:47 +00:00
Marc Mutz e4e10fa2d5 QString::vasprintf: remove egcs-2.91.66 workaround
We don't support that compiler anymore.

Change-Id: I6d100a2d149ce4e506c7f8be3b56a33fa9d7092f
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-20 11:09:21 +00:00
Erik Verbruggen 5ff7a3d96e Add {add,sub,mul}_overflow for signed integers.
In C++, signed overflow math is Undefined Behavior. However, many CPUs
do implement some way to check for overflow. Some compilers expose
intrinsics to use this functionality. If the no intrinsic is exposed,
overflow checking can be done by widening the result type and "manually"
checking for overflow. Or, for X86, by using inline assembly to use the
CPU features.

Used in QtQml.

Change-Id: I2ef2523ccaa98f6757a45e24862a2fa730a26bb0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-20 11:08:05 +00:00
Nico Vertriest de43d4fafd Doc: added doc about removal option qmljsdebugger by QCoreApplication
Task-number: QTBUG-46597
Change-Id: I2ed42480bd96119f04828a7a965c348f7c773acd
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
2015-11-19 21:31:38 +00:00
Oliver Wolff dc3e7e45eb winrt: Merge Languages and ManifestLanguages for QLocale::uiLanguages
Task-number: QTBUG-48140
Change-Id: I904ad48e7bc48867a362e3f6c5ca1516e55ed872
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-11-19 19:59:33 +00:00
Morten Johan Sørvig 97c8f6aa9c OS X: Add opt-in for CoreFoundation event dispatcher
Opt-in by setting
	QT_EVENT_DISPATCHER_CORE_FOUNDATION=1

This will make QCoreApplication and QThread create
a QEventDispatcherCoreFoundation instead of a
QEventDispatcherUNIX.

With this change we can now support calling native API
that requires a running Core Foundation event loop
on the QCoreApplication main thread and secondary
threads. Previously this was only supported on the
QGuiApplication main thread.

Rewrite the #ifdef event dispatcher logic slightly:
both OSX and GLIB now gets an "else" branch for the
UNIX event dispatcher, instead of the current "dangling
else" pattern which only works for one #ifdef case.

Change-Id: If853567fa097fe007502b0804c2307a989719866
Task-number: QTBUG-46625
Task-number: QTBUG-48758
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-19 16:04:56 +00:00
Marc Mutz bbe65832f5 QString::vasprintf: avoid allocating memory for format text copied verbatim
... by using the new QUtf8::convertToUnicode() function in
conjunction with QString::resize().

For this to be a clear optimization, resize() must be banned
from shrinking capacity, which another patch will implement.

Change-Id: I6394af95ef1aaae131e23a4227734eb76fa685cd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-11-19 11:30:43 +00:00
Marc Mutz db9a0befca Add a QUtf8::convertToUnicode() overload that operates on an existing buffer
... and therefore doesn't need to allocate and thus
can be marked as nothrow.

Technically, the function doesn't have a wide
contract, because it has the precondition that
the buffer pointed to by the first argument needs
to be large enough to hold the result.

But that precondition can't be checked from within
the function, so no failure can be generated for
it and thus the nothrow guarantee is acceptable
(and desireable).

Change-Id: Iaf6ea6788ef6b4bbb6d8de59a3d0b14d66582307
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-19 11:30:37 +00:00
Marc Mutz 110e82f5e9 QString::vasprintf: avoid allocating memory just to parse a number
Port parse_field_width from constructing a QString and
then calling toInt() on it to use qstrtoull().

Not only do we not allocate memory anymore, we even
don't need to copy the digits out of the format
string - qstrtoull() does it all for us.

In order to preserve behavior with the previous code,
which consumed all digits before performing error
checking on them, we also consume all digits, even if
qstrtoull() would have returned the start of the range
as the end pointer.

Change-Id: Ief941ce3a8ea43d2e5475d9eab77d7d0d7abc450
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-11-19 11:30:30 +00:00
Marc Mutz e17629e32d QString::vasprintf: Extract Method parse_field_width
... and reuse the function to parse precision, too.

This also allows to more easily simplify it (done in a
follow-up commit).

Change-Id: I9da27c4b06565f676e15ef9cab7c53b5d464515e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-11-19 11:30:23 +00:00
Marc Mutz 139fd9bd0d QString::vasprintf: Extract Method parse_flag_characters
... and simplify the method afterwards:

Drop the boolean that was used to control program
flow when the code was still part of vasprintf(),
by taking advantage of the fact that we can now
just return from the function to break out of both
the switch and the loop.

Change-Id: I97f050b63c0c309aaed3cb0fe979d53c8d970003
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-11-19 11:30:07 +00:00
Erik Verbruggen 72c68f5f22 Reimplement qt_inf/qt_snan/qt_qnan using std::numeric_limits.
Qt already assumes a working IEEE-754 implementation, so we can rely
on a working std::numeric_limits<double>.

This patch also gets rid of three cases of type-punning with unions
(which is undefined behavior in C++).

Change-Id: Ic3747f49d55e372960abf2091c1d5752c1eccdff
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-19 10:56:41 +00:00
Marc Mutz 62f2a0fb0d QXmlStreamStringRef: unbreak move special member functions
The QXmlStreamAttribute move operations expect QXmlStreamStringRef
to have move special member functions, but in fact the non-trivial
QXmlStreamStringRef dtor prevented them from being generated by the
compiler. We can't remove the dtor, because it's exported :(

So provide all the move special member functions by hand, and since
their presence in turn prevents the copy special member functions
from being generated, provide those too.

Change-Id: I494aea24981cdb661abe33a96976a363cfe7ef1b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-19 07:40:49 +00:00
Marc Mutz 2697d77141 QXmlStreamStringRef: mark as shared-not-movable-until-qt6
Requires adding member swap. Member-swap is also
necessary to fix the deleted move-assignment operator
of this class, on which QXmlStreamAttribute heavily
relies for its own move assignment operator.

That's why it's not proposed for dev, but 5.6.

Change-Id: Id7d0823d44fc6e55ada7c096ae95444f6bb50963
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-19 07:40:39 +00:00
Marc Mutz f9de9eae3a Replace backwards Java-style iteration with new reverse_iterators
Faster, and, thanks to the new reverse_iterators, just as convenient.

Change-Id: Ibc6c64051a8ede4a47428e9271ffbeaa921fc255
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2015-11-19 07:40:29 +00:00
Tim Blechmann 970f44bf48 qfactoryloader: static qt compile fix
statically linked qt does not compile, as versionKeyLiteral() is unused,
causing clang to complain:
error: unused function 'versionKeyLiteral' [-Werror,-Wunused-function]

Change-Id: I6a233081e7c58fce75ece82616f937f29a23a81b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-11-19 07:09:10 +00:00
Liang Qi c7934f2489 Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
	src/corelib/io/qprocess.cpp
	src/corelib/io/qprocess_unix.cpp
	src/network/kernel/qnetworkinterface_winrt.cpp
	tools/configure/configureapp.cpp

Change-Id: I47df00a01597d2e63b334b492b3b4221b29f58ea
2015-11-18 09:01:51 +01:00
Thiago Macieira 3dd6ac244f Add support for the C++11 features fixed in MSVC 2015 Update 1
This brings MSVC 2015 support to almost C++11 feature completion.
Constexpr support still has one annoying bug, for which the fix is
promised for Update 2.

Change-Id: I92c2ee6638625c61e3a16690563434e32d853368
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-18 00:30:47 +00:00
Thiago Macieira 7ad560b2bc Fix build with OS X 10.8 SDK
The ffsll function is missing with that SDK, but Clang and GCC support
it as the builtin.

Change-Id: I9f4d900898814b569c1affff140e15fb59fb45d8
Reviewed-by: Samuel Gaist <samuel.gaist@edeltech.ch>
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
2015-11-18 00:30:45 +00:00
Thiago Macieira f29b6943f0 QString: Fix in-place toUpper/Lower when there's size expansion
When that happens, we need to detach (in-place conversion won't work),
so we recurse back into the same function, but the template version that
does detaching.

Task-number: QTBUG-49181
Change-Id: Idba8c29717f34c70a58fffff1412fea3acc95f98
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-18 00:30:40 +00:00
Thiago Macieira 7c05a0cc99 Merge "Merge remote-tracking branch 'origin/5.5' into 5.6" into refs/staging/5.6 2015-11-18 00:30:38 +00:00
Oswald Buddenhagen ded63fbb94 make a proper header-only module for QtZlib
that way other modules can use the headers without hacks.

this required making the base directory for paths in headers.pri
configurable in syncqt.

Change-Id: Id35cfe05bcf4c576d3f2d0d8d09590a5e23d21d3
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
2015-11-17 20:22:17 +00:00
Liang Qi 17dc773221 Merge remote-tracking branch 'origin/5.5' into 5.6
Change-Id: I6b1fe0c6c360a0d5285911869f0f4f93d86d822e
2015-11-17 07:14:16 +01:00
Olivier Goffart 6a2f7aa3ae QVariantIsNull: remove the non-C++11 implementation
decltype is required now

Change-Id: I69173127bd35f1d29945c8cfa47e1fbf1479c14d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-11-16 19:08:01 +00:00
Olivier Goffart ae35b2dc62 foreach: remove implementations not using decltype
decltype is mandatory now so we can remove the implementations
of Q_FOREACH that are not using decltype

Change-Id: If42a7fb078230ee7bdb55a9442125d7af70913e6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-16 19:07:58 +00:00
Olivier Goffart 1e30be700a qobject.h: remove hack that simulated decltype
In order to know the type of the arguments of a functor with compilers
not having decltype, it was simulated with an intermediary function.

Now that decltype is mandatory, we can remove this hack

Change-Id: I7eb283943abeeb4ef1c62358da89b0ede70b3ef5
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-16 19:07:56 +00:00
Nico Vertriest d0f57439d0 Doc: Added info about sorting in QItemSelectionModel::selectedIndexes
Task-number: QTBUG-40726
Change-Id: I450f9735fbbdc6574e8a14ea0076a28ee65077de
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-11-16 15:26:11 +00:00
Nico Vertriest 50f91545a3 Doc: removed 2 invalid external links in external resources.
Link to Using a Designer UI File

Task-number: QTBUG-49251
Change-Id: I9d2e5ad746ce5c3933f28b8159e381dcdb8e643a
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-11-16 15:25:56 +00:00
Konstantin Ritt e593e5aa67 QChar: Simplify case convertion code with template magic
Same as in QString, though simpler a bit due to fixed-length sequence.

Change-Id: Idd6670a7b6415f5d515987c30931d16b73dd280e
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-16 14:34:13 +00:00
Konstantin Ritt c267646867 Move CasexTraits from qstring.cpp to qunicodetables_p.h
and implement TitlecaseTraits as well,
to be re-used in the following commit.

Change-Id: I5c0bff42fe3b9bc9c2454cc16916cc2be87f604f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-16 14:34:04 +00:00
Timur Pocheptsov d29fbbd6eb Make CoreFoundation event dispatcher available on OS X also
CoreFoundation event dispatcher on OS X can help users working with
QtBluetooth from either non-GUI threads or non-GUI applications.

Change-Id: Ie0793e7f49074a8ea9059251cd7c9bdf7953c206
Task-number: QTBUG-48758
Task-number: QTBUG-46625
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-11-13 21:38:31 +00:00
Konstantin Ritt 3a3e2193d7 QUnicodeTables generator: Minor clean-up & stricter checks
Use static_cast instead of C-style cast;
ushort -> unsigned short;
Avoid a lvalue in qGetProp();
Minor styling fixes.

Change-Id: Ic6412e28ac9316a587d32d0e674d21f672967fd6
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-13 20:42:20 +00:00
Nico Vertriest 037b05ac76 Doc: corrected error in doc static plugins
Task-number: QTBUG-43160
Change-Id: I94f92318cec095391050b2af90980010bd1066b9
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-11-13 20:33:44 +00:00
Olivier Goffart 45be405408 Document performance of QMutex
Change-Id: I4de2fd5ba717975b5de98ffe7ca6348afbed1b2f
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-11-13 15:05:08 +00:00
Olivier Goffart 1de3fe0f9b Docs: Add a note clarifying that Q_MOVABLE_TYPE is not about move semantics
Change-Id: Ib1fb9ac00c0437ed2312c46e3e97d7ece05ba8e8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-13 15:05:06 +00:00
Orgad Shaneh bee361209f JSON: Fix MSVC2013 warnings
json_p.h(283) : warning C4800: 'uint64_t' : forcing value to bool 'true' or 'false' (performance warning)
json_p.h(546) : warning C4800: 'uint32_t' : forcing value to bool 'true' or 'false' (performance warning)
qjsonvalue.cpp(176) : warning C4244: '=' : conversion from 'int64_t' to 'double', possible loss of data
qjsonvalue.cpp(518) : warning C4244: 'return' : conversion from 'const double' to 'int', possible loss of data

Change-Id: I2a24f90f7615aeb47f747ecbe3b580f23773ebda
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-13 03:56:20 +00:00
Kai Koehne 351853e04d Do not overwrite detailed error message if process fails to launch
On Unix we get a detailed error message when a process fails to start,
but later on we overwrite it with a generic "Process fails to start".
Fix this by keeping the original error message (if one is available).

This fixes a regression introduced in commit 5147f73ac3.

Task-number: QTBUG-49286
Change-Id: Idd0f0fed9773d39f2947fc3e532b51e670952caf
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-12 14:17:40 +00:00
Edward Welbourne 4890c75d0d Prefer "daylight-saving time" and "DST" over "daylight time".
The first two are the "proper" terms; the last is a colloquialism.
Also amended "daylight savings" (which summons to mind a hybrid of
"daylight robbery" and "bargain-basket savings").
Improved related wording in many of the places amended.

Task-number: QTBUG-49308
Change-Id: I726f18a344b2fe37f765a14684d1447c8b7ab00c
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-11-12 14:13:35 +00:00
Edward Welbourne 708424c305 Eliminate duplicate "between"
Change-Id: I548e2df4cb94e41bb5247fc6977a3c3f67bf0bda
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-11-12 14:13:26 +00:00
Nico Vertriest 51b19c0d86 Doc: Added more details to QIODevice::readAll()
Task-number: QTBUG-43666
Change-Id: Ibe56a72f9fa7a31a320aceda645fde9b08645271
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-11-09 09:33:59 +00:00
Edward Welbourne e9b051f0ca Fix false claim in comment.
Given that % and / have a defined consistency relation, neither is any
better defined for -ve operands than the other.  The code is in fact
avoiding using -ve operands, not preferring "well-defined" / over
(allegedly less so) %, as it claimed.

Change-Id: I666690872f078c0f21f9af7a227c2bbf291704e8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-06 08:49:45 +00:00
Thiago Macieira 110a8c339f Remove qatomic_mips.h: the 3-operand testAndSet is broken
The "previous" value is always 1 when the compare-and-swap succeeded,
instead of the previous value.

Instead of fixing this, let's just remove this file a bit earlier than
the rest. All of them will be removed in Qt 5.7 anyway, so let's leave
MIPS atomics to the compiler.

Task-number: QTBUG-49168
Change-Id: Idba8c29717f34c70a58fffff14133304595165f5
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
2015-11-05 16:54:16 +00:00
Marc Mutz 491ccf3b85 Mark qt_from_latin1() as nothrow
It's used from a different TU, too, so we can't rely on the
compiler to inspect it to draw this conclusion itself.

This function has technically not a wide contract, because
the output buffer needs to be large enough to hold the result.
However, this precondition cannot be checked from within the
function, therefore no assertion can ever be added and the
nothrow marker becomes acceptable (even desireable).

Change-Id: I2dc6c4f3d9d8147c6483865c5c4bbc8e9af291b7
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-05 14:38:05 +00:00
Marc Mutz 4d76352ae0 QUtf8: remove an unused variable
'need' was never anything but zero, so drop it.

Change-Id: I4b52107afc7ed47c19ae1942cef0c92cbd0e1a36
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-11-05 13:57:40 +00:00
Jędrzej Nowacki d8f41bdc2e Merge "Merge remote-tracking branch 'origin/5.6' into dev" into refs/staging/dev 2015-11-05 08:27:56 +00:00
Konstantin Ritt 56c1755c3d Re-generate Unicode data tables
Change-Id: I53fb254709764e56e9889531655fe6046f15b251
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-05 08:25:06 +00:00
Konstantin Ritt 0e1f3aab11 Update Unicode data & algorithms up to v8.0
* Georgian lari currency symbol
* A large collection of CJK unified ideographs
* Emoji symbols and symbol modifiers
* Letters to support the Ik language in Uganda, Kulango in
  the Côte d’Ivoire, and other languages of Africa
* A set of lowercase Cherokee syllables, forming case pairs
  with the existing Cherokee characters
* The Ahom script for support of the Tai Ahom language in India
* Arabic letters to support Arwi—the Tamil language written in the Arabic script

For more details, see http://www.unicode.org/versions/Unicode8.0.0/

[ChangeLog][QtCore] Unicode data updated to v.8.0

Change-Id: If255f95c9c45655b721369a116299da3cabbba0a
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-05 08:25:02 +00:00
Jake Petroules f7f55c0b29 Add Objective-C specific type converters to QUuid.
This patch adds the Objective-C NSUUID/CFUUIDRef converters to QUuid

[ChangeLog][QtCore][Objective-C] Added NSUUID/CFUUIDRef converters for
QUuid

Change-Id: Ifebf6fd5ce9f46dcdc06f221e189cb1fd9079e18
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
2015-11-04 21:23:06 +00:00
Liang Qi 4159ee8405 Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
	config.tests/unix/ptrsize.test
	configure
	src/corelib/global/qnamespace.h
	src/network/socket/qabstractsocket.cpp
	tests/auto/other/networkselftest/networkselftest.pro

Change-Id: Ic78abb4a34f9068567cea876861d4220f5a07672
2015-11-04 20:18:14 +01:00
Ulf Hermann 59dbf1786f QLocale: Return overflowing numbers from asciiToDouble()
The behavior from before libdouble-conversion is that in case of an
overflow the OK flag is set to false, but the returned number is still
infinity, rather than 0. Also, the number of processed characters is
always set to the number of characters actually processed, unless
garbage is found.

There is an important distinction between an overflow and garbage. The
client code may accept overflows and infinity may be a valid result.
Garbage is most certainly not acceptable. Having an infinity/false result
in addition to 0/false allows the client code to distinguish those.

One application where this is useful is parsing JavaScript.

Change-Id: I4b8581568144b44fca3353c4bd9685c702762af9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-04 17:32:12 +00:00
Marc Mutz 01284f3886 [docs] QVector: don't scare people away from reserve()
reserve() is a good thing, and key to getting top performance out
of any data structure that provides them, yet the existing docs
scared people away by claiming that "you will rarely ever need to
call this function".

Change-Id: I88e30d96960443c0ed759a79c6fa9ee6af0d1e07
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
2015-11-04 14:17:33 +00:00
Nico Vertriest e22e8cee75 Doc: fixed broken links
Task-number: QTBUG-43810
Change-Id: If6ac30a0407731b31e8aaad28d33e2bb49dee6f3
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-11-04 13:38:45 +00:00
Samuel Nevala b0e89845df winrt: Don't wait for runOnXamlThread to finish for timers.
Fixes possible deadlock that occurs when synchronous WS event handling
(introduced in ee767c8) is used across threads.

Task-Id: QTBUG-49051
Change-Id: Iae973c2d4f4619b9eeb6e9393330b166ec608d27
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-11-04 13:34:18 +00:00
Thiago Macieira 439a713643 Workaround part 2: don't use the version tagging symbols on Android
Commit d020e0781c added a workaround to
the QtCore build due to a qmake bug in handling the extra target on a
Windows host. The workaround removed the tagging symbols from QtCore.

This commit removes the using of those symbols from everywhere else.

Task-number: QTBUG-49208
Change-Id: Idba8c29717f34c70a58fffff14133399f9f0b7f2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-11-04 13:08:02 +00:00
Liang Qi e304dfb2d3 Merge "Merge remote-tracking branch 'origin/5.5' into 5.6" into refs/staging/5.6 2015-11-04 13:06:17 +00:00
Edward Welbourne cf0843c5f5 Make variable const as it should be
Change-Id: If5782473eceaa38de75b25d1da247dea9fe135da
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-11-04 12:10:18 +00:00
Edward Welbourne 0ea6ed9fc4 Use memset to clear struct tm before filling fields.
This ensures any non-standard fields (e.g. glibc's tm_gmtoff) are
clear, as well as the other fields mktime overtly promises to ignore.

Change-Id: I45d69eff7b5cb37ab910bf3d4d2d1481fd93aedb
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-11-04 12:10:12 +00:00