aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* 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 remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-171-2/+2
|\ | | | | | | | | | | | | | | | | 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-121-2/+2
| |\ | | | | | | | | | Change-Id: I6472cd72b27c69257efe54376e428274ebf68050
| | * 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>
* | | Fix qmlobject_{dis}connect macros to require semicolon at the endJan Arve Sæther2019-09-165-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | These might not be complete yet, but they do fix the qdoc errors. Change-Id: I75b0f0f7709a371149a6f7c82adfff9fe88408ea Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | PathView: reduce velocity by linear decay model if release is delayedShawn Rutledge2019-09-122-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That is, from the time between the last mouse move event to the mouse release, the velocity will be linearly discounted/depreciated until it reaches 0 at QML_FLICK_VELOCITY_DECAY_TIME, which is currently 50 ms. 50 ms seems like a long time if the user meant to flick and release immediately (in practice it might be more like 4 ms), and also a short time if the user meant to "dwell" before releasing. If we try to translate the fake physics to real physics, this would be approximately equivalent to saying that if you slide a flat plate on an air hockey table with one finger, and then stop suddenly, its momentum _would_ cause it to keep moving under your finger for up to 50ms (except that it doesn't, because our timeline doesn't "tick" until after the release); and yet if you hold it for longer than 50ms, it will stop right on the spot. That's not quite realistic, but feels OK for fake physics (like the rest of the physics in Qt Quick). Also add the qt.quick.pathview logging category, which will just log the velocity calculations for now (but is intended for anything else in PathView that seems worth logging later on). Task-number: QTBUG-77173 Task-number: QTBUG-59052 Change-Id: Ie86f18d3b3305874b698c848290e0fd3beda94de Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | | Move qsgrhisupport to an unconditional section in the priLaszlo Agocs2019-09-121-4/+4
| | | | | | | | | | | | | | | | | | Change-Id: Ia53b43cb2e81053ffa8709767d84ac1e5db72d27 Fixes: QTBUG-78243 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into 5.14Liang Qi2019-09-1222-162/+262
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4engine.cpp src/quick/handlers/qquicktaphandler.cpp src/quick/items/qquicktableview.cpp Done-With: Richard Moe Gustavsen <richard.gustavsen@qt.io> Done-With: Ulf Hermann <ulf.hermann@qt.io> Done-With: Shawn Rutledge <shawn.rutledge@qt.io> Change-Id: If9558a33f01693ce96420c094e0b57dfff0626cd
| * | Fix QQuickTextEdit triple click detectionJan Arve Sæther2019-08-292-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It should use the events own timestamps instead of a QTimer. It should give a more accurate measurement of tripleclicks, in addition to that qtestlib synthesized events (with timestamps) are respected. Task-number: QTBUG-77389 Change-Id: I4f553ec17b53a00b55519bb8082f1373aa9d130d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * | Doc: Fix documentation warnings for qtdeclarativeTopi Reinio2019-08-2911-126/+174
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After recent changes to QDoc, it now correctly warns about missing documentation for QML method parameters - fix all of these and also do some minor language editing. Remove duplicated entries for - \qmlmodule Qt.labs.qmlmodels - \group qtjavascript as they were causing issues. Change-Id: I55cd670cc8a0cc6427cdb7945dbd7c28ea94f796 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * | QQuickTableView: always relayout after a rebuildRichard Moe Gustavsen2019-08-281-9/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current logic was based on the idea that if both rowHeight-, and columnWidthProveders were set, we didn't have to relayout the items at the end of a rebuild. Because in that case, the row and column sizes would already be correct after the initial load. This assumption turns out to be false, because the providers are allowed to return -1 to signal that the size of a row or column should use default values (meaning, calculated by TableView). And for those cases, we need to do a relayout at the end of a rebuild. Fixes: QTBUG-77074 Change-Id: I0e0f2fdca1cfa9e98f2a0a2b227c3715c16a70f9 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-08-284-5/+68
| |\| | | | | | | | | | Change-Id: I0ae0a162e133cffd8fb1a2c6b70826e50f06facd
| | * Fix build with -no-feature-quick-spriteJohan Klokkhammer Helsing2019-08-271-0/+2
| | | | | | | | | | | | | | | Change-Id: I1599dde865a7c5454a52b45b2cc877a8c43fb10d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * Add missing HoverHandler docsShawn Rutledge2019-08-261-3/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | It was intended to inherit most of the docs from SinglePointHandler; but the hovered property is unique. Task-number: QTBUG-68072 Change-Id: I4b49569c9966b9252a61e40e8b07ef98f34849a4 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * doc: Clarify that the delegate populate transition doesn't always runShawn Rutledge2019-08-122-2/+45
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-42798 Change-Id: If10f06450f1e50893e5ba103e7c8c2d83667a651 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| * | Doc: Replace the "Qt Quick Controls 2" instancesVenugopal Shivashankar2019-08-224-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | This is one of the several commits, replacing the "Qt Quick Controls 2" instances with "Qt Quick Controls". Change-Id: I2e1f1e53bd7756331320f5447dbdabef36dfcb66 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | Request correct alpha composition on the rhi code pathLaszlo Agocs2019-09-112-2/+19
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-78089 Change-Id: I22f8bb5ec0af33397df14e064a0306bd4c5a5ef5 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | | Drop expendable rhi data when in release(Cached)ResourcesLaszlo Agocs2019-09-111-0/+3
| | | | | | | | | | | | | | | | | | | | | Now that a suitable function is introduced in QRhi, call it. Change-Id: I6328a4be90418015384b472655c9b8ad34a07e12 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | | Refer to recently added examples into the scenegraph docsLaszlo Agocs2019-09-081-0/+13
| | | | | | | | | | | | | | | Change-Id: Ib87fde45e5ebfed596c5d0146d6987e5390bac64 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Clarify docs and comments regarding under and overlaysLaszlo Agocs2019-09-081-3/+7
| | | | | | | | | | | | | | | Change-Id: I8973798996b6c775f425819af1d6a09f1773a9dc Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Add metaltextureimport exampleLaszlo Agocs2019-09-081-3/+4
| | | | | | | | | | | | | | | Change-Id: I499c21083faf6096a0dc3b8ee5682dd5cbcd3ce7 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Make vulkanunderqml work and update docsLaszlo Agocs2019-09-083-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | What we are doing for now is setting ExternalContentsInPass always. This way vulkanunderqml works as expected. For applications that do not integrate external rendering this means that there is now an additional secondary command buffer per render pass, but we can live with this for now. Later (Qt 6) there should be a way to declare this (that the application will want to issue native rendering stuff) up front in QQuickWindow or somewhere. Change-Id: I736741f9b0eee2f8295b046bacdce862e6a546f5 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Expose renderpass from QSGRendererInterfaceLaszlo Agocs2019-09-085-4/+30
| | | | | | | | | | | | | | | | | | | | | Important for Vulkan and (upcoming) examples like vulkanunderqml. Change-Id: I5b6c978f38175eca76efe059aa83bb7158724752 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | PathMultiline: handle directly-bound QVector<QPolygonF>Shawn Rutledge2019-09-031-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The autotest in 811b15bd161d12e5c85e093f9f492a0c4fa278d6 only tested what happens if the vector of polygons is passed via a QVariant to the PathMultiline paths property. But the intention (as documented) was to literally support an object with Q_PROPERTY(QVector<QPolygonF> paths ...) and binding that paths property to PathMultiline.paths. In that case it appears in QQuickPathMultiline::setPaths() as a QVariant<QJSValue>, canConvert<QVector<QPolygonF>>() returns false, then canConvert<QVariantList>() returns true. Nevertheless each variant in the QVariantList is a QPolygonF, as expected. So we need another check to detect this case. Also added a test specifically for that. Fixes: QTBUG-77929 Change-Id: I84d0a45326d5f007b8ba3cc9bb1fbccf0345d812 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | | PathMultiline: allow lists/vectors of polygons or point lists/vectorsShawn Rutledge2019-09-022-35/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a C++ model object can make a vector of vectors of points available directly, and it is bound to a PathMultiline's paths property to provide the view layer, it's a waste of time to convert it to a QVariantList of QVariantLists and back again. Changing the type of the property to QVariant instead of QVariantList enables an extensible set of supported types: all those that make sense. Fixes: QTBUG-77929 Change-Id: If749c2171173e7b9933fc9ecdf6d2741dc1c7500 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | | Enable PathPolyline to take a QPolygonF or QVector<QPointF> pathShawn Rutledge2019-09-022-18/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a C++ model object can make a vector of points available directly, and it is bound to a PathPolyline's path to provide the view layer, it's a waste of time to convert it to a QVariantList and back again. Changing the type of the property to QVariant instead of QVariantList enables an extensible set of supported types. Task-number: QTBUG-77929 Change-Id: I2453b59e047ec3310070e943f6934c9ddcd1ffaa Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | | Fix pedantic warnings in QQuickImageShawn Rutledge2019-08-301-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - semicolon after switch is not necessary - a switch that covers all possible cases should not have a default case: that way if someone adds another enum value, she needs to think about what it means in that switch - hopefully it was not intentional to ensure that targetRect has integral size in the PreserveAspectCrop case; it's not an explicit cast, so it looks like a mistake Change-Id: Ie7525137e826ed3ea03ac1dc9d2563e791379b42 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | | Add a createTextureFromId() alternativeLaszlo Agocs2019-08-307-7/+318
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Say hello to createTextureFromNativeObject(). This is the future replaecment for createTextureFromId(), and is capable of operating on both the direct OpenGL and the RHI code paths. In practice this allows creating a QSGTexture that wraps - but does not own - an existing VkImage, ID3D11Texture2D*, MTLTexture*, or GLuint. Change-Id: I500ee4c76da67eca1a70599a30b03d7b126b570d Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | QQuickFbo: add the RHI warningLaszlo Agocs2019-08-302-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | This class will probably go away in Qt 6. "Probably", because it is not yet clear if/how an alternative will be provided. Change-Id: Iba205c394a97bf8d2c1001f8f42ad26be6841b09 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Add a note to QSGEngine about its incompatibility with the RHILaszlo Agocs2019-08-302-0/+6
| | | | | | | | | | | | | | | Change-Id: Id9d6ce4a531d2cd1b79b3bb9224a5567ead42799 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | | Fix build with -no-feature-quick-pathJohan Klokkhammer Helsing2019-08-301-0/+2
| | | | | | | | | | | | | | | Change-Id: I7ed2c190ffe9ddd83aeee28de3c5d87269ec53ee Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | | Avoid introducing rhiTexture() in the public API of QSGTextureLaszlo Agocs2019-08-295-25/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no need for this. The few internal users can get it via QSGTexturePrivate. The original thinking was based on QRhi* being a public API, but that is not the case in the near future. So avoid introducing a public API relying on QRhiTexture. This of course makes it impossible to retrieve the native object under a QSGTexture (as textureId() is not used anymore when rendering with the RHI). For that, an alternative approach will be introduced later on. Change-Id: I0099b23424cafa4958f78c03300b0c934b60d92c Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | | Fix not printing logs with QSG_INFO when forcing rhi backend from C++Laszlo Agocs2019-08-293-3/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QQuickWindow::setScenegraphBackend() may be called before QQuickWindow gets a chance to create a render loop. If QSG_INFO (the env.var.) is used instead of the logging category (qt.scenegraph.general), some logs are not printed because the code that enables the logging category is not yet run. To prevent confusion, make sure the logging category gets enabled before the first potential qCDebug. In the worst case we check twice but that's fine. Change-Id: Ibfc0af05050adc9766c30a2d15c778b2a51823fe Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Set point size in visualization vertex shaderLaszlo Agocs2019-08-292-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | ...in order to avoid a validation layer warning with Vulkan when visualizing overdraw on a scene that includes drawing points (like some types of particles). Change-Id: Ia0a40f850ce5f7a0374c7b8779d5342f191c6973 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | CMake: Document newly introduced QT5_IMPORT_QML_PLUGINS functionAlexandru Croitor2019-08-282-0/+62
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-38913 Change-Id: I25ada92de8c7d7186c9b083b8a8ccc4427945b28 Reviewed-by: Kavindra Palaraja <kpalaraja@luxoft.com> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | | QQuickDragHandler: Add revision to snapModeUlf Hermann2019-08-282-2/+3
| | | | | | | | | | | | | | | | | | | | | This property was added in Qt 5.14. Change-Id: I48ebc614490e67440419965983126740c4443d0e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Harmonize meta object revisions and minor versionsUlf Hermann2019-08-2616-51/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to avoid complexity we want those to match. We can easily "rename" the meta object revisions as those are not public interfaces. Change-Id: I48e063d49758c7bacd9b7816bf5541cf67e07b0d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | QQuickPinch: Declare notify signal for targetUlf Hermann2019-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This way we can figure out from the metaobject that this signal actually notifies about target changes. Change-Id: I2151990e906e375f807b2d952e8f183a19529394 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Move currentFrame and frameCount properties up to QQuickImageBaseShawn Rutledge2019-08-2410-39/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AnimatedImage already had these properties, but some typically non-animated image formats such as PDF, TIFF and ICO can also support multiple pages. In either case, the currentFrame property can be used to select a specific frame or page. However an AnimatedImage uses a QMovie to do that, whereas a plain Image uses QQuickPixmap. So the accessors need to be virtual in order to have these different implementations. [ChangeLog][QtQuick][Image] Image and BorderImage now have currentFrame and frameCount properties which can be used to step through the frames of multi-page image formats such as TIFF, WEBP and ICO. Task-number: QTBUG-77506 Change-Id: Id4d95a99a26a862957e44b1bd8ffe06d7eababef Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | | Remove usages of deprecated APIs of QWheelEventSona Kurazyan2019-08-233-4/+5
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-76491 Change-Id: I69b0c4ec7c03f9421b18828516e064eff2b45518 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | QQuickImageBase: prepare for rescalable PDF as an image formatShawn Rutledge2019-08-231-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | QQuickImageBasePrivate::updateDevicePixelRatio() assumes that only SVG or an image provider can provide a scalable image. Now that PDF will be supported, we can add it to the list. Change-Id: I9a6df7c58cb9db0e8d4d159c138bedd481281d92 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | | Remove an unused event type in the threaded render loopLaszlo Agocs2019-08-222-22/+0
| | | | | | | | | | | | | | | Change-Id: I505ba09d6a0144f18bf29cda2f549c8b69ada1a5 Reviewed-by: Christian Strømme <christian.stromme@qt.io>