Commit Graph

20791 Commits (432d3b696296db9131bfa3daa67285f0eaedec41)

Author SHA1 Message Date
Anton Kudryavtsev 432d3b6962 QDateTimeParser: use QStringRef more
Avoid unnecessary allocations.

Change-Id: I217ba3fe20293f5cdeeaac2dfae15f837cda51e0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-05-13 05:25:55 +00:00
Marc Mutz 7248e97669 QtConcurrent/QtOpenGL(Extensions)/QtPrintSupport/QtTestLib/QtXml: add QT_NO_FOREACH
Mark these libraries as what they are: Q_FOREACH-free,
using QT_NO_FOREACH.

Change-Id: I2a567d9fe67e15e9b6f0784525810b553dc50e1f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-05-12 21:42:10 +00:00
Marc Mutz 656e6ae9ea QtNetwork: port the last remaining Q_FOREACH loop and add QT_NO_FOREACH
Port the last remaining Q_FOREACH user in QtNetwork to
C++11 range-for and mark the library as Q_FOREACH-free,
using QT_NO_FOREACH.

Change-Id: I8977f151e3575422fc1154677e035274c018d66f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-05-12 21:42:05 +00:00
Alex Trotsenko ac2ccb1559 QHttpSocketEngine: set error on unsupported operations
Force overloads which relate to UDP or listening to fail with a
'UnsupportedSocketOperationError' error code.

Change-Id: I057c47864ee1d9c95b413edfda977dd0607844cb
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-05-12 17:21:53 +00:00
Giuseppe D'Angelo 4dc29bc9de QSharedPointer: move QDebug stream operators into qdebug.h
In order to avoid pulling in QDebug when including QSharedPointer.

Change-Id: I14b86d1f100ed44a68258c91bbda394b655bac83
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-05-12 16:41:32 +00:00
Marc Mutz 99ca471014 winmain: port the last remaining Q_FOREACH loop and add QT_NO_FOREACH
Port the last remaining Q_FOREACH (over a QVarLengthArray,
no less) in winmain to C++11 range-for and mark the library
as Q_FOREACH-free, using QT_NO_FOREACH.

Change-Id: Ic561080f7dd61d1d853ceb9e211c9b8a23bf05a5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-05-12 11:21:01 +00:00
Eskil Abrahamsen Blomfeldt 78eeb6b066 QFont::exactMatch() should return false for aliases
This is a partial revert of 992f233c in Qt 4 repo. The rest of the
change cannot be reverted, since it added public API, but that
API might be useful anyway.

The patch was wrong, basically. QFont::exactMatch() should not claim
that you can get an exact match for a typeface alias. It also introduced
some weird inconsistencies: For instance, if the first font the alias
resolved to in FontConfig did not exist, then exactMatch() would return
false, even if it then resolved to the next one which existed. This
caused a test failure on OpenSuse, where the preferred font for "sans"
is Arial, which doesn't exist, so Roboto will be used instead.

[ChangeLog][QtGui][Important Behavior Changes] QFont::exactMatch() now
returns false when the provided typeface is an alias.

Task-number: QTBUG-46054
Change-Id: I7532d2879b492544620aa0d1d87dd493a4923af9
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-05-12 10:13:42 +00:00
Thiago Macieira 9ef59b586d QMutex: make FUTEX_PRIVATE_FLAG a mandatory feature
The flag was introduced in kernel 2.6.22, but we're already depending on
features added on 2.6.23 in qcore_unix_p.h (pipe2, dup3, O_CLOEXEC) and
2.6.27 in qnet_unix_p.h (accept4 and SOCK_CLOEXEC).

Change-Id: Id5480807d25e49e78b79ffff144a093c9e30cd96
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-05-11 22:22:50 +00:00
Marc Mutz e2e0dfee7c QtCore/QtDBus/QtSql: port the last remaining Q_FOREACH loop and add QT_NO_FOREACH
Port the last remaining Q_FOREACH user in QtCore to
C++11 range-for and mark QtCore, QtSql and QtDBus as
Q_FOREACH-free, using QT_NO_FOREACH.

Change-Id: Ia6f99139cb1ca4a8bbe9e445421592242e048b0a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-05-11 16:55:37 +00:00
Marc Mutz f0d7080e9e qmake/tools: port the last remaining Q_FOREACH loops and add QT_NO_FOREACH
Port the last four remaining Q_FOREACH users in qmake
and uic to C++11 range-for and mark all qtbase tools
(incl. qmake) as Q_FOREACH-free, using QT_NO_FOREACH.

