Commit Graph

26530 Commits

Author SHA1 Message Date
Shawn Rutledge
b30ea41945 eglfs: use QGenericUnixTheme if requested
We need to have reasonable paths for loading icons and such things, just
as in any other Unix GUI environment.  However there is some concern that
it would be too much of a behavior change if there was a theme by default,
so for now it's required to set the env var: QT_QPA_PLATFORMTHEME=generic
That works because QGuiApplicationPrivate::createPlatformIntegration() reads
the env variable and passes platformThemeName to init_platform().
Step 3 in init_platform() does not find a theme plugin by that name
(because QGenericUnixTheme is statically linked via libQt5PlatformSupport.a).
Then in step 4 it iterates the given platformThemeName plus any which
were returned from QPlatformIntegration::themeNames() (which in our case
will be an empty list) and calls createPlatformTheme() with each of
those, until something is returned.  So,
QEglFSIntegration::createPlatformTheme() will be called with the
value of the QT_QPA_PLATFORMTHEME env var, and
QGenericUnixTheme::createUnixTheme() will create the generic, KDE or Gnome
theme depending on that value.

Change-Id: Id16b881819ba872830b019ab147b32fbc2156520
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2016-01-18 08:32:59 +00:00
Marc Mutz
89f9f7cbdf QFileSystemModel: replace inefficient QList<Fetching> with QVector
The type Fetching is larger than a void*, so holding it in QList
is needlessly inefficient. Worse, the code could come to depend
on the fragile property of (inefficient) QLists that references
to elements therein never are invalidated.

Fix by holding it in QVector instead.

Also optimize the append site by liberal use of std::move(). This
code would greatly benefit from emplace_back(), but we can neither
assume it's present in std::vector nor do we require the necessary
C++11 features that would allow us to implement it in QVector, yet
(uniform init and, less so, variadic templates).

Change-Id: I50da0ffd557adff57477245d0e8c1fc1fec1ebc1
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-17 13:23:15 +00:00
Marc Mutz
d569f37dfd QGraphicsView: Graph: don't allocate QHashes on the heap
... just so you can observe their absence with QHash::value()
returning nullptr.

Instead, use find() + comparison to end() to detect presence
or absence.

Simplifies quite a bit of code.

Change-Id: Ifd7921bfc8102677ea345ae37d38da31b8105426
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-17 13:23:10 +00:00
Marc Mutz
a0cee9916a QGraphicsView: Graph: remove faulty const_iterator::op=
It failed to copy 'g'.

Fix by letting the compiler generate one.

Change-Id: Ie19fdacb8f27aef821be58c0b727c802d71bfe64
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-17 13:23:06 +00:00
Marc Mutz
1ee43b9b24 QGraphicsView: Graph: don't compare pointers with op<
It's undefined behavior. Use std::less, which has
defined behavior.

Change-Id: I990d197590cf535c1cb5c055d0b6798e602446dc
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-17 13:23:01 +00:00
Marc Mutz
f48f8ba0bb QHttpThreadDelegate: use default ctor instead of QSharedPointer(0)
Code like this makes it impossible to provide a templated
QSharedPointer<T>(X*) ctor, so proactively rewrite to use
the proper default ctor, which has the same effect.

Change-Id: I2572e92b12804f873fac4927e93db83f796729f5
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-17 13:22:56 +00:00
Swen Kooij
5eec43a44f qdbuscpp2xml: Fixed wrong filename being reported in messages
This caused the filename in messages to be one of the other arguments
that were specified instead of the actual filename.

Caused by the fact that mutations are possibly made to `args` in
`parseCmdLine` and thus the amount of items in `args` does not always
match the amount of items in `argv`.

Change-Id: Ief3716dde39dfdc949a5192e7f83d93cf90130f0
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-16 22:11:27 +00:00
Marc Mutz
1a84e55b8f QtCore: replace uses of inefficient QList<QPair>s with QVectors [itemmodels]
These QPairs are larger than a void*, so holding them in QLists
is needlessly inefficient. Worse, the code could come to depend
on the fragile property of (inefficient) QLists that references
to elements therein never are invalidated.

Fix by holding them in QVector instead.

