Commit Graph

46194 Commits

Author SHA1 Message Date
Elvis Lee
ab6fd84c62 Make it possible to avoid loading comments from JPEG and PNG files
Skip reading JPEG and PNG comments information from the header to save
the memory.

This can now be configured through the feature system.

Change-Id: I3744312f69aa3201d5188776cbd99fe690b75d32
Task-number: QTBUG-83123
Pick-to: 5.15
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-06-11 09:10:01 +02:00
Marc Mutz
c549ff3fd4 Also check QStringView(std::nullptr_t) for constexpr'ness
Pick-to: 5.15
Change-Id: I85967caa014fa93d2cd3f26b63e4a85414f6a803
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-06-11 08:24:13 +02:00
Friedemann Kleint
dee140a79a Windows: Fix registry string read failures
On Windows 7, it has been observed that the time zone registry key
is a string of size 256 padded with 0. Use QString::fromWCharArray(),
relying on 0-termination to cope with it.

Pick-to: 5.15
Fixes: QTBUG-84455
Change-Id: I5d242e2de73c1ea09344aee8de8eea941bc52bab
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-06-11 07:19:00 +02:00
Lars Knoll
60f83a7675 Port QtPrintSupport to QStringView
Task-number: QTBUG-84319
Change-Id: I4a2407dcf1c2979cd109e7cb3dd7d6395c56b927
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-11 06:52:54 +02:00
Lars Knoll
5c4f470132 Port testlib from QStringRef to QStringView
Task-number: QTBUG-84319
Change-Id: I780945c8923c0a03e9c0a32d039da0c793f650fd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-11 06:52:13 +02:00
Lars Knoll
4895ae10c6 Port QtSql from QStringRef to QStringView
Task-number: QTBUG-84319
Change-Id: Icc9b955dae1aa13b16c01e26192cb82f828903b1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-11 06:52:03 +02:00
Lars Knoll
d984adac68 Port QtGui from QStringRef to QStringView
Task-number: QTBUG-84319
Change-Id: I1761096fbcc9421a013cf73f831a2a2ba0c18006
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
2020-06-11 02:51:03 +02:00
Lars Knoll
82a0f4a193 Port mimetypes away from QStringRef
Task-number: QTBUG-84319
Change-Id: I2bed1149df7f11495fd9dc3577828c0790b17dab
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
2020-06-11 02:50:49 +02:00
Lars Knoll
ecacb3c62f Port QLocale::quoteString from QStringRef to QStringView
Task-number: QTBUG-84319
Change-Id: I29726ebfda7a5f51a0a6ee29e905b0b904256c8d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-11 02:50:16 +02:00
Lorn Potter
ce8c33e710 wasm: fix network POST data corruption
Emscripten does not like when the post data gets deleted in the local
scope.

Fixes: QTBUG-84685
Pick-to: 5.15
Change-Id: I17f9d5cc3253c26b42253daa68e2fbaccc48eaf6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-06-11 09:24:45 +10:00
Timur Pocheptsov
7d98964815 tst_QSslSocket - stop using qrand (to suppress a warning)
Whoever wrote this test, was a PROPER hacker: trying to force a TLS implementation
not to properly compress some data, they generated a sequence of bytes in a very fancy manner,
something like 255 0 0 0 255 0 0 0 123 0 0 0 255 0 0 0 - yeah, it's really a random sequence
of bytes, surely, it's impossible to compress! Meh.

Pick-to: 5.15
Change-Id: Ia10ae18a40b5b8f006c45147b06fe5be6efcb129
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-06-10 22:55:49 +02:00
Friedemann Kleint
ad532ce118 Fix QToolButton menus showing on primary screens in multiscreen setups
Calculate an initial position based on the current size hint
and pass it to QMenuPrivate::exec(), which does screen checks
based on it.

Amends a78d667431.

Pick-to: 5.15
Fixes: QTBUG-84462
Task-number: QTBUG-78966
Change-Id: Icae8d2bc0fb50c4c853cfebaa2b2250fc06542e3
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-06-10 19:59:12 +02:00
Volker Hilsheimer
fa5ae76356 Merge QToolTip::showText overloads as per ### Qt 6 comments
Change-Id: Ic156fed27bd535daf828e5d95049591833614307
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2020-06-10 19:59:05 +02:00
Volker Hilsheimer
ea09e2f466 Clean up special functions for QTextFrame::iterator
Member initialization syntax allows declaring now inline default
constructor as default. Remove copy/move/assignment operators, which
had already been disabled.

