aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'v6.2.13-lts' into tqtc/lts-6.2-opensourcev6.2.13-lts-lgpl6.2Tarja Sundqvist2025-08-2238-151/+732
|\ | | | | | | | | | | | | | | | | Qt 6.2.13-lts release Conflicts solved: dependencies.yaml Change-Id: I3cbe1ce4293179888e236dd1a3a299cd2c66c950
| * QQuickTableView: detect if sync view and sync child is out of syncRichard Moe Gustavsen2024-08-201-10/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When syncView is requested to do a relayout, it will tell the sync children to do relayout as well. A relayout alone will not change the top-left delegate item in the viewport, only layout the existing delegate items. But as it turns out, it can happen that the relayout leaves empty space in the viewport that needs to be refilled with new rows and columns. This is typically the case if some of the columns were resized smaller than what they used to be. And this can change which cell ends up as top-left, or move it to a different position. We therefore need to extend the check in syncSyncView to also include the _position_ of the top-left cell, and not only if the top-left cell itself has changed. As it stood, we also did a viewportOnly rebuild every time a new row or column was flicked into the viewport. This is very unnecessary, and slows down performance. Instead, we only need to do this when if the sync child is told to do (at least) a LayoutOnly. Only then can any of the visible rows or columns have been resized. Fixes: QTBUG-127809 Change-Id: I815a47e9d6453871172ff7136f8cfbd51a5bc789 Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> (cherry picked from commit 25348bc0e67f019232aa70c5558988a0c17bd15e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit a5d0cfe092cc8411469ef53df13f2dac12051bf4) (cherry picked from commit 6f699d343c3dab086acf927c8601c88580317365) (cherry picked from commit dd507a05b3d0743627f8503785000a5e75f9cbcb)
| * QQmlListModel: Invalidate ModelObject when necessaryUlf Hermann2024-08-124-17/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both the object and the listmodel may be deleted during the life time of ModelObject. Don't crash when that happens. Also, fix QV4QPointer to actually name the type of the pointer it stores. Apparently this is the first time we add a QV4QPointer of something that's not a plain QObject. Pick-to: 5.15 Task-number: QTBUG-118024 Change-Id: I208d8749bcd67970f7bfbe569eed7a472f909508 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 90c55e859ea258350da815acd3e1967d5ff54100) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit aa253878fedee9bc699ec333d3c0c600e24f316f) (cherry picked from commit f7182e0124776acf0bfb1348192e09e3ccc86f0e) Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit ca5bd206d49fafb813c52570a89006ed1967b17c)
| * QQmlProperty: Reset the binding bit when removing a null bindingUlf Hermann2024-08-121-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we remove a binding we don't want any later code to restore it. This works quite well if the binding we remove already exists. removeFromObject() resets the binding bit and that settles it. However, if the binding doesn't exist yet, we so far didn't reset the bit and when the binding appeared we would still add it to the object. That was quite wrong. Fixes: QTBUG-124553 Change-Id: I58c115d78b3701ad4e8837772261a9154b971dbb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit c9d7620bc2e47d3e1b84f824eb5b643f269f4a56) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit bd75b606ca78b3b92dd9596359b232da3358608e) (cherry picked from commit 3b4ec8930c20f107d48134f88b7113df2825ef7a) (cherry picked from commit ed3a387333f1a4448c5e173b59deb5828790e82c)
| * ListView: take section size into account while snapping an item into placeIvan Solovev2024-08-091-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case the sections are displayed using ViewSection.CurrentLabelAtStart, the section size should be taken into account while snapping the items. This patch extends the fixup() method to perform such checks. The drawback of this approach is that the position adjustment takes some time (because of the animation) and happens after the scrolling is finished. A better solution would be to fix the scrolling process in such a way, that no adjustment is needed during fixup. Had to explicitly initialize the 'pos' variable, effectively backporting 8f895ea26d5d524677dd5b63f43bdd7e81339840 to the 6.2 branch, to suppress gcc warnings and fix the build. Fixes: QTBUG-30768 Change-Id: I31a1a3af55afe8be4e8d7980cbb163622e3283bc Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 249fe4ba127e834a33950a045d06628187987f99) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit b29bfa7ca03470afd06c4bdfada9ac6712957c32) (cherry picked from commit 174e6b59ecb76393c678341dfe74e482a35c8b19) (cherry picked from commit 1bcce82ff84c3403d0c86bccbf38f7f4e0d52d8a) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * Fix crash in distance field cache with some glyphsEskil Abrahamsen Blomfeldt2024-07-241-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The size of a distance field for a glyph is calculated as: w = ceil((boundingRect.width() + 2 * margin) / scale) h = ceil((boundingRect.height() + 2 * margin) / scale) In addition, the RHI-specific cache subclass adds padding on the outside of this. This was done in multiple places, both in Qt Base and Qt Declarative. If they got out of sync, then we would crash, since the distance field size is expected to match up with the allocated rect in the cache's texture. For the most part this worked since the formula was copied everywhere, but since the QDistanceField does a translate() on the path before getting the bounding rect, we could get a result which was off by a very small amount (0.0000000000000071 in this case). A qCeil() turned this into an off-by-one, and memory corruption occurred. To avoid duplicating this formula in both Qt Base and Qt Declarative, we explicitly pass in the size we expect when creating the QDistanceField. Pick-to: 5.15 Fixes: QTBUG-124572 Change-Id: I6bb8ab4db17b43fe8ddf9db35de5b7d51ccb54de Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit 2370cb0eb9f9be62472a84247a3933d176b4cef4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit e180e53359accb7a11371bc951626cddaec732ef) (cherry picked from commit a1c733ff180739e08ffc887bf2ebb255b1d89a30) (cherry picked from commit a0a2f3b5828daa98fda3d23d0b53b22024b438b8)
| * doc: fix reference to nonexistent DragHandler.SnapNeverPierre-Yves Siret2024-07-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The documentation mentions SnapNever as a value for DragHandler SnapMode The correct value is NoSnap. Amends f228af06c2c712302ee1dcdaf761cd24504b473e Pick-to: 5.15 Change-Id: I240d63b5ac989d37f2b7a611cab75ccd4bab2368 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 33b99d65f609d48929da1781ed3e1405db5edbe6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 1073f4dd9b0d34e8a08181d66c4920ac3abaede7) (cherry picked from commit 119b08fed6889fe914d4a2825d25134cc6af7539) (cherry picked from commit 0bac8975c221b270442cd882677df840fa23422c)
| * Reset hover state for the items within the quick popup windowSanthosh Kumar2024-07-091-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hovered state of the item within the quick popup has not been reset when another modal popup is placed over it. This is because, after patch 48da34f3d797f58b3eda9ed0a98aa1776d75d946, the overlay filters the hover events of the quick controls which are modally blocked. But this can create an issue if the child item of the pop is already in a hovered state and there is another modal popup placed over it, as any further hover events (including the HoverLeave of the control item) will be forwarded and handled by the modal popup which doesn't allow the child item to resets its hovered state. This patch allows the child item of the popup to handle hover release event when it's already in the hovered state. Fixes: QTBUG-126626 Change-Id: Ibf7f5ad8653a8c0df9968114ab6b8228acba9d6e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 7712fbc0f0b779b01117312ba0d98f16173120aa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 6958577abdd668066c8c9bd0c8d8402e878da727) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit ceace5f3a64c2133e2820e1366aa88e7541bedba) (cherry picked from commit b2cfed01bea64861e91bc8eb783df982347c10fd)
| * doc: Stop telling users that DragHandler is not for DnDShawn Rutledge2024-07-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Link to the Drag attached property, which has been referring to a snippet using DragHandler since 5971a6faaa1124f5ef3f0b42d4ed0298cf8096a3 Task-number: QTBUG-68078 Pick-to: 5.15 Change-Id: I2199e0e08f39ed1b136c5ea71da6631a032c4d48 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 4506b936b4dcaeb42d91e3b25789ec91d13b584e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 899b8baef71954cd3ea54e1e7432d9f070773271) (cherry picked from commit 76ecedaf64270675a1734f466b6fad4eb837b9be) (cherry picked from commit 56eacc22e31c46504005932c3747f2853ca78e1e)
| * Do not try to rearrange if the width/height is < 0Jan Arve Sæther2024-07-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also fixes a crash in this peculiar condition: Item { width: 0 height: 0 RowLayout { anchors.fill: parent anchors.leftMargin: 1 anchors.bottomMargin: 1 } } Reason for crash: As a consequence the layout was rearranged with size == (-1, -1), (which happens to be the value of uninitialized QSizeF). This invalid size was passed down to QGridLayoutEngine::setGeometries() (in the contentsGeometry QRect), and again to ensureGeometries(). ensureGeometries() would return early because of the condition if (q_cachedSize == size) (q_cachedSize is an uninitialized QSizeF by default, and size == (-1, -1) This caused the q_xx, q_yy, q_widths, and q_height to not be properly initialized, and it would crash inside QGridLayoutEngine::setGeometries() when accessing the list: qreal x = q_xx.at(item->firstColumn()); Fixes: QTBUG-124456 Change-Id: I2e3586389aa1728c3622e92bd589af87d11955ae Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> (cherry picked from commit 6f7deef6d54dea7e033f5bf2c3ba0ee54ab562ed) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 0bd1fa6ce83d4d6f32d72011bb6febd6037b0596) (cherry picked from commit 1bc30751db82b7d0f2e24d617bfedae9ebc09c6a)
| * QQuickAnimation: Fix setting running propertyAntti Määttä2024-07-011-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The setRunning logic can call the setRunning recursively while changing the property. This might cause missmatch between whether the animation is actually running and the running property. If we detect recursive call, make sure that the d->running property matches with the animation job running status. Fixes: QTBUG-125224 Pick-to: 5.15 Change-Id: I2e580d45cea7fd9cb010bc37a366def083b24abb Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit cdf71ef7b62dd92d23a7485a3490527d28097db5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 1ef06979983ab87f2f0b0d15d36c98d4a05deeea) (cherry picked from commit 5f16dfbe6fecc8315c9752876afc71a96c182d29) (cherry picked from commit 5e2878df39850f22240151471aa2211d54721702) Reviewed-by: Antti Määttä <antti.maatta@qt.io>
| * Doc: Override DragHandler.accepted* and marginShawn Rutledge2024-07-013-0/+329
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DragHandler docs have been showing TapHandler code snippets, because both DragHandler and TapHandler inherit properties from PointerDeviceHandler, which is abstract and uses TapHandler code snippets in some of its property documentation. Override documentation for acceptedDevices, acceptedModifiers, acceptedPointerTypes and margin by adding to the DragHandler class, and add testable snippets for a couple of them. draggableGridView is adapted from examples/quick/draganddrop/views/gridview.qml. Fixes: QTBUG-119866 Change-Id: I9f98d831ec1691c84da6a38a7625f9aba086cebf Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> (cherry picked from commit 7ddbb8f972fadc9073d1a8fd651dc08783b92a3a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8890effa5f9bd702ff9abd781947ff3eb5a3510f) (cherry picked from commit 05106ec5794f453d1d5fd7e9b24507c59f3c7bdc) (cherry picked from commit 39c3655d2d770e6d1daf252efcf5a89e2a98bbac) Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * Ignore Text.style when drawing color glyphsTor Arne Vestbø2024-06-221-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | The style shader doesn't support color glyphs, and would result in a grayscale glyph/emoji as a result. As raising or outlining color glyphs is not typically how the native platforms handle color glyphs we opt out of these styles if we're dealing with color glyphs. Fixes: QTBUG-82311 Change-Id: I52b02ed4d95dbc8655f19118eebc7634f122ff8b Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 8b179cebb755059888a61fe69e2c4b4561c50a87) Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| * Fix documentation of List/GridView countAlbert Astals Cid2024-05-152-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | It doesn't return the number of items in the view, it returns the number of elements in the model Pick-to: 5.15 Change-Id: Iea479ef0fef1823718d7681ae30bb49f60025237 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit ca207f3e63f91426589f7afc775ae3fecc5e49b2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit a7debb56f25558cb6a9afdf8d799555aa881d3eb) (cherry picked from commit 1921468b1a64726053d3b65c34071d365e99ae5d)
| * Doc: Add CMake instructions for how to run Qt Quick TestAndreas Eliasson2024-05-061-12/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | The current module landing page only has qmake instructions. Add CMake example code and separate CMake and qmake into tabs. Fixes: QTBUG-123227 Change-Id: I507b6dafa1bb24ea8eaeff3e9ed6cfa31ab56f0d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 76764b0cd3361db064c50582f7440b7fc2b37def) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit fbfdedf58d3fc5615931f57f71e1e7fd42c88ac9) (cherry picked from commit 25e0a7ca82089718b04cf80782cafa6a64fc3ae8)
| * QtQml: Fix some type conversion edge casesUlf Hermann2024-04-261-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | We want to look at the precise type when converting list properties. Otherwise we get a list property without any methods back when converting. Change-Id: I012c0360ef1578c768362d5a4648252d3e6803d8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 37bd19f30102d3e266386e3b81068f2e9cb20425) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit a61222c44714756c058b5407613ac3b95e30e4e2) (cherry picked from commit 5c31551e116c11af2f1f7895f006ce35005b2151)
| * Controls: Bypass bindings when setting x and y in resizeBackgroundOlivier De Cannière2024-04-171-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Using setX() and setY() instead can remove the binding for them. Fixes: QTBUG-120033 Change-Id: I77fc5360b2d10436b5e258b5f0ceb96b949eccbe Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit bb7ba7667b4cf3565aa1849d08cc71b9ac011e77) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit ac17f948cdb46e0fe900c72af35fc3ac84e29000) (cherry picked from commit 118f9999fe6438261faa697905aa89b1557c3774) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 3f9cfda16910d17f2a4c2372a8a50b89384cbc40)
| * GridView: add missing properties and signals to the documentationHatem ElKharashy2024-04-161-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | reuseItems, pooled(), and reused() can be used in GridView as well, since QQuickGridView and QQuickListView both inherits from QQuickItemView. Fixes: QTBUG-122250 Pick-to: 5.15 Change-Id: Ie9875f5b3abd98f9b14134d06fbfce0286d56444 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit a35950db9523ab910feb8622f97432ee4482de83) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit d34f33c3fd48850a11dbdc33a9ced030faea69ba) (cherry picked from commit 677c9a0598496bdb7bb5f01f1577e53a1306e256)
| * Fix Text with ElideRight rendering when margins are setIvan Solovev2024-04-151-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 127c79fb7fda16b9a48ce8c425d1700d1aa7502d already addressed the issue, but didn't take into account the fact that the old width can be negative when the non-zero margins are set. Provide a trivial fix and extend the unit-tests. Amends 127c79fb7fda16b9a48ce8c425d1700d1aa7502d. Fixes: QTBUG-83408 Fixes: QTBUG-33608 Change-Id: I7c43bd72f63d577995138ad4aa3e1195011b6bc9 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 235bbe8c644415a83e3f5103eff7c4ef4181164a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 892576b7499a221b4b46e2421442dd577813d36a) (cherry picked from commit 04d78da3f459021d189f7f805ba9559559487967)
| * Fix heap-buffer-overflow in ESTable::removeOliver Dawes2024-04-112-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a heap-buffer-overflow issue in ESTable::remove due to an off by one error in the count provided to memmove calls. Pick-to: 5.15 Task-number: QTBUG-123999 Change-Id: I4ee0fbc16ba8936ea921e5f1d1bb267dae0b1d5f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit d3e36454830012e4fd4c538ddeab7cddbfacdc24) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 3241bb2e5e9a4a8c35254fc279d216b6da81780e) (cherry picked from commit 42b8085b50627fa7aa14cd6d5af7ad7fbfce85d0)
| * V4: Don't call methods on nullptrUlf Hermann2024-04-081-18/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The root node of a sparse array can be null. Pick-to: 5.15 Fixes: QTBUG-123596 Change-Id: I5ea7fd73aeec460082d0cf19c7fc8a01993ed1f9 Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit e221e1e942f58750af0a93232354a2ad35c74bcf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 590db8ac18f92c594ff7dbf4b4c020aaec546c44) (cherry picked from commit 08a318b3dc377a0a6fea88332ceebf166ac741f1)
| * QmlCompiler: Do not use QQmlEngine from current QML contextUlf Hermann2024-03-281-27/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We cannot be sure the current context is still alive when a function is called. We may be left with a skeleton context that doesn't have an engine anymore. However, we can always query the QJSEngine given in the AOT context. That one cannot disappear and is generally the right one for capturing properties. Fixes: QTBUG-123395 Change-Id: I2a6c38baa159fa790f3ba2aba225fdc9cc37001e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit eb79815fbfad7d4e7fb4be856dc0dd43be76fdb9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8228f07a216dc6996be6584108d262829d68016b) (cherry picked from commit 1586ea1f15b78aa1319447b8a6a41b23c19eb2e0) Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit 724971240f07d659fdd8ce4ded375e692492b76f)
| * QmlCompiler: Respect scoped enumsUlf Hermann2024-03-268-12/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Correctly propagate the isClass and RegisterEnumClassesUnscoped information from metatypes to qmltypes, then read it correctly. For historical reasons, enums are unscoped by default, even if they are declared as "enum class". Furthermore, QML enums can be accessed in both scoped and unscoped way. Scoped C++ enums can only be accessed by explicitly stating the scope, and unscoped C++ enums can only be accessed without scope. We cannot test this using qmllint because qmllint in 6.2 cannot properly analyze enums, yet. We need it to fix qmlsc miscompiling the relevant code, though. Task-number: QTBUG-107143 Change-Id: If1ee9a10479cffb46067ccb5e683906905c24160 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 7da544e862a92cc0a9d97cbed68a35c532699116) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 806af3541056a580d0c2c6c5d7a518efbc473b68) (cherry picked from commit 65fa7ff2c98c433843ee25b5a80dc79427aca9f8) (cherry picked from commit e28fee2d26f6002a524d2bf8cc32c4514f6f557e)
| * QQuickWidget: don't set WA_AcceptTouchEvents on macOSShawn Rutledge2024-03-211-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Usually, a QTouchEvent comes from a touchscreen, and we want those touch events in Qt Quick. But on macOS, there are no touchscreens, and WA_AcceptTouchEvents has a different meaning: since qtbase 03d057ff01332333b98f5298c3d0bd85b5604ac9, QApplication::notify() calls the native-integration function registertouchwindow() to change NSView::allowedTouchTypes to include NSTouchTypeMaskIndirect when the trackpad cursor enters the window, and removes that mask when the cursor exits. In other words, WA_AcceptTouchEvents enables getting discrete touchpoints from the trackpad. We rather prefer to get mouse, wheel and native gesture events from the trackpad (because those provide more of a "native feel"). The only exception is for MultiPointTouchArea, and it takes care of that for itself. So don't automatically set WA_AcceptTouchEvents on macOS. The user can still do it, but we don't recommend it. Amends dc8f44b14501ecd4acc196f5138aeff3f7502d0a Fixes: QTBUG-113384 Change-Id: I8b0e1d247adfc95f1c9a0881a6020eab1a42b0ab Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 2f1be4c51a1655697933468c10ba53316306d207) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 485388263f55ac7c40c53fa3b0d4bfaa275e55f1) (cherry picked from commit 9580f7970cc394e2a499a3b5b65d3391b5bb6442) (cherry picked from commit 779f434e818d3945347d8d363c4445e44af84b5c) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * QtQml: Tolerate bad function signatures when type checkingUlf Hermann2024-03-193-11/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have to depend on valid types mentioned in function signatures, but we can ignore invalid ones. Fixes: QTBUG-121128 Fixes: QTBUG-120506 Fixes: QTBUG-122252 Change-Id: Ie12f0d503ae8d8d238346948981803c1c07e8515 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit e516ef519b116f27d7ed5387275be27a4215a792) (cherry picked from commit 1d2be36ee8b28cef11ac97c7c5a422ae986d60e3) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 68bf4948ffec9ef4246e359ca16119c9969ee6c9) Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit 60fd389d4ef7fdebc9af8b7c4f76eb2741a5f1e4)
| * Fix deadlock in long-running particle systemEskil Abrahamsen Blomfeldt2024-03-182-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2^30 was used as a "big number" sentinel and assumed to always be higher than the particle system's age. But a particle system running for a bit over 12 days will hit this limit. The result was that such particle systems would never exit the loop in recycle() and deadlock. Instead we add the check for an empty heap to the loop condition itself. Pick-to: 5.15 Fixes: QTBUG-123111 Change-Id: I6bf9c5a27271e74f56728c0ad7bdabdd87e028b2 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 9c54252914634a6756b39261b027b48b96c6ea7b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit fd53ed433a18a369984d87614921bbeed92997b1) (cherry picked from commit c34daa62e6efad6566fab478c3f937030f1828fb) (cherry picked from commit 2a389f2575219de6d8d264a6e244a0420ee92b87)
* | Merge tag 'v6.2.12-lts' into tqtc/lts-6.2-opensourcev6.2.12-lts-lgplTarja Sundqvist2025-01-2925-83/+199
|\| | | | | | | | | | | | | | | | | Qt 6.2.12-lts release Conflicts solved: dependencies.yaml Change-Id: Ia7410afbc9d94f061fb13da84b6361428725b530
| * Doc: Revise Qt Quick Text reference pageAndreas Eliasson2024-03-011-20/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix typos. * Show rich text Markdown example. * Be consistent with relative clauses (that vs which). * Where it makes sense, use active voice instead of passive voice. Fixes: QTBUG-119485 Pick-to: 5.15 Change-Id: I7843a3276f277172e25f5891f08e2a830d713c4e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit ec3b799824ef03cd332297024db57acce60e76ed) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit ce366ee66e33647cc7a48fb2f251cab112bb88cc) (cherry picked from commit 1e58c059977ee5e07aa2df8df434d0fe24a1623d) (cherry picked from commit 6afbf84b7a0ff536ce48e8189eb1ac7696d4872c)
| * QmlTest: Document timer drift between TestCase and TimerUlf Hermann2024-02-171-1/+10
| | | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-120105 Change-Id: I5d07068a6ed639b461cd3c9e314869a72d13f5b0 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name> (cherry picked from commit 198a90f56255bf9e5cf4416b973682cdc708d77b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit b156a1f1f93b4d374a455f10bf13c642746325a7) (cherry picked from commit 11dcf2d228838f146626185204caf2de2506a4a1) (cherry picked from commit 5e4b4b02f22f72c4143085e26dcf8d87031b423d)
| * masm: Don't crash on failed MADV_DONTNEED on LinuxAntonio Napolitano2024-02-071-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The application could call mlockall(MCL_CURRENT|MCL_FUTURE) to lock all its memory for performance reasons, causing the madvise call to fail. There's no need to crash. Instead, manually zero-out the memory when decommitting. Fixes: QTBUG-120450 Pick-to: 5.15 Change-Id: I6f1a8968853cc5e61561371bd2a435a686eaf0e4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 524d260c5c135d193e06350e48357444ddb13ddb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 1ead022dfea5a6b3bed8ca80de85c20cea6c809f) (cherry picked from commit a2e0061317954fdab6f9af1ab0490944bca33873) (cherry picked from commit 5c42f57e88681be521e3d59f9e527d3bcd4d5732)
| * QtQml: Re-allow assigning of raw numbers to enum property aliasesUlf Hermann2024-02-074-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This used to work and we cannot just take it away. Amends commit 3ea55bf398412d373daab9c92b1498f45de70e96. Fixes: QTBUG-121710 Change-Id: I7f856140286bba9d49b7ed1abfdf398a65fb1962 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit f3bcbfd6a50fb7e74f4ff6714d3b3066fa74e253) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit ec692b22e7b45bef016280a15c8205969e808e12) (cherry picked from commit 3a8028b393f6b5345f5653d81f49efa31021fae1) (cherry picked from commit 444810849bcafe5d52927a2ae2f972d087d36193)
| * QtQml: Clear context objects more thoroughly on destructionUlf Hermann2024-02-053-18/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The same object can be the context object of a hierarchy of contexts. So far we would only clear one of them, leaving dangling pointers in the others. Clear all the contexts. Pick-to: 5.15 Fixes: QTBUG-119326 Change-Id: I509f257672813866e3736b51f430f1243a8577f0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 27ba69af2f64a8b194655c9fbb276ce981075f75) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 833f4f6913835a18c37b02bd4784d62cbb4d0701) (cherry picked from commit 477c3c3c25d478caa5b833a9c64f3945b3d3a83e) (cherry picked from commit 7318fadc42e462babeca473864d12cfd033ffa42)
| * setInternalClass: Correctly handle deleted propertiesFabian Kosmale2024-02-051-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an IC was rebuilt, we must not set members that were deleted, otherwise we'll trigger an assertion. Since the nameMap has to match the data we still allocate memory for such members and fill it with undefined. This could be avoided with some deeper refactoring, but a simple solution is to be preferred because this needs to be picked back all the way to 6.2. Fixes: QTBUG-111729 Change-Id: I730d6b4634d989191434225600a08cf0208e72f8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 642d531e42fb233709155f8c8feb7d429c48db38) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 308f785c7842267a8744381148bd82b21c536033) (cherry picked from commit f17168ef874f05b4ea57088cadcc2d5a8fd2c5a0) (cherry picked from commit 912886afe4d58130eb218342843fe85e15128f17) Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
| * Fix documentation for QML_ATTACHED and QML_FOREIGNUlf Hermann2024-01-231-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | They can in fact not be combined. Change-Id: Ic01edf9328d7235511f305ed15114360b79d0a36 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 5a8663664ea49722a6f561bd2fad8fb30b4e7860) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8bd24a76b6e685bc1b0be351686365e84b1747cb) (cherry picked from commit f48bc1291f26bfedd5d43dd5cbc40e7ade066eb2) (cherry picked from commit 27506c2ccfb79532215bc69ee284f73a1ed2d9e7)
| * Ensure that HoverHandler reacts if a touchpoint moves out of boundsShawn Rutledge2024-01-221-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We rely on QQuickDeliveryAgentPrivate::flushFrameSynchronousEvents() mostly, but it doesn't get invoked without a window update request. So there is a special case when a touchpoint moves _out_ of an item that has a HoverHandler but is not reacting to touch in other ways: we just need to send another artificial hover event for each touchpoint to each hovered item to inform handlers about the new hover position. Fixes: QTBUG-120346 Change-Id: I479362a2663943eb495fe0be418009165c7134bd Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> (cherry picked from commit ff4c2c311f1957ebacb66f0d35406a51da2a544e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 7ef31a576328a2a8a94885cf2056dc0ddd9e5a2f) (cherry picked from commit 4a7ff2b6ad61dc8d5296a49066da279a87929c8b) (cherry picked from commit 2e3e3adf0f257d4c48c5907d579a35badbc1eb5b) Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * Put the QML plugins to the non-config directoryAlexey Edelev2024-01-181-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The generated qmldir files that are used by QML engine specify the relative path to the QML plugins that are build within modules. So it's usually expected that plugins are located on the same level as the qmldir files. In Multi-Config builds all libraries are located in the build-specific directories by default. In this case QML engine is unable to locate the plugin and the application cannot be run without extra manual steps. This fixes this issue, by using the top-level plugin OUTPUT_DIRECTORY for the "default"(first) config as RUNTIME/LIBRARY_OUTPUT_DIRECTORY. In Windows platforms we need to make the same for non-static backing libraries, since we cannot rely on RPATH there. Task-number: QTBUG-99061 Change-Id: I51a8864743b87fd6ec4ba7179e13f311c5bee403 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 2dbae968e7a15aca2ff5c8795e2a6dcb2e0a5744) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 91a25a8e3c576e666ad719da302eb30e256ef5ee) (cherry picked from commit dc1a16345214db9665d305934c39ebd7eca2a62d) (cherry picked from commit 01b55816d5d4a77dac7165a68a1c4e2909a9dc57)
| * Extend the Q_IMPORT_QML_PLUGIN documentationAlexey Edelev2024-01-121-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the explanation what is PluginName and how it's computed when using the modern QML API. Fixes: QTBUG-119372 Change-Id: I7346f7b7f82c717ee79b07f4dcec0c0d1dc733b2 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> (cherry picked from commit 48241a49d96f27cfb64218a91a3aa7a8d1174a91) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit db9171d0c3011613131965e5576a4efe261f08c2) (cherry picked from commit ab160d2cb4c10f2f28fed26ce80d1b79f5453437) (cherry picked from commit 890a22aa32a0f87aebc447edf3b3bd2355432340)
| * QtQuick.Shapes: Mark Shape properties as readonlyIvan Tkachenko2023-12-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Expect boundingRect, which was added in Qt 6.6, so can't be cherry-picked. Pick-to: 5.15 Change-Id: I03aeb808acdf60e207eba45e7b6761d29714d6f2 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit a35f65a5fa140c3ba0ddfa9093a7b7526382b22e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 1e21dc33261dcf1c6f7c30d4eac7625264f98279) (cherry picked from commit 29862ca7d8377cd6ba129d1bda03109ded954588) (cherry picked from commit a1e725ecf394d64bf5ddf41569401c7e55e0b805)
| * doc: Mention that Window.visible is false by defaultShawn Rutledge2023-12-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-120349 Pick-to: 5.15 Change-Id: I070927d0bd8b454925b4a2ab0ddf259d47d31335 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 6efc9f1406a4f08f7a04d3bb52a4c19214d5cbb1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 319e10f9a9b16ad9f8576e5efe2220eebf49291a) (cherry picked from commit 2b6ebb68b8b792ab15294e89e7fd056073cf9040) (cherry picked from commit b36d3fcf2de5531593e9825f596cfd78fbd561ed)
| * QtQml: Convert types correctly in StoreNameSloppyUlf Hermann2023-12-201-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we can now get more interesting types in StoreNameSloppy, we actually need to convert them correctly. 6.6 and later already do so since commit 46cc70e2aafc84db6caeaf747629ee6e825b0a4d. Task-number: QTBUG-111624 Change-Id: Icbc772065ba362994eaa8cb23025ed0bb95eee9b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> (cherry picked from commit 2a998f2b043242df965bb1d21495fd5e299de322) (cherry picked from commit 19557d27fbbc0e36ac62d2cd2be1de4352259bbf) (cherry picked from commit b5416f1931e6e3acb68120a65e277ed1dee2f1a4)
| * Make sure updateCurrentTime() is done on with a valid ShaderEffectChristian Strømme2023-12-192-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The target might change several times, or worse have been destroyed, while updates are still queued, and since the effect pointer isn't updated until the postSync() call, the effect pointer can get out of sync leaving it pointing to the wrong object, or a destroyed one. To avoid operating on an destroyed or old handle, check if the current effect is valid and matches the target before applying the uniform values in updateCurrentTime(). Fixes: QTBUG-119363 Change-Id: I5172ccf9405c1d789f197a0cf8cec4c749bd7d28 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 60e49dfbe3cf8276aabfcf7bf00dc532dea78baf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 9c1065ce400b1cf1dd5599c1e9efbf12c61516fa) (cherry picked from commit e1b190c8d644c1f5489f96fa8566f85470078013) (cherry picked from commit fb0e70886425c8c7018adbd999bd2b6501bc5516)
| * QQuickSinglePointHandler: check isSinglePointEvent before castShawn Rutledge2023-12-181-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QQuickSinglePointHandler is not only for QSinglePointEvent, but rather it's the intermediate base class of any handler that only knows how to handle one QEventPoint, regardless which device it came from. The naked cast was quite wrong for touch events, such that the result returned from buttons() could come from reinterpreted data of some kind. Amends a97759a336c597327cb82eebc9f45c793aec32c9 (and then 79cde77f23358adbe57ab8ce08730d2de5bb1288). QQuickPointerEvent had buttons(), but QPointerEvent doesn't; so the cast became necessary, but should have been done safely. f2ba3bd9792500b4d3fcfd23b03098a32641ef4f began checking the buttons here. In case of a touch event, buttons() always returned NoButton (regardless whether the touchpoint was being pressed or released); so in Qt 5, QQuickSinglePointHandler::handlePointerEventImpl() in fact caused the ungrab and reset() to occur when a touchpoint was released. We continue doing that: if the event is not a QSinglePointEvent, buttons() are irrelevant, and we deactivate the handler when handling the release of the chosen point (as remembered by pointInfo). But for QSinglePointEvents, checking buttons() is necessary to keep QTBUG-66360 fixed. Task-number: QTBUG-66360 Task-number: QTBUG-83980 Fixes: QTBUG-117387 Change-Id: I1bc7a72629f5840e660635f2228bf2c0abb7d2bd Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 7b8bea13e7c0b80ffc307cc8ccb94d73a6743544) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 07e0138fa5ade030f5b157b6e75c9e083910a017) (cherry picked from commit 1c7ada23e46330c639378856a7f8bf7d4ebc48d9) (cherry picked from commit 75512d6cdf7eca82d62a90bf37229130f47c855d) Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * doc: Clarify focus window vs activation in Key Handling OverviewTor Arne Vestbø2023-12-091-2/+2
| | | | | | | | | | | | | | | | | | Change-Id: I837e72448577e6814acf20cef49f4528e2ac6ba7 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit 33299c2fc393c66f2993ebbded9d217ee3f62513) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 186299e814a52f33b323be19e102626e745e10cf) (cherry picked from commit e1afd77ed579dbe8f26829f24e68e61867cd81ab)
| * TableView: don't emit rows and columns changed while rebuildingRichard Moe Gustavsen2023-12-072-16/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We should be careful about emitting signals while we do a rebuild. The reason is that the application might listen to those signals and change Flickable properties (especially contentX/Y) behind TableView's back. A bug is seen from this if the application is setting a very large contentY upon receiving rowsChanged(). In that case TableView will not detect that it should do a "fast-flick" directly to the new contentY, but instead start to loadAndUnloadVisibleEdges() until it reaches the current viewport. And this can take a really long time, and therefore block the UI. This patch will wait to emit rows/columnsChanged until we're done rebuilding. At that point, it's safe to change properties such as contentX/Y from the application. The main usecase this patch is solving, is to be able to always position the viewport on the last row as new rows are added to the model. This can now be done by listening to onRowsChanged or onContentHeightChanged, and position the viewport at the end. The included auto test will therefore test this exact use case. Fixes: QTBUG-118897 Change-Id: I6124fbd0e7097a2bbb89c887fe594c3028726aa7 Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> (cherry picked from commit bff7aca8695e4cacc252d0235dc70cf3a46c032e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 5800bf98860a2546429d05ba50c1bf3a58040b09) (cherry picked from commit 11ee3dcf352c74367cbabf3d5ce0dfb7cfb2cbb4) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * doc: Fix type of fontInfo.pixelSize propertyKai Uwe Broulik2023-12-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | It's int, not string. Pick-to: 5.15 Change-Id: I68fec372d534eb173b0e3dfa52aa19b56c135515 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 6216aac9e02799fa5f1ad9e7f3f8f057ec1cd00e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8fc2ddca39940499961af9af40d04275ccc831a4) (cherry picked from commit 40f574faf507faa2ccb8978f80b78dc92f51c565)
| * doc: Set Drag.imageSource before Drag.active to avoid race conditionShawn Rutledge2023-11-291-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | grabToImage() is asynchronous. 4b982c744f538a24e21a2af146c45f93d27dd1cb started it on mouse press, which generally gave it enough time before the QDrag became active; but 5971a6faaa1124f5ef3f0b42d4ed0298cf8096a3 changed it to call grabToImage() in DragHandler.onActiveChanged, which means waiting until the drag threshold is exceeded. (DragHandler doesn't offer a way to detect when the point is pressed. One could probably use a separate TapHandler or PointHandler just to detect the press; but that's also inefficient and inconvenient.) If we also bind Drag.active to DragHandler.active, it's very likely that the binding is updated before grabToImage() is done; and as documented, setting imageSource after the drag has started has no effect (that in turn is a limitation in QDrag and the platform support, probably a limitation on actual platforms). So just wait until the screen-grab is done before setting Drag.active, as a workaround for now. This is a step back in declarativeness, using JS rather than a binding. But setting imageSource to a screen-grab unfortunately requires JS anyway; so we might as well delay making the Drag active until the screen-grab is done. Fixes: QTBUG-112673 Fixes: QTBUG-115491 Change-Id: I0317613aa0288ad99b55ebd8a470500432b2ea02 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit a3dea1b4f8e20babb84c501e578a9208961b7ca7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 85f6ffc9b8d511b7bf01daacd179df88b9a54dee) (cherry picked from commit 9d1e8deefcbba6cfb343406dd2536226525535f6)
* | Merge tag 'v6.2.11-lts' into tqtc/lts-6.2-opensourceTarja Sundqvist2024-11-2286-138/+944
|\| | | | | | | | | | | | | | | | | Qt 6.2.11-lts release Conflicts solved: dependencies.yaml Change-Id: I088fe99748b323fbdf49c3766c262eb2a05131d9
| * Menu: fix contentItem's interactiveMohammadHossein Qanbari2023-11-215-15/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The interactive property of the Menu's contentItem depends on its Menu (control) when Window.window is valid. In the case of a fixed-height menu, even if the contentItem's height is smaller than Window.window.height, the interactive property of the contentItem would be false if the menu's height is smaller than the window's height and also smaller than its contentItem's height. Update (patch 3): Menu is removed from each of the styles from tst_Sanity::attachedObjects_data() (in tst_sanity.cpp file). Fixes: QTBUG-93856 Change-Id: If95080250c3953d4293a9e1dbcc6225d21ee034f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit d0a83e33305f0ab11751627446b2084bdc85de68) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit e6478662c1f2dfe47023bdf35ebf344c60d1b3d4) (cherry picked from commit 933ef033321e5113dd1beaddfd883b40f3658bab) Reviewed-by: MohammadHossein Qanbari <mohammad.qanbari@qt.io>
| * Fix crash issue in quick table view controlSanthosh Kumar2023-11-162-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The quick table view can have both QAbstractItemModel and JS value as its model. The table view release and load the items (or rebuild) when its assigned with new model. The newmodel always be compared with existing model before rebuild via QQuickTableViewPrivate::syncModel. This comparison works with QAbstractItemModel but the same fails with JS model. This patch adds additional validation in QQuickTableViewPrivate::syncModel and QQuickTableViewPrivate::setModel for comparing JS model to avoid rebuild when existing model overwritten with same model again. Fixes: QTBUG-117917 Change-Id: Ic15145c4b8998c68ae6471a2abf4aef727041eea Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 79b34126850c4235a1914e95f8e4235cfddba007) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit d02351d8debe3c089434ff6baf2caff6be52602a) (cherry picked from commit 82e47c8b38117dbaafbef9234e16776d50bcf5f5)
| * QML: Before processing deep aliases, remove pending bindingsUlf Hermann2023-11-162-12/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We may have additional bindings scheduled for the deep alias, but those are to be overridden by the alias. They should therefore be removed like bindings to target properties of shallow aliases. For QProperty bindings we have to apply a separate trick and set and clear the binding bit in the right places. We don't have access to the actual binding when writing the value, after all. Fixes: QTBUG-115579 Change-Id: Ia915e59905d7e3185a17c5b6613926264ad9bc6b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 0fdf9042ce36c1dcfed64d1600f1526ac176768d) (cherry picked from commit c07f63d06402ff76ae85508afe9576cad038b4f6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 11045230c3b8db2b615e59e2d6622c1df4fad12d)