Commit Graph

46768 Commits

Author SHA1 Message Date
Tor Arne Vestbø
61b1146e5a testlib selftest: check blacklisted test for test failures
Change-Id: Ifcd1155f7627f6a9f8b379fb9e87425f9d9f2877
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-22 23:23:09 +02:00
Tor Arne Vestbø
b33c056a61 testlib selftest: unify xml quoted asserts that include line numbers
Change-Id: If66303bab10c23dd212a6abcdff3f145630e2401
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-22 23:23:05 +02:00
Tor Arne Vestbø
f1c16139e3 testlib selftest: rebaseline tap results to not include line numbers
Change-Id: I6271ac1984a3829ba1c8dcc9d6419940cb89c62b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-22 23:23:01 +02:00
Friedemann Kleint
32a26f1714 Manual touch test: Add a settings dialog for windows
Exercise the touch settings of the native interface.

Task-number: QTBUG-41433
Task-number: QTBUG-48849
Task-number: QTBUG-83252
Change-Id: I5ae95a79c00b55236dbbed9d8549f4fdf5b10b8e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-22 19:46:09 +02:00
Friedemann Kleint
b61ab2b425 Add QPlatformInterface::Private::QWindowsWindow
Remove QWindowsWindowFunctions

Task-number: QTBUG-83252
Change-Id: Iacfdf2e0f430208901c182e461c4617e1ef526ce
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-22 17:46:09 +00:00
Friedemann Kleint
ac98b6e4ea Windows QPA: Move the touch types API from platformheaders into QtGui
Change TouchWindowTouchType(s) to be (global) property of
QGuiApplication's native Windows interface since it does not make
sense to set it per window.

It appears the previous code setting the types per Window has never
worked since registerTouchWindow() bailed out due to the checks for
the flags TouchRegistered and IsTouchWindow() (setting in
HCBT_CREATEWND). In addition, registering windows for touch after
plugging in a device would not observe the setting.

Move the checks around to make this work.

Task-number: QTBUG-41433
Task-number: QTBUG-48849
Task-number: QTBUG-83252
Change-Id: I4306fdf13208f6eef22655875f3bd1769270e617
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-22 17:46:09 +00:00
Thiago Macieira
034427a45a Deal with macOS not enabling AVX512 state in XCR0
All Mac Pros launched since 2019 have AVX512 support (CLX processor) but
the Darwin kernel does not enable the state bits in the XCR0 register
for all processes by default. Instead, it traps the #UD exception and
decodes the instruction to find out if it was an AVX512 instruction. If
so, it adds memory to the thread's context switch space. See [1].

Good solution, but forces us to have OS-specific code to determine if
the OS really supports AVX512. No other OS appears to require this. For
future features (namely, Intel Advanced Matrix Extensions), there's an
official way of implementing this, via the eXtended Feature Disable
register.

Qt has no AVX512 code yet, so this is just being future-proof. Apple has
yet to announce when or if their Mac Pros will switch from Intel Xeon to
ARM.

[1] https://github.com/apple/darwin-xnu/blob/xnu-4903.221.2/osfmk/i386/fpu.c#L174

Change-Id: Ieffc3453b88c4517a1dbfffd162175ead343e622
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-22 10:46:09 -07:00
Tor Arne Vestbø
7284384eda macOS: Remove workaround for zero-size GL views
This is no longer a problem, and this condition should be
handled by QCocoaGLContext in any case.

Change-Id: Iaac9d1a8962b27bf6f0394b8c1ea3e46dc28e29e
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-22 16:33:29 +02:00
Tor Arne Vestbø
8b60ebf93a macOS: Ensure initial geometry is always set
QPlatformWindow initializes its view of the geometry based on the
QWindow geometry during construction. If the initial geometry we
then compute is the same, we would end up exiting early from
QCocoaWindow::setGeometry(), because we compared the new geometry
against the QPlatformWindow::geometry(), and the geometry would
never be reflected in the NSView.

Due to other setGeometry calls this was in most cases masked, but
could in theory happen, and is preventing us from cleaning up other
parts of the code.

The call to QWindow::setGeometry() after setting the initial geometry
is also broken, as the initial geometry is available through the
platform window and QWindow::geometry() already, so setting it again
serves nothing except disabling d->positionAutomatic, which is not
correct.

Change-Id: I0db3cfe7d7c3d14070beee6ae3ea3dfd49da9e05
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-22 14:33:29 +00:00
Giuseppe D'Angelo
a7723f8fa7 Temporarily add a private QESDPv2
To unlock work while waiting for QISP. QESDP is lacking
a few crucial APIs (isDetached() / isShared() / reset(ptr) / deep
const), so we can't go there right away.

Change-Id: I647eb0db4ea800488a323f3b64661e848998168d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-22 16:33:29 +02:00
Tor Arne Vestbø
ac9497a0ef macOS: Remove stale code for handling view hiding during reparenting
Commit a2bdda8e3b added an unconditional hide of child NSViews,
which was found to be too strict, and worked around in a199a87ad
by undoing the hide during setParent(). The unconditional hide
was then changed in 89842b97d7 to use the visibility state of
the window, which means the workaround in a199a87ad is no longer
needed.

Change-Id: If0df2de65693e03c5fb53a906b1399accab3fcc4
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-22 10:47:59 +00:00
Friedemann Kleint
a54639acd2 Fix the touch manual test to compile
Task-number: QTBUG-72167
Change-Id: I9074fc21ae8fccf66140fb38bfbd35e526506c36
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-22 12:20:16 +02:00
Edward Welbourne
59342379bd QSysInfo: remove deprecated windowsVersion() and macVersion()
Remove their associated enums, too.
All deprecated since 5.9.

Change-Id: Ieefba1a08c221ea7b62500f219baea8a3ccfb7db
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-22 11:33:02 +02:00
Sona Kurazyan
1c4ae44f6f Clean-up some Qt 5 leftovers from JSON serialization classes
Change-Id: I2ddf6901d627677395b39bec34c2c47d27e88d0b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-22 09:33:52 +02:00
Richard Moe Gustavsen
76d9d86907 qnsview: don't active QWindows inside NSWindows that are not key
A QWindow should only become Active when it's inside an
NSWindow that is Key. If the NSWindow is not key, we need
to wait for it to be so, and handle window activation
from QCocoaWindow::windowDidBecomeKey() instead. Otherwise
Qt will report a QWindow as Active when, in reality, it
is not.

Change-Id: Ib7e63b374f26af527a668c7f7d863c4168a4446d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-22 09:08:32 +02:00
Giuseppe D'Angelo
ac4087a41e Remove an outdated and nonsensical comment in the docs
After the QVector->QList rename it made no sense.

Change-Id: I4a422f48b1f5d42c1c4d402ea947a0f4098172b7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-22 02:19:25 +02:00
Tor Arne Vestbø
15a5d1996f tst_QPluginLoader: Fix MachO stub tests
The -arch_blank argument to lipo is no longer supported.

Pick-to: 5.15
Pick-to: 5.12
Change-Id: I47efcb3633f23b7a18d66211bc16d5c9dbc067c8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-22 02:04:15 +02:00
Andy Shaw
64491c9b72 iOS: Add a variable to customize where the launch image is taken from
For those who are providing their own launch images for their iOS
projects then QMAKE_IOS_LAUNCH_SCREEN can be set to point to the
location where the launch image to be used over the default.

[ChangeLog][Platform Specific Changes][iOS] Added support for
specifying a launch image to be used for an iOS project. This can be
achieved by using QMAKE_IOS_LAUNCH_SCREEN.

Change-Id: Ibb236655b282132ab5eee747986a93abb9802200
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-22 00:42:36 +02:00
Friedemann Kleint
d25589e052 QTestlib: Enable comparing QList against initializer lists/arrays
It is unnecessary to create a QList container just for comparison.

Split out helpers for comparing sequence sizes and sequences from
qCompare(QList) and add a template for an array with a non-type template
parameter for the size.

One can then write something like:

const int expected[] = {10, 12,...};
QCOMPARE(QFontDatabase.pointSizes(...), expected)

Unfortunately, any commas in such an array will be misread by macro expansion
as macro argument separators, so any expected array with more than one entry
needs an extra macro expanding __VA_ARGS__.

Change-Id: Ie7c8dc20bf669bbb25f6d7f8562455f8d03968c8
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-21 22:01:20 +02:00
Andre de la Rocha
b50daef977 Discard extra mouse move event generated by touchpad
On Windows, and possibly other platforms, a touchpad can send a mouse
button press followed by an unexpected mouse move event to the same
coordinates, before sending a mouse button release, which may confuse
applications. Before the enhanced mouse event processing was added, the
code in QGuiApplication was responsible for deducing the mouse event
type and other info, and in the process performed a checking that
discarded events that did not change state. The enhanced mouse
processing code lacked this checking. This change adds an equivalent
checking to the enhanced mouse event processing.

Fixes: QTBUG-85431
Pick-to: 5.15
Change-Id: Ie3e2ae8cbf9870d465dfd2c8808942dd6fc647d2
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-07-21 15:53:08 -03:00
Edward Welbourne
e4e4bb78b7 tst_QLine: use qmath.h's constants instead of local versions
Change-Id: I41313f7e7caf3c364ae900a0b100c661aafb290d
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-07-21 17:05:01 +02:00
Edward Welbourne
42b5c28db5 QAssociativeIterableImpl::advanceImpl(): remove deprecation protection
The comment claims it is needed for "the deprecated
QHash::iterator::operator--()", which has been removed already.

Change-Id: I90f5abdcd14e6cac4ed7144e96eb26bf34477391
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-21 17:04:41 +02:00
Friedemann Kleint
8e48184120 Start the native interface QWindowsApplication
Implement the static parts of QWindowsWindowFunctions.

Move some things around and make them static in tablet support
to make this easier.

Task-number: QTBUG-83252
Change-Id: I24c3b0b3c6548eb96c4f3285a4e46385a1e79ef5
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-21 14:14:50 +02:00
Tor Arne Vestbø
beab436d77 Fix testlib/selftest generate_expected_output.py
Amends 40bc8d5129.

Change-Id: Iacaabec0c620db84278656501e64fc2b765e052f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-21 13:43:56 +02:00
Tor Arne Vestbø
fb2ef5fbf6 testlib selftest: Add README explaining how to run and debug tests
Change-Id: Ica08f7013933e9e6a7678c0ba1f5827efa6eff42
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-21 13:43:51 +02:00
Tor Arne Vestbø
85ce556443 testlib selftest: Properly print failing tests
We don't want to print the QString as represented by the debug
operator, but instead want to expand line feeds and other character
codes as normal.

Change-Id: I7261d8f94e7b4382733f06eb22f9a740a5c0488f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-21 13:43:48 +02:00
Tor Arne Vestbø
0bf120f5fd Ensure styles always get to polish the application palette
Before 0a93db4d82 we would polish the
application palette even when it was the default palette, as we
always recreated the system palette each time a style was set.

After the change we skipped polishing the palette unless it was set
by the user, under the assumption that the style would set its
own default palette if it wanted to override the system palette.

This turned out to break the style's ability to slightly tweak the
palette via polish (versus the more full on standardPalette approach).

We now polish both the default palette and user palettes, and we do
so as part of the normal palette update logic. This ensures that
the style also gets a chance to polish the palette when the platform
theme changes.

The polish will not have an effect on the resolve mask of the palette,
as the polish is conceptually the same as a base palette, and should
not affect e.g. Qt::AA_SetPalette.

Fixes: QTBUG-85469
Fixes: QTBUG-85188
Pick-to: 5.15
Change-Id: I869e9c442b177de4f1dc49eb75220709306f4d12
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-21 13:43:19 +02:00
Allan Sandfeld Jensen
81329bc8dc Fix SSE4 instruction leak in GCC10 debug builds
toArgb32 was leaking an SSE4 instruction when not inlined.

Pick-to: 5.15
Change-Id: I5df87bc7343f4ec40881a0aedd6f066323143817
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-07-21 13:19:10 +02:00
Friedemann Kleint
07bef8b383 Fix some qdoc warnings
src/corelib/text/qstringconverter.h:160:54: error: no matching constructor for initialization of 'QStringConverterBase::State'
src/corelib/text/qstringconverter.h:72:19: note: candidate constructor not viable: no known conversion from 'QFlags<QStringConverter::Flag>' to 'QFlags<QStringConverterBase::Flag>' for 1st argument
src/corelib/text/qstringconverter.h:75:9: note: candidate constructor not viable: no known conversion from 'QStringConverter::Flags' (aka 'QFlags<QStringConverter::Flag>') to 'QStringConverterBase::State' for 1st argument
src/corelib/text/qstringconverter.h:108:24: note: candidate constructor not viable: no known conversion from 'QStringConverter::Flags' (aka 'QFlags<QStringConverter::Flag>') to 'const QStringConverterBase::State' for 1st argument
src/corelib/text/qstringconverter.h:159:32: warning: constexpr constructor that does not initialize all members is a C++20 extension [-Wc++20-extensions]
src/corelib/text/qstringconverter.h:187:11: note: member not initialized by constructor
src/corelib/kernel/qproperty.h:403:14: error: deduction guide must be declared in the same scope as template 'QProperty'
src/corelib/kernel/qproperty.h:202:7: note: template is declared here
src/corelib/kernel/qproperty.h:403:14: error: deduction guide declaration without trailing return type
src/gui/painting/qregion.h:139:5: error: unknown type name 'HRGN'
src/gui/painting/qregion.h:140:29: error: unknown type name 'HRGN'

Change-Id: I3c195a60ceeb51664368a4aeef90c70c31954fc3
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-07-21 13:19:09 +02:00
Paul Olav Tvete
2c2e7ffb22 Use --strict option for wayland-scanner
Make protocol definition errors build errors.

Task-number: QTBUG-73100
Change-Id: I834d1a9f6f4150875732772c14bde15b5e12b4e8
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-07-21 10:13:25 +02:00
Paul Olav Tvete
b4dbc2282a Stop using deprecated wayland-scanner argument
The argument "code" is deprecated. Use "public-code" instead.

Task-number: QTBUG-73099
Change-Id: I3e822df956613d4f8338525324ffca744f27bc0c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-07-21 10:13:19 +02:00
Alexandru Croitor
cdecf0edb2 CMake: Print various CMake and Qt CMake information variables
Sometimes the info we show in the configure summary might differ from
the information that CMake computes.
To more easily debug and fix such cases, print out various CMake info
variables like host and target info, compiler versions, sdk versions,
etc.

Change-Id: I37a11dfabe5369236af78684a09bd3cec3fdd398
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-07-20 18:12:29 +02:00
Alexandru Croitor
bd4726fa5d CMake: Pass CMAKE_OSX_ARCHITECTURES to try_compile on macOS
There was an inconsistency where configuring qtbase on Apple Silicon
with the following command line produced different results rom the
second variant.

$ cmake ../qtbase -DCMAKE_OSX_ARCHITECTURES=arm64
vs
$ CMAKE_OSX_ARCHITECTURES=arm64 cmake ../qtbase

That happened because the CMAKE_OSX_ARCHITECTURES variables was not
passed to project-based try_compile calls. This resulted in compile
tests like SIMD avx to succeeded on Apple silicon, which shouldn't.

To address that, always pass the architecture on macOS if it's
specified.

Change-Id: Ia12e86230cc6e5e11f387e3cbb273d90646ef2e3
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-07-20 18:12:26 +02:00
Alexandru Croitor
5e0129f63c CMake: Fix configuration of CMake tests in-build-tree
Qt6 package was not found the tests were configured in-tree as opposed
to standalone tests.
Use the same trick we do for building examples in-tree.
Specify the path to the build tree packages, and don't create targets.

Amends 96e3ee0659

Change-Id: Ia60de416ce0afff5bd40be8c0c6e3c7898fd7ebf
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-07-20 18:12:23 +02:00
Tor Arne Vestbø
bd143f7df3 Add fixme note to QWindowPrivate::setVisible about visibility during create
Change-Id: I71cb5b560538887f85d92178ff17eaaecaf06904
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-20 17:47:48 +02:00
Tor Arne Vestbø
5b1befa31a Add QEvdevKeyMapper platform interface
Task-number: QTBUG-84220
Change-Id: I4f3a54415c5509b4bde486b54c56b0e05976bac6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-20 17:47:42 +02:00
Tor Arne Vestbø
9166abcd99 Add QXcbWindow platform interface
Task-number: QTBUG-84220
Change-Id: I8bb4288f1ac06d77fb4f43ae091fa1712f694eeb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-20 17:47:39 +02:00
Tor Arne Vestbø
6034494070 Move private platform interfaces to private QPA headers
They should not clutter the "public" QPA headers that clients
use to implement new platforms, and having them in the private
headers allows us to check for private configure features.

Change-Id: Ib4b4db96c086d81bb5810392c7c8922fc5b4950d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-20 17:47:35 +02:00
Tor Arne Vestbø
3a475d48ee Add QXcbScreen platform interface
Task-number: QTBUG-84220
Change-Id: I6c166409fbaf50627dea65a6256764e08ab36a59
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-20 17:47:29 +02:00
Edward Welbourne
6e5694b63b QBasicTimer: purge deprecated API
Since 5.14, copy constructor and assignment.

Change-Id: Id569968ee3879caea2f69e373d392881901965f2
Reviewed-by: David Faure <david.faure@kdab.com>
2020-07-20 16:06:29 +02:00
Edward Welbourne
2ae3f70a40 QAbstractEventDispatcher: purge deprecated API
Since 5.0, registerTimer() without a timer type; and filterEvent(void *)

Change-Id: Id50c2daaf7b144ec403351d0fc50111272b34521
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-07-20 16:06:29 +02:00
Edward Welbourne
c7f277483a QRegularExpression: Purge deprecated PatternOption members
They've been no-ops since (at least) 5.12.
At the same time, save future readers the need to git blame to find
out how long the other deprecated enum name is.

Change-Id: I2081ba2859c6540651b6f6807cc6bd59890bfce5
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2020-07-20 16:06:28 +02:00
Edward Welbourne
f12132ff23 QCommandLineOption: purge deprecated API
Since 5.8: setHidden(), isHidden()
Part of the QCommandLineParser test also used setHidden().

Change-Id: I05a1c63ff3beb1167ed75632c1b71d7fff17f09e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-20 16:06:28 +02:00
Edward Welbourne
555be46527 QTemporaryFile: purge deprecated API
Since 5.1: createLocalFile()

Change-Id: I6743df58281d6ba7d90cc6735362e8b654565588
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-20 16:06:28 +02:00
Edward Welbourne
0a961129f0 QUrl: purge deprecated API
Since 5.0: QUrl's image of the QUrlQuery API
Remove deprecation-suppression from tst_qurl.cpp, too.

Change-Id: Ide826283cb4e177fb34fb4080502f5a4620bd5d7
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-20 16:06:28 +02:00
Edward Welbourne
996a7fc6f1 QChar: purge deprecated API
Since 5.3 joining() and old Joining type
Replaced by JoiningType joiningType()

Change-Id: Iefee50aaf94cec6d67b5fc004b3e68357b2015c5
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2020-07-20 16:06:28 +02:00
Tor Arne Vestbø
21d9384800 cmake: Slience bening warnings in 3rdparty code
Change-Id: I1a47695abd6d6ea1527e2803dde0ed29aca014cc
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-20 10:35:39 +02:00
Lars Schmertmann
76d02d895a Fix compiler warning in tst_qstringlistmodel
Warning: redundant move in return statement [-Wredundant-move]

Change-Id: I426c8c41c52b43ae3863f5aaf86027cabb961388
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-20 09:38:58 +02:00
Andy Shaw
e9932f6372 Doc: Update sql-driver to reflect current minimum versions needed
Fixes: QTBUG-85172
Change-Id: I82a8e008deec29dd217097b8427cb84b80c3a1c9
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-07-20 00:42:01 +02:00
Shawn Rutledge
1b72f9676f Styles manual test: show active, inactive and disabled palette colors
Change-Id: I19c9648f3099ec299e0117748a2808d7a407a3e2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-17 23:29:27 +02:00