Change-Id: Ie407e65aa39c72f5e6436a6beaf9323663f78cfc
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-06-10 19:58:57 +02:00
Shawn Rutledge
84e76c37a5 Restore default role names in QStandardItemModel::roleNames()
Amends 32b586864e, which added an override
of QStandardItemModel::roleNames().  It's good for it to have its own
QHash so that roles can be added, and because
QStandardItemModel::setItemRoleNames() remains un-deprecated; but before
that change, they were the roles that QAbstractItemModel had initialized
from QAbstractItemModelPrivate::defaultRoleNames().  In particular, we
need "display" to map to Qt::DisplayRole by default; several tests in
qtdeclarative depend on that.

Change-Id: I58b2d6aa6b6c78b1d618335ddc4ecb834af57274
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-06-10 19:58:48 +02:00
Friedemann Kleint
7ec12b2902 Move the UNIX event dispatchers into QtGui
Task-number: QTBUG-83255
Change-Id: I7d32eb1ec01784c9ed6bf5fc4913ffc5b3a34a49
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-06-10 19:58:19 +02:00
Kai Koehne
732c670590 Doc: Improve documentation for QLocale::FormatType
LongFormat and ShortFormat are not limited to day and month names.
Different locales might also use numbers for months instead of strings,
so the example is a bit misleading.

Instead of extending the enum description even more there's now
examples in the dateFormat(), timeFormat(), dateTimeFormat()
functions.

Task-number: QTBUG-83841
Pick-to: 5.15
Change-Id: Icea2cbce7e9505d706a2171e7d1f4486abdb20be
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-06-10 14:49:18 +00:00
Giuseppe D'Angelo
8e98a161e9 Long live std::pair!
Make QPair an alias for std::pair, and qMakePair just a forwarder
towards std::make_pair.

Why? Fundamentally to ditch a bunch of NIH code; gain for free
structured bindings, std::tuple and std::reference_wrapper
compatibility, and so on.

Breakages:

* Some that code manually forward declares QPair.
We don't care about it (<QContainerFwd> is the proper way).

* Some code that overloads on std::pair and QPair. Luckily
it's mostly centralized: debug, metatypes, testing macros.
Just remove the QPair overload.

* Usages of qMakePair forcing the template type parameters.
There are a handful of these in qtbase, but only one was actually
broken.

* std::pair is NOT (and will never likely be) trivially copiable.
This is agreed to be a mistake done by practically all implementations
in C++11, can can't be fixed without breaking ABI.
Some code using QPair assuming it's trivially copiable may break;
exactly one occurrence was in qtbase.

* QMetaType logic extracts the type names in two different ways,
one by looking at the source code string (e.g. extracted by moc)
and one via some ad-hoc reflection in C++. We need to make
"QPair" (as spelled in the source code) be the same as "std::pair"
(gathered via reflection, which will see through the alias)
when compared. The way it's already done e.g. for QList is
by actually replacing the moc-extracted name with the name
of the actual type used in C++; do the same here.
On libc++, std::pair is actually in an inline namespace --
i.e. std::__1::pair; the reflection will extract and store
"std::__1::pair" so we need an ad-hoc fix to QMetaType.

[ChangeLog][QtCore][QPair] QPair is now an alias to std::pair,
and does not exist as a class in Qt any more. This may break
code such as functions overloaded for both QPair and std::pair.
Usually, the overload taking a QPair can be safely discarded,
leaving only the one taking a std::pair. QPair API has not changed,
and qMakePair is still available for compatibility (although
new code is encouraged to use std::pair and std::make_pair
directly instead).

Change-Id: I7725c751bf23946cde577b1406e86a336c0a3dcf
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-06-10 16:49:08 +02:00
Marc Mutz
ce5931aaf2 QLatin1String: add toString()
For symmetry with other views.

[ChangeLog][QtCore][QLatin1String] Added toString().

