| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a Pane does not have an explicit content size set, we pick up the
content size from the implicit content size, so the two are in sync.
However, if an explicit content size is set, we were failing to reflect
this through the control's implicit content size, which means that any
client of Pane can not treat it as a plain Control, reading its implicit
content size to do layouting.
We now keep the two values in sync, even when an explicit content size
has been set.
As a drive-by this also fixed a bug in QQuickPane::resetContentWidth()
where we would unset hasContentHeight instead of hasContentWidth.
Pick-to: 6.9
Change-Id: If24b15bef51d3841932d2bf6d645087ccca677a9
Reviewed-by: Mitch Curtis <[email protected]>
Reviewed-by: Richard Moe Gustavsen <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
Now that we are not relying on itemTransformChanged for our own
updates of safe area margins we can apply the logic to defer the
update to itemGeometryChanged more broadly.
Pick-to: 6.9
Change-Id: Ibb7e19c5b8aeaf04e4e5803c50cefae612729b04
Reviewed-by: Mitch Curtis <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We listen to transform changes on the item we're attached to, but
also to geometry changes on any item that affects the transform
of the attached item. During destruction of the safe area the
geometry change items may still be alive, which would end up
with a crash if they try to notify the dead safe area of changes.
We now track the items we listen to, and remove ourselves before
the safe area is destroyed.
Pick-to: 6.9
Change-Id: I9cc5197b9dabcbb40a23c6094c7989fe480b349d
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the QWindow's safe area margins change, or additional margins are
set on a QQuickSafeArea, we need to propagate this to any affected
safe areas. Doing it via itemTransformChanged worked, because we were
already hooking into that to detect when an item is moved, but was
making it hard to reason about whether the transform change could be
deferred until the corresponding geometry change.
We now use an explicit function to update safe areas, which also
works in paint order, as opposed to itemTransformChanged which
delivers in reverse paint order (a bug, that will hopefully be fixed).
Pick-to: 6.9
Change-Id: If2e033dfa0306ff5980b43e9a1e5721d7ec0e3da
Reviewed-by: Mitch Curtis <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
During application startup the size and position of an item has not
yet been determined, which means that its safe areas will be wrong,
so we defer computation of the first safe area update until the item
is completed.
Pick-to: 6.9
Change-Id: Icc4dd75684a732eaf2a3de3eb0e622318749a197
Reviewed-by: Mitch Curtis <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implicitly constructing a value from a ReturnedValue muddies the
responsibility for ensuring that the gc can find the object.
With this change, we disable the implicit conversion. The expectation
for lifetime management is now:
- If a ReturnedValue is stored on the C++ stack, it must be put into a
QV4::Scoped class (or there should be a comment why not doing so is
safe). Passing a ReturnedValue to a function should no longer be
possible, unless the function takes a ReturnedValue, in which case the
expectation is that it stores the value in a place where it can be
seen by the gc, before doing anything that could trigger a gc run.
Using Value::fromReturnedValue can still be used to pass a Value on,
but in that case, the expectation is that there is a comment which
explains why this is safe.
- If a QV4::Value is obtained from a function call, it ought to be
stored in a ScopedValue, too. We currently can't enforce this easily,
so this should be checked during code review. A possible way forward
would be to disallow returning Values, but that would be a larger
change, and is deferred to the future.
- If a functions has a QV4::Value parameter, it's the callers'
responsibilty to ensure that the gc can find it.
Pick-to: 6.9 6.8 6.5
Fixes: QTBUG-131961
Change-Id: Iea055589d35a5f1ac36fe376d4389eb81de87961
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
A value storing a primitive like undefined is completely safe. Having a
helper method to create it eases porting (usafe) code which directly
accepted QV4::ReturnedValue as a parameter to a variant taking a
QV4::Value.
Pick-to: 6.9 6.8 6.5
Task-number: QTBUG-131961
Change-Id: Ib1c27d45706faa570edc175245e9f34b4ceabcc8
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
In general, methods should not take a ReturnedValue. However, set leads
directly to a write through the WriteBarrier, so it's safe. Adding the
overload now helps to prepare for next commit which removes the implicit
conversion from ReturnedVaule to Value.
Pick-to: 6.9 6.8 6.5
Task-number: QTBUG-131961
Change-Id: I3fe2fbfbc1893190840bc8e48637eec3ae43ce46
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't have a Qt::FocusReason enumerator value that represents the
focus reason being arrow keys, so for cases that an item gains focus
due to arrow-key navigating, the focus reason will be OtherFocusReason.
The FluentWinUI3 style only draws the focus frame when the focus
reason was Tab/Backtab to avoid drawing it for focus reasons other
than keyboard focus, but it should draw it for when focus shifts due
to arrow keys too, so include Qt::OtherFocusReasons in the conditions.
Also, reset the focus frame when we can't find a focus object AND
when the focus reason is none of the above in order to avoid showing
the frame around an item that lost focus because of another reason.
Fixes: QTBUG-130328
Pick-to: 6.8 6.9
Change-Id: I6cbc13124a0e672bf453896bafd0ba1d8656449e
Reviewed-by: Mitch Curtis <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we didn't find a new target focus item we would destroy the focus
frame object and recreate it the next time a new valid focus item is
found. This can be expensive due to cleanup and reallocation calls,
and it can also lead to a crash during parent destruction because the
focus frame gets deleted as part of the parent item's destruction,
potentially triggering changes in the focus object that result in
another attempted deletion of the focus frame.
Instead, in case of an invalid new focus item, we should just set the
focus frame's target item to null when calling moveToItem. This
will handle that case by making the frame invisible and setting its
parent to null.
Pick-to: 6.9 6.8
Change-Id: Icf46af0ce3c79bab09343a2262688fb33ed8a4d9
Reviewed-by: Richard Moe Gustavsen <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
Now when we call setTransparentForPositioner(true) on the focus frame,
there is no need to keep the root item with size(0,0). The only purpose
of having that item was so that layouts would ignore the focus frame.
Pick-to: 6.8 6.5 6.9
Change-Id: I6224dced83c054b573eb682997e238a0cf1f4776
Reviewed-by: Jan Arve Sæther <[email protected]>
Reviewed-by: Doris Verria <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Rely on the implicit construction, and allow for an optimized
QPainter::drawBrush(QColor) to not create a brush at all.
Pick-to: 6.9 6.8
Change-Id: I9a18c72f85afb1383ce9f2056830f02330cf2897
Reviewed-by: Eirik Aavitsland <[email protected]>
|
|
|
|
|
|
|
| |
`validKeyName` just uses the input parameter, so it can be `static`.
Change-Id: Ib54949b04c490599db87055f4e6b458a274479f8
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Instead of passing them around everywhere, use the ones we statically
know and only validate them when creating a new engine.
Task-number: QTBUG-131721
Change-Id: I7fb93d15eb6e4194c46249727bcf7a48f5dce730
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Make temporaries const and remove dead code.
Coverity-Id: 470750
Coverity-Id: 470763
Change-Id: I04552ecd9a908de0f70241c5c93bba6912063113
Reviewed-by: Semih Yavuz <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't have to keep the thread object around at all while the thread
is not running. Just deleting and re-creating it tremendously simplifies
things. Furthermore, we can now create it on demand the first time it's
needed. This way we gain the ability to determine whether it's still
safe to initialize values the thread will later read without locking.
Task-number: QTBUG-131721
Change-Id: I702c563ac744387e1be82364b3e87874741d89f4
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
| |
You should not move a QThread into itself. Luckily, we already have a
separate object for the "other" thread. Just move that one instead.
Change-Id: Iae5443fee12d752bce98f5dbf6751166efeb73f6
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
... and make it actually compile.
... and set the flag for JIT pages being prepared. We are clever enough
not to make them executable right away.
Pick-to: 6.9 6.8
Task-number: QTBUG-131957
Change-Id: I07dc6a9c8ec7d0881d73fc5bd44a6059f66dd2eb
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since we cannot figure out what exactly has to be done to prevent the
JIT from crashing, we perform a partial revert of commit
912af1e8b4c1f62802a3e0a4b428bb4e9f4d2c90, only for this platform.
The bug fixed by the original change is specific to linux. Therefore
this doesn't cause any real harm.
Pick-to: 6.9 6.8
Fixes: QTBUG-131957
Change-Id: Ic3baf32aae1f0f2feb9abc34b9f43a5db867165b
Reviewed-by: Tor Arne Vestbø <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, if an opaque item was moved completely behind another opaque
item between frames, the previous region occupied by the item might not
be flushed. This occurred because, when subtracting the obscured region
from the node’s dirty region, the dirty region could become empty. In
such cases, the node would mark itself as no longer dirty, resulting in
no flushing for the next frame. This could cause the old position of the
item not to be cleared properly.
To address this issue, additional logic has been added to ensure that
the previous dirty region is still flushed, even in this edge case.
Fixes: QTBUG-132192
Pick-to: 6.9 6.8 6.5
Change-Id: Iad45ddeeb65e70090e8368d94245b13692017fd1
Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The coverity complains about GLOBAL_INIT_ORDER. By making them static
and moving these validator objects to the function where they're used,
they should be initialized lazily during the first repopulate() call,
instead of at program startup.
Coverity-Id: 470767
Coverity-Id: 470766
Coverity-Id: 470761
Coverity-Id: 470749
Pick-to: 6.9
Change-Id: Ice9bfb7a02901b82a2d91ce8f93bbe5866c90ac7
Reviewed-by: Volker Hilsheimer <[email protected]>
|
|
|
|
|
|
|
|
| |
Amends 9062ba372a32536d97a6ff6a5605544a8c82f48e.
Pick-to: 6.9
Change-Id: I97ccb24261d2d434e8fc7e524b4d2c3b190c4a15
Reviewed-by: Tor Arne Vestbø <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
We can't link to a signal that's not explicitly documented, we can only
link to the property it belongs to.
Member functions in a different scope use '::', not '.'; and properties
don't have parenths.
Pick-to: 6.9
Change-Id: I5c87ab5dbd97e4612a032d7adf7248d23af05c6f
Reviewed-by: Andreas Eliasson <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
When using the StrictlyEnforceRange highlight range mode, call updateHighlight() _before_ calling snapItemAt(), because if we do that
later, the item returned by snapItemAt() might be destroyed as soon as
updateHighlight() calls applyPendingChanges() internally.
Fixes: QTBUG-129231
Pick-to: 6.9 6.8 6.5
Change-Id: I5d1dbac4730238302187d16476dd0c4aea614e13
Reviewed-by: Jan Arve Sæther <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
Document how documentation path can be passed to qmlls, via commandline
option or via .qmlls.ini files.
Pick-to: 6.8 6.9
Change-Id: Ib9cada804688bb63eb628a736c81540ef0f9ec4f
Fixes: QTBUG-131953
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
Document how import paths can be passed to qmlls, via commandline
option, environment variable or via .qmlls.ini files.
Pick-to: 6.8 6.9
Change-Id: I365accfb1062cd08aff7cd5f9b3679aa4c4f7d9f
Fixes: QTBUG-130800
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The LSP states that qmlls should only shutdown after having received an
"exit" notification. Previously to this patch, qmlls would shutdown
right after receiving the shutdown request, without waiting to receive
an exit notication (that is supposed to be send from the client to the
server after the shutdown request).
Amends 9aa5abbda76db44b7ead30c221675183285b420c that fixed qmlls not
being able to shutdown by making it shutdown correctly.
Add a new enum value WaitingForExit to RunStatus that describes the
state between receiving a shutdown request and before receiving the exit
notification from the client. Use it to make sure that qmlls waits for
the exit notification and that qmlls does not read again from stdin
after the exit notification was received.
Also don't exit qmlls on QLanguageServer::shutdown when the shutdown
request gets processed but rather on
QLanguageServer::exit when the exit notification has been received.
This is required for QTCREATORBUG-31897 to avoid qt creator complaining
about qmlls returning 1 when it is restarted, despite qmlls having
done a graceful shutdown.
Also make the tst_lifecycle code reusable and write tests for the
linux/macos case (where the shutdown and the exit notifications are read
in two parts) and for the windows case (where sometimes both shutdown
and exit are read in the same block from stdin).
Pick-to: 6.8 6.9
Task-number: QTCREATORBUG-31897
Change-Id: I0cd663a351027e100469e273b4bb21f47b817a49
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
| |
These are the actual global names as present in the global object. We
should use the same ones everywhere.
Change-Id: I4fb42f609b656019db5169fd4ea2b243feab18d6
Reviewed-by: Sami Shalayel <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Add links to the qmllint warning page from the qmlls and qmllint page.
Fixes: QTBUG-118054
Pick-to: 6.8 6.9
Change-Id: I9b1ab65b6c1590e42d2063cfb51362697047dee8
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add support for a critical error category in qmllint called "error",
so that the qds plugin can show errors for unsupported components for
example.
Add a test. The error category makes qmllint return -1.
Simplify a bit the logic of the "success" bool in lintFile() by making
it a LintResult and returning it.
Change-Id: Ide6a6a265f1aeede0fcbc35d9e4d0abe3f5c2aa3
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Amends b1ff6073a7247c921e20cd98b2e3297e7368681b that does not find
resource files of QML Modules that are not the main QML Module: use all
available .qrc files in the build directory when doing operations like
"go to definition".
Also search for hidden folders, because .qrc files tend to be nested
inside of .qt or .rcc folders.
Add a test when going to the defition of a QML file defined in a
different module.
Pick-to: 6.8 6.9
Fixes: QTCREATORBUG-31881
Fixes: QTBUG-131920
Change-Id: I751e2cd2d1a9867459226e4f884eb1da5c1f9436
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
When constructing a value type, we cannot just assume that the
most-derived type holds all the properties. We may encounter properties
from base types. Resolve those via QMetaProperty.
Pick-to: 6.9 6.8
Fixes: QTBUG-131980
Change-Id: I8e1773ccb42f86b96457c990ae5bc6486ae1acdc
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In most cases, the behavior that was described is not the observed
behavior anymore (today, the first MyWidget would normally get the
focus). This has been the case since at least 5.15
This is because QML doesn't guarantee which element order it will
initialize properties. It has been like this for a long time. Maybe the
documentation was written before that.
Pick-to: 6.5 6.8 6.9
Change-Id: Ibe4ead198e39e16ac2cfb3b841f4f0697172690a
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The popup content item has not been updated with the changed palette in
all the cases. For instance, when the popup has been configured as part
of the list view, it has not been considered as the child item of the
window but the content item and in those cases the change in the
palette has not been updated to the item configured within the popup.
This is because we update the palette of the popup content item only if
its child of the window. For other cases, we still set the palette to
the popup through (updateChildrenPalette), but the popup doesn't
propagate this to the content item.
This patch ensures that the popup updates its palette to its content
item whenever its palette has been changed.
Fixes: QTBUG-128462
Pick-to: 6.9 6.8 6.7 6.5
Change-Id: I4eacb8c8e2b1ae95bb938bc2e72b8a4f48125023
Reviewed-by: Oliver Eftevaag <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the QQuickWindowContainer gains focus from a tab key event, the
focus would remain within the QQuickWindowContainer item and it would
be impossible to tab focus from the container item to the embedded
window's children or from the parent window to embedded window.
This happened because the window and its content item are not
children of the window container item, hence not its prev/next in the
tab focus chain.
To fix, give focus to the embedded window on a focusIn event by
calling requestActivate() and make sure to determine the right focus
item to give focus to in case the focus reason was from a tab/backtab
key event.
Fixes: QTBUG-132071
Pick-to: 6.9
Change-Id: I5ea9cacaca7dce85285817978396e7297bc54baf
Reviewed-by: Tor Arne Vestbø <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch addresses an issue where TableView would crash when
attempting to select cells without an initialized delegate. The problem
occurred because the selection rectangle calculation did not account for
empty columns or rows.
The fix includes the following changes:
- Validate selection rectangle to ensure non-zero width or height.
- Check loaded rows/columns before change current index on key event.
A new test case is added to verify that selection works correctly when
the TableView delegate is not initialized. Some tests are just added
to verify no crashes happen.
Pick-to: 6.8 6.9
Change-Id: I5060976c721d3625d016f7dc88d94b7277e2d0cb
Reviewed-by: Richard Moe Gustavsen <[email protected]>
Reviewed-by: Mitch Curtis <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Funneling them back through the type loader and engine is not worth the
effort. Those warnings should be rather rare, and we want to delete the
code that produces them as soon as possible anyway.
Amends commit 36478e252f0c4fff1553a611619aa32d1f79efb5.
Pick-to: 6.9 6.8
Task-number: QTBUG-131721
Change-Id: I2d64efd56c7e359f2950097444d2fef0fe5e663d
Reviewed-by: Sami Shalayel <[email protected]>
|
|
|
|
|
|
|
| |
When adding to them, we want to be able to see what we're doing.
Change-Id: I563999d8371ff7bd60ca5ad8e7663fd3fe2f4fca
Reviewed-by: Sami Shalayel <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to make sure not to concurrently access the "waiting" lists in
the type loader and engine threads.
In clearCache() we just temporarily shut the type loader thread down so
that we can drop all the blobs without locking. In trimCache() we can
know that the waitingFor list is empty and therefore the blob to be
dropped cannot interfere with other blobs anymore. This requires the
status member to follow acquire/release semantics and the operation on
the waitingFor list to precede the setting of the status member. We also
avoid some nonsensical state changes in order to simplify the logic.
Finally, when detecting a cycle, we need to break the cycle before
setting the status.
To reflect the insights about trimCache and clearCache, acquire the lock
when calling trimThread from the engine, but do not acquire the lock for
clearCache.
Task-number: QTBUG-131721
Change-Id: Ib1cd974e5284f3e7e1f14dca31bddae2ea9de1b9
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
| |
Change-Id: Ie343db2be7d3bdd15e5967f14f810bea03831923
Reviewed-by: Sami Shalayel <[email protected]>
|
|
|
|
|
|
|
|
| |
Amends commit e9dc0ac68134bc6a9cc6522eaca6d893ee10b86d
Pick-to: 6.9 6.8 6.5
Change-Id: I4c28e1e6dc6716454f5d973c36960ef360f8fb40
Reviewed-by: Sami Shalayel <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The RegExp JIT should behave the same as the V4 JIT. In particular, it
should honor the same JIT call threshold and not second guess any
manually set thresholds. To do this we need to store the match count in
32 bits. In turn we can store the 5 flags we may have in 8 bits. To make
this safe, pass typed flags to the initialization functions. Also,
consider the flags when calculating hash values. Finally, in the init()
function, we don't need to initialize members to zero, since that is
already guaranteed by the memory manager. And we can delete the
flagsAsString() method since it's unused.
This requires shuffling some #includes into the places where they
actually belong.
[ChangeLog][QtQml] The JavaScript regular expression engine now honors
QV4_JIT_CALL_THRESHOLD for its own JIT. If QV4_JIT_CALL_THRESHOLD is
not set, it uses the JIT after 3 interpreted matches for any regular
expression, rather than the previous 5. Matching a regular expression
on a string longer than 1024 bytes counts as 3 matches. This is to
retain the default behavior of JIT'ing regular expressions right away
when encountering long strings.
Task-number: QTBUG-131957
Change-Id: I269ccea55d34b191ef18d7cd5fccd4cad8aec7cd
Reviewed-by: Sami Shalayel <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Quote paths with (") as the windows list separator (;) actually
introduces a comment in a .ini file, making QSettings ignore everything
but the first inmport and build paths on windows.
Also make sure that any (") in file paths are escaped with a backslash.
Adapt tests.
Pick-to: 6.8.1 6.8 6.9
Fixes: QTBUG-131296
Change-Id: I2702cb49ce6505008b02ec77304c0dacd2f6ffa5
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
Document that a failed module import might be caused by a incorrectly
setup qmlls, and that QT_QML_GENERATE_QMLLS_INI should be set to ON.
Pick-to: 6.8 6.9
Task-number: QTCREATORBUG-31897
Change-Id: Ic72788b18e06d7353def467c4f72593021f955a2
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
Append a hint to each "Failed to import" warning message that
QT_QML_GENERATE_QMLLS_INI might need to be enabled by the user in CMake.
Pick-to: 6.8 6.9
Task-number: QTCREATORBUG-31897
Task-number: QTCREATORBUG-31823
Change-Id: I0a00281bf492ca0298de130d50cb8c3582f03274
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In qmllint, the import warnings are printed right after the "warnings
occurred while importing" warning despite them having no sourcelocation.
This warning gets a default sourcelocation when used in qmlls which
points to the first line of the file, so the "Failed to import" warning
ends up an the first line of a file, and not on the same line as the
"warnings occurred while importing" warning. This is confusing for users.
Modify a test to expect that the "Failed to import" warning has a valid
sourcelocation, so that it is shown on the correct line in qmlls.
Fixes: QTBUG-131958
Pick-to: 6.8 6.9
Change-Id: Ia0c327b82e89cd0a003d05b4c3efe693fb3b3ed7
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
| |
This warning pops up all the time in the qmlls logs and has weird
formulations and a typo.
Change-Id: Ib8b40c3dedf0ce73d05a23b4b687817b901b7cc1
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the Qt default importpaths when generating .qmlls.ini files. This
allows to properly support qmlls when using the --bare option when the
Qml path obtained by QLibraryInfo is invalid, for example on boot2qt.
Amends 74af384dcfea16de572048d24f575582a5f1ce4c that did add the import
path passed in CMake via qt_add_qml_module to the .qmlls.ini file.
Also fix the indentation in the test, and the weird QString placeholders.
Fixes: QTBUG-131365
Pick-to: 6.8 6.9
Change-Id: I762f9e3f810c10e33b719a7dc04d7edbb3eacd5b
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ColorInputs might as well be a real custom control, instead of a
half-baked one.
This also makes the ColorDialog much more responsive when resizing
it.
If we refactor the module in the future, we'll also likely need each
style to be self-contained to one module each. This patch ensures that
ColorInputs.qml is no longer shared between all styles.
Pick-to: 6.9
Fixes: QTBUG-106246
Task-number: QTBUG-104091
Change-Id: I6c8a687a798f015dce47cc94a10266227899db0f
Reviewed-by: Mitch Curtis <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`VariantAssociationObject` is an object in QV4 that is used to convert
C++ provening `QVarianMap`/`QVariantHash` objects.
As a `ReferenceObject`, `VariantAssociationObject` implements a
read/write-back behavior, allowing the original data that an instance of
it is produced from to remain synchronized with the instance and
viceversa.
Furthermore, elements stored in a `VariantAssociationObject` can
themselves instantiate a read/write-back relationship to subparts of the
`VariantAssociationObject` instance itself.
The infrastructure for read/write backs recognizes subparts/properties
of an object that needs to be read/wrote-back to based on naked integer
indexes.
Thus for an association-like entity we have to generally keep track of a
mapping from those indexes to a property key to ensure that a
read/write-back is performed on the correct element of a
`VariantAssociationObject`.
Currently, this mapping is stored in an heap allocated `std::vector`,
with the heap allocation being required due to triviality constraints on
types that are stored in managed memory, as JS-side types are in QV4.
To avoid the double indirection that an heap allocated `std::vector`
produces, instead allocate on JS managed memory as an `ArrayObject`
which should reduce the level of indirection and is expected to provide
faster access.
Furthermore, previously the mapping was allocated and populated on
instance construction.
In practice, we only need to map keys that are accessed and from
which a derivate `ReferenceObject` providing read/write-back behavior to
an instance of a `VariantAssociationObject` can be created.
Thus, avoid paying the allocation and population cost on object creation
and segregate it to element access, so that is payed on demand when
actually required.
Change-Id: Ica696f43ef96c95c372ac0e2e1eafd0dc16d2f56
Reviewed-by: Ulf Hermann <[email protected]>
|