Commit Graph

36978 Commits

Author SHA1 Message Date
Qt Forward Merge Bot
053e7cce79 Merge remote-tracking branch 'origin/5.11' into dev
Conflicts:
	.qmake.conf
	src/corelib/doc/src/objectmodel/signalsandslots.qdoc
	src/plugins/platforms/cocoa/qcocoamenuloader.mm
	src/plugins/platforms/xcb/qxcbconnection.cpp
	src/plugins/platforms/xcb/qxcbconnection.h
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/plugins/platforms/xcb/qxcbwindow.cpp
	tests/auto/gui/image/qimage/tst_qimage.cpp

Done-with: Gatis Paeglis <gatis.paeglis@qt.io>
Change-Id: I9bd24ee9b00d4f26c8f344ce3970aa6e93935ff5
2018-08-07 17:44:51 +02:00
Andre de la Rocha
f271dd8f96 Windows QPA: Fix UIA-to-MSAA accessibility bridge
According to MS sample code, MSAA requests should be replied with
UI Automation providers to enable the use the UIA-to-MSAA bridge, in
order to support MSAA-only clients. Also changing the mapping of
QAccessible::Client from UIA_CustomControlTypeId to UIA_GroupControlTypeId,
as it seems more appropriate and avoids an incorrect mapping to a push button
type in the UIA-to-MSAA conversion.

Change-Id: I5149d250da2d1bd7b14b44ca46e856a81c9be045
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-08-06 19:34:23 +00:00
Mårten Nordheim
a420d02538 Make qcoreapplication_win compile in mingw g++ 8.2
"type qualifiers ignored on cast result type [-Werror=ignored-qualifiers]"

And preemptively fix Clang nagging about repeated type.

Change-Id: I2253b032d1867aa9976b4bdfc0f45023198f917c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-08-06 18:53:03 +00:00
Eirik Aavitsland
7dfc3ed663 Fix potential out of bounds read in qpkmhandler
Off-by-one bug in the validity test of the texture type field.

Change-Id: I46ded85a0ad93166aa886e71f0c391f27e79f64f
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
2018-08-06 12:04:08 +00:00
Tor Arne Vestbø
819cad6670 Be more explicit about the effects of swapBuffers() on the current context
Change-Id: I7ab9e4e7323d49cf19774bfd0c51f8516ecb842d
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-08-06 11:42:15 +00:00
Tor Arne Vestbø
09d21c1dec Add private helper class QMacScopedObserver
Change-Id: I993ce32c1f6a6eabdce8d5b2b52d8edb28ca2bfa
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-08-06 11:42:13 +00:00
Joni Jantti
377bc2b2ae Blacklist tst_Gestures::graphicsItemTreeGesture
This autotest fails on the new Ubuntu 18.04 platform.

Task-number: QTBUG-69648
Change-Id: I08bd892e2b6a733f3cda32091463745e8b8feed7
Reviewed-by: Simo Fält <simo.falt@qt.io>
2018-08-06 10:59:06 +00:00
Oswald Buddenhagen
a09a28879e qmake: improve the fake project
qt creator's clang code model is a bit more picky than the old one, so
we need a project that approximately works.

while we're at it, inline qmake.pri, add some missing files, and
beautify the source lists.

Change-Id: I87ca1db2ee3e55ea08e4c23f7913e882ab44fd21
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-08-06 10:25:50 +00:00
Jesus Fernandez
adea4cf012 Simplify QUrlPrivate::appendHost
Coverity-Id: 191128
Change-Id: I70f2d8b2e0063783851c1520862c2845c8908321
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Robbert Proost <robbert.proost@outlook.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-06 10:04:55 +00:00
Jesus Fernandez
d9c3dbc93a Pass parameters by const-reference
Coverity-Id: 178810
Change-Id: I996955543c32907a54bf095bf52f242dbb7d5400
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-08-06 09:17:59 +00:00
Friedemann Kleint
eacd789502 Windows QPA: Fix clang-tidy-warnings about class definitions
- Use ' = default' for trivial constructors/destructors
- Remove unneeded destructors
- replace virtual by override or add override where applicable
- Add Q_DISABLE_COPY

Change-Id: Ic7a61579dbc845769beada4fc79bb5dd310e5e52
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-08-06 09:06:23 +00:00
Jüri Valdmann
b3574edd2f QTextureFileData: Fix build with -no-opengl
Need to include <QSize> for operator<<(QDebug, const QSize &).