Change-Id: Ie8d8eff3448ada7aef5dfba7fc701a59821f5b54
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-15 21:49:14 +00:00
Alex Trotsenko
982656351b QAbstractSocket: remove redundant handling of recursive calls
Recursion is alredy prevented by the emittedReadyRead member.
Disabling the read notifications also occurs when:

  - a new chunk of data has arrived on an unbuffered socket;
  - the buffer size limit has been reached on a buffered socket;
  - pauseSocketNotifiers() has been called

Subsequent calls to read() or resumeSocketNotifiers() should re-enable
the notifications independently from possible nesting.

Change-Id: I4587265b8d3ed137516e08fbe92dce2f5eab508c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
2016-01-15 18:24:13 +00:00
BogDan Vatra
e666ce162b Helper function needed to run Runnables on Android UI thread easily.
Add a function to allow the users to easily run asynchronously Runnables for any thread
directly on Andoroid UI thread.

Change-Id: I631bf8a2c602e038039fec621ec01272af20a400
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2016-01-15 16:13:29 +00:00
Jani Heikkinen
1a88b2f768 Updated license headers
From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/

Updated license headers to use new LGPL header instead of LGPL21 one
(in those files which will be under LGPL v3)

Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-01-15 12:25:24 +00:00
Jani Heikkinen
71404b0be1 Add new license header templates and license files
From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/

Added new header templates and corresponding license files. Unnecessary
ones will be removed later when license header change is done to all
Qt modules

Change-Id: I8c482d81e40c03f0c6395e437f55527617aa6b58
Reviewed-by: Tuukka Turunen <tuukka.turunen@theqtcompany.com>
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-01-14 20:43:46 +00:00
Anton Kudryavtsev
f1b796e3ba QHttpNetworkRequestPrivate: perform init by init-list in ctor
Change-Id: I2a8ced0eff726911daa71eb11e135f69612a9090
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-01-14 12:49:49 +00:00
Marc Mutz
ed45af5f3c QXcbXSettings: don't construct a QByteArray just to append it
... use QByteArray::append(char*,int) instead.

Also cache the return value of the out-of-line function
xcb_get_property_value_length().

Saves ~120b in text size, and a heap allocation.

Change-Id: I4d1deafdcd3345f2b7dfbf8c45702cfee733a269
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-14 12:48:16 +00:00
Marc Mutz
a836b4735c QXcbXSettings: replace a QLinkedList with a std::vector
Required to change an erase() loop into std::remove_if to
avoid running into quadratic behavior.

While at it, made QXcbXSettingsCallback a proper struct,
used aggregate initialization, and ported another loop to
C++11 range-for.

Saves ~0.5KiB in text size on optimized GCC 5.3 Linux AMD64
builds, and a lot of heap allocations.

Change-Id: I228bb853519ed2590375dc511e527f47bb8daa34
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-14 12:48:10 +00:00
Anton Kudryavtsev
fb1863e64a QPathSegments: set pathId to zero in ctor
Change-Id: Iaa4349914fbeca9c64863addb9892412e1bad65b
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2016-01-14 05:25:20 +00:00
Alex Trotsenko
184d66caa5 QDataStream: handle incomplete reads from QIODevice
This adds a way to resume reading from a stream after a ReadPastEnd error.
This is done by introducing a stream read transaction mechanism that keeps
read data in an internal buffer and rolls it back on failure.

[ChangeLog][QtCore] Added QDataStream startTransaction(),
commitTransaction(), rollbackTransaction(), abortTransaction()
functions to support read transactions.

Task-number: QTBUG-44418
Change-Id: Ibf946e1939a5573c4182fea7e26608947218c2d9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-01-13 16:31:33 +00:00
Oswald Buddenhagen
ca6f11dcf2 write all properties to qt.conf when -external-hostbindir is used
the presence of a [Paths] section causes QLibraryInfo to derive all
property values according to the Qt default directory layout,
disregarding the compiled-in paths from configure. consequently, we need
to write them all to qt.conf as well.

Change-Id: I3558e9aef1fce956812ea91e216f53bf7934c285
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-01-13 16:19:43 +00:00
Oswald Buddenhagen
c8ae9bf58d write [Paths] to qt.conf only if -external-hostbindir is used
there is no point in overriding the built-in defaults with the same
values.

