| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following code
import QtQuick
import QtQuick.Controls.Material
ApplicationWindow {
width: 200
height: 200
visible: true
}
produced an error in Qt 5:
QQmlApplicationEngine failed to load component
qrc:/main.qml:4 ApplicationWindow is not a type
In Qt 6, the types are provided by the qmldir, so the import will work,
but as QtQuickControls2Plugin has not been loaded, there is no
QQuickTheme object yet, and so the style will not work as expected
(any colors, fonts, etc. from the theme will not be used by the
style).
Produce a warning for this scenario, and test each style to make sure
that we don't crash.
Fixes: QTBUG-86280
Change-Id: I99f940255f56da0522ad192ae5da4c9110ea308e
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The paletteChanged signal was used as the change signal for a lot of
properties. The problem with this was this binding, for example:
Material.foreground: Material.toolTextColor
results in foreground being set, which emits paletteChanged.
toolTextColor has paletteChanged as its change signal, so that is
triggered and then the foreground binding is re-evaluated in the middle
of already being evaluated.
I haven't found a way to fix this for toolTextColor yet, so we
temporarily skip emission of toolTextColorChanged when foreground
changes. This means that some text will be the wrong color when
foreground is changed after startup.
For other properties, using more specific change handlers is enough
to solve any binding loops.
Task-number: QTBUG-85699
Pick-to: 5.15
Change-Id: Ied52d4c38914765ed5c75e234954f4baabaaa9af
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
These are no longer needed.
Change-Id: I1e6d6d2917fb8504e864620a8214cf6b6f060b60
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
qtgraphicaleffects is not part of 6.0, drop the doc dependency.
Change-Id: I6170d19b148a860ef9516de6f4da58067ebb2f06
Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
|
|
|
|
|
| |
Change-Id: I5efa74355cddd662787613af3ac3cf665a6c146c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
This was missed in 033564edf5b79e32da63597930e25105a3442f01.
Pick-to: 5.15
Change-Id: I7bc465338d5b9960ad7b746a816cd33efcca1bdc
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Similar to what was done in 456d26e97ec7745fdbd1afaaaa6c1dc217eca060.
The warning was:
Material/ComboBox.qml:68: TypeError: Cannot read property 'Material' of
null
Task-number: QTBUG-82989
Pick-to: 5.15
Change-Id: Id82d62d6aca0c0e517d6f8630c51f54739aea95f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-84469
Change-Id: I4991ab7ce8ba8d2522005b1b0a78f7b474c54419
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
This is required to remove the ; from the macro with Qt 6.
Task-number: QTBUG-82978
Change-Id: I92ef02ede041d3965151165a479a1ea0549cc0f9
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-85179
Change-Id: Ib95b1b18ea2d9f0a1f80685302bef4805fcaf5f3
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-73058
Change-Id: Ib8f9dd5a1c44e1fc2487ca75226ed2ee8f7867d4
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 5.15
Task-number: QDS-2278
Change-Id: I74be7066b1bf2a0827a3fe7dca7b46e466ef8c58
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-84319
Change-Id: I7aaae36df79b1a935a3c4d31039cb880405f0d63
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-84469
Change-Id: Ic36741d2bcaec8d5e5dc96638b7122f8ce51bdb2
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Controls][ApplicationWindow] The deprecated overlay
properties and attached API were removed. Use the Overlay attached type
instead.
Task-number: QTBUG-84715
Change-Id: I0781ea55ea502ffe5277385e82492291724d2090
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
| |
Pick-to: 5.15
Change-Id: I7396885688c6091a948f2865ff716e84f7f5195b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Platform][Menu] The deprecated iconName and iconSource
properties were removed. Use the icon property instead.
[ChangeLog][Platform][MenuItem] The deprecated iconName and iconSource
properties were removed. Use the icon property instead.
[ChangeLog][Platform][SystemTrayIcon] The deprecated iconName and
iconSource properties were removed. Use the icon property instead.
Task-number: QTBUG-84715
Change-Id: I91a8ceb1a291b78fc342756de24e18b818a49b4b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|\ |
|
| |\
| | |
| | |
| | | |
Change-Id: I24ff9bec33e0bd8785e3d571212a7506b6501854
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add missing and cleanup existing properties in property editor.
Task-number: QDS-1502
Change-Id: I33259e244d5a4471e01f7fc1845ad05414367eae
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-82253
Change-Id: I93ae7b51b902050020cf7a79510b8325060181c5
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This amends 0d5a43fa8.
Cherry-picked from branch: dev
Change-Id: I68c500ae874c92467b414dbf37eec9d55b3c730f
Reviewed-by: cherrypickbot
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-84434
Change-Id: I2806245870f66b508a4e6afd198efbb865b9a373
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I58ae027a6a913f45f7b3fad020c290c4d75804da
Pick-to: 5.15
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
By syncing the platform menu, we ensure that it passes on the title of
the menu to the native handle if it was dynamically added.
Change-Id: Idd11fa7d9cd3d251e2ed19f99f575f5e2ec5ac1d
Pick-to: 5.15
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When dynamically creating a menu, it will be parented after it has
created the handle the first time around. Therefore it loses the original
handle and does not get a new one when needed. So by calling sync()
before it is set as the sub menu then it can get a handle created if
necessary in time.
Change-Id: Ia39f49f99758802dd19ff1df478b05ac5e403ea8
Pick-to: 5.15
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is getting its own repository as part of the move to the
marketplace.
Task-number: QTBUG-84172
Pick-to: 5.15
Change-Id: I2f963c298d6ef95e0832f95aa1e1ea809f4867a2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When a single key shortcut is used then it does not go through the
usual channels for triggering. Therefore it needs to be registered as a
shortcut so it can be picked up when sent as a Shortcut event.
Pick-to: 5.15
Change-Id: I93a48c633e1051f142b884d78bbca181c778f7b9
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][Platform][MenuItem] Expose MenuItem.icon.* property when
imported as revision 1, which was erroneously not exposed at all.
Task-number: QTBUG-84102
Pick-to: 5.15
Change-Id: I6d400c7d4e222b67c99b6f5a95ac66e0851630f2
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This amends 467aa59a8.
Pick-to: 5.15
Change-Id: If162e6fe6f3087e905457d23248e95ae31726e4d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
No point in pulling in Graphical Effects just for this.
Instead, follow what we did for RectangularGlow in the Material style.
Task-number: QTBUG-78631
Change-Id: Ibe5f9c18ea4dbdca78ac24facbd5786deebb716f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Until we've decided whether to a) document that properties of parent
should not be bound to in delegates or b) fix the warning that results
from doing so after 8c72e634b3b0eacbfdee883bfc34994d3c19ed77,
we can pre-emptively clean up a few places where it happens.
Task-number: QTBUG-81976
Task-number: QTBUG-82393
Task-number: QTBUG-82989
Pick-to: 5.15
Change-Id: I1e610613f6016ec1b9cf9ca33cdfb15d384731a8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I08202c7a18e5a125b419ad81baf9f8b3939bc281
Reviewed-by: Tuukka Turunen <tuukka.turunen@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-82994
Change-Id: Iaf530d2a6f4dc92641d0c10e16e7b931f90646ac
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This amends 0d5a43fa8.
Pick-to: 5.15
Change-Id: I68c500ae874c92467b414dbf37eec9d55b3c730f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I1e2ab9678468d5fa0b4653a6edd5353c5eb5f8a1
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Ie09cfdd17b00e56f3ba8677d25b24417dd4e42f6
|
| |
| |
| |
| |
| | |
Change-Id: I411136bd2b9a277d84a7c68c55bb1c317b6cc9d2
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|