Change-Id: I4857e9b43918243af66cc09ff352619595c081c9
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
2018-08-06 08:45:51 +00:00
Friedemann Kleint
43af54c228 Windows QPA: Fix some clang-tidy-warnings
- Replace index-based loops by range-based for
- Change else if to if after return/break/continue or simplify
- Fix indentation
- Do not check for non-null before invoking delete on pointer
- Use isEmpty() instead size() to check for empty containers
- Remove C-style casts
- Use raw string literal
- Do not repeat type in return, use {} instead
- Reference local variables by const ref where applicable

Change-Id: I5cc4b4026a10bddb561ba1ba8ec137e0d4119f94
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-08-06 08:34:00 +00:00
Andre Hartmann
67b296e249 QLabel: Use nullptr
Also, change an old-style-cast while touching its line.

Change-Id: I7b4a38994fb7f52fb7fb02826a71ef4b3698aa34
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
2018-08-06 08:30:46 +00:00
Andre Hartmann
9514229249 QByteArray: Fix documentation for toDouble() and toInt()
The character 'g' is only a valid format when converting numbers
to strings, but not other way round.

Amends dc133765ec

Change-Id: I98d1a4d4cf0665f6e4da6861243e41cd63d7d4b5
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-08-06 08:28:30 +00:00
Andre Hartmann
5d1809be83 QString: Fix documentation for toDouble() and toFloat()
The character 'g' is only a valid format when converting numbers
to strings, but not other way round.

Change-Id: Ie772886e7a45a5067c0a3e4eaa3a6ccef8e69426
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-08-06 08:24:05 +00:00
Eirik Aavitsland
2841e2b61e Check for QImage allocation failure in qgifhandler
Since image files easily can be (or corrupt files claim to be) huge,
it is worth checking for out of memory situations.

Change-Id: I635a3ec6852288079fdec4e14cf7e776fe59e9e0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-08-06 08:19:11 +00:00
Oliver Wolff
c1f86926a1 winrt: Fix QWinRTCursor::pos
On winrt top level windows are always considered fullscreen and the
core window's bounds are considered the bounds of QScreen. Thus When
checking the mouse cursor's position the window bounds have to be taken
into consideration.

Change-Id: I39f24399bbaeade58d547abc770d4b3094174160
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2018-08-06 05:24:39 +00:00
Oliver Wolff
f51fc53844 winrt: Fix tst_QGraphicsItem::cursor
By making the test independent of fixed top level widget sizes, it can
also be run on platforms, that do not support this feature.

Task-number: QTBUG-68297
Change-Id: I6945d259801360a9819b9b631d0a7497d3d27a9a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-08-06 05:24:38 +00:00
Oliver Wolff
0870e517c2 winrt: Add mouse event logging
Change-Id: I4b2e0cd19969cf44a2de65bd0e52a32fc8e535b0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2018-08-06 05:24:37 +00:00
Oliver Wolff
e05dc08ba0 winrt: Implement QPlatformCursor::setPos
Additionally to setting the cursor position we have to make sure that
enter and leave events are triggered. As WinRT at the moment only supports
maximized/fullscreen native top level widgets, an enter or leave event has
to be triggered, every time the cursor enters or leaves the core window.
Same as is done on Windows desktop an enter event is immediately followed
by a move event even for emulated mouse events.

Change-Id: I4b9a7b07f8e24b7887619f96979a064d933788aa
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2018-08-06 05:24:35 +00:00
Alessandro Portale
01e57909d4 Add a few overrides in Qt Core
Clang-tidy says:
  warning: annotate this function with 'override' or (rarely) 'final'
  [modernize-use-override]

Change-Id: Ic2304cf35f4132ba1f55714493db93836f8b413d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-05 18:56:58 +00:00
Thiago Macieira
f8dba7ac01 tst_QSharedPointer: raise the timeout for running qmake and makespec
We had 30s and 60s only, which isn'tenough for the Qt CI.

Task-number: QTBUG-69741
Change-Id: I00e04a465fcf4fc1a462fffd154782999e84ef8b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-08-04 23:26:24 +00:00
Tor Arne Vestbø
b3da7494ba macOS: Don't make QCocoaGLContext current unless we have a drawable
Change-Id: I12ac982aa977c69af936f503369c91bac88492a9
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-08-04 19:59:38 +00:00
Tor Arne Vestbø
c5a5d270e4 macOS: Modernize and clean up QCocoaGLContext::updateSurfaceFormat()
The updateFormatFromContext function that read GL state has been
merged into updateSurfaceFormat(), we're using AppKit classes
and functions instead of Core GL, and the logic has been simplified
by using attribute/parameter helpers.