Change-Id: I24f66b86f751f7044625b5256f3d979ece782cf7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-01-13 16:19:39 +00:00
Erik Verbruggen
6ffa3696e0 ARMv8: Update qHash for strings to use the CRC32 instruction
Same as the SSE4.2 implementation: use the (optional) ARMv8 crc32[bhwd]
instruction to calculate hashes for strings. For Aarch64, support for
the instruction is dynamically detected. For a 32bit ARM binary, dynamic
detection is only done when the compiler is explicitly told to target
ARMv8. When telling the compiler to target an other/older version, the
crc32 code is not compiled.

Change-Id: I51ebc1a4545dede4988247e75043f29a64c2a6c5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-13 09:05:06 +00:00
Erik Verbruggen
4417458d62 ARMv8: add crc32 feature detection.
Change-Id: I3cfac90dfa137d0bf3d124d87262eb2dbb56459c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-13 09:05:01 +00:00
Simon Hausmann
9a969182cf Merge "Merge remote-tracking branch 'origin/5.6' into dev" into refs/staging/dev 2016-01-13 07:19:44 +00:00
Dan Cape
f7020a31c0 Add ability to specify precision of float/double currency strings
Added a new overload function that allows the developer to
specify the desired precision. Until 6.0, it will require
the symbol and precision to be passed to it. Once Qt is at
version 6.0, it will replace the overload function that
requires a value and optionally a symbol.

[ChangeLog][QtCore][QLocale] Added an overload for toCurrencyString()
that allows the decimal precision to be specified.

Change-Id: I1fb7dde3583f46de2ed20ec2a7abaeca23a903ef
Task-number: QTBUG-46595
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-13 06:35:14 +00:00
Marc Mutz
68e915c623 QStaticTextItem: use smart pointer members
... so we can drop the user-defined copy special member
functions and the destructor.

As a side-effect, enables the move special member functions,
which were previously inhibited by the presence of the
now-removed functions, and makes the copy constructor safe
for self-assignment.

Change-Id: I430f83a6a08b1f5ee94b52f52e4d80fa1139d1c1
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-12 22:01:28 +00:00
Alex Trotsenko
771220ebc8 Allow to use QRingBuffer in containers
Make a private member mutable to enable default assignment operator.

Change-Id: I1216875c186ed800e07c6b41a5bae18c3b71b2fa
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-01-12 18:03:24 +00:00
Alex Trotsenko
7d257aab81 QIODevice: handle incomplete reads
Introduce a transaction mechanism that gives the ability to read the
data atomically. Current implementation supports transactions for both
types of devices. For sequential devices, it records the whole input
stream during transaction. For random-access devices, device position
is saved when transaction starts. If an error occurs, the application
may be able to recover the input stream by rolling back to the start
point.

Also, QIODevice::peek() was rewritten to make use of transactions
internally. The replacement of QIODevicePrivateLinearBuffer by
QRingBuffer is closely entangled with that, which makes it unfeasible
to do separately.

Bump the TypeInformationVersion field in qtHookData, to notify the
Qt Creator developers that the offset of QFilePrivate::fileName was
changed and dumpers should be adapted.

[ChangeLog][QtCore] Added QIODevice's startTransaction(),
commitTransaction(), rollbackTransaction(), isTransactionStarted()
functions to support the read transactions.

Task-number: QTBUG-44418
Change-Id: I3564b343ebeeaaf7c48a1dcdb7ef0a7ffec550f2
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-01-12 18:00:58 +00:00
Anton Kudryavtsev
98cea2b6c4 qtcore_eval: fix dead code after return statement
Change-Id: Ic4be53d64e08a60149e3a4d9a2ac10c5d45b4f34
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-01-12 17:11:56 +00:00
Anton Kudryavtsev
6c91ed244e QFileSystemEngine: fix duplicate flag in OR expression
Change-Id: Ib4df3ca1cff2ff2cd09515b94e63741a32b2580b
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-01-12 17:11:36 +00:00
Simon Hausmann
6b8c0a5058 Merge remote-tracking branch 'origin/5.6' into dev
Change-Id: I5839bded07e23af65ced9491c4f50242f964dd31
2016-01-12 11:07:56 +01:00
Edward Welbourne
6be65702f8 Minimal fix for network-manager problem on plugin unload.
This fixes the problem as long as we have C++ 11's semantics for
in-function statics.  The Q_GLOBAL_STATIC_WITH_ARGS() is a non-trivial
wrapper whose destructor gets unloaded with the plugin, leading to a
crash-on-exit if the global it wraps outlives the plugin.  The plain
(in-function) static manages to avoid this by avoiding the wrapper.
As the static was only needed in one place, this proves a sufficient
solution to the plugin-unload problem *in this case*.

