| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
After introducing the new registration system in Controls, the
theme palette picked up colors from the Default style. Until this
is fixed, set the system palette explicitly.
Task-number: QTBUG-86303
Change-Id: Ib4c90856bd5410c042160b532175a48fdaea0fbd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I3fb788ceba150664ed1c7b4040b73a0b7fdd7337
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: Id28352b397e3fc48423856a7f9322f3475d642ef
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
| |
QtQuick/Controls.2
Change-Id: I12b0a3846a21cafac29615dbea53d88f9aed8e35
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I73319d18ca6540227ce6bf4bdcf217a3c279c64c
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: Id05edfccb617c72db902f5a7147ed8433be62e7c
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I9b9aa44fd02a02fcd0ca7671abe120b806acc2cb
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\ |
|
| |\
| | |
| | |
| | | |
Change-Id: I9999194551f71abec3731355cd746e69e2e0b187
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
These files should now be automatically generated by both qmake and
cmake.
Task-number: QTBUG-82922
Change-Id: I3ba754bb343123442c7d56c9caf770a979489c7d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-82922
Change-Id: I75f4a553a6bb260f77bfa791f12fa42e80131e09
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This way we get to declare a QML_ADDED_IN_VERSION. This is necessary for
version 2.x of the module to be found when version 6.x is registered.
Task-number: QTBUG-85151
Change-Id: Ia156763ffa2ecc6a35f0421c68df85fba646cec7
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-82922
Change-Id: I2eb924eaaaddbe75d342f59f5fb3cd30c4a84fef
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch completes the cumulative work done in previous patches.
- Uses qmlRegisterModuleImport() to register styles. This has some
added requirements:
- Each style must now be a QML module -- that is, it must have a
qmldir file.
- As a result of the above, the module must be available within the
QML import path in order to be found.
- The various forms of accepted style names have been reduced down to
one ("Material", "MyStyle", etc). See below for an explanation of
why.
- The following API in QQuickStyle is removed:
addStylePath(), availableStyles(), path(), stylePathList(). These
no longer make sense now that we reuse the existing QML import
system.
- Adds the tst_qquickstyleselector auto test back as "styleimports".
qmlRegisterModuleImport() vs resolvedUrl()
Previously we would use QQuickStyleSelector to select individual
QML files based on which style was set. We'd do this once when
QtQuick.Controls was first imported.
With Qt 6, and the requirement that each style be a proper QML
module, qmlRegisterModuleImport() was introduced. This allows us
to "link" one import with another. For an example of what this
looks like in practice, suppose the style was set to "MyStyle",
and the fallback to "Material". The "QtQuick.Controls" import
will be linked to "MyStyle", "MyStyle" to
"QtQuick.Controls.Material", and as a final fallback (for controls
like Action which only the Default style implements),
"QtQuick.Controls.Material" to "QtQuick.Controls.Default".
This is the same behavior as in Qt 5 (see qquickstyleselector.cpp):
// 1) requested style (e.g. "MyStyle", included in d->selectors)
// 2) fallback style (e.g. "Material", included in d->selectors)
// 3) default style (empty selector, not in d->selectors)
This is a necessary step to enable compilation of QML to C++.
Reducing the set of accepted style names
The problem
In QtQuickControls2Plugin() we need to call
QQuickStylePrivate::init(baseUrl()) in order to detect if the style
is a custom style in QQuickStyleSpec::resolve() (by checking if the
style path starts with the base URL). In Qt 5, init() is called in
QtQuickControls2Plugin::registerTypes(), but in Qt 6 that's too
late, because we need to call qmlRegisterModuleImport() in the
constructor. qmlRegisterModuleImport() itself requires the style to
have already been set in order to create the correct import URI
("QtQuick.Controls.X" for built-in styles, "MyCustomStyle" for
custom styles).
The solution
By reducing the valid forms for style names down to one:
./myapp -style MyStyle
we solve the problem of needing baseUrl() to determine if the
style is a custom style or not, but needing to call it too early
(since we now call qmlRegisterModuleImport() in
QtQuickControls2Plugin(), which itself requires the style to have
already been set). baseUrl() can't have been set before the
constructor is finished.
All of the various forms for _setting_ a style are still valid;
environment variables, qtquickcontrols2.conf, etc.
[ChangeLog][Important Behavior Changes] Custom styles must now have
a qmldir that lists the files that the style implements. For example,
for a style that only implements Button:
---
module MyStyle
Button 1.0 Button.qml
---
In addition, there is now only one valid, case-sensitive form for style
names: "Material", "MyStyle", etc.
These changes are done to help enable the compilation of QML code to
C++, as well as improve tooling capabilities.
[ChangeLog][Important Behavior Changes] The following API was removed:
- QQuickStyle::addStylePath()
- QQuickStyle::availableStyles()
- QQuickStyle::path()
- QQuickStyle::stylePathList()
- QT_QUICK_CONTROLS_STYLE_PATH
This API is no longer necessary and/or able to be provided now that
styles are treated as regular QML modules.
Task-number: QTBUG-82922
Change-Id: I3b281131903c7c3c1cf0616eb7486a872dccd730
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-82922
Change-Id: I34e9f32d5f695aaac7acf6b4aac30e8a2311e0cf
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is required in order to move away from imperative registration.
Task-number: QTBUG-82922
Change-Id: I4b2a727d69e66c29629920a3711548e02f72ce49
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is required in order to move away from imperative registration.
Some styles do not have implementations for all types, in which case
they fall back to the Default style. The list of those types are:
AbstractButton 2.0 AbstractButton.qml
Action 2.3 Action.qml
ActionGroup 2.3 ActionGroup.qml
ButtonGroup 2.0 ButtonGroup.qml
Container 2.0 Container.qml
Control 2.0 Control.qml
ScrollView 2.2 ScrollView.qml (except Imagine)
Task-number: QTBUG-82922
Change-Id: If51c8232d7a8b12f6d1f988cc7ce2d8edca1e467
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As of Qt 6, the latest version will be used by default. This saves us a
lot of effort in terms of version bumps.
Task-number: QTBUG-82922
Change-Id: I74eba8185ec3ccc75bc293d4b2ea87d59e2d9928
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Qt Quick Controls 1 will be removed in Qt 6, so now we can have the
simplified path for ourselves.
Having the .2 in the path causes issues for importing now that the
version is being bumped to 6.
Task-number: QTBUG-82922
Change-Id: I0b92cdd44c42c19b1c82e7b9a7959b86ac26c6e2
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Adapt to the new way of registering C++ types. The types need to be
seen at compile time so that code can be generated that invokes them.
This patch:
- Adds QML_* macros where applicable.
- Adapts the build system files to the new way of registering modules.
- Splits up the QtQuick.Controls[.*].impl files into their own plugins,
as we can only register one QML module per .pro file.
- Removes C++ type registration calls in every plugin.
- Moves private types from src/quickcontrols2/quickcontrols2.pro
to src/quickcontrols2/impl/quickcontrols2-impl.pro. Some of these
types need to be exposed to QML, but quickcontrols2.pro is already in
use to declare the QtQuick.Controls import (and also provides the
public C++ QQuickStyle API), and the new QML_IMPORT_NAME/VERSION
syntax only allows one module per project. As some of the types that
need to be exposed to QML are also referenced by some C++ code (e.g.
tests, etc.), we just move all of the private types to the new
library.
Follow-up patches will register the QML types declaratively.
Task-number: QTBUG-82922
Change-Id: Iaf9ee106237d61701d57a8896f3822304c8151a6
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In upcoming patches, we start registering C++ types declaratively.
A condition of doing so requires that each .pro corresponds to one
QML module. This conflicts with the QtQuick.Controls import, which
currently does quite a lot:
- Registers (and selects) QML files for the style that was set
- Registers private C++ utility types (such as IconLabel) that are
useful for all styles under the QtQuick.Controls.impl import
- Registers private C++ types that are only useful for the Default
style (such as BusyIndicatorImpl).
The reason it does so much can probably be explained by the
intended usage of Qt Quick Controls 2; when you do
import QtQuick.Controls 2.0
you get access to the QML types (e.g. Button) that the style
you're using provides. So if you're using the Material style,
you'll get a Material style button. API-wise, the button is
identical to any other button, because the types in
QtQuick.Templates are what we advertise as the public API.
If we didn't have this functionality, users would need to
import specific style imports to use controls, and the
convenience of being able to simply start the application
with a different style by e.g. passing an application argument
would be lost.
To support declarative registration of types while also supporting
the existing use cases, we split out the Default-style-specific
stuff into a QtQuick.Controls.Default import.
Task-number: QTBUG-82922
Change-Id: Ib4f1620cae78d7acdc13d9ac0752a020bc22f3ea
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is necessary to move away from imperative type registration of QML
files (i.e. qmlRegisterType()).
A later patch will use qmlRegisterModuleImport() to register the
QtQuick.Controls import with the style set by the user, which will
require each style to have a qmldir listing the files that it provides.
Note that some plugins still register QML files, but these registrations
will have to stay for now until we can split out "impl" plugins
in later patches where those files can be registered.
tst_qquickstyleselector will be added back in some other form in a
follow-up patch.
Task-number: QTBUG-82922
Change-Id: I8182533d9912ed493efda6eb91c69fc064af07ee
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ibc205c36fa285e37898006fd39b2ceef99c96aa8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Use the fix from 1d06eb3f8215b67c5061ee3a076df405724ff7ee.
Fixes: QTBUG-86212
Change-Id: I407c56741806340235da81cca943b50cc6e92dd2
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This amends d5fbbddd7794265f24d392d33c4874ac756cb9c9 by also fixing
valueFromText().
Task-number: QTBUG-64151
Pick-to: 5.15
Change-Id: I02b053bb4d4579e86eaaa2279826f3b103800fdf
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This note is already in the detailed description, but users looking at
pop() can easily miss that.
Pick-to: 5.15 5.12
Task-number: QTBUG-85903
Change-Id: I92c71c8d98b2a83aefbc99229e5b16a6fb33b937
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
qtgraphicaleffects is not part of 6.0, drop the doc dependency.
Change-Id: I6170d19b148a860ef9516de6f4da58067ebb2f06
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This conflicts with the behavior of SwipeDelegate. The released() or
clicked() signals should be used instead.
Fixes: QTBUG-85804
Pick-to: 5.15
Change-Id: I06111b63941f54c06f0e1b828d17264f37d765d5
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the mouse is released while our position is 0, it means we were
clicked, and we don't need to begin any transitions to close.
Fixes: QTBUG-85806
Pick-to: 5.15
Change-Id: Ic521f48e2977c1a99dbecaa585792a7798b9d749
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When a popup is hidden, then it will trigger a prepareExitTransition
which can cause the active focus to be lost. If the popup's visibility
is tied to that fact then it can retrigger the transition which means
the active focus does not go back to where it should.
Therefore, we check if hadActiveFocusBeforeExitTransition is false before
going through that process as then it will only be called the first time
the popup is hidden.
Pick-to: 5.15
Fixes: QTBUG-85884
Change-Id: I68054aeb48447617b4235ce6467514a17f1073ba
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As there are some styles that will do an transition which animates the
scale then we need to size and position based on the final scale it
will have to avoid a jump after it has finished the transition.
Pick-to: 5.15
Fixes: QTBUG-84488
Change-Id: I4571eb18c921e81de319838ac0e8d3fe3513d438
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Even though 'control' should only be set once and never
change, the QML engine will complain if you have
a binding to e.g control.pressed, since both
'control' and 'pressed' in theory can change. So
add a NOTIFY section to silence the engine.
Change-Id: I64b79b7fd163cbeb5de78504f3b58d915edc278b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I61bb0c2b1fd4dce2939bc4fe91a498a280802cb9
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ieb640d93e6eb09eb58e5b2ab48a399991d453eb5
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This should not be shipped as an example in it's current state. But
the app is needed for now as a manual test while we develop the styles.
Change-Id: I719ec629789bc4c8b51d14c97afd7b91b822e89b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
From the documentation for TextArea, this is the recommended approach.
Change-Id: I37428488cba6d406b3e9c6f6dae9dcab04cece79
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When we delete QStyle, it will free up it's own internal
resources. Especially on macOS, this means releasing a lot
of NSViews and NSCells from the QMacStyle destructor. If we
did this from ~QtQuickControls2NativeStylePlugin, it would
happen when the plugin was unloaded from a Q_DESTRUCTOR_FUNCTION
in QLibrary, which is very late in the tear-down process, and
after qGuiApp has been set to nullptr, NSApplication has stopped
running, and perhaps also other static platform variables (e.g in
AppKit?) has been deleted. And to our best guess, this is also why
we see a crash in AppKit from the destructor in QMacStyle. So for
this reason, we delete QStyle from a post routine rather than from
the destructor.
Change-Id: I9dfb0d3394f14e5cd8b88d5a5fbbf3b73284faf1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In controls, it's seems to be undefined if the style should draw
a frame around TextArea or not. E.g the Imagine style do, but the
the Fusion style does not. This is a bit unfortunate, because
depending on how you use a TextArea, you might want a frame
around the TextArea itself, or the ScrollView around it (including
the scrollbars), or not at all (*). For this reason, we should
not draw a frame around the TextArea, but leave it to the user
to compose the (style independent) structure, e.g
Frame { ScrollView { TextArea{} } }
Frame { TextArea {} }.
TextArea {}
This patch will remove drawing a frame around TextArea from
the native style. Then at least Fusion, macOS and Windows
will work the same way. This also means that we can remove the
QQuickStyleItemTextArea, since we end up not using QStyle
at all for drawing a TextArea.
(*) Compared to Widgets, a QPlainTextEdit
inherits from QAbstractScrollArea, which inherits from QFrame.
In QFrame, you can choose frameShape, and even set it to NoFrame.
Change-Id: Icabfa294744e87ccf262855faa0992f2d71ec4cb
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I767278fd63ace4248c0e239b9e3872da17433554
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Ib1414eac2ad31cbaff6408ba84020a1e5dc064f4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It will fail when cross compiling to a platform that has a
different size value of CMAKE_SIZEOF_VOID_P than the host one.
Instead call find_package() on the base package (Qml in this case) and
it will look for QmlTools itself in a special way that that resets
the value of CMAKE_SIZEOF_VOID_P, thus ensuring the package is found.
Fixes: QTBUG-86012
Change-Id: Ibf7f06b8cfea0ccde10b7ca8429ef8ae598f93f2
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I426b4f75066c9db72759398e4d76fd5323044d57
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I5efa74355cddd662787613af3ac3cf665a6c146c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Id705ffea8c87a84ee7c39879d6988be18ecff90a
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The example still loads an HTML file from resources by default, but now
it's possible to give either a relative or absolute file path on the
command line to load an html, markdown or plain text file. Alternatively
you can use the file dialog to load any of these types. We assume that
any resources (such as images) with relative paths are to be loaded from
the directory where the source text file is.
Pick-to: 5.15
Change-Id: I37bc2d6aa2306016453770dc2fd66efa41a16618
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After testing on Big Sur, it becomes clear that
the minimum size (which is also the size of the
nine patch image) needs to be larger in order for
the combobox to render correctly.
Change-Id: Iac70efa348afb7efb0af9453dd392b40ba3a9f89
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I54521f85aa821369ba3ff57fb037ae4996845c97
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After testing on Big Sur, it becomes clear that
the minimum size (which is also the size of the
nine patch image) needs to be larger in order for
the text field to render correctly.
Change-Id: I74ede6415545f0ddee3fc2175772c1b07c2c3999
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After running the "leaks" app in Instruments, several
places showed up to leak memory. This patch will add
auto release pools at those places to stop that
from happening.
Change-Id: If7f49290fde60e71d1a40c10bc3d538df6c1da5c
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Idec0507a8bbdfc345e731a9e376ef8dd00534946
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|