Change-Id: Iec6717f457a0b4dbc8e34c3e15fcbcc42895b23e
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-08-04 19:59:38 +00:00
Tor Arne Vestbø
80d536e9aa macOS: Add note about high-resolution workaround in QCocoaGLContext::makeCurrent
Change-Id: I0b82ef95c1a058586e8005665e1e2cab3f975833
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-08-04 19:59:37 +00:00
Tor Arne Vestbø
fa455b4c60 macOS: Simplify and clean up QCocoaGLContext constructor
Change-Id: Ie16256282784926506355012a735511b98118614
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-08-04 19:59:37 +00:00
Tor Arne Vestbø
1d42241d37 macOS: Clean up and rename QCocoaGLContext::pixelFormatForSurfaceFormat()
Change-Id: I1a439d8cec950cb23c977eedfcc1b8810c6cd1c5
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-08-04 19:59:37 +00:00
Christian Ehrlicher
85357472d0 QToolTip::mouseMoveEvent(): always call base class
QLabel::mouseMoveEvent() only called the base class implementation when
a rect was given to showText which could lead to inconsistent behavior.

Change-Id: I3e537ba5ae7c3c67715975624d1ee9f0c04fa9a7
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-08-04 19:31:37 +00:00
Christian Ehrlicher
5944c2503c QAbstractItemDelegate: only handle as json when type is QMetaType::QJsonValue
Only handle QVariants which has the type QMetaType::QJsonValue as json
values. Otherwise other types like e.g. QMetaType::Long/LongLong will
also be converted to a QJsonValue and maybe end up being displayed in
scientific notation.

Task-number: QTBUG-65082
Change-Id: I5d6458cd7e48fec262cda00b584a1a3c45404400
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-08-04 19:31:28 +00:00
Christian Ehrlicher
faff43348b QHeaderView: respect min/maxSectionSize in setDefaultSectionSize()
The min/max section size was not checked when setting the default
section size. This was an oversight when the check for min/max section
size was added to resizeSection().

[ChangeLog][QtWidgets][QHeaderView] setDefaultSectionSize() now
checks if the given value is inside min/max section size

Task-number: QTBUG-69431
Change-Id: I1b5704282927ce5a8520f52174ebf91d9840bc8a
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2018-08-04 19:31:15 +00:00
Thiago Macieira
64a560d977 QObject: do allow setProperty() to change the type of the property
[ChangeLog][QtCore][QObject] Fixed a bug in setProperty() that caused a
property change not to take effect if the old value compared equal using
QVariant's equality operator, but the values were not strictly equal.

Task-number: QTBUG-69744
Change-Id: I00e04a465fcf4fc1a462fffd1547885861a07a64
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2018-08-04 15:46:02 +00:00
Tor Arne Vestbø
f29c955483 Blacklist flaky tst_QSpinBox::stepModifierPressAndHold on OpenSUSE
Task-number: QTBUG-69492
Change-Id: Ic24bad5a6b0c085e82f95e0b418d4d57405de4ea
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-08-04 13:45:42 +00:00
Thiago Macieira
4c22350278 Remove the src/sql/README.module file
It's stale. Thanks to Olivier B. for pointing out.

Change-Id: Ie01831ddac5446fdbdeefffd15463530818cff9e
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-08-04 06:08:50 +00:00
Tor Arne Vestbø
881078d7b5 macOS: Disambiguate use of native handles in QCocoaGLContext
We only need the QVariant native handle when creating the context, so
there's no need for a getter, and we then rename the NSOpenGLContext
getter to match e.g. QCocoaScreen::nativeScreen().

Change-Id: I041e0eff39af9c8836d8ecd560ea07e92dc63e03
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-08-03 22:50:23 +00:00
Tor Arne Vestbø
fed7876e20 macOS: Remove GL defines from QCocoaGLContext
They should be available in all SDKs we build against and support.

Change-Id: I799492e0b21a877717fb3a8391bcbad0f8581628
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-08-03 22:50:23 +00:00
Tor Arne Vestbø
f09b0337d7 macOS: Don't mess with native handle for QOpenGLContext
QOpenGLContext::setNativeHandle() is documented as:

 "configuration settings, like format(), are ignored since this
  QOpenGLContext will wrap an already created native context"

We should respect this and not apply QT_MAC_OPENGL_SURFACE_ORDER.

Change-Id: Idfdf3eac0e9f9d0a86f1b23aa475c3e4f12127e2
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-08-03 22:50:23 +00:00
Tor Arne Vestbø
137e6c8277 macOS: Remove unneeded auto-release-pools in QCocoaGLContext
The makeCurrent one was not explained in the commit message that introduced
it, and doesn't make any sense, while the constructor one is no longer needed.

Change-Id: I67e2f2aaff5d8602781b27f122f415068a1f2301
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-08-03 22:50:22 +00:00
Tor Arne Vestbø
51451ea269 macOS: Add more logging to QCocoaGLContext
Change-Id: I6e93934b466f86b7607c9ad30c4c28a9c0f40fd7
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-08-03 22:50:22 +00:00
Tor Arne Vestbø
f8b17a297e macOS: Propagate [NSOpenGLContext setView:] failures
Instead of trying to mask situations where [NSOpenGLContext setView:]
will fail (such as calling it for a view that's not part of a window
yet, or part of a window that hasn't been shown), we report the error
up through the API, so that QOpenGLContext::makeCurrent() will return
false. This is documented to occur e.g. when "the surface is not exposed,
or the graphics hardware is not available due to e.g. the application
being suspended."

QGLWidget was taught how to deal with this situation in cc27a50e. Other
Qt APIs seem to handle it fine, but if regressions occur they should be
fixable though the same logic as in cc27a50e.

Change-Id: I92775fc165444696b6c5b44fa0e28ce3c4ad2190
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-08-03 22:50:22 +00:00
Tor Arne Vestbø
68f20bb8f4 macOS: Make screen property changes more verbose and granular
We only update the properties that have actually changed.

Change-Id: If711530c6118d2550d5a0e968ee02c903b44fd04
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-08-03 20:49:05 +00:00
Friedemann Kleint
144d33df72 Windows: Refactor the debug operator for the MSG message struct
- Fix spelling
- Use noquote
- Make helpers static
- Remove C-style casts
- Remove Borland-specific code
- Streamline code
- Use QString::fromWCharArray()
- Remove #ifdefery and undefined macros
- Fix replicated base "wParam(0x0x0)" caused by formatting "(0x%p)" (MSVC)
- Replace the flag/enum lookups with variadic arguments by extending the
  lookup struct used for messages and helper functions

Change-Id: I04d861775f3c306e6d449c5a9b423eb244e99a36
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-08-03 20:35:46 +00:00
Friedemann Kleint
b12735f178 Windows: Fix QEventLoop::ExcludeUserInputEvents for pointer events
Factor out the check for user input events from
QEventDispatcherWin32::processEvents() to a small
helper and add pointer messages (by value as to avoid MinGW issues).

Task-number: QTBUG-60437
Task-number: QTBUG-69687
Change-Id: I38bf227f862fcc44177a5027cafe1df49a10a919
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-08-03 20:35:44 +00:00
Friedemann Kleint
abc024eef7 uic: Fix clang-tidy warnings
- Simplify/streamline if statmenents
- Change else if to if after return/break/continue
- Use isEmpty() for containers instead of checking size()
- Replace index-based loops by range-based for

Change-Id: I008228a99082a4d0e27be9f6c6af392602140b2f
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2018-08-03 20:35:41 +00:00
Simon Hausmann
22eb4bacae Enable QPluginLoader test for static builds
The majority of tests use QPluginLoader::setFileName implicitly, which
refuses to do any work in static builds. Therefore the majority of tests
are skipped. But in the future we'll get tests here that for example use
QPluginLoader::staticPlugins() and for that we want to include the
sub-directory in the build and test run.

Change-Id: Ib8ec274e22ac8050feaca8967eb8626b53876b92
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-08-03 20:26:58 +00:00
Thiago Macieira
dc8d4fe30f QUrl: Add qustrchr() and use it to speed up the fast URL full decoding
The character search in the findChar() static function in qstring.cpp is
more efficient than what we had in qurlrecode.cpp and there's no point
in duplicating it. It also has a Neon implementation. So make the
implementation available for use in QtPrivate::qustrchr().

This also simplifies the implementation.

Change-Id: Ib48364abee9f464c96c6fffd152eedd0cd8ad7f8
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-03 20:26:56 +00:00
Thiago Macieira
98dda3f5ac Move the createUnixEventDispatcher() function to a namespace
Easier than renaming it with a "qt_" prefix everywhere it's used
(it's in a lot of plugins).

Change-Id: Ie01831ddac5446fdbdeefffd15468918f3bc2238
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-08-03 20:26:53 +00:00
Thiago Macieira
d8d0325394 Remove member function from CentralFileHeader
I could have placed the class in an unnamed namespace. That would
mark the member function as a local symbol too. But I preferred to
move outside so I could make it static.

Change-Id: Ie01831ddac5446fdbdeefffd154688c0883ed653
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-08-03 20:26:52 +00:00
Thiago Macieira
9bb27ca6cc Make local symbols of some leaked names
Unnamed namespaces and static are great tools. Use them.

Change-Id: Ie01831ddac5446fdbdeefffd15468b3acb3ced79
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-08-03 20:26:50 +00:00
Thiago Macieira
95c0b24cd8 Add "qt_" prefix to asciiToDouble and doubleToAscii functions
Change-Id: Ie01831ddac5446fdbdeefffd154688839acbe838
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-08-03 20:26:48 +00:00