Make it easier for users to discover the other types of
validators by linking to various pages.
Change-Id: Ifb15b9629ec81bdc7d3e4da4811f2b591a611d23
Fixes: QTBUG-101402
Pick-to: 6.2 6.3
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
C++20 deprecated these. We don't seem to -Wno-error that warning, but
the fix is simple, so I guess we don't have to.
Pick-to: 6.3 6.2
Change-Id: I3774295b0985369ab531e9f7a2a0c18983180554
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
[ChangeLog][Controls][AbstractButton] doubleClicked() is now also
emitted for touch events.
Fixes: QTBUG-82146
Change-Id: Ie1e24d291bd4b592edd91fc762da8636e08698df
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
In order to achieve this, it separates out QQuickSpinButton into a
separate file (and renames it since it's not only purposed for SpinBox
anymore). This allows it to be also used by QQuickScrollBar.
Fixes: QTBUG-88115
Pick-to: 6.0
Change-Id: I2dea42b29750b7bc619031f40a43717fc10c177b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
This is apparently no longer necessary.
Pick-to: 5.15
Change-Id: I0f45a84ced5118d248ffab4e745c4e2f2ce5738f
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
When the inputted value is out of range but it would be fixed to the
previous value then it would not update the text correctly to show the
corrected value. This ensures that it is updated as appropriate.
Before it would check if the value had actually changed after it had
been fixed to the corrected value. So if it was corrected to the
original value then it would not see it as having changed. Additionally
the displayText also has the original text before the change, so we
have to force through an update to ensure the contentItem's text is
updated too.
Change-Id: Ic38787d0803ab59cd998f4e2871c613f1642e764
Pick-to: 5.15
Fixes: QTBUG-85719
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
The existing implementation was removed in order to reduce massive code
duplication and simplify color resolving process. Unit tests were fixed
accordingly.
See related changes in the qtdeclarative module for the further details.
[ChangeLog][General] the palette API is a part of
QQuickItem now.
Change-Id: Ic94ab4632e626c11d9b26f035e2a8a119c9088ef
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
moc now stores the QMetaType of properties as a result of
46f407126ef3e94d59254012cdc34d6a4ad2faf2 in qtbase, which requires
full type information about the property type inside the moc generated
source file.
Many of the property types were forward-declared, and this resulted
in build errors like
"invalid application of 'sizeof' to an incomplete type 'QQuickTransition'"
Make sure to explicitly include the moc files inside the counterpart
.cpp files, so that full information is available from included headers.
Fixes: QTBUG-82774
Change-Id: I5971713864992398daed72ce9f6ab866668cf8e1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Up until this patch, we've always deleted "old" items when a new one is
assigned. For example, the style's implementation of contentItem will
be destroyed here as it is not accessible by the user and is no longer
used:
Button {
contentItem: Item { /* ... */ }
}
This was especially important before the introduction of deferred
execution, as the "default" items would always be created, regardless
of whether the user had overridden it with one of their own items.
By deleting the old items, we free unused resources that would
otherwise persist until application shutdown (calling gc() does not
result in the items being garbage-collected, from my testing).
Although this has largely worked without issues, deleting objects
that weren't created by us in C++ is not supported. User-assigned items
can be created in QML (with JavaScriptOwnership) or C++ (with
CppOwnership), and it is up to the user and/or the QML engine to
manage the lifetime of these items.
After the introduction of deferred execution, it became possible to
skip creation of the default items altogether, meaning that there was
nothing to delete when assigning a new, user-specified item. This
requires that no ids are used in these items, as doing so prevents
deferred execution. Assuming that users avoid using ids in their items,
there should be no unused items that live unnecessarily until
application shutdown. The remaining cases where items do not get
destroyed when they should result from the following:
- Imperative assignments (e.g. assigning an item to a Button's
contentItem in Component.onCompleted). We already encourage
declarative bindings rather than imperative assignments.
- Using ids in items.
Given that these are use cases that we will advise against in the
documentation, it's an acceptable compromise.
[ChangeLog][Important Behavior Changes] Old delegate items (background,
contentItem, etc.) are no longer destroyed, as they are technically
owned by user code. Instead, they are hidden, unparented from the
control (QQuickItem parent, not QObject), and Accessible.ignored is
set to true. This prevents them from being unintentionally visible and
interfering with the accessibility tree when a new delegate item is
set.
Change-Id: I56c39a73dfee989dbe8f8b8bb33aaa187750fdb7
Task-number: QTBUG-72085
Fixes: QTBUG-70144
Fixes: QTBUG-75605
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
The warnings were about:
- Undocumented function parameters
- Instances of \instantiates that us an internal class
- A few link issues
Task-number: QTBUG-79827
Change-Id: I60094279c7da6bc446b5c63b7b4924b71cee4672
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Now that Controls 1 is deprecated, it's ideal to use
"Qt Quick Controls" instead of "Qt Quick Controls 2".
Task-number: QTBUG-70333
Change-Id: Ie745db4b61071ddb5e06150d4e739cda74c59f41
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
We also need to update the hovered state of each indicator when
the mouse is moved while pressed, not just when we get hover move
events.
Change-Id: I6fa71344fd540f648683958e5804ae735523e72d
Fixes: QTBUG-74688
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Surround the function with parentheses as suggested:
QWARN : tst_Snippets::verify(qtquickcontrols2-spinbox-custom) Warning: Using function expressions as statements in scripts is not compliant with the ECMAScript specification:
"function(value, locale) { return Number(value).toLocaleString(locale, ..."
This will throw a syntax error in Qt 5.12. If you want a function expression, surround it by parentheses.
Change-Id: I39df9af9b3dc62ffaf6fcba071c04c8933698c07
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
We don't have the conflicting virtual getters anymore.
Change-Id: Ia20bfa0a0b1aa67c35a23270eb0241018f8e0ada
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
The code is more readable and less error-prone (this patch caught a few
uninitialized members) when the members are initialized in the same
place where they are declared. In many cases, empty default destructors
can be entirely removed, and we get faster implicitly declared inline
default constructors defined by the compiler.
Change-Id: I14c5448afc901f9b2ac5965f28c1c26c0b646c08
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Sync the behavior with Qt Widgets. Don't propagate wheel events when
reaching the end. The behavior was not nice, that a ScrollView
underneath started suddenly moving whilst these input controls had
input focus.
Task-number: QTBUG-66044
Change-Id: I1b9c7f005652041cd82c77d4a1ca1a01d7d536e9
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Replace the old enums that were originally copied from QPlatformTheme,
including irrelevant entries for DockWidget, MdiSubWindow, MessageBox,
with a unified enum that will be matched to cover everything needed
for theming fonts and palettes for Qt Quick Controls 2.
Task-number: QTBUG-67062
Change-Id: Ia99d092f28c00210c0c7f24d4241eb5a5d9ceb5b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
SpinBox, Switch, and Tumbler were previously not available in
QPlatformTheme, but now we have our own enums so we can add them.
Task-number: QTBUG-67062
Change-Id: Ie99a49b464fbbd25051181b75d721f537b8e3a68
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
This will list each control that is a focus scope, and have
some relevant information about focus in Qt Quick Controls 2.
Change-Id: I3126452bf73f7d7730d0522d616d61ad0da0dd74
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
QPlatformTheme is too limited for our theming purposes. We need support
for separate palettes (and later, icon colors) in dark and light themes.
Also, the fact that Qt Quick Controls 2 injects a platform proxy theme
does have undesired side effects in Qt Widgets and Qt Quick Controls 1.
Therefore, we start separating QPlatformTheme and QQuickTheme. The first
step is to eliminate some direct QPlatformTheme access in QQuickControl
and route it via QQuickTheme instead.
Task-number: QTBUG-51921
Change-Id: I055471a75ed6f26968796496efd1892975447c98
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
qtquickcontrols2-automotive.qdoc:28: (qdoc) warning: EXAMPLE PATH DOES NOT EXIST: automotive
qtquickcontrols2-musicplayer.qdoc:28: (qdoc) warning: EXAMPLE PATH DOES NOT EXIST: musicplayer
qquickspinbox.cpp:814: (qdoc) warning: Can't link to 'textFromValue()'
Change-Id: Iec6fd398cca98b514a76fe9f2f30c79a59b81457
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
If the QML engine refuses to defer execution of a delegate (it contains
an ID), we must make sure to cancel any pending deferred execution for
the same delegate. Otherwise, we may end up overriding a custom (non-
deferred) delegate with a default (deferred) delegate.
This patch adds a new test style "identified" to tst_customization.
This style contains delegates with IDs so we can test the behavior with
IDs in base styles. Furthermore, overriding delegates is now tested
in various ways (with and without IDs in the base and custom styles) in
a separate test method. This is done by generating QML code to override
delegates with dummy Item instances with appropriate IDs and names.
Task-number: QTBUG-65341
Change-Id: Ie6dca287cb74672004d9d8f599760b9d32c3a380
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Tumbler is excluded because test_customContentItemAtConstruction()
starts failing if deferred execution is enabled for the content item.
Task-number: QTBUG-50992
Change-Id: I11022c3c380311396453cf6229e068e4aae2d82a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
tst_controls::SpinBox::test_initialFocus() caught an issue that focus
was not transferred as expected when the creation of the content item
was deferred.
Task-number: QTBUG-50992
Change-Id: I6b9f5684ab7141fa4ebfe4c7fe3e32528553b96d
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
We've come to realize that even though it's tempting to group similar
properties together, organizing the API so that revisions are grouped
together makes future maintenance more pleasant. It's a lot easier to
to see what was added and when.
Change-Id: I47ba7725260f2c259048848cc2a9b17bce2f01c7
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Allows styles to create a simple binding to display the textual value
instead of calling the textFromValue() JS-function. Furthermore, this
allows us to do the text<->value conversion in C++ using QLocale by
default, unless custom textFromValue and/or valueFromText JS-functions
are provided.
Before:
running: qmlbench/benchmarks/auto/creation/quick.controls2/delegates_spinbox.qml
100 frames
100 frames
99 frames
Average: 99.6667 frames; using samples; MedianAll=100; StdDev=0.57735, CoV=0.00579281
After:
running: qmlbench/benchmarks/auto/creation/quick.controls2/delegates_spinbox.qml
152 frames
150 frames
151 frames
Average: 151 frames; using samples; MedianAll=151; StdDev=1, CoV=0.00662252
Change-Id: I66a5ebaf685d2c30613b58099724e6e7bbe00504
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Move the emit inside QQuickSpinBoxPrivate::setValue() to avoid having
to store and compare the old value in so many places where the value
changes are interactive (mouse, keys, wheel).
Task-number: QTBUG-61426
Change-Id: I7f42fc09cafc403eb55a9748e3a93c2e9bf6df62
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
For the earlier versions, this was already done in the 5.9 branch.
Change-Id: I3fd3840aca0f5aadd7aa77eba358ac0f6c94f942
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>