aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* qmlplugindump: Consistently sort composite typesv5.14.0-beta1Ulf Hermann2019-10-021-14/+21
| | | | | | | | | | | | | Previously the sorting depended on qHash(QQmlType), which hashes a pointer to QQmlTypePrivate. That was not very useful. Also, the defaultCompositeTypes were only populated when dumping builtins, and only used when dumping regular types. Therefore, whenever they were used, they were empty. We don't have to bother with that. Change-Id: Ibfbfc7e14bee900d617bab58cbe39d05f5fe91c3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Examples: Avoid Qt.createQmlObject()Ulf Hermann2019-10-021-27/+86
| | | | | | | | | | | | | We don't want to encourage Qt.createQmlObject(). It's the equivalent of eval() in JavaScript. This has the added benefit that the shapes actually react to changes in the parameters now. Before, once a shape was drawn, it didn't get updated when you manipulated the line width or fill controls. Change-Id: I8d5b7598799b52043f86fd1f617e31de09331891 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* 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>
* qml: Make sure the qml tool deletes its applicationUlf Hermann2019-10-021-6/+8
| | | | | | | | | Otherwise the shutdown mechanism for debug services doesn't work. Fixes: QTBUG-78828 Change-Id: I4ede5861a300d5b5007036d71ed84409ec4d450f Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@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>
* tst_qqmlecmascript: import QtQuick when using color propertiesUlf Hermann2019-10-011-0/+1
| | | | | | | | QtQuick defines the color provider necessary to use colors. If QtQuick is not loaded at that point, the test fails. Change-Id: I7d2eb25f7482d18b304d9274bce4a6bd6fa34741 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* tst_qqmlecmascript: Don't leak created objectsUlf Hermann2019-10-012-55/+54
| | | | | | | The result from component.create() has to be deleted somewhere. Change-Id: I23135cb639fc316641e399decc740d9f5d445a84 Reviewed-by: Simon Hausmann <simon.hausmann@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>
* tst_qqmllanguage: Fix singleton testsUlf Hermann2019-09-301-27/+28
| | | | | | | | | The JavaScript pragma test expected the dynamic signal test to run before. Therefore, it would fail when run in isolation. Move the two tests into one function. Change-Id: I0edb1f091c6a845110c3f741cbb48e846c423005 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>
* Don't leak the context property in tst_qqmllanguage::accessDeletedObjectUlf Hermann2019-09-301-1/+2
| | | | | | Change-Id: I27baef97537bb8fda7fcc00d934f0b2568b4284e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@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 "Merge remote-tracking branch 'origin/5.13' into 5.14"Qt Forward Merge Bot2019-09-278-4/+96
|\
| * Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-278-4/+96
|/| | | | | | | 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-233-0/+30
| | | | | | | | | | | | | | | | | | | | | | 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-192-3/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Loosen qmlplugindump's checking of URI and major versionUlf Hermann2019-09-261-5/+16
| | | | | | | | | | | | | | | | | | | | | | If not given a "--strict" argument, qmlplugindump will ignore the given major version and only check the URI as prefix, not as exact match. This is in line with what qmlplugindump did in version 5.13 and before. Fixes: QTBUG-78745 Change-Id: Ib2803d47e6cb60c797fec8dfaa628278307d4cd4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@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>
* | qmlplugindump: fix prototypeNameForCompositeFabian Kosmale2019-09-251-10/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We do not put the objects we encounter in defaultReachaleNames. Thus, the check in prototypeNameForComposite will fail most of the time. Instead, we now use the same check as in collectReachableMetaObjects (that is, does the type belong to the module). Then, we once again only collect the metaobjects belonging to the module in objectsToMerge, and only dump the relevant properties from there. Fixes: QTBUG-78744 Change-Id: I78cae1e56b6f59e277198f9bcd0d826c4e0978a7 Reviewed-by: Ulf Hermann <ulf.hermann@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-243-2/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-244-1/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-232-1/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-234-3/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-186-22/+22
| | | | | | | | | | 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-1717-73/+231
|\ \