Change-Id: Ief4e5877269e7a853e4cf05e58861a448e822d3d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-05-11 16:55:32 +00:00
Marc Mutz 81793b8b58 Add QT_NO_FOREACH to disable foreach and Q_FOREACH
It has been known for a long time that Q_FOREACH produces
inferior code to other looping constructs, and the use of it
in Qt library code was informally frowned upon since forever
(pun intended).

Yet, to this day, several thousand foreach/Q_FOREACH loops
have been added to Qt libraries, and while many were ported
to range-for in Qt 5.7, there are still new ones added every
day, which is a nuisance, to say the least.

This patch introduces a technical way to prevent new foreach
use to creep into Qt libraries after they have been cleaned,
by simply not defining either Q_FOREACH or foreach when the
QT_NO_FOREACH macro is defined. This way, one library at a
time can be ported away, and, once ported, is guaranteed to
actually stay ported.

Change-Id: Ie042e84d6c7d766bd16095f9bc1118a8e0ce0c7a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-05-11 16:55:22 +00:00
Mitch Curtis e64b2234e8 QImage::setPixelColor: warn about invalid colors
Task-number: QTBUG-52142
Change-Id: I9f390bd332f8edabaece75a6b36830c691ff4b9e
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2016-05-11 07:21:02 +00:00
Anton Kudryavtsev 361564dacf QDateTimeParser: adapt unquote() to make good use of QStringRef.
Avoid unnecessary allocations.

Change-Id: I9bed622c0dd7d9fe993b52d9169d1773957da4f2
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-05-11 06:44:22 +00:00
Anton Kudryavtsev c6618cb885 QDateTimeParser: de-duplicate calls and cache results
Change-Id: I0d6065fbdd19acff14072ff626585e8a12a3e073
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-05-11 06:44:11 +00:00
Laszlo Agocs 834087c324 eglfs: Fix DRM+KMS backends
The native display was simply invalid.

Task-number: QTBUG-53225
Change-Id: I682fb1d91dbea3dab971a079060d181fc313da46
Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
2016-05-10 23:24:54 +00:00
Thiago Macieira 967c91e777 Make it an #error if we failed to detect the ARM architecture version
... or if it is less than ARMv5. The last ARMv4 Qt supported was Windows
CE 7, which was dropped for Qt 5.7 alongside MSVC 2008.

Change-Id: Ifc817705441a4aab9469ffff141dcfe491464efa
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-05-10 23:11:22 +00:00
Marc Mutz df89dfee4f QEglFSKmsIntegration: use new QJsonObject::value(QLatin1String)
Allows to get rid of some QStringLiterals.

Change-Id: I546aace6876cf373b1cb67269fcc3d042dfd3aac
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-05-10 21:20:40 +00:00
Marc Mutz e54c74e3f0 QImageWriter: use new QJsonObject::value(QLatin1String)
Allows to get rid of some QStringLiterals, reducing QtGui
text size by ~200b.

Change-Id: I0f3a84c1c8ee6771d8e1f2c6284d314b3fc0c28a
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-05-10 21:19:09 +00:00
Marc Mutz f5aa65349c QFactoryLoader: use new QJsonObject::value(QLatin1String)
Allows to get rid of some QStringLiterals, reducing QtCore
text size by ~800b.

Change-Id: I8f7e57927163eaaf628e42020f83f053faea6bf8
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-05-10 21:18:52 +00:00
Marc Mutz a5159cc50a QJsonObject: add some overloads taking QLatin1String
QXmlStreamReader also has QLatin1String overloads, which
greatly benefits parsers, since the vast majority of keys
in both JSON and XML are US-ASCII. This patch adds such an
overload to the JSON parser.

The value() function is all typical parsers need, so even
though many more QJsonObject functions taking QString could
benefit from the same treatment, value() is the single most
important one for read-only JSON access.

Add some more overloads, too, for functions that don't need
more internal scaffolding than value(). Requires adding a
dummy op[](QL1S) (forwarding to the QString overload) so as
not to make

  QJsonObject json;
  json[QLatin1String("key")]; // mutable

ambiguous between const op[](QL1S) and mutable op[](QString).

[ChangeLog][QtCore][QJsonObject] Added value(), op[] const,
find(), constFind(), contains() overloads taking QLatin1String.

Change-Id: I00883028956ad949ba5ba2b18dd8a6a25ad5085b
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-05-10 21:18:46 +00:00
Simon Hausmann 5e51b15066 Prospective MSVC 2013 build fix
MSVC 2013 does not like QStringLiteral between brackets.