Task-number: QTBUG-45891
Change-Id: I599fbee0b55ece4dceb4bf7202db374b507f5388
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-12 09:55:29 +00:00
Anton Kudryavtsev
5fecbfb2c8 Moc: fix duplicate condition in AND expression
Change-Id: I0c0e69aecdb7a15228d44688116a88b6afb44a50
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-01-12 09:52:43 +00:00
Alex Trotsenko
bb01a8c0a4 Add debug message on writing to an unbuffered TCP socket
The same message is already printed on UDP and buffered TCP.

Change-Id: I533baf97fe7e1359a38db3c3eb31d0463fe158e5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-12 06:39:08 +00:00
Alex Trotsenko
962a1fe892 QAbstractSocket::writeData(): remove dead code
The code was checking the write buffer in a branch for unbuffered sockets.

Change-Id: I4dc722e7f182562332c3d167e6ebbab7f53f51e7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-12 06:37:55 +00:00
Marc Mutz
13337c505d QTranslator: enable NRVO in find_translation() for poor compilers
... such as GCC.

truncate(0) was chosen because it is already used throughout
the function. Using clear(), say, which is inline, produces
slightly more code.

As is, saves 160b in text size on optimized GCC 4.9 Linux
AMD64 builds.

Change-Id: I415d09ad2b4547f1d69f78d85e2aa1c1f9a17ed3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-01-12 06:16:20 +00:00
Marc Mutz
066caebd8a QTranslator: optimize string handling in find_transformation
- Don't repeatedly truncate a (shared) QString, truncate a QStringRef
  instead, preventing a detach.

Change-Id: I1a9cf7fc5bc9ea06279f7e2548f2bd144b8780a3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-01-12 06:16:11 +00:00
Marc Mutz
6926e0d484 QtCore: eradicate all Q_FOREACH loops [kernel]
Saves just 168b in text size on optimized GCC 4.9 Linux
AMD64 builds, but most for loops are in non-Linux code.

Change-Id: I4f20a65c2e4953011308ff831c9e8fa37a25274b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-12 06:15:59 +00:00
Marc Mutz
6b9c4480bc Mark QLocale as shared
It was already movable, so it's BC. Only needed to add
nothrow member-swap and nothrow move assignment.

Change-Id: Iefedb877078da8ee075eb67185eef221143ddec1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-12 06:14:56 +00:00
Marc Mutz
c5e4417d6d QColor: fix misleading code in op==
For HSL colors, the (heavily over-parenthesized) code compared hslHue
values mod 36000, _and also_ for equality. Of course, the second
comparison is dead code.

This was a cut'n'paste error from the non-HSL comparison.

So, remove it. And also some of the over-parenthesization.

There are no tests for operator==, and the HSL color comparison is
completely opaque for me, so I'm not going to write any for this
trivial change.

Change-Id: I74572273730cb5cc9f427c524c268ba3f90304c1
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-12 06:14:48 +00:00
Marc Mutz
0ea39eb842 QtDBus: eradicate all Q_FOREACH loops
Saves a bit more than 0.5KiB in text size on optimized
GCC 4.9 Linux AMD64 builds.

Change-Id: I3b7e4751c4799c3e2c9f8f23b769e1659d863579
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-12 06:14:43 +00:00
Marc Mutz
a7d631e44b QDBusConnectionPrivate::ObjectTreeNode: remove pointless empty dtor
It just prevents the compiler from synthesizing move
special member functions, something that is very much
desired, seeing as there's a QVector member.

Change-Id: I4daabb380cd73dcacf3f514827b84562767a7a20
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-12 06:14:38 +00:00
Anton Kudryavtsev
66d94ea30b QProcessPrivate: fix double init of exitCode in ctor
Change-Id: I934cb9d40fa0c0c06e8552f522d58c5326754f37
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-12 05:17:17 +00:00
Anton Kudryavtsev
29ca117ad6 QSize: use qSwap in transpose()
... because that's what it does.

