| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
It is not conforming to the include conventions (module missing)
and thus breaks the Qt for Python doc build.
Introduced by 48b4c1f450109b148f03f62574d78b460859c4a1.
Pick-to: 6.0
Change-Id: I1ff56a967c457f1909b7f6e2e430458e3a3f47c9
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
No one should mess with those. All the pointers have complicated
ownership semantics. We can just befriend the test instead of making it
all public.
Task-number: QTBUG-90401
Change-Id: I6c4adbab7046b40db7f4628780ef928445ea3eb2
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
Round 0.49999999999999994 correctly
Task-number: QTBUG-90444
Change-Id: I0e8a19fb52540c6e976308089a782f1f472bc77f
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Pass the 'qt6_qml_type_registration' function's 'MANUAL_MOC_JSON_FILES'
argument to 'qt6_extract_metatypes', if specified.
Align the 'qmltyperegistrar' test to modifications in the
'qt_manual_moc' and 'qt6_qml_type_registration' functions.
Task-number: QTBUG-84906
Change-Id: I6b23526e1cc4633f55536871cbb7bc6d891f1dea
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
These were only present because qmake wanted them, but since qmake is no
longer supported in dev, these can be removed. Folders: QtBootstrap and
QtQmlDevTools
Change-Id: I0426b43590eb90f97453429a5d5baac035a7d3c4
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
If we generate a local anonymous type, then that's the local part of a
QML_FOREIGN local/foreign couple. Any QML.Extended in there belong to
the foreign type.
Change-Id: Ic1706045eff03dd7b1b553240596ffc21818c8bd
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
| |
Change-Id: I51fb3064f12a0740434091ba696924090deaf839
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
- Source code for several QML modules has moved, adjust documentation
configuration accordingly.
- Comment out \instantiates commands referring to internal/undocumented
classes.
Task-number: QTBUG-90439
Change-Id: I360c8a5c02c5a03b84c77010f399d1a0e36b1263
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In TestCaseCollector::enumerateTestCases, we visit the super compilation
unit of QML tpyes to check if they might be instances of TestCase.
However, in the case of inline components, the super unit is the current
compilation unit, and we would recurse endlessly.
This does not address the issue that an inline component might actually
inherit TestCase. However, as this only affects the enumeration output
and does not actually affect test execution, this is not that much of an
issue. It should also be noted that the enumeration also fails in any
case where TestCases are loaded dynamically (with a loader), so the
method is not 100% accurate even in the absence of inline components.
Fixes: QTBUG-90740
Task-number: QTBUG-90762
Pick-to: 5.15 6.0
Change-Id: I7e133d62c4f62fc46e9bd3999ff755f7ded3c386
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the assumption was that each object could only have a single
extension object. As proven by the new qqmllanguage test this is not the
case. Each registered object in the type hierarchy can have its own
extension. Therefore, adjust the algorithms that generate qmltypes and
iterate the extension objects when analyzing them.
This leads us to the realization that anonymous types can in fact
meaningfully carry extensions and implement interfaces. Adapt
qmltyperegistrar accordingly.
For the test to compile, however, we need to realize that the class
declaring interfaces needs to befriend all potential subclass's
QmlInterface structs. Fix that, too. The rabbit hole went deep.
Change-Id: Ia451897e927e03b95c3062e829edf1dfcd216613
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
It's apt to be more accurate and may even be optimised.
Comment on a benchmark where we could use Math.hypot(), but that would
break comparison with Qt 5 results.
Change-Id: I7c37dd3df82fdef18e7ebb0e1548198afd256faa
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Those are not actually accessible from C++, and the description we had
was incomplete and misleading. There was no way to know that the "Math"
type, for example, was the type of a member of the global object called
"Math", but the "float" type was not. Furthermore the types given for
parameters and return values were only approximations. JavaScript's type
coercion allows us to use a number of other types, too.
There certainly is a place for a proper description of the global
object, but such a description should be generated from the actual
JavaScript root object as found in an actual QJSEngine. Furthermore, we
do need better syntax to describe it.
Change-Id: Ia573436df04ca967381e1e13dbd42a70bcc60979
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The internal name serves as hint to the C++ class. This is the same
as the internal name of url, for example. The internal name is not
exposed to QML. So, from a language perspective, we can choose any name
there.
All the JavaScript methods of the Date prototype are not actually
available on QDateTime. Due to the magic conversions the QML engine does
in the background, much of them work in practice. Yet, when generating
C++ code, we would need another conversion step to make them available.
In order to express part of this, we introduce a second type for the
JavaScript Date object. In the future we might link them via some
"converts to" property. Then tools could know that creating a
QJSManagedValue from a QDateTime (or QUrl etc) results in a richer API
with additional methods.
Change-Id: I13f66a37d985dbd3581d8bb84937adbbc31286fd
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was introduced for QtQuick.Controls 1 back when it was still called
QtDesktopComponents. QtQuick.Controls 1 is deprecated and also doesn't
use the widgets mode anymore. I can't think of any other use for it, but
loading QtWidgets produces a number of unwelcome side effects in the
tests.
Change-Id: I4b7e53a9b906c428d84926302bf629b826d900c4
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
qmltypes files are generated by qmltyperegistrar, and conditionally
consumed by qmlcachegen. In turn, the C++ files generated by
qmlcachegen must not declare any moc'able constructs as that would be a
circular dependency via the metatypes.json files. Codify this condition
as a SKIP_AUTOGEN property on the generated C++ files.
Change-Id: Ied2ca6ad202dd20039bca9823ef1de4fffcf64d5
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
It makes no sense to have them qqmlengine.cpp.
Change-Id: I138807c7650ec7aef4c6e8833e8bac8a6f179d1c
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
| |
Otherwise various internal indices may be off, in particular the
internal classes.
Change-Id: I3c2a6b8150590fc41ec55bf2dfbc989078ddce42
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
Without this, the properties of those types are invisible to tooling.
Change-Id: Iffd05643a650d03993d9fe1a3783fe3db8c33f0b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
Prefix them with $anonymous$ so that we cannot accidentally find them.
If we don't keep them, they may be deleted when their last strong
reference goes out of scope.
Change-Id: I24ca795f9d9c4ecea074019db41a3ca0618f8e81
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
Fixes: QTBUG-83852
Change-Id: I8dd5fa6887ad607fe91ac658efa51152c46df36e
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This simply exports the name which are already available in the json
files generated by moc. We do not consider whether the methods are
non-private for now. MEMBER is not supported either, but might be added
if the need actually arises.
Fixes: QTBUG-90711
Change-Id: If3ee18c8ce60499676a7ee22df569cba0912e22f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
If we store an empty, rather than null, string, the retrieval mechanism
crashes when getting it out again. Therefore, always store a null
string.
Change-Id: I799293845dd2a72c04cbef3ed1dda68ea782e191
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
- also fix that qt_qmlDebugMessageBuffer is always valid
Change-Id: I3661e424ecaeb7d8c8bd3b1acb137ae34a3f06e4
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
Path th qmllocalstorage missing in sourcedirs/headerdirs
Task-number: QTBUG-90412
Change-Id: I8971e7c569e2ce3bb2c763178af6f1b546b3dc41
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
| |
The "in" operator may throw an exception.
Change-Id: I7d0b6e2212ac6ec237fbf14719349f8e23810028
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
Change-Id: Ife394e660274dd9dbe17207e18c5024f90628a00
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In some cases, when the QGuiApplication is shutting down while there
is an active QAnimationDriver and an incubating object, the
QQuickWindowIncubationController will try to access an already
destroyed QSGRenderLoop. So use a QPointer to guard the QSGRenderLoop
access.
Fixes: QTBUG-90489
Pick-to: 5.15
Pick-to: 6.0
Change-Id: I528e06ff22dfcad804593db6771d9163b21808f4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
| |
amends: c0b59369ab45a78e4407633365a52c1a9255512c
Change-Id: If068443257baa0eaee31a43b94b2e0d0f7f554fe
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
If we don't return there, the newly imported script is promptly
overwritten by an invalid module.
Change-Id: I788a7275e2c190a20c176da35f5c76ac9f6ad02b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
If the content is not loaded, yet, the data is always null. If it is
loaded, the result might be null. So, in order to know, we have to load.
The same holds for deferred weak pointers, the hash functions, and the
equality operators.
Change-Id: I20eec58efe5da604187c34578ee40f769090c910
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
| |
Change-Id: Ie52ce15b7fa960ce84a6d17a21a0e307a38c726e
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This plugin cannot be implemented in an optional way until we create a better
way of handling image providers.
Task-number: QTBUG-84639
Change-Id: I1eafaa08187bbd566a9da14f39836ea70a1776f9
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
| |
Change-Id: I49bf672bf22c5ad9cc53c865e9aac4c5e7cec7f7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
This way we get correct line numbers in error messages.
Change-Id: Ieb642523f74adf73955e78cdfb8cb2faee40b321
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
This avoids a bunch of warnings and as these headers weren't exposed
before they might as well be kept private.
Change-Id: I42417516921ae6d498d1ed07728bdad654067b3d
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
We need to be able to resolve any QML type from its C++ name using
QMetaType::fromName(). qmltyperegistrar can generate the missing
metatypes, either by creating synthetic ones (for namespaces), or by
making sure the existing ones are registered (for others).
Change-Id: If775af56d891f2c2a5bb94589b3cb05a199c7c35
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
As we already have the metatype of the property, we can use the more
efficient QMetaObjectBuilder::addProperty method which avoids a
name to metatype lookup.
Task-number: QTBUG-88766
Change-Id: Iab8c22556cb15d35337f266e533cb0d907232421
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
If the original type's ID is not valid, then QQmlMetaTypePrivate's ID is
also not valid.
Change-Id: Ia727e7dc99b1954b4c6fa9b599e8edc0ef9b3212
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
There is no reason to keep it in qqmlengine.cpp as it is declared in
qqml.h.
Change-Id: I0a0261b943c4a3b4333d7161becbd68ad4f1b21e
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
| |
This moves the sharedimage types into a new library and is meant to make
them availabe to the QML compiler at some point in the future.
Task-number: QTBUG-90487
Change-Id: If79425a43cb8c1831422631791d35c1f329c7e80
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change ensures that bindings created in QML between new-style
properties contain information about which property caused the loop. To
do this, we store additional information about the property involved to
retrieve its name and position at a later point. We print the warning in
case we detect a binding loop in evaluate, and also set the error
reporting callback correctly, so that the condition can be reported when
the loop is detected in another part of the binding evaluation.
In addition, we do not only set the QPropertyBinding's error member when
JS evaluation results in an error, but also print the warning with
qmlWarning.
Fixes: QTBUG-87733
Change-Id: Idb25237d1f57355ca31189e6bf2a918430b3a810
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Those are properties of the JS global object. You cannot use them as
normal types.
Change-Id: I1f80e1be8f598cb102109fa2f685cd2b55ad6950
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QRhi has APIs (but private ones) that allow retrieving and
restoring the contents of the "pipeline cache". (which may map
directly to VkPipelineCache, or may be a simulated, OpenGL
program binary based solution)
In many cases it is convenient if the saving of the cache blob
to a file, and then, during subsequent runs of the application,
the loading of cache contents, can be enabled via environment
variables:
QSG_RHI_PIPELINE_CACHE_SAVE=filename maps to setting the
EnablePipelineCacheDataSave flag on the QRhi, and writing
the collected data to file upon application exit. (more correctly,
when the QRhi is about to be destroyed by the render loop)
QSG_RHI_PIPELINE_CACHE_LOAD=filename maps to attempting to read
the contents of the specified file, and, if successful, passing it
to QRhi right after initialization. When supported and the data is
not corrupt or incomplete, the result is likely improved pipeline
creation times (the exact details depend on the driver with Vulkan,
while with OpenGL it all maps to glProgramBinary instead of compiling
from source)
Setting QSG_INFO=1 can be useful to see what is happening when the above
2 env.vars. are set.
With OpenGL the simulated "pipeline cache" is orthogonal to the Qt 5 era
shader program disk cache: loading from both is supported transparently
to the application. When QSG_RHI_PIPELINE_CACHE_SAVE is enabled, the
disk cache will not be written to.
Task-number: QTBUG-90398
Change-Id: I82d9a81e9dab39d3513a6aa7c6e1ff748a4ec6e5
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This is needed in order to make controls in qtquickcontrols2 module
more accessible. Their accessibility implementation can now inherit
from QAcccessibleQuickItem
Task-number: QTBUG-75042
Pick-to: 5.15 6.0
Change-Id: I30deba018825937a4ebd757e5250efca87519822
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
This moves the qmlmodels types into a new library and is meant to make
them availabe to the QML compiler at some point in the future.
Task-number: QTBUG-90487
Change-Id: Ib76d1f0b592cc52f6396864fb4be3bb41c4df27b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The subclasses are already dead at that point. We don't need to notify
them anymore. Rather, refactor the code so that we can clean up
QAnimationGroupJob itself without virtual calls.
Task-number: QTBUG-90401
Pick-to: 5.12 5.15 6.0
Change-Id: I6917bf299ceb1383b9d29687e5bf53ae36803ecf
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
| |
They need to be accessible from C++.
Change-Id: I60f2213bdbe6b8b64856e13f1e0cc798f8a51086
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It makes little sense that you can construct an error object but not
throw it. The test was definitely meant to actually throw the error
object, not return it.
[ChangeLog][QtQml] QJSEngine has gained an additional overload to the
throwError() method, with the effect that calling throwError() with a
character literal as argument is now ambiguous. You should explicitly
construct a QString instead.
Change-Id: I90c6c9edf10509daa142a86581d6a3f7ff45af2c
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
This moves the wavefrontmesh types into a new library and is meant to make
them availabe to the QML compiler at some point in the future.
Task-number: QTBUG-90487
Change-Id: I9ab9dfc62ef9c205ce4649df33a6c1e2ac0ca639
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
| |
Change-Id: I5f4334e8b55511c33eab52262239d5d2da2329ba
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|