Change-Id: Ic42f80b7a3abbb48df3d0e222bd5c868045a0ded
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-05-10 13:55:29 +00:00
Maurice Kalinowski 4c06592ad8 Fix build on WinRT
a63ca3fa10 caused a build breakage
for WinRT as GetModuleHandleEx does not exist on that platform.

Change-Id: I143d9cad5f32d98a4d86292dfa73f94a4acdf305
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-05-10 13:55:26 +00:00
Anton Kudryavtsev 2f595a0178 QUrl: enable (N)RVO for gcc
Change-Id: Ie0fba08ce55a3c60a5b1565986c4280f065c7b2f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-05-09 18:58:08 +00:00
Anton Kudryavtsev 7abb90a70a QDateTimeParser: proper construction of QString
... with known size and known char by corresponding ctor.

Don't use fill() for this case.

Change-Id: I475a0655132ecbb40b1eac919309597b2560e71b
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-05-09 18:57:57 +00:00
Richard Moe Gustavsen c906d7abb8 QWidgetTextControl: ensure we listen for changes to cursorFlashTimeChanged
Change 3cdc02d actually "reverted" the behavior of listening for
cursorFlashTimeChanged. The reason is that we sat "blinkingEnabled"
directly to true in the constructor instead of calling
"setCursorBlinking", which was responsible for setting up the
connection.

And as it turns out, after 3cdc02d, nobody is actually calling
"setBlinkingCursorEnabled" anymore. From the widgets
point of view, it should always blink when visible
(unless QPA sets cursorFlashTime to zero). So we can remove the whole
function, and set up the connection in "setVisible" instead.

Change-Id: I577a5fbbbd9c56331ac7f8bb38567a684ca8c1df
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2016-05-09 11:38:44 +00:00
Miikka Heikkinen f643f6504b Fix ANGLE glGetUniform*v functions to work properly with arrays
glGetUniform*v functions are supposed to return just a single
array element, so returning the whole array is always incorrect.

Task-number: QTBUG-53072
Change-Id: I22f05d420082d4d9de06d975b3d0f5e64d3e0c41
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-05-09 11:15:07 +00:00
Jędrzej Nowacki 45655cbe8d Be more specific what is in Core and what is not
!isComplex is quite good heuristic, but we know for sure which types
should be included.

Change-Id: I609d021b8a668e6c1945ed2b11d69f5a82b5e2bf
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-05-09 08:48:19 +00:00
Marc Mutz 4a4b377cd0 QJsonValue: don't create a temporary QString on every toString() invocation
The vast majority of users call toString() without the optional
defaultValue. So do it like the toArray() and toObject() methods
and split toString() into two overloads, so the common case no
longer needs to pass a temporaray QString.

Saves ~1.4 and ~1KiB in QtCore and QtGui text size, resp., on
optimized GCC 6.0 Linux AMD64 builds, even though we added a new
function to QtCore, too.

Change-Id: Ibe02397ca49ce11fdb58f5c5fc69e909bf94c1c6
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-05-09 08:10:13 +00:00
Thiago Macieira 0b1b06ffc0 Add a QMutex::isRecursive() const noexcept
This is source- and binary-compatible, including the marking of the
existing function as noexcept.

[ChangeLog][QtCore][QMutex] Made the isRecursive() method be a const
function so that it can be called in const QMutex objects too.

Change-Id: Ifea6e497f11a461db432ffff1448bead97c08f92
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-05-09 07:48:30 +00:00
Thiago Macieira 75d65600f9 Work around ICC's bug in making std::atomic a literal type
ICC 15.x and 16.0 (beta, at least) are missing the "constexpr" and
"noexcept" keywords in the definition of the std::atomic
constructors. The lack of constexpr makes std::atomic a non-literal
type, which in turn makes QBasicAtomicInteger's constructor (which is
constexpr) fail to compile.

Reported as Intel issue 6000117277.

Change-Id: I4a88bcca48bf0ce51557d809ef32a4545edcafee
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-05-08 18:10:36 +00:00
Thiago Macieira 29efec2d8c Mark QThread::currentThreadId() as a pure function
It always returns the same information for each thread it is called
in. But since it's different per thread, we don't think it's
const. pthread_self() on Linux is marked const, though we think it
really ought to be pure. On other OSes, the annotation isn't present,
but the we can assume function is so.

Change-Id: Ifea6e497f11a461db432ffff1448c2b37d94d5f3
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-05-08 06:51:27 +00:00
Thiago Macieira a63ca3fa10 Implement QLibrary::PreventUnloadHint for Windows
It's interesting that the HMODULE/HINSTANCE pointer points to something
in the actual module that got loaded, so we can use its value as
"address of something in the module" for GetModuleHandleEx. The "PIN"
flag tells the Windows DLL loader to never unload.