Change-Id: Ia3d4eefe2e675e4b2c2a4f01b8339ba69a40a5e9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-01-12 05:17:12 +00:00
Anton Kudryavtsev
f59b12c629 MakefileGenerator: use erase and std::remove_if with QVector
... instead of using erase in a loop, with quadratic complexity.

Change-Id: I4ac03ac0e893fc5dbb5e45131fcbfe82f1564bee
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-01-12 05:16:48 +00:00
Marc Mutz
5034d41630 QTranslator: don't repeatedly re-create a QString from a QLatin1String
... each time around the loops. Cache it.

Also use QStringLiteral, since the string will never be
modified.

Also saves 96b in text size on optimized GCC 4.9 Linux
AMD64 builds.

Change-Id: I0269586235da18f3073a553739561ea7db6356e8
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-11 18:54:32 +00:00
Marc Mutz
c311815592 QTranslator: re-use 'realname' capacity in find_translation()
For almost the whole of its life time, 'realname' has the same
prefix, but the old code used the same string-builder expression
to construct it over and over again. If QStringBuilder would
re-use the capacity of the LHS object, that would boil down to
just a bit more copying of characters than necessary. But
assigning a QStringBuilder expression to a QString works by
implicit conversion of the QStringBuilder expression to a
QString, followed by move-assigning the new QString into the
old.

The new code keeps the common prefix around, resetting
'realname' to that prefix with truncate, only appending the
varying suffixes. In this way, one memory allocation per
assignment is saved (ignoring a potentially required capacity
increase in one of the appends here), and also some out-of-line
QString dtor calls, since op+=(QString&, QStringBuilder...)
doesn't create a temporary QString.

Also saves ~1KiB in text size on optimized GCC 4.9 Linux AMD64
builds.

Change-Id: I0872a69c9111d7218567f06f8fefb010f2430532
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-11 18:37:53 +00:00
Richard Moe Gustavsen
ca7f1d2197 iOS: fix crash on iOS 8 due to unsupported selector
It turns out that f558bde was not enough to stop a crash when
trying to access forceTouchCapability of traitCollection. The
reason is that traitCollection is available on UIScreen starting
from iOS 8, while forceTouchCapability is available on
UITraitCollection starting from iOS 9. So only checking the former
will cause a crash when running on iOS 8.

Change-Id: I44f9fb785349694004fbf2f48fe3b85bb01d9a5a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-01-11 18:30:42 +00:00
David Faure
e8479592c5 Doc: mention that Qt::AA_X11InitThreads isn't used anymore
Whether or not to call XInitThreads() doesn't apply since Qt-5.0's switch to XCB.

Change-Id: I5f1e5e664a251c98af6357c87fc9a6bb03a46ce3
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2016-01-11 17:28:52 +00:00
David Faure
9002f7f47a Fix documentation for ReuseAddressHint on Unix.
The code says (for Q_OS_UNIX)
if ((mode & QAbstractSocket::ShareAddress) || (mode & QAbstractSocket::ReuseAddressHint))
    socketEngine->setOption(QAbstractSocketEngine::AddressReusable, 1);
so clearly ReuseAddressHint does the same as ShareAddress, which is: setting SO_REUSEADDR.

Change-Id: Ic2ab4d139c3f58c3c63723fc609a9d4f71bac97a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-01-11 17:28:43 +00:00
Anton Kudryavtsev
2a2c582306 QListView: use erase and std::remove_if with QVector
... instead of using erase in a loop, with quadratic complexity.

Change-Id: I9686d117e092f5d74c6e74a462adf503a7b7ae79
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-01-11 11:40:38 +00:00
Maurice Kalinowski
0355345398 winrt: Flush the system event queue when adding/removing windows
This has only been identified by WACK for Windows 10.

QWinRTWindow::setVisible adds a Window to the screen and immediately
tries to set the native visibility. This only works when the system
events are handled immediately. While this is the case most of the time,
certification tests revealed that this is not always the case. We have
to flush before setting the element visibility.

Change-Id: Ifce4c045c185c57bc386a4e832074fb84f5d0053
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2016-01-11 10:06:46 +00:00