| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
line() and column() are functions to be called, not variables.
Task-number: QTBUG-102862
Change-Id: I0d447f1b3723efbcac7180c5253fd1ac2bd295ad
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 2b64cb61ba4993049efe7b6c2608c90a05fcc22c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This puts all use of system time_t functions in one place, instead of
spreading it out. Its implementation improves on what was formerly
done in V4 Date's offset calculations, while simplifying them and
eliminating most of the #if-ery.
Add four more test-cases to tst_qqmlqt::dateTimeConversion(), based on
issues seen on MinGW, getting the time-zone wrong due to the failure
of localtime_r(); MinGW can use localtime_s, as QLocalTime now does.
Revised tst_qqmllocale::timeZoneUpdated()'s conditions. The
QEXPECT_FAIL()s have stopped triggering, at least on Darwin, and the
issue isn't that Date.timeZoneUpdated() wasn't working, it's that (now
only on Android and Windows) we don't have a way to set the system
time-zone referenced by the system functions that QLocalTime calls to
get time-zone offsets. Setting the TZ environment variable only works
on faithful POSIX implementations.
Fixes: QTBUG-85149
Fixes: QTBUG-95993
Fixes: QTBUG-102971
Change-Id: I7bc983b9fd7167e3bab3db41dbc1c6f4a78665b9
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
(cherry picked from commit dff02466a01caad885b6bd0759cf482342332306)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is not valid QML, and the generated code crashes.
Fixes: QTBUG-104092
Change-Id: If609acc2f2dc84a2e8f7c26d4d1b6c626f337cad
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
(cherry picked from commit 2a4ec96ae00c7372b1827d3872990a47658d6ff5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
We need to generate isList properties for those, so that qmlcachegen and
qmllint can handle them.
Fixes: QTBUG-104129
Change-Id: I7e632279a605694c2fd5f583c8a6dcf9968eb634
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
(cherry picked from commit 8e69558f2f7d44f83779f7e1f60f811dfab0c275)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ensure that the view is set on the relevant attached objects before
QQmlComponent::completeCreate() is called, which would otherwise result
in a TypeError because the view would be set too late.
Fixes: QTBUG-104026
Task-number: QTBUG-98718
Change-Id: Ic65370bd4534e7452f2377ab4d60a74badf02079
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
(cherry picked from commit dbd108a7997f129004bbed523db75d4aa9d0ab6c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make it possible for different tools to supply specialized import
visitor subclasses for import purposes. In particular, qmltc is
interested in doing this as it could seed code generation specific
information into the QQmlJSScope structure of imported documents
Change-Id: I9087484a6e4dee09b4ff1bc291562a1896ea652e
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
(cherry picked from commit 416df0858b506b5f3d16fb709b6f03b8b2d19eb6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This symbolizes the last piece of QmlIR dependency that qmltc has.
We do still have some implicit dependencies on QmlIR, though, but
that should go way once the remaining prototype code's logic is
migrated to QmltcVisitor, QQmlJSScope and friends. This, however,
is not attempted here as the patch itself is rather large
In the process of switching to QQmlJSMetaPropertyBinding, observe
and fix issues in QmltcVisitor and surroundings
Change-Id: I752b68a7f57baf354de16dc0bb466a3f693a4e49
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
(cherry picked from commit bf7aaeda87d409253f8d114273cc71f4244973af)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Looking at this class without IDEs is slowly becoming a pure pain. Make
it a little better by grouping "main" members together and moving them
Change-Id: I3a4451a89d66ac0dbd3572dbae1cba9a628dbf60
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
(cherry picked from commit be541df34b1f4fd0f8b1e42fea5f5c15660ec955)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
It also handles translations for a while now, a generic name is better
Change-Id: I469eb141d877e822a17a4c4e66a00039b4558442
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
(cherry picked from commit f912d7654faf786e1f5cf5dea218c83e97b2cbcc)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The logic is misbehaving on multiple occasions. For instance,
same-named signal handlers in different scopes and script bindings
inside array scopes were wrongly handled. Fix that by revising
the mechanism of inner function computation
As a drive by, fix parseLiteralOrScriptBinding() to distinguish
translation bindings from script bindings (they are vitally
different now)
Extend the script calculation test in tst_qqmljsscope to cover
the findings
Change-Id: Ic4cf0a4539f0d714a416b61f4635eb6494e89922
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
(cherry picked from commit 99178a947c0c73ce400d2dce1c7da2c1b624a634)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: Ie6a3eb4b59fb586ad5c48f25d5fe04fcab28bec9
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit 76ba0738bd346ed76b9bfa5fafb409f18a187e2b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will make it possible for the image to be scaled into the given
size, subsequently if this is set then it will make the DPR for the
image be 1.0.
[ChangeLog][QtQuick][Canvas] Canvas.save() now takes an optional size
argument, which sets the size of the image to save, and sets DPR=1.
Change-Id: I25f2d65a528282a26f46ef7dd1c62894307360cc
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When TreeView is interactive, it should expand
tree nodes on mouse release (to not interfere with flicking).
Otherwise, if interactive is false, it should expand already
on mouse press (equal to how e.g Widgets work).
The current if-test that implemented this logic was
broken, and would fail when TreeView was not interactive.
Change-Id: I801a694b2dfd03875893bb2bda5c8ef3883dec75
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Selecting cells in a table is quite different from selecting
cells in a tree. The reason is that in a table, all model
items share the same model parent. And ItemSelectionModel
is optimized for this case, meaning that you can select
an area of cells by simply specifying the top-left index,
and the bottom-right index, as long as the cells
in-between all have the same parent.
A tree is not structured this way. Instead it's structured
as a hierarchy of parent-child relationships, where the
requirement that all model items should have the same parent
obviously will not hold.
Because of this, the implementation in TreeView that lets
the user select cells, needs to be quite different from the
optimized version in TableView. Instead, it basically needs to
divide the selected area into individual rows, and sometimes
indices, that can be selected, or deselected, one-by-one.
This patch overrides the 'updateSelection()' function for
QQuickTreeView, and rewrites the logic to take all this into
account. This will make selecting cells work for TreeView.
Change-Id: I2157efcd0e83b5a0342f6af4018323b64d31f6f3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The isInterrupted flag is just that: a flag, so it doesn't require
acquire/release semantics when loading/storing.
Use relaxed loads and stores instead.
Change-Id: I6d733a6bebcfc7f2b786265fc28f9ba7e25bb1c7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Atomic counters are the prime examples for when relaxed atomic loads
suffice, so don't use the fully-ordered pre-increment operator, but
fetch_add(1, relaxed).
Add Q_CONSTINIT and wrap in a lambda as a drive-by.
The Q_CONSTINIT will be in dev only; it doesn't exist in 6.3.
Pick-to: 6.3 6.2
Change-Id: I0e40bf68ba61e4cfd4094254466e41ae5d659b02
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reach *this through d->q_func() instead, so it doesn't need to be captured.
Amends de1672713ae413b563eefec37d1aad155d78a1f8.
An alternative would be to use [&], but the function is long and I was
too lazy to review whether capture-by-reference would have the same
effect as capture-by-value.
Change-Id: If595e9b5c9c64e5a807dc999c3f0c228ff9f2cce
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Found by UBSAN:
qqmljsimporter_p.h:122:12: runtime error: load of value 4, which is not a valid value for type 'bool'
qqmljsimporter.cpp:412:20: runtime error: load of value 4, which is not a valid value for type 'bool'
Fix by explicitly initializing the bools in Import. This is what
adjacent classes do, and in line what the users apparently expect.
Amends 687609f2f3a98ade4b8e074615c3d1db1228fce0.
Change-Id: I143be1a8d239bbe8c6f00be554b5b678238de91f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Use the same assets as for the scroll indicator, as there is typically
no scrollbar on iOS, but we do support adding scrollbars to ScrollView
in our controls.
Change-Id: Icdf426d394548ac617b202ceed063a78f41a0225
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
| |
Removing the selection after a pointer click is normally done
by TableView. But since TreeViewDelegate accepts mouse
events, it needs to do this explicitly.
Change-Id: Id0d6879f5b0e014aa05f50487f89dd0a08bb21f5
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
Clarify that you need to assign an ItemSelectionModel to
TableView in order for other parts of the API to work as expected.
Change-Id: Ib0ded94ef157be13cf3ab022aadba9f2a67f9602
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's only ever one of them, and accessing objectName() from a
different than the owning thread is UB (data race).
The default-constructed QString() is needed, cf. QTBUG-103986.
This is a hotfix for QTBUG-102403, which ran afoul of the guards added
in qtbase/3f32dcd1ddcbe04c77ccd83e2eaa566d7212e732 to fix QTBUG-99775.
Task-number: QTBUG-102403
Pick-to: 6.3 6.3.1 6.2
Change-Id: Idf07b1119ec393e7fd179e8b545cfeb70f5916ec
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is no reason why tableview should scroll a cell
to become completely visible when the user taps on it.
This is convenient when navigating with keys, but not
with mouse. If needed, the app can listen to
currentIndex changes, and call postitionViewAtCell()
explicitly.
Change-Id: I5b34c87e2befe718d0f37b5993ecf30efd6a7f20
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
| |
Change-Id: I4e0e8f4a0c0dd29a2dd0303f87127d9c91073584
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Removes redundant calls to ensureLayoutItemsUpdated()
Add childItemsChanged(), which will keep count and currentIndex
properties updated, and emitting the corresponding signals for those
properties whenever children are added or removed.
Notice that these two properties will be updated immediately (not until
we get a updatePolish() call).
Only size hints and rearranges might be scheduled later until a
updatePolish() call.
This also makes the implementation of updateLayoutItems() empty,
basically because there is no shadow structure for holding the list of
layout items in this layout, so to keep that list of layout items
"updated" is therefore not needed.
Change-Id: Ibf8232ea1ad41a3d96b25bd2ea6aab6b5018e3bb
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because Qt has a pattern that events arrive pre-accepted, most
event-handling functions in QQuickItem call ignore(), and it's up to
subclasses to override those functions to allow the event to remain
accepted, if they choose to handle it. So it was odd that
QQuickItem::mouseDoubleClickEvent() did not call ignore().
Pointer handlers don't handle MouseButtonDblClick events, so
QQuickDeliveryAgent does not send those events to handlers. Since
0e3adb65b0e9c44fa6e202630ff57c907ecf0820 though, we disallowed delivery
of double-click events to Items after any handler has already accepted
the single point in a mouse event. This caused some inconsistencies; in
fact the allowDoubleClick variable was getting thrashed a lot, making it
hard to reason about the logic. Items that contained handlers behaved
differently than items that did not. One scenario being fixed here was
absurd: a parent Rectangle (which never handles pointer events on its
own) got an implicit grab in deliverMatchingPointsToItem() and thus
stole the grab from a handler (!), during delivery of a
MouseButtonDblClick (!!), just because the event happened to remain
accepted, even though no item or handler reacted to it directly.
The Rectangle needs to ignore() the event to avoid that, just as all
Items now do by default. Then it turns out that we don't need a stateful
allowDoubleClick anymore: the logic is more consistent without it.
Items can handle double-clicks, but they don't by default, as with any
other pointer event. Pointer handlers don't handle MouseButtonDblClick
because they detect double-clicks in their own way, and that's enforced
by simply not sending those events to handlers. Passive grabs should be
retained regardless of the interloper MouseButtonDblClick event: items
that handle it cannot cancel a handler's passive grab. They can steal a
handler's exclusive grab, but that should be prevented in other ways,
such as ignoring the event so that there is no accidental implicit grab.
Reverts 0e3adb65b0e9c44fa6e202630ff57c907ecf0820. DeliveryAgent no longer
calls clearPassiveGrabbers() directly as QQuickWindow did then; and it
also no longer delivers MouseButtonDblClick the same as a press event.
QSinglePointEvent::isBeginEvent() returns false in that case, so
deliverPressOrReleaseEvent() is not called.
A couple of existing tests now need to avoid generating double-clicks,
but they were not trying to test that anyway. New tests are added (test
coverage of double-clicks has been unfortunately sparse so far).
Pick-to: 6.3
Fixes: QTBUG-102625
Change-Id: If74baff68ffc46b8b403d37f4e10ddf6b159d40c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch will add a 'selectionBehavior' property to
TableView. It will let the developer specify if
the user should be able to select individual cells,
rows, columns, or if selections should be disabled.
This is equal to the selectionBehavior enum in QAbstractItemView.
[ChangeLog][Quick][TableView] A new property 'selectionBehavior'
has been added that specifies if the user should be able to
select rows, columns, or cells.
Change-Id: Ia8855ae032bb02d278b284ed35049d9237523139
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
If the element type is unknown the list type is also unknown. This will
happen if we cannot resolve the type.
Fixes: QTBUG-103920
Change-Id: If1b05d99a1e64961981b5adb3974a51c11e776d2
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
In many cases we need to also check base an extension types since
we don't always have direct inheritance
(i.e. very common with QtQuick.Controls)
Change-Id: I66307b7d0081d49611a9e61847e4363d5819bf82
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Despite my best efforts in teaching GCC 12 to understand that
groupCount is always <= MaxGroupCount, it continued to issue these
warnings:
In member function ‘void QQmlListCompositor::iterator::incrementIndexes(int, uint)’,
inlined from ‘void QQmlListCompositor::iterator::incrementIndexes(int)’ at qtdeclarative/src/qmlmodels/qqmllistcompositor_p.h:138:65,
inlined from ‘void QQmlListCompositor::move(Group, int, Group, int, int, Group, QVector<Remove>*, QVector<Insert>*)’ at qtdeclarative/src/qmlmodels/qqmllistcompositor.cpp:852:40:
qtdeclarative/src/qmlmodels/qqmllistcompositor_p.h:336:20: error: array subscript 28 is above array bounds of ‘int [11]’ [-Werror=array-bounds]
336 | index[i] += difference;
| ~~~~~~~^
qtdeclarative/src/qmlmodels/qqmllistcompositor_p.h: In member function ‘void QQmlListCompositor::move(Group, int, Group, int, int, Group, QVector<Remove>*, QVector<Insert>*)’:
qtdeclarative/src/qmlmodels/qqmllistcompositor_p.h:154:13: note: while referencing ‘QQmlListCompositor::iterator::index’
154 | int index[MaximumGroupCount] = { 0 };
| ^~~~~
In member function ‘void QQmlListCompositor::iterator::incrementIndexes(int, uint)’,
inlined from ‘void QQmlListCompositor::iterator::incrementIndexes(int)’ at qtdeclarative/src/qmlmodels/qqmllistcompositor_p.h:138:65,
inlined from ‘void QQmlListCompositor::move(Group, int, Group, int, int, Group, QVector<Remove>*, QVector<Insert>*)’ at qtdeclarative/src/qmlmodels/qqmllistcompositor.cpp:852:40:
qtdeclarative/src/qmlmodels/qqmllistcompositor_p.h:336:20: error: array subscript 28 is above array bounds of ‘int [11]’ [-Werror=array-bounds]
336 | index[i] += difference;
| ~~~~~~~^
qtdeclarative/src/qmlmodels/qqmllistcompositor_p.h: In member function ‘void QQmlListCompositor::move(Group, int, Group, int, int, Group, QVector<Remove>*, QVector<Insert>*)’:
qtdeclarative/src/qmlmodels/qqmllistcompositor_p.h:154:13: note: while referencing ‘QQmlListCompositor::iterator::index’
154 | int index[MaximumGroupCount] = { 0 };
| ^~~~~
cc1plus: all warnings being treated as errors
Therefore, I see no other solution than to suppress the warning the
hard way.
Pick-to: 6.3 6.2 5.15
Fixes: QTBUG-103924
Change-Id: Ic46009daa35357c6e6bb0fd1c16d020e360b7525
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We can get into situations when binding creation is problematic
due to the relevant scopes being yet unresolved. In particular,
this happens when processing attached/group properties script
bindings
Avoid having this situation by postponing the actual binding
setting until after the relavant scopes are resolved (mainly,
the binding owner). However, do relevant AST order dependent
operations beforehand to avoid accidental errors
This commit amends 25098b7a4fdb8920874a817956f659e6393548d2
Fixes: QTBUG-103897
Change-Id: I671955dbe321d03e5f1ab9891cc79dc0a936deda
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Group scopes may be value types so they require access semantics
different from a default value
Ordinary scopes and attached scopes seem unaffected, only groups
are thus covered with an extra logic
Change-Id: Ia9012548a602ca7ca07296491d27a295f4455f91
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Whenever working with properties (reading, writing, aliasing, etc.)
of the type that has extensions, prefer the same-named properties
from extension objects over type-owned properties (this is the internal
QML mechanism)
To achieve that, we need to query the extension object:
* for Q_GADGETs use a dummy model of assuming we can cast the object
to the extension type and use that
* for Q_OBJECTs use a qmlExtendedObject() with additional logic of
figuring out which extension should be picked in each specific case
Create QQmlProxyMetaObject via a custom dynamic meta object API for
qmltc-compiled objects that are derived from base types with
extensions
Task-number: QTBUG-91956
Change-Id: I5e783768ae2abdb9dddf894de7e79960244352bd
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This is de-facto how it always was before
ff0b9ec6bf817f741e3c9fefbfcd55592e9b2542. As we plan to revert back to
the "original" behavior, document the FINALity of the properties so that
users know how it behaves (and we could not be held responsible for this
mess)
Change-Id: I4afed215fd66875821b7ce8d824b81782388324b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows setting an initially selected file.
[ChangeLog][QtQuickDialogs] FileDialog's selectedFile property
can now be set to an initially selected file.
Fixes: QTBUG-101975
Pick-to: 6.3
Change-Id: I399f9379e1ac54917edbc31f9029d5522a914340
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
| |
Save the state with QDebugStateSaver.
Pick-to: 6.2 6.3
Change-Id: Ie25f92dd72e480f5976a4230409ebea29635ef8f
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Ensure that items declared before and after the control itself do not
cause heap-use-after-frees due to deletion order.
Task-number: QTBUG-100396
Pick-to: 6.2 6.3
Change-Id: I3989bf1b9fc64b4ec86f241de2cb8bcd05c2f89d
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a qIsPolishScheduled(QQuickWindow *) overload of
qIsPolishScheduled(QQuickItem *) (added in
40d6072bc8a4df0fe1a16025fe30fe653463a446) and deprecates
qWaitForItemPolished() (added in
7a3cad0619662b992154e075ec6b840bfc8a46a7) in favor of qWaitForPolish(),
which has QQuickItem* and QQuickWindow* overloads.
The existing functions that take QQuickItem are useful, but testing
Qt Quick applications can be made even easier by allowing users to
check if a window has any items that need to be polished. This
information is already present (in QQuickWindowPrivate::itemsToPolish),
so it's very efficient to check for.
This is especially useful now that Qt Quick Layouts using polishing for
their layouting, for example, as it's no longer necessary to find
individual polishable items in complex hierarchies before proceeding
to interact with child items.
[ChangeLog][QtQuickTest][QQuickTest] Added
QQuickTest::qIsPolishScheduled(QQuickWindow *) and
QQuickTest::qWaitForPolish(QQuickWindow *) functions for verifying that
updatePolish() was called on one or more items managed by a window.
[ChangeLog][QtQuickTest][QQuickTest] Deprecated
QQuickTest::qWaitForItemPolished(QQuickItem *). Use the new
QQuickTest::qWaitForPolish(QQuickItem *) function instead.
Fixes: QTBUG-93757
Change-Id: I95b6e051b3c9fd2fa93604f4d9ccda486bb29f9d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As we can store sequence types in QJSValue, we should be able to
retrieve them, too.
Move the declaration of the QV4::Sequence struct into a header to make
it less of a hassle to identify sequences.
Change-Id: I3e45bfe193c669107f90cd6c502765c0c9f60fb0
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This way compilers will hopefully not complain about the use of global
constructors anymore. It's clear now that we want a separate
QQmlDebuggingEnabler for each CU.
Change-Id: Ief8e748a87612c04a8ca9a8535f10d905675b918
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The non-default ctors tried to call m_data.set(), where m_data
uninitialized.
Says GCC 12:
In member function ‘QSpecialIntegerAccessor<S, pos, width, T>& QSpecialIntegerAccessor<S, pos, width, T>::operator=(Type) [with S = QLittleEndianStorageType<unsigned int>; int pos = 0; int width = 5; T = unsigned int]’,
inlined from ‘void QSpecialIntegerBitfieldUnion<S, Accessors>::set(typename A::Type) [with A = QSpecialIntegerAccessor<QLittleEndianStorageType<unsigned int>, 0, 5, unsigned int>; S = QLittleEndianStorageType<unsigned int>; Accessors = {QSpecialIntegerAccessor<QLittleEndianStorageType<unsigned int>, 0, 5, unsigned int>, QSpecialIntegerAccessor<QLittleEndianStorageType<unsigned int>, 5, 27, unsigned int>}]’ at qtbase/src/corelib/global/qendian_p.h:214:21,
inlined from ‘QV4::CompiledData::RegExp::RegExp(quint32, quint32)’ at qtdeclarative/src/qml/common/qv4compileddata_p.h:187:31,
inlined from ‘int QV4::Compiler::JSUnitGenerator::registerRegExp(QQmlJS::AST::RegExpLiteral*)’ at qtdeclarative/src/qml/compiler/qv4compiler.cpp:198:34:
qtbase/src/corelib/global/qendian_p.h:179:40: error: ‘<unnamed>.QV4::CompiledData::RegExp::m_data.QSpecialIntegerBitfieldUnion<QLittleEndianStorageType<unsigned int>, QSpecialIntegerAccessor<QLittleEndianStorageType<unsigned int>, 0, 5, unsigned int>, QSpecialIntegerAccessor<QLittleEndianStorageType<unsigned int>, 5, 27, unsigned int> >::storage.QSpecialIntegerStorage<QLittleEndianStorageType<unsigned int> >::val’ is used uninitialized [-Werror=uninitialized]
179 | UnsignedType i = S::fromSpecial(storage->val);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~
qtdeclarative/src/qml/compiler/qv4compiler.cpp: In member function ‘int QV4::Compiler::JSUnitGenerator::registerRegExp(QQmlJS::AST::RegExpLiteral*)’:
qtdeclarative/src/qml/compiler/qv4compiler.cpp:198:90: note: ‘<anonymous>’ declared here
198 | regexps.append(CompiledData::RegExp(flags, registerString(regexp->pattern.toString())));
| ^
Fix by calling the default ctor (which initialized m_data) before
calling m_data.set().
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-103924
Change-Id: I44ff404e5509e24601893e539639f213defdc80d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.3 6.2 5.15
Change-Id: I5fa12286ac594bafff89a56358bdda4051733e05
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
| |
Change-Id: I450c81c884a012aad8188912875ace3f160f1a1e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
| |
Change-Id: Ice980682e8221f8a83754e2978e48010fbb0b8a3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I1d5b76b9c420302c1551622635842921ca047ae8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I573fe81d393debe0bf4ee139d3069a13e1c965c3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: Ie1eb22b99402c408fc0c16eeddd500020d889f0d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-99354
Change-Id: Ib87d3a3a1b234346f61c7d78efcb1b61a8e705e9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
| |
Amends 1df2cf6bad7207f16ddca17344cc1324e50f287e
Change-Id: I6fd6504bf42a37f8bed2d4d8f200ddfa657d6a33
Reviewed-by: JiDe Zhang <zhangjide@uniontech.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
| |
Amends 1df2cf6bad7207f16ddca17344cc1324e50f287e
Change-Id: Ica7142c5efa29f222a828bd672d60503f54f3822
Reviewed-by: JiDe Zhang <zhangjide@uniontech.com>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|