Change-Id: Ifea6e497f11a461db432ffff1449a2169eb6293e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-05-08 06:51:24 +00:00
Thiago Macieira 04ca11e6f9 Remove includes to qdatetime_p.h that aren't necessary
Since I'm changing QDateTime's privates, it's easier to know what may be
depending on it or not.

Change-Id: Id5480807d25e49e78b79ffff144a53018d057e19
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-05-08 06:51:22 +00:00
Thiago Macieira 0b2bc18efd Mark QTimeZone constructor nothrow.
Change-Id: Id5480807d25e49e78b79ffff144a9eead3fc9597
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-05-08 06:51:18 +00:00
Liang Qi 857912b605 Merge "Merge remote-tracking branch 'origin/5.6' into 5.7" into refs/staging/5.7 2016-05-06 22:20:08 +00:00
Tim Blechmann 5aeafcea46 compile fix for static qt with dynamic opengl
Change-Id: If78f6afeeeda5ea46a2ed17c6938fa25be9802fe
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-05-06 19:39:40 +00:00
Liang Qi dbef41f43e Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	examples/qtestlib/tutorial5/containers.cpp
	examples/widgets/tools/tools.pro
	src/corelib/io/qprocess.cpp
	src/corelib/io/qprocess_unix.cpp
	src/corelib/io/qprocess_win.cpp
	src/network/kernel/qdnslookup_unix.cpp
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/testlib/qtestcase.cpp
	tools/configure/configureapp.cpp

Change-Id: I838ae7f082535a67a4a53aa13a21ba5580758be8
2016-05-06 15:36:44 +02:00
Alex Trotsenko f57d8f1341 QFileSystemMetaData: do not treat block devices as sequential
This patch allows handling of special block devices in random-access
mode that restores a Qt4 behavior.

Can not be tested because requires root privileges in the system.

Task-number: QTBUG-51666
Change-Id: Iaa56355f1be343c0d05b292e3c7d2e1c88724529
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Andrius Štikonas <andrius@stikonas.eu>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2016-05-04 17:28:04 +00:00
Alex Trotsenko 4ef269963b Avoid use of v4-mapped QHostAddress::AnyIPv4 local address on Windows
Some Windows kernels return a v4-mapped QHostAddress::AnyIPv4 as a
local address of the socket which bound on both IPv4 and IPv6
interfaces. This address does not match to any special address and
should not be used to send the data.

To allow handling of the local addresses properly, replace it with
QHostAddress::Any.

Already tested by tst_qudpsocket.

Task-number: QTBUG-52714
Change-Id: Icb7cb75f48cd7ec9b0a9dfaf861ffe0d3093e20d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-05-04 17:16:54 +00:00
Anton Kudryavtsev 691151a241 QUrlQuery: use erase and std::remove_if with QList
... instead of using erase() in a loop, with quadratic complexity.

Change-Id: I277ff2527e0a22b3d754b1d14296b9882f164c23
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-05-04 15:09:41 +00:00
Richard Moe Gustavsen a76d7094a4 iOS: Add text selection support from the platform plugin
This patch will add touch based text selection support
to Qt from the iOS plugin.

QIOSTextInputOverlay will listen to changes to the
focus object, and if IM enabled, create three different
gesture recognizers that tracks what the user is doing.

The first recogniser detects if the user does a press
and hold on the text when there is no selection. If
triggered, it will show a loupe that follows the touch
around together with the cursor.

The second recogniser will instead be active when text
is selected, and takes care of drawing a set of handles
on each side of the selection. If the user drags on any
of the handles, a loupe will show that follows the
touch/text line together with the handle.

The third recogniser detects if the user does a tap, and
depending on if there's a selection, or if the cursor didn't
move, it will show or hide the edit menu.

The handles and loupe are implemented as overlays using
Core Animation layers.

Change-Id: Idff6e40e12307a458c9c399b0487bb976fce29c8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-05-04 14:22:51 +00:00
Richard Moe Gustavsen e563273c22 iOS: set StyleHint::StartDragTime to 300
From testing on iOS, StartDragTime should be adjusted
slightly, from 500 (default in qplatformtheme.cpp) down
to 300. This will also affect how long the user needs
to press before the text selection magnifier shows
up for doing text selections.

Change-Id: I42ebfec6f0dc809b5d392412cf8f70d128ee6246
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-05-04 14:22:40 +00:00
Stephan Binner 22bcf7ba34 QSplitter: Add note about ownership transfer to addWidget() and insertWidget()
Change-Id: I971db2c25e4e667a416f58d148e18c4f11c349f1
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-05-04 12:58:11 +00:00
Elena Zaretskaya 8d45759432 Fix segfault when exiting app running under eglfs
In function QWindow::destroy() the platformWindow is destroyed
(QEglFSWindow in this case), but after that the QSurface destructor
is called (qsurface.cpp:127), where access to the opengl context is
performed (QOpenGLContext::currentContext()->doneCurrent()). Therefore
the surface pointer is deleted earlier (gbm_surface_destroy) than the
working with it (eglMakeCurrent) is finished. But the event
QPlatformSurfaceEvent, that is sent before deleting platformWindow,
isn't processed (qwindow.cpp:1665), though we can perform doneCurrent()
in the handler of QPlatformSurfaceEvent. The full description with
valgrind stacks on bugreports.

Task-number: QTBUG-52399
Change-Id: I69035dfd8ba5b5eeec243bc0edd3f571dc9525f9
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2016-05-04 10:57:47 +00:00
Elena Zaretskaya b3e9144c3a Fix FPE under EGLFS_KMS if mesa-10.2.7
If mesa-10.2.7 is installed, gbm_bo_create returns NULL
(QEglFSKmsCursor ctor, qeglfskmscursor.cpp:80), but after
that the pointer m_bo is used in function QEGlFSKmsCursor::changeCursor
without verification.

Task-number: QTBUG-52404
Change-Id: I5b1b15d751e46a5200248e7a8642f7917dedd220
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2016-05-04 10:57:30 +00:00
Eskil Abrahamsen Blomfeldt b75e10684c doc: Clarify how to remove a QTextFrame
The documentation wrongfully recommended deleting QTextFrames
directly. This would cause a crash, since the destructor didn't
update the document's layout at all. The correct way is the same
as when removing other aspects of the document.

Task-number: QTBUG-53082
Change-Id: I64f0ad08f1d063626456fa51d03611871ce6aa45
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-05-04 10:08:08 +00:00
Liang Qi 63ec10353d Revert "egl: Reshuffle headers to help less fortunate systems with X11"
This reverts commit ecf127505e.

ecf12750 breaks the build of qtwayland.

Change-Id: If8bf04f035aa47e4e867d201ec7d95b0d3e18317
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2016-05-04 09:00:34 +00:00
Marc Mutz 5eae0ce800 QScoped(Array)Pointer: canonicalize swapping
This includes:
- have nothrow member-swap
- have ADL non-member swap
- not specialize qSwap or std::swap

Also prevent QScopedPointer <-> QScopedArrayPointer swaps by overloading
swap (both member and non-member) on QScopedArrayPointer. It's not 100%
safe, but it's what we're doing elsewhere (QMulti(Map,Hash), say).

That's technically a SiC change if users expected (qualified) std::swap
to invoke QScopedPointer::swap(), but those users were doing it wrong to
begin with, and they now get a compile-error instead of silent pessimization,
because generic std::swap() doesn't work on QScopedPointer, due to lack
of copy (and thus move) semantics.

Change-Id: I3ab5c1668722a2c8ccafc16f57310ce8d4bffbd6
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-05-04 05:21:30 +00:00
Marc Mutz f3af7fce4a QtNetwork: eradicate Q_FOREACH loops [rvalues]
... by replacing them with C++11 range-for loops.

This is the simplest of the patch series: Q_FOREACH took a
copy, so we do, too. Except we don't, since we're just
catching the return value that comes out of the function
(RVO). We can't feed the rvalues into range-for, because
they are non-const and would thus detach.

Change-Id: I42c9c44d948ab1512a69d42890187bc3cf2d7e58
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-05-04 05:21:25 +00:00
Shawn Rutledge 60cd1c6775 xcb: don't compress tablet motion events
7edd10e6c added this compression feature, but it's not a good idea for
drawing-tablet applications, because smooth drawing depends on receiving
every movement of the stylus.

Also show the device ID in qt.qpa.input.devices category logging.

[ChangeLog][X11] The new X event compression feature that was added in
5.6.0 no longer applies to motion events from drawing tablets.

Task-number: QTBUG-44964
Change-Id: Icd2ca8ca77d8f80c2f39160c74208db10e382501
Reviewed-by: Gatis Paeglis <gatis.paeglis@theqtcompany.com>
2016-05-04 04:06:31 +00:00