aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* QQuickWindow: Don't leak the animation controllerUlf Hermann2019-10-0212-16/+17
| | | | | | | | | There are ways to close the window without hitting the code paths in the render loops that delete the animation controller. Probably if no frame was ever rendered. Change-Id: If3e9d2051525c4ff50eda19084c967578fe4f4b0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Android: Load QML plugins directly from APK libs dirBogDan Vatra2019-10-011-0/+22
| | | | | | | | | | | Also register qrc:/android_rcc_bundle/qml as the folder where declarative engine finds the other QML files (qmldir, *.qml, *.js, etc.). [ChangeLog][Android] load QML plugins directly from APK libs dir and use qrc:/android_rcc_bundle/qml to search for QML files. Change-Id: I9552121411d21537befc41646cdd161ce0cec760 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* WorkerScript: Directly delete QQuickWorkerScriptEnginePrivateUlf Hermann2019-09-301-1/+1
| | | | | | | | | | | | QQuickWorkerScriptEnginePrivate lives in the worker thread. Therefore, once the thread has finished there is no way to send it a deferred delete event. The object and all its children would always leak. As there is no event loop running in the worker thread anymore and this is the dtor of QQuickWorkerScript, it's safe to assume that no one can access the private object anymore afterwards. Change-Id: I51f583ea47060d967403639196247882ff7d2905 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Delete type half-built type resolution caches on compile errorsUlf Hermann2019-09-301-0/+1
| | | | | | | | Otherwise they leak. Change-Id: I744f67e039ffb9cacbf16394bd5558ee72028177 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix property cache leaksUlf Hermann2019-09-301-3/+7
| | | | | | | | | | | Leaks happened when using unqualified context property lookups and when looking up properties of singletons. We need to release the caches when unlinking. Fixes: QTBUG-78859 Change-Id: I8b86bcf72f71a463fb259eb6ae6c46be62729d72 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Use a QQmlRefPointer for QQmlScriptData::typeNameCacheUlf Hermann2019-09-303-8/+4
| | | | | | | | | | The cache can get overwritten. We want the reference to the old one to be dropped then. Fixes: QTBUG-78865 Change-Id: I8ebba4ae242c3bf8ae4db5cffc65b26bab265b8a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove depth-stencil buffer sizing on the rhi pathLaszlo Agocs2019-09-302-11/+11
| | | | | | | | | ...as this will be done automatically by QRhiSwapChain after the corresponding QtGui changes. Task-number: QTBUG-78641 Change-Id: I8edeb728f3aba07bfa6bc6331966fba4bdee71f4 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add a QSG env var for QRhi::PreferSoftwareRendererLaszlo Agocs2019-09-273-5/+27
| | | | | | | | | Also extend the docs. And while we are at it get rid of some clang warnings. Task-number: QTBUG-78669 Change-Id: I4ef15d2d066098ba7bbbd34e80d4e61efe7fba23 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Convert QTime to V4 Date on a date with no DST in forceEdward Welbourne2019-09-271-7/+9
| | | | | | | | | | | | | | | Sadly the third centennary of Cassini's birth isn't such a good date after all, since round-tripping will ignore DST on the QDateTime leg but include it in V4's implementation of ES's ill-conceived spec for handling DST and time-zone transitions; and June 8th is in summer for much of the world. So use a date which (as far as I can tell) appears to have been DST-free everywhere; and after the start of 1970 so that, even if we find ourselves working with a zone in which it did have DST, we'll apply DST consistently during round-tripping. Fixes: QTBUG-78706 Change-Id: I25be2548e2c97eae2c4f6c5bbe661dea2f35aaba Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-275-2/+55
|\ | | | | | | Change-Id: I73d9e896c05f7d944f3092b51a3a95c7e6e284b8
| * Doc: Fix typoPaul Wicking2019-09-261-1/+1
| | | | | | | | | | | | Fixes: QTBUG-78784 Change-Id: Idc156088fdae4782b4970c3211b8248f8c333e9a Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
| * QMLJS: Fix exception handling in promisesFabian Kosmale2019-09-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | If an exception is thrown inside a promise's resolve or reject handler, the promise needs to resolve into a rejected state with the exceptions value. The value was previously not set. Fixes: QTBUG-78554 Change-Id: Ic22faa6ef1e519e4cae6732c69bb14f7053d13da Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * doc: explain more about acceptedModifiers in PointerDeviceHandlerShawn Rutledge2019-09-191-1/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having neither a list of all possible modifiers nor a link to Qt::KeyboardModifier was inconvenient. Clarify that bitwise OR results in logical-AND behavior, while having multiple handlers results in logical-OR behavior, and that a switch statement in JS allows you do anything you like with modifiers. Fix the manual test to test the switch statement and deal with the fact that point.event.modifiers is undefined: TapHandler can use eventPoint.modifiers, but any DeviceHandler can use point.modifiers. Fixes: QTBUG-78234 Change-Id: Iba2a03950aa1279ef454cc76fc8de1b2dab14dfb Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| * Check if the filters are different before triggering an updateAndy Shaw2019-09-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | If the filters list is the same as before, then there is no reason to trigger an update on the thread as the result would be the same as before. This solves a problem that was occurring with iOS 13 as it would get stuck due to repeated calls to setNameFilters() with the same filter list. Fixes: QTBUG-78468 Change-Id: I705cfaaa0a1a19b1d0397140a5831fc67557a4ee Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Doc: add TableView \since versionMitch Curtis2019-09-171-0/+1
| | | | | | | | | | | | Task-number: QTBUG-78307 Change-Id: I71bc58ba5e4d930167f56a264e20b352244502a3 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | Update plugins.qmltypes for 5.14Kai Koehne2019-09-268-26/+661
| | | | | | | | | | | | Task-number: QTBUG-78690 Change-Id: Iaee681cc10ae33c582806900a041d79bc0cc8d1d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Don't leak references to QQmlTypePrivateUlf Hermann2019-09-251-0/+1
| | | | | | | | | | | | Change-Id: I1cad0d8aa81b26a91e97a869f3c8539ae3cf1ad6 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | Don't leak resolved types of failed compilationsUlf Hermann2019-09-252-5/+6
| | | | | | | | | | | | | | | | | | | | If the compilation fails QQmlTypeCompiler::compile() returns nullptr. In that case, there is no ExecutableCompilationUnit to own the resolved types. Therefore, delete them. Change-Id: Ia8f4ef78438642cb064538c7266ca636ec7eb0c1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Move documentation for Instantiator and Package into QtQml.ModelsUlf Hermann2019-09-252-3/+9
| | | | | | | | | | Change-Id: Ie086399104de51ce0ae741f6fef316633ed47aa9 Reviewed-by: Martin Smith <martin.smith@qt.io>
* | Handle "interesting" stationary touchpoints as if they movedShawn Rutledge2019-09-242-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt Quick will not receive "uninteresting" stationary touchpoints, but only those in which some property has changed. So MultiPointTouchArea should react to stationary touchpoints in the same way as if they moved, so that UIs can react to changes in touchpoint velocity, pressure etc. And QQuickWindow has to be willing to delivery stationary touchpoints to make this possible. However when a QTouchEvent is customized for delivery to a specific Item, by including only the touchpoints that are inside the Item, then if those touchpoints are all stationary, the event only needs to be delivered if at least one of them is an "interesting" stationary touchpoint. So we need to depend on a new per-touchpoint flag that QGuiApplication will set when it discovers that some property of the touchpoint has changed. That is QTouchEventTouchPointPrivate::stationaryWithModifiedProperty. Fixes: QTBUG-77142 Change-Id: I763d56ff55c048b258dca40d88283ed016447c35 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Add missing QSGDynamicTexture default constructorFlorian Bruhin2019-09-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | In 341ab7708049b1a3f559b76f16393e688951a938, an internal QSGDynamicTexture::QSGDynamicTexture(QSGTexturePrivate &dd) constructor was added, which means QSGDynamicTexture now doesn't have a (formerly implicit) default constructor anymore. Fixes: QTBUG-78312 Change-Id: I34a918942d87ca522aa7131580b9e08a1445d635 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Ensure AnimatedImage currentFrame/onCurrentFrameChanged 2.0 compatibilityShawn Rutledge2019-09-242-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change 5d995ae122aa07486ead849560b74d2b62b883bb did not make the actual QQuickImageBase::currentFrameChanged signal accessible to the Qt Quick 2.0 revision. Normally the QML engine would implement a JS onCurrentFrameChanged handler by connecting to the currentFrame property's frameChanged notifier signal; but in this case it tried to connect to the explicit QQuickImageBase::currentFrameChanged signal instead (because the name is a better match), and failed because of the revision. So we need another duplicate unrevisioned signal QQuickAnimatedImage::currentFrameChanged for use when the import is less than Qt Quick 2.14. As pointed out during review, an autotest for the revisioning is good to have anyway. Fixes: QTBUG-78713 Task-number: QTBUG-77506 Change-Id: I121508acac81d47e3c0a4c0ed12257c10b30970b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | QQuickMouseArea: fix containsMouse when mousearea become visibleWang Chuan2019-09-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If enabled is false, then containsMouse will not become true when hovering on mousearea, even if hoverEnabled is true. However when an invisible mousearea become visible, the value of enabled isn't checked. In this case, the value of containsMouse is not affected by enabled. [ChangeLog][QtQuick][QQuickMouseArea] containsMouse property will not become true when the an invisible mousearea become visible, if the enabled property is false or its parent item is not enabled Fixes: QTBUG-77983 Change-Id: I923bdcf3eda813aea51a04515d530093d6eb77b2 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | PathView: grab mouse on press if already movingShawn Rutledge2019-09-231-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A side effect of 8fd398c9d2f5f54e446e0b402bc63a2edb50da6f is that it became possible for the highlight to stop between items, rather than snapping to a specific item, if the user taps, clicks or drags an additional time while the movement is ongoing. That was because it didn't get a mouse grab, so it missed the release event. QQuickPathViewPrivate::handleMouseReleaseEvent() needs to take care of the snapping behavior after the user stops dragging. This only affects behavior in the case that the PathView is already moving and the mouse is pressed again: we assume the user wants to alter the PathView's velocity, not interact with any delegate inside or with any parent item. Task-number: QTBUG-77173 Task-number: QTBUG-59620 Change-Id: I7b2f69a6ef8d8022d7c917a5bf9e8fb40c8848db Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Change const ref to ref in QSGMaterialRhiShader as per API reviewLaszlo Agocs2019-09-2317-107/+110
| | | | | | | | | | | | Change-Id: I7783ed26a66f03ebe3b26bcba2f42f9fff45a417 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | Add an env var to periodically kill the device on d3dLaszlo Agocs2019-09-232-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...in order to test the handling of losing the device. The D3D11 backend of QRhi provides a convenient way to test this. Hook it up to a QSG_RHI_SIMULATE_DEVICE_LOSS environment variable. The value is the number of frames to wait before breaking the ID3D11Device. We cannot currently recover from a device loss. Hence the importance of being able to test in a simple way. The rhi code path needs to be brought up to the level of the direct OpenGL path in this respect, in separate patches. Change-Id: I66d6315dc60a9673903da9bed36de0cdd115f4a7 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | Recover from device lost on the rhi path in the threaded loopLaszlo Agocs2019-09-231-61/+100
| | | | | | | | | | Change-Id: I90d43d5daa75bbc52c9c10f4ef920b898bbd39d4 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | Handle rhi device loss in the basic render loopLaszlo Agocs2019-09-231-5/+40
| | | | | | | | | | Change-Id: I02cee05ce7eee2ad1c458d1a934c210c12d1dea2 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | doc: Fix several qdoc warningsMartin Smith2019-09-234-8/+9
| | | | | | | | | | | | | | | | This update repares several "Can't link to...," "No such parameter...," and "Undocumented parameter..." warnings. Change-Id: I3649cf35f766e5a87ca5df48301e8063a31d7904 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | HoverHandler: handle all device types; hovered=false on touch releasev5.14.0-alpha1Shawn Rutledge2019-09-191-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It doesn't make sense to show hover feedback after releasing a touchpoint just because the core pointer cursor happened to move along with the touchpoint, so we explicitly set the hovered property to false when the touchpoint is released. However the next mouse movement will set it back to true again if the mouse cursor is still inside. This is especially important for touchscreen-based haptic interfaces: any hover feedback should be shown when a finger is dragged into an interface element and hidden again when the finger is released. Change-Id: Iff7f23f089466cc0da94d2a46690719f6d70cae2 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Fix documentation for qmlRegisterType and qmlRegisterAnonymousTypeUlf Hermann2019-09-191-20/+20
| | | | | | | | | | | | | | | | | | | | Plain qmlRegisterType() is deprecated and qmlRegisterAnonymousType() was added in 5.14 as replacement. Also, qmlRegisterAnonymousType() does take an import URI and a major version. The point about non-anonymous type registration is that it also takes an element name. Change-Id: I51fb6f9c63dcf15dc1da10c25ea6c6d3b88fd31a Reviewed-by: Kavindra Palaraja <kpalaraja@luxoft.com>
* | Fix deprecation macros in qqml.hUlf Hermann2019-09-181-2/+6
| | | | | | | | | | | | | | | | | | | | Give a friendly message for qmlAttachedPropertiesObject(int ...) and disable plain qmlRegisterType<Foo>() if QT_DEPRECATED_SINCE(5, 14). Change-Id: I9373f38fdddcb58ec1211b6cab492e1bc5370e52 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | PathView: fix warnings, oddities and whitespaceShawn Rutledge2019-09-181-79/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | - avoid runtime conversion of float->double when initializing a qreal - use qFuzzyCompare/qFuzzyIsNull to avoid direct comparison of qreal values - don't test a float value as a bool by implicit casting(!) to check whether it's zero - avoid implicit casts and old-style casts - fix whitespace around comments Change-Id: I7b0e77d38d5c86aa1a71833738deb5f0f893b507 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | doc: correct the snippet for Item.scaleShawn Rutledge2019-09-181-0/+1
| | | | | | | | | | | | | | | | | | The screenshot shows it having a transform origin at the top left, which is not the default. Task-number: QTBUG-78209 Change-Id: Id9a2d854493caba240960afa7ba400dc656ac0ab Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | Add missing doc entries for QSGGeometry::Type valuesLaszlo Agocs2019-09-181-0/+4
| | | | | | | | | | Change-Id: Iaef8dfa6a984eb709aaae35a94641c3e0183254e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Add some missing since and internal doc tagsLaszlo Agocs2019-09-182-14/+23
| | | | | | | | | | Change-Id: I50c6a5c7a55cfc481ff572113c58951983671cdc Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Avoid changing function signature in public headerLaszlo Agocs2019-09-185-10/+64
| | | | | | | | | | Change-Id: I0be124dfcafa2244531281ffd1ac6b559d82c604 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Add missing inner struct and enum docs for rhi material shaderLaszlo Agocs2019-09-181-0/+65
| | | | | | | | | | Change-Id: Ia78012271705b3f977011a89d3156faa79a35f29 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Clean up GraphicsStateInfo after API reviewLaszlo Agocs2019-09-182-6/+6
| | | | | | | | | | Change-Id: I715ad71153151a0e6521bc182227d9fa2dc0a3ea Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.13' into 5.14"Qt Forward Merge Bot2019-09-176-7/+29
|\ \
| * | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-176-7/+29
| |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jit/qv4baselinejit.cpp src/qml/jsruntime/qv4vme_moth.cpp tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp Change-Id: Iec7cd27ddad0281bd3b7833fb6b252f66a6ae5d6
| | * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-09-127-42/+67
| | |\ | | | | | | | | | | | | Change-Id: I6472cd72b27c69257efe54376e428274ebf68050
| | | * Fix various accumulator-saving problemsUlf Hermann2019-09-035-5/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to keep the accumulator alive across function calls. This requires: 1, Saving the accumulator on the stack if the function might allocate, to protect it from the garbage collector. However, we don't need to do that if the result of the function is to be saved in the accumulator and the function itself doesn't use the accumulator as argument. In this case the previous value becomes unaccessible and we might as well GC it. 2, In the JIT, restoring the accumulator from the stack after the function call if we want to ignore the return value. 3, Therefore, also saving the accumulator on the stack before calling in case of 2. We assume that we don't need to keep the accumulator alive across the jump to the exception handler. Saving the accumulator more often than necessary is detrimental for performance. To make sure the assumption holds, explicitly load the accumulator with undefined _before_ jumping to any exception handler. Change-Id: I78cbc42847b8885a0659b23f3b81655b7f1a0bc4 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * Visit lists iteratively when parsing QMLUlf Hermann2019-09-031-35/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I243d12b75a07ac04560b444c326bff77d0dc642c Fixes: QTBUG-74087 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> (cherry picked from commit 426f3035a3753800ce340a83bdf8db13922f4cae)
| | | * QQuickTextNodeEngine: don't create background when its alpha is 0Wang Chuan2019-08-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the alpha value for the background color of a text element is 0, we don't need to create a rectangle node to represent it, as the rectangle will be invisible anyway. [ChangeLog][QtQuick][QQuickTextNodeEngine] don't create a new rectangle node as the background of text, when the alpha of it is 0 Fixes: QTBUG-76137 Change-Id: I40c624ee8f61740fd07e7d3751a78b6224882913 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | | Re-add documentation for Qt Qml ModelsUlf Hermann2019-09-1716-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It got lost when moving the classes. Change-Id: I7b3a9fec8fe9439c548da570e430d3b82613b816 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | Re-add documentation for QtQml.WorkerScriptUlf Hermann2019-09-173-1/+40
|/ / / | | | | | | | | | | | | | | | | | | It was lost when moving the classes and the import URI was wrong. Change-Id: Ic01f5c327ac53e58874f54399dc0434a23bed7b8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Fix qmlobject_{dis}connect macros to require semicolon at the endJan Arve Sæther2019-09-166-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just do the typical do { [..stuff..] } while(0) in the macros Fix the places that didn't have semicolons. This should eliminate some compiler warnings complaining about excessive semicolons Change-Id: I6b0e7a55badfd0f80c3cd0e9e1da42dc41945485 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | doc: Add missing directories to qdocconf filesMartin Smith2019-09-164-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | These might not be complete yet, but they do fix the qdoc errors. Change-Id: I75b0f0f7709a371149a6f7c82adfff9fe88408ea Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | Force creation of metaobjects for top level objects and componentsUlf Hermann2019-09-131-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We want those to be different types, even if they don't add any properties, signals etc. Otherwise you can cross-assign objects of components defined in different files. Fully-dynamic types, such as QQmlPropertyMap are still an exception to this. We need to use the original meta object so that you can still dynamically add properties to any derived types. Therefore, all types derived from QQmlPropertyMap are in fact just aliases of each other. Also, types which aren't addressable from the outside don't get their own meta object. Types are addressable if they live in files and the file name starts with an uppercase character. Otherwise there is no way to refer to the component from anywhere else in QML. Fixes: QTBUG-76021 Change-Id: I96a01fdad13e50e4705520fec46f2b3373e0c365 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>