| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
clang-cl.exe 8.0.0 warns:
qv4internalclass_p.h(460,19): warning: unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier [-Wmicrosoft-unqualified-friend]
The warning is most likely bogus (otherwise the code wouldn't compile on
other platforms. But it's arguably not a bad idea to just qualify the friend
declaration.
Change-Id: Ia34119661c29cd8619adec70e9999cab2605ff32
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Not being pressed inside the target is a necessary but not sufficient
reason to reset m_pressTargetPos to the center of the target. The
intention was rather to make the target jump into position when the
parent was a different item: e.g. if a Slider has a DragHandler whose
target is the slider's knob, you can start dragging anywhere on the
whole Slider but you want the knob to jump to the cursor position when
the drag begins.
While we're at it, both branches of the if in onGrabChanged()
are checking that target() isn't null, so we can move that check out.
Fixes: QTBUG-74966
Change-Id: I05be11d27422b070d941b9e43d4e1157e071c3a5
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QQuickWindowPrivate::sendUngrabEvent() sends an UngrabMouse event, and
that can be filtered by parent filters. If a touch cancel happens to a
MouseArea in a ListView delegate, we need the ListView to filter the
UngrabMouse event so that QQuickFlickable::childMouseEventFilter() will
call QQuickFlickable::mouseUngrabEvent() and
QQuickFlickablePrivate::cancelInteraction() will set pressed to false.
The pressed state became true because Flickable filtered the press
event; so for symmetry, it also needs to filter the touch cancel (in the
form of a mouse ungrab), to avoid being stuck in a state where it can't
move programmatically.
Fixes: QTBUG-74679
Change-Id: I6c0ed364d2bc1f45c7e7b17846a09f6b53f91d0a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The name was evaluated already at the beginning of the function.
Change-Id: I0bf6149c9bce83a543b1946330ec12f318620a71
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When 1771d298 changed gradient from a QQuickGradient* to a QJSValue,
it forgot to also change how it was initialised, with 0 causing
QJSValue to consider itself a number, and hence trigger the warning
added to QGradient in 3b7db8ac90b.
Change-Id: I83377c40984f596f56645aea467b74de1a152b62
Fixes: QTBUG-74911
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|\| | |
| | | |
| | | |
| | | | |
Change-Id: I1dd04210f10895c509b5c637fc5e2dcf66e3bb91
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
Fixes: QTBUG-74851
Change-Id: Ib4c4b7fd3a01a360ae923f718e7ce74b3ae7f3eb
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This enables overriding the macro so that it translates
to 'None' in the Qt for Python context.
Change-Id: Ied1ddcb0f9e6e2299d9042e4cc4c2bb6d11a491b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the path starts with ":" and we assume it's an absolute qrc path, the
only thing we need to do to make it a URL is prepend "qrc".
Fixes: QTBUG-74677
Change-Id: Iee0239296b6f48ce909db02ae16e24dfc745b637
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The baseMetaObject and the property cache can become available at
different points in time. If we have initialized the enums before either
of them is available we want to add the additional enums when the other
one appears.
Fixes: QTBUG-74677
Change-Id: I57276681a50b6c04181c6a29e736f2dc20632a0c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There is a sole point of failure in Qt 5.13 beta1
Change-Id: I58a41e310604a8bccbf14f463f734877d6a65a73
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The backup implementation of make_unique is in Optional.h
Change-Id: I7a7f31ff451ec5336468b8447088e3f4d5d0cecb
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I910618824785f9119b1e1da9a82e998fd645a96f
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We can effectively only deal with values of < 2GB for m_alloc *
sizeof(Data). This is not much more than the values seen in the wild.
Change-Id: Ia6972df33d34a320b5b087d38db81aae24ce5bbe
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There is no reason to start from the empty class in that case.
Furthermore, if the properties are already frozen, starting from the
empty class will walk the IC hierarchy to the current IC. However, if
the garbage collector has removed the intermediate classes in the mean
time, we end up at a new IC which is equivalent but not the same.
Therefore, the freezing never terminates.
Task-number: QTBUG-74190
Change-Id: Id544bd00d3b4b563fb06dfce0edd0385e1d32a6c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Otherwise the garbage collector might interfere and we might end up
with dangling pointers in random places.
Task-number: QTBUG-74190
Change-Id: I253c526ef930b8f0be14e96a42af8b66fda3b22d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If currentIndex is quickly assigned a different index and then the
previous current index again, it should not move.
Fixes: QTBUG-74508
Change-Id: I8d610e3fe452c8631e082c648e77d2cb70ae57c5
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I2f0b4f8543a448c9acffe0932e0fd67c0b7412f4
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As we check the icAllocator's slots on shouldRunGC() we should also
check shouldRunGC() when adding slots. Otherwise we might never run the
GC when only allocating InternalClasses. In addition, account for the
"unmanaged" size of the PropertyAttributes that are part of the
InternalClass objects. Those can be large.
In cases where an excessive number of large InternalClass objects is
created the garbage collector is now invoked frequently, which costs a
significant number of CPU cycles, but prevents the memory usage from
growing indefinitely.
Task-number: QTBUG-58559
Change-Id: Icf102cb6100f6dba212b8bffe1c178897880eda0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
634b59f187c8697f03a606cbacb5f0a69650ea7c caused a significant
performance regression during layout of any Text item with RichText,
by calling QQuickTextDocumentWithImageResources::setPageSize() with an
accurate width in ensureDoc(); but ensureDoc() is called multiple
times, and doesn't need to calculate actual layout. The accurate
width is needed (at least) when doing layout of HTML tables that
contain percentage-based column widths. For that purpose it's enough
to set the correct "page" size in updateSize().
Fixes: QTBUG-74638
Task-number: QTBUG-72457
Change-Id: I34ab085316018576eba64a67200c527bb64b9533
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is straight-forward to enable, with the minor adjustment that we
need to handle the case where a global lookup is done without a calling
qml context (worker script). We don't know at compile time whether a
script will be imported directly or used as a worker script, so we have
to generate the global qml lookup instruction regardless and handle it
at run-time.
Change-Id: Ia033afa214d919d906c676498dd3eceb1c5639d8
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For multiline texts with word wrapping, it is not so meaningful to add
breaks in the last line if it is anyway going to be elided. Fix by
using the WrapAnywhere strategy for the last line for such situations.
Fixes: QTBUG-72736
Change-Id: I1263c81277b6ca89ba461529fced1094263c026f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
src/qmltest/quicktest.cpp
tests/auto/qml/qmlcachegen/qmlcachegen.pro
Change-Id: I70e96e8817d59647f876b8b77b30cdeede8f0662
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Apparently the window is moved to random places on multi-monitor setups
on windows.
Fixes: QDS-263
Change-Id: I21082c7031fefff3057074c147e82df7a88f4f78
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The CompilationUnit class owns the unit data. An exception was made in
bootstrap builds, where it was up to the caller to free the memory. This
lead to cases in qmlcachegen where we didn't free the memory. This is
best fixed by unifying the behavior.
This fixes the build when using an ASAN enabled build, as the runtime
aborts after calling qmlcachegen due to "leaks".
Change-Id: I8b55b4e302a9569a1d4e09eeb488c479368b50f0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Otherwise the resulting files differ subtly.
Fixes: QTBUG-74532
Change-Id: I12b4f1ba6dda781d63ad50cce87861ba24582bf7
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If we can determine with certainty that a property cannot be found in
the innermost QML context, then we can avoid one entire iteration for
all future lookups.
Task-number: QTBUG-69898
Change-Id: I2a579aa9f60811a818e45235a60a93fc2ede3206
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I83c8a3cb8d125df83deaefdbb08b4271eda8a5b4
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- qmlEngineAvailable() 5.11 c260d3062de83d7f051e531007771455915285e5
- applicationAvailable() 5.12 ef06a6ba7bfb5e38b1bef2e21a764ec74479b158
- cleanupTestCase() 5.12 7bf8d4d3772959f06d4dd0168af7774adde29d76
Change-Id: I7b6b699121248c5ad35a7ee2c99eb3f3c77fd01f
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was never the intention (as the code comments imply), but
it was never tested.
This is a cherry-pick of 50f234df500829a0023ed5d396c486f995ad71ef
because it went to dev (5.13) when it should have originally went
to 5.12.
Change-Id: I8df0b3702129b1f1d086df73117d3ddb721317cb
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
(cherry picked from commit 50f234df500829a0023ed5d396c486f995ad71ef)
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When I added the macro, I wasn't aware that TestCaseCollector was a
thing. TestCaseCollector loads each QML file without running the tests
(i.e. creates a QQmlComponent from the file without creating an object
from that component). Since it still executes imports, the test can
fail if types are registered or import paths added in
qmlEngineAvailable(), since it's called too late.
So, call it earlier. This should have no adverse effect on user code,
as nothing of importance to the user will be skipped, and the
documentation already details what can be expected by the time
qmlEngineAvailable() is called.
Change-Id: Ibd3a4b728bc87b90f89cc310fddf668c5879ad83
Fixes: QTBUG-74160
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is only useful for the few (4) comparisons where we have
specialized instructions, and it's very error-prone.
Change-Id: I37efe94f54ba0adf393d9236df2d13aa6685eb46
Fixes: QTBUG-74476
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
These are equivalent to the usual namespace macros.
Change-Id: I3891397511e29694fe508414e77eb8483b877e03
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I16820387279ca616af6ab379874c247c83df4a2f
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Make name more in line with the import and with the other overview
pages. This became apparent because the All QML Modules overview page
now shows the name of the page, instead of the import:
https://doc-snapshots.qt.io/qt5-5.13/modules-qml.html#
Change-Id: Iee1362247ea6837dd9404885890b2adb7af2c544
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/compiler/qqmltypecompiler.cpp
src/qml/compiler/qv4bytecodehandler.cpp
src/qml/compiler/qv4codegen.cpp
src/qml/compiler/qv4compileddata_p.h
src/qml/compiler/qv4compiler.cpp
src/qml/compiler/qv4instr_moth.cpp
src/qml/compiler/qv4instr_moth_p.h
src/qml/jit/qv4baselinejit.cpp
src/qml/jit/qv4baselinejit_p.h
src/qml/jsruntime/qv4function.cpp
src/qml/jsruntime/qv4vme_moth.cpp
Change-Id: I8fb4d6f19677bcec0a4593b250f2eda5ae85e3d2
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-69898
Change-Id: If92a0931bd4d64f6c176e93effb04df85ce27284
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-69898
Change-Id: I94bf1aa85c9b2302894f3224e41de81a456211f9
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-69898
Change-Id: Id03ba543fa293da2690099c3e6f94b2725de562f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change addresses in particular qmlbench's fib10.qml, where usage of
properties of the global object needs to go be accelerated in order to
avoid regressing in performance.
Task-number: QTBUG-69898
Change-Id: Ic43c64f4dd5459c4e92f87f03235ea836f971515
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-69898
Change-Id: Ifbd9b3bf8d4b0c82b4c3933912e61eea8e0bb987
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use a dedicated lookup type to provide super fast access to engine wide
singleton objects as well as scripts
Task-number: QTBUG-69898
Change-Id: Ie430f48f6576a9171018ef18742dcf6b2adb4310
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The parent pointer is only kept so that we can update the parent's
transitions when removing a child. There is no need to keep the parents
alive for the children.
Fixes: QTBUG-58559
Change-Id: Ia28183966bde6d478ca030fe11195489925dfc13
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After enabling lookups in QML files, we can remove all the code that
tries to deal with (type) compile time detection of access to id objects
and properties of the scope/context object. This also allows removing
quite a bit of run-time code paths and even byte code instructions.
Task-number: QTBUG-69898
Change-Id: I7b26d7983393594a3ef56466d3e633f1822b76f4
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When resolving names in the context of QML bindings, we now direct
runtime access to QQmlContextWrapper::resolveQmlPropertyLookupGetter. At the
moment this does basically the same as Runtime::method_loadName, which
we called earlier. However this now provides the opportunity to optimize
lookups in the QML context in a central place.
When performing a call on a scope or context object property, we also
did not use a CallName() instruction - which would have gotten the
thisObject wrong - but instead we use a dedicated
CallScopeObjectProperty and CallContextObjectProperty instruction. These
rely on identifying these properties at compile time, which goes away
with lookups (and also doesn't work when using ahead-of-time
compilation). Therefore the qml context property lookup is using a
getPropertyAndBase style signature and
Runtime::method_callQmlContextPropertyLookup uses that.
For the tests to pass, some error expectations need adjusting. In
particular the compile-time detection of write attempts to id objects is
now delayed to the run-time.
The old code path is still there and will be removed separately in the
next commit (as it is massive).
Task-number: QTBUG-69898
Change-Id: Iad1ff93d3758c4db984a7c2d003beee21ed2275c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
There is very little you can do with things registered as interfaces.
Change-Id: I5e4dcf8529c2d7c8012db3fa1dcfc23563cc2cba
Fixes: QTBUG-74318
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the qmldir URL got intercepted, we should use the intercepted URL to
get to the contents to be loaded.
Fixes: QTBUG-73843
Change-Id: I51715575e767ed429a8237517f47196677409fe0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The main feature that needs to be implemented in order to enable lookups
in QML files is to respect that the QObject wrapper has its own storage
layer (meta-object properties). Lookups need to be able to index those
when the base is a QObject. This is done by caching the property data
and guarding the validity by comparing property cache pointers.
The same lookup logic is also implemented for value type wrappers.
OVerall there's more that can be done with lookups in meta-objects, for
constant properties for example.
For "global" lookups we have a safeguard in place that generates a
LoadName instruction for property access that should end up in the qml
context wrapper. So no changes are needed here at first, but the lookup
in the QML context can be optimized in the future.
The way of storing the property cache in the lookup itself trades
ugliness on destruction against the creation of less internal classes.
Another option would be to store the property cache in the internal
class and let QObjectWrapper always transition via the property cache.
Task-number: QTBUG-69898
Change-Id: I9c378c071acc6d7d4a34a2a76616f9594119d515
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
toInt32LhsAcc convertes both the lhs and the accumulator to int32. If
the accumulator is not saved, a GC run during the conversion of the lhs
might trash its value.
Fixes: QTBUG-74058
Change-Id: Ic42693061c7d483bb430d77bcc095de6ff9a6843
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Update function list and refer to the 7th edition of the ECMAScript
standard.
Fixes: QTBUG-73837
Change-Id: I4332de3ded0373393107b6d5bab95363a0b9ebb9
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|