Change-Id: I4a0677e2dbd009e8da097f4cb0dbb27a6baf5469
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-06-10 16:48:43 +02:00
Timur Pocheptsov
d9b2115060 tst_QSslSocket - do not test the deprecated API
We deprecated several setters on QSslSocket, no need to test
them then (and I'm removing them in Qt 6 anyway, so changing
the test is the phase 1).

Pick-to: 5.15
Change-Id: I5807abfb280cbacd4fcc19468793f9d1f3b2ff20
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-06-10 16:47:48 +02:00
Alexandru Croitor
dde11715d3 CMake: Temporary workaround for static top-level Qt builds
Because find_package usually creates targets in a local scope,
qt_generate_prl_file fails to generate a .prl file that has
references to generator expressions like
"$<TARGET_FILE:Freetype::Freetype>" which references targets
that are not found in that specific scope (e.g Freetype target is
present in qtbase scope, but not qtsvg scope).

This happens in static top-level Qt builds, and thus fails the
configuration. While we try to figure out how to fix this adequatly,
don't generate .prl files in such a configuration.

Task-number: QTBUG-84874
Change-Id: I69cf0ad1419d21e3676e1374624601f00936c405
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-06-10 13:46:31 +02:00
Alexandru Croitor
dc1dd51af3 CMake: Don't configure examples by default
Users / developers usually configure a single example. The CI
can still continue to explicitly configure and build all examples.

Task-number: QTBUG-84471
Change-Id: I1c9ac857e7ad0e5602037265194f0a6742386b51
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-06-10 13:46:28 +02:00
Alexandru Croitor
a6eb7c641b CMake: Fix dbus duplicate target errors in top-level builds
Fixes the 'add_library cannot create imported target "dbus-1"
because another target with the same name already exists' error
when doing top-level static builds.

It's caused by the loading of Qt6DBus dependency when configuring
qttools.

Task-number: QTBUG-84874
Change-Id: Ia84ed460c4ce25de45fb41cb13edd0e63a276f11
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-06-10 13:46:24 +02:00
Eirik Aavitsland
56f40cdca6 Remove the openglextensions module
[ChangeLog][General] The QtOpenglExtensions module has been
discontinued. It provided only convenience functionality for certain
direct OpenGL usage. With the new RHI graphics API abstraction, that
is no longer a primary use case. Applications that still need to
access that API have a number of alternative options, including
QOpenGLExtraFunctions.

Fixes: QTBUG-84085
Change-Id: I272af61c69ebcec207b576d67d08b59623d485ec
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-06-10 09:35:04 +02:00
Lars Knoll
122d66f69f Port QtNetwork from QStringRef to QStringView
Task-number: QTBUG-84319
Change-Id: I0f4e83c282b58ab4cc5e397b21981978f79d92cf
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-06-10 09:09:36 +02:00
Lars Knoll
4ab3089a2c Port QUrl away from QStringRef
Task-number: QTBUG-84319
Change-Id: I6167599ac86f17d37fbb6ea90d302641969b0f72
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-06-10 09:09:29 +02:00
Lars Knoll
957b999683 Port QMetaObject away from QStringRef
Task-number: QTBUG-84319
Change-Id: I905c2e1780a2ec42b1d189494bd5399e124df354
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-10 09:09:22 +02:00
Lars Knoll
7b05e5df18 Port QLibraryInfo from QStringRef to QStringView
Task-number: QTBUG-84319
Change-Id: I500e43e1918b22d636f11c915967e75223be9ef2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-10 09:09:15 +02:00
Lars Knoll
6c108ee0c4 Port QtWidgets from QStringRef to QStringView
Change-Id: Ibe348e7aea838ab8c2d628bb43709c867a506637
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-06-10 07:08:57 +00:00
Mårten Nordheim
be61790a9e Remove accidental leftover debug printout
Change-Id: I1de2f1dfd8ba4a19049ef96d85cf15206510410d
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-06-10 08:35:15 +02:00
Paul Wicking
f3c402a6df Doc snippets: Use nullptr instead of 0 literal
Also mark constructors explicit, where applicable.

Pick-to: 5.15
Fixes: QTBUG-84859
Change-Id: I145d366d854fd6b4373bcc23d0b880d6361d9014
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2020-06-10 07:47:37 +02:00
Giuseppe D'Angelo
c208b648f9 qGetPtrHelper: make it work with null d-pointers
operator-> comes with the precondition that the smart pointer
is not null. Having null d-pointers is a valid use case, so
enable it by using get() instead of operator->().

Change-Id: I78d77ca8c44e92a65ca98b15d0620bc3a1917ad2
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2020-06-10 02:46:42 +02:00
Giuseppe D'Angelo
d7c75ee005 Q(E)SDP: add get()
[ChangeLog][QtCore][QSharedDataPointer] Added get() for
STL compatibility.
[ChangeLog][QtCore][QExplicitlySharedDataPointer] Added get() for
STL compatibility.

Change-Id: I1acb3b4f4bd70842ed53f6437be10404b67d9909
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2020-06-10 00:08:12 +02:00
Joerg Bornemann
2a767ab4bb CMake: Fix libraries in qt_lib_XXX_private.pri files for NMC
qmake_use.prf understands the _DEBUG and _RELEASE suffixes for
QMAKE_LIBS_XXX entries. The CMake configuration "Debug" is considered
for the _DEBUG entries, "Release" and "RelWithDebInfo" for _RELEASE.

The qt_lib_XXX_private.pri files are now generated in multiple steps:
1. The QT_LIBS_XXX information is generated per $<CONFIG> and written to
   .cmake files.
2. A preliminary qt_lib_XXX_private.pri file is generated, containing
   only configuration-independent data.
3. A custom command runs the QtGenerateLibPri.cmake script that combines
   the files from step 1 and 2 into the final qt_lib_XXX_private.pri
   file.

The same is done for mkspecs/qmodule.pri.

To be able to trigger custom commands from header modules, which are
interface libraries, we introduce one XXX_timestamp ALL target per
header module that creates a timestamp file. To that XXX_timestamp
target we add the pri file generation target as dependency.

Fixes: QTBUG-84348
Change-Id: I610f279e37feeb7eceb9ef20b3ddfecff8cfbf81
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-06-09 21:04:26 +02:00
Lars Knoll
d2833a3ce5 Ensure left/right/mid behave in a compatible way
QString and QStringRef did bounds checking for left/right/mid, whereas
QStringView was asserting on out of bounds.

Relax the behavior for QStringView and do bounds checking on pos/n
as well. This removes a source of potentially hidden errors when porting
from QStringRef (or QString) to QStringView.

Unfortunately, one difference remains, where QByteArray::left/right()
behaves differently (and somewhat more sane) than QString and
QStringRef. We're keeping the difference here, as it has been around
for many years.

Mark left/right/mid as obsolete and to be replaced with the new
first/last/slice methods.

Change-Id: I18c203799ba78c928a4610a6038089f27696c22e
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-06-09 16:51:16 +02:00
Volker Hilsheimer
fd856532d7 Make QLayout::spacing/setSpacing virtual, remove qobject_cast hack
Change-Id: If256609a1f561b957378010d88120f5aaf94a45e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2020-06-09 16:31:54 +02:00
Andrei Golubev
385f0732d9 Add QPromise implementation
QPromise and QFuture created from it share the same internal state
(namely, QFutureInterface object). QPromise provides high-level
management of the shared resource, ensuring thread-safe behavior
on construction and destruction (also taking into account
QFuture::waitForFinished() semantics).

QFuture acts as a primary controller of QPromise via action
initiating methods such as suspend() or cancel(). QPromise is
equipped with methods to check the status, but the actual
handling of QFuture action "requests" is user-defined.

[ChangeLog][QtCore][QPromise] Added QPromise class to accompany
QFuture. It allows one to communicate computation results and
progress to the QFuture via a shared state.

Task-number: QTBUG-81586
Change-Id: Ibab9681d35fe63754bf394ad0e7923e2683e2457
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2020-06-09 17:21:38 +03:00
Albert Astals Cid
20ba86262f Add since markers for the Qt::endl, etc.
The Qt namespace was introduced in 461e89ee1a which is only since 5.14

Also remove QTextStreamFunctions:: from the documentation of the
deprecated functions since the QTextStreamFunctions namespace is a syntaxic workaround.

Pick-to: 5.15
Change-Id: I9c15bcc49984bf5f5099c2f7df6b8adb3d2c61fb
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-06-09 15:26:00 +02:00
Volker Hilsheimer
d26a6e4a92 Pass QVariant by reference, address ### Qt 6 comment
Change-Id: I0a3fab84e699c73299e2c72a6739ecf4ed856177
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2020-06-09 14:22:51 +02:00
Fabian Kosmale
4c32443bc9 metatype: Do not try analyze T in Q*Pointer<T> if T is incomplete
Change-Id: I41737ce470f6d2b071ad5e85f8cad1da3869241c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-06-09 14:20:31 +02:00
Ulf Hermann
910804a420 pro2cmake: Parse "optional plugin" from qmldir files
Task-number: QTBUG-84639
Change-Id: Iedfa2e53c686a7c7c855efc7b9deee097a15f4b7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-06-09 14:10:10 +02:00
Joerg Bornemann
16c15cb0b5 CMake: Fix qt_lib_XXX_private.pri generation for internal modules
The module pri files of internal modules did not expose any include
paths. They must have both, the public and the private include paths.

Task-number: QTBUG-84781
Change-Id: I3cbe94d4e49c754e49d26b00012e668b0afbdc8f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-06-09 13:30:29 +02:00
Laszlo Agocs
d4548751b7 Fix OpenGL mode in examples like composition
To avoid an incorrect offset for the native window, call create()
after createWindowContainer().

The mysterious -1 for the width and height are removed as well because
otherwise the GL window's size is clearly off by one.

Fixes: QTBUG-82195
Pick-to: 5.15
Change-Id: I1a9cec62746fc110bfc4cd2e4fa111f621124638
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-06-09 11:29:01 +00:00
Friedemann Kleint
bc84b7d046 Move the Windows Event Dispatcher into QtGui
Task-number: QTBUG-83255
Change-Id: Ida86f27d7f52b9be48fbea909979320866ff8dae
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-06-09 13:20:06 +02:00
Tor Arne Vestbø
15456efa20 macOS: Add a few more local autorelease pools to QCocoaGLContext
Prevents buildup of autoreleased NSViews (drawables) in the outer pool
of the main runloop, which may not drain as often as we wish.

Change-Id: Ifcf7317c50ec243e0d957bf4a19aab8bf34d5dd6
Fixes: QTBUG-84762
Pick-to: 5.15 5.12
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-06-09 13:17:49 +02:00
Volker Hilsheimer
8cccf0a76b Remove deprecated methods and address some ### Qt 6 comments in gui/text
Change-Id: If1ed58ecbb13df88bdb1d72caccfd01c14d42eac
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-06-09 09:34:18 +02:00
Ulf Hermann
ef236456a4 Always add an empty json file to MOC_JSON_FILES
This way the metatypes files are generated even if there are no
metatypes in the module. This is necessary in order to generate empty
QML modules, which in turn is useful if we only want e.g. URL
interceptors in a module, but not types.

Change-Id: Ief949cfebe831b69353a75d0da15ee347995051c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-06-09 09:34:18 +02:00
Alexandru Croitor
db1de48291 CMake: Fix failing plugin tests on MinGW
MinGW plugins should not have the lib prefix in the shared library
names. Do this manually for a couple of libraries, and also for the
generic qt_add_cmake_library function.

Amends 9b0e23ef8a

Change-Id: I1cfaf8fc046f86edd3e755adfa599aa0aa854ee3
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-06-09 09:34:17 +02:00
Giuseppe D'Angelo
85c1009dbb QPointer: add get()
[ChangeLog][QtCore][QPointer] Added get() for STL
compatibility.

Change-Id: I84bf9d58cd92e1bc74f731c3e9002031045f8f5c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2020-06-09 04:44:22 +02:00
Giuseppe D'Angelo
c55f45e875 QArrayData: stop using std::is_literal_type
The trait is deprecated in C++17 and removed in C++20. Enforce
the same meaning by using a constexpr variable instead.

Change-Id: Ief13afc3f889af09094391e626037778d879c4f5
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-06-09 00:41:30 +02:00