aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update dependencies on '6.5.3' in qt/qtdeclarativev6.5.36.5.3Qt Submodule Update Bot2023-09-241-5/+5
| | | | | Change-Id: I43c0ae3997cf3f7ac7c9d49161122c3c509d8673 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on '6.5.3' in qt/qtdeclarativeQt Submodule Update Bot2023-09-211-5/+5
| | | | | Change-Id: I82086e812c283253fc3a7b77d719c24fb4db9b80 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on '6.5.3' in qt/qtdeclarativeQt Submodule Update Bot2023-09-211-5/+5
| | | | | Change-Id: I9f3d0f0af0087f8ff7fb69b510a4a42d4e6e6a14 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on '6.5.3' in qt/qtdeclarativeQt Submodule Update Bot2023-09-181-5/+5
| | | | | Change-Id: I09d89e0898c8033c72172f020a6eda9709823642 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Fix binding loop issue during implicit size change in paneSanthosh Kumar2023-09-144-52/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pane progagates implicit size change to its children for adjusting size. There are cases where Pane refers to incorrect child item (QQuickPanePrivate::firstChild) to notify implicit size change and this could trigger binding loop issue. Pane determines its first child from the content item and this varies depending on how the content item is configured. The following are typical configuration within pane 1: Pane { contentItem: Layout { ... } } In this case, Pane uses content item as provided QQuickControl. 2: Pane { Layout { ... } } In this case, Pane create QQuickContentItem and adds item configured within it as children to QQuickContentItem. This patch fixes the issue by notifying implicit size changes to correct child item. Fixes: QTBUG-116164 Change-Id: I54ef27fae531518b98200ea829f1b4138273aa26 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 5eaf5afa981a2eb3ce2059c3e2b21382c9829728) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 181e1080c5fa33f0260c64861551ec9e288e92f4)
* Loader: re-set ItemObservesViewport flag on child if already setShawn Rutledge2023-09-145-1/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When QQuickLoaderPrivate::load() loads a Text item, its ctor calls QQuickTextPrivate::init(), which calls setFlag(ItemObservesViewport). QQuickItem::setFlag() tries to go up the parent hierarchy to get subtreeTransformChangedEnabled turned on; but at that time, the Text does not yet have a parent. If a Flickable contains a Loader that loads a Text with large content, QQuickTextPrivate::transformChanged() needs to get called during scrolling. Loader is not interested in these notifications for itself; so its parent's QQuickItemPrivate::transformChanged() detects that and turns off subtreeTransformChangedEnabled. After the child is loaded, QQuickLoader::itemChange() detects that the child's ItemObservesViewport is already set, and sets the same flag again. setFlag() doesn't have a guard, so the parent traversal happens again, and subtreeTransformChangedEnabled gets turned back on. If a different child were loaded, and that child did not want the notifications, the next QQuickItemPrivate::transformChanged() would detect it. If the child changed its own flag later on (e.g. because a small amount of text was replaced with a larger document, exceeding QQUICKTEXT_LARGETEXT_THRESHOLD), QQuickItem::setFlag() would be able to go up the parent chain at that time. For the autotest, long.qml has about 15KB of text. Maybe it will be reusable. At least it should compress well in git packfiles, since we have this license text elsewhere. Fixes: QTBUG-115687 Change-Id: I87b6a42f5735b8f9c2267f91a4112681da05de5d Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> (cherry picked from commit 8c7c60fff37ea7bb7420d925e2f88e62764bf86b) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQuickAbstractButton: accept only left mouse buttonVladimir Belyavsky2023-09-144-19/+61
| | | | | | | | | | | | | | | | | | | | | | | Normally, Button should only handle the left mouse button. To do this, we even call setAcceptedMouseButtons(Qt::LeftButton) in the QQuickAbstractButton's constructor. But since 70113ef66b245e58ce12e2a9d26268e2eaeb3a42 QQuickItem's acceptedMouseButtons is overridden with Qt::AllButton every time when any handler is set on the Item. This caused a bug where the Button responds to the right mouse button when, for instance, a HoverHandler is set on it. As a solution, we ignore a mouse press event explicitly in QQuickAbstractButton::mousePressEvent() if the left button is not pressed. Fixes: QTBUG-116289 Change-Id: I6f30da38fd7be274eb70f2e761789a9f49fefbff Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 7211543ecffb8ebe12c943135d8fcd8761f7c4a9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit b0aad6fa482adfd79662460667ed54e65708f426)
* Doc: All overviews list categorizationJaishree Vyas2023-09-143-0/+3
| | | | | | | | | | | | | | | The \generate list names are added for each categorized section with some explanation. Here, calling the overviews as explanations-(name of the section). The idea is to give general terms instead of specific phrases like 'core' etc, for better understanding. Task-number: QTBUG-115347 Change-Id: Ib33b450aa0919b0fd3e7a265cd2843af6c7d019c Reviewed-by: Topi Reiniö <topi.reinio@qt.io> (cherry picked from commit e33a63d0dec5dd7ebd8d3fc172de9d6e24ddf00f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 9c1696bf514a1d31568aabbabf40db5434f8cf97) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Update dependencies on '6.5' in qt/qtdeclarativeQt Submodule Update Bot2023-09-141-5/+5
| | | | | Change-Id: Iedb88cd08dc5097f244f7a34a4c841e625bf7f5b Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Fix typos in FunctionSignatureBehavior documentationGiuseppe D'Angelo2023-09-141-2/+2
| | | | | | | | | | | The parameters of the pragma have a trailing `d` that was missing from their names. Change-Id: I9810e1a7141ac7edd20d233d2049f84d6749be79 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit ed1e27316c00034d00a88acad01b32ade9988f13) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 9280be3c85ad9a9d523cb558f5743df1a6a96167)
* Doc: Fix unqualified access in PathView exampleSze Howe Koh2023-09-141-2/+7
| | | | | | | | | | Pick-to: 6.2 5.15 Change-Id: Idb7e0f0dea262592ca39e8d42298bb51c91281cd Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Mike Trahearn <mtrahearn@topcon.com> (cherry picked from commit 033fd3aa8c7c881697d4eb8d7e143d3088ca117f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 21bc5e786e25b59f3c09a67359958453c2b3be60)
* Doc: make Loader Sizing Behavior section easier to readMitch Curtis2023-09-141-3/+3
| | | | | | | | | | | | | | | Most users use Loader for visual types, so the first sentence being about non-visual types just makes it take that little bit longer to get to the point for the majority of readers. Move it to the end. Pick-to: 6.2 Change-Id: I736c067e9f73a1bc4fc27b4d358441b722241501 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> (cherry picked from commit 628dd94a7584195b4c7aa49c01f6bdc45a71d2c4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 4bd397d21c75efc7c4028b34896f9a6fd97ecae1)
* TextEdit/TextArea: don't deselect on release if IM just selected textShawn Rutledge2023-09-133-1/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | After 90d3fac73a10b9363fd34e6757cc730d7a0c086c we got a regression on Android at least: if you long-press to select a word, selection handles appear; then when you release, there's a QTouchEvent which is left unhandled, and then a synth-mouse release. In this case, we don't want to call setCursorPosition(), because it de-selects the selection that was just made by the input method. But the intention was to be able to set the cursor position (and also deselect text) by tapping on a touchscreen on other platforms that don't have text selection handles. (It seems to be consistent with Android behavior: there you can also deselect and move the cursor by simply tapping.) To avoid changing that behavior, we now set a flag if we get a mouse press and then a QInputMethodEvent with a Selection attribute, indicating that text got selected that way; and in that case, don't call setCursorPosition(). Fixes: QTBUG-115004 Change-Id: I7e362da584f6e1cb1509dcc0eff024b291ef5df3 Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> (cherry picked from commit c1d5e46ea79762bfcc070fabbf10ff7fdf184e01) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 2ee61d7dac1df2e7f7e0e6b789bf2176c44f079f)
* Update dependencies on '6.5' in qt/qtdeclarativeQt Submodule Update Bot2023-09-121-5/+5
| | | | | Change-Id: Ibe14e741f31d9658a2868b29750e04fe1ffd1129 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Fix the qmllint command lineAlexey Edelev2023-09-121-1/+2
| | | | | | | | | | | Move qmllint arguments under the generator expression guard. Fixes: QTBUG-115328 Change-Id: I7835251f0bf77555b878ff765af1abc76c5c17bd Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 0e18b14fecfafb725c79068ac29707a6aaa6b87c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Add example categoryInkamari Harjula2023-09-121-0/+1
| | | | | | | | | | Added example category User Interface Components to qtqml i18n file. Task-number: QTBUG-116537 Change-Id: Idef277a87b18134dbc40878bae7784820b4dd07e Reviewed-by: Kai Köhne <kai.koehne@qt.io> (cherry picked from commit 7cead933263912f23b331c0a834d275880ca3140) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQmlProperty: Accept badly capitalized signal handler namesUlf Hermann2023-09-083-0/+59
| | | | | | | | | ... but warn about them. Apparently we did accept them prior to 6.4. Fixes: QTBUG-116576 Change-Id: If890db85f5a8d71c0bcdfaf646ee9f01765a0b3c Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit 2fc19f2c627802d26bd385a6c9cc1f6412852ee2)
* Doc: Add example category to all the files that haven't yet got itInkamari Harjula2023-09-0711-1/+12
| | | | | | | | | Added example category and also fixed one copy-paste mistake in Vulkan Texture Import. Task-number: QTBUG-116205 Change-Id: I96692f214849596e9555c635d9996d9b884c5cab Reviewed-by: Kai Köhne <kai.koehne@qt.io> (cherry picked from commit e421c21c3b6ae92fdc5ab18ce72d3e4d7125a7ae)
* Update dependencies on '6.5' in qt/qtdeclarativeQt Submodule Update Bot2023-09-061-5/+5
| | | | | Change-Id: Iddc8da5345b2a20884f9f7e281e0c1c2cee6e1cb Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Fix QML item is missing if its parent's clip property is trueJiDe Zhang2023-09-063-30/+51
| | | | | | | | | | | | | | | | | If using QQuickRenderTarget to the QQuickWindow, and set true in QQuickRenderTarget::setMirrorVertically, the QQuickWindow will apply flip Y to the matrix with native NDC, this behovior is wrong, If QRhi::isYUpInNDC is true, must ensure the QSGAbstractRenderer::projectionMatrixWithNativeNDC is following QSGAbstractRenderer::projectionMatrix, otherwise must ensure its flip Y relative to QSGAbstractRenderer::projectionMatrix. Fixes: QTBUG-116587 Change-Id: I12b5f6e37ed5bad8656cf46bf1a25e534db24b62 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit e898c06759b5c5a6138fac6f9a2cb31388ea3da9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update ListView doc to specify behavior of zero size viewSanthosh Kumar2023-09-061-0/+5
| | | | | | | | | | | | Follow up patch for 37c25c6e74f4f74d7cca8f5b0f12a40ec0354f7e. ListView doesn't load any delegates when no size specified. This is made to improve performance of the view. Fixes: QTBUG-114166 Change-Id: I5253301c244d191f3245e36dd983c179e9d99ed2 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit cb644288976b6abd2c9bda4caaf7e447660336a9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows native style: Mark ScrollBar as non-customizableFabian Kosmale2023-09-062-7/+11
| | | | | | | | | | | Consequently, remove code that supported setting a non-native contentItem. Task-number: QTBUG-107771 Change-Id: I871156c567f85db6e1b8247dcc6c2ea6a350cd4d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 901a8bf768abc3672e512b3f481b24ac0e1afb52) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* doc: update base class for LineShapeOliver Eftevaag2023-09-061-1/+1
| | | | | | | | | | | It seems that the base class for LineShape is ParticleExtruder, not Shape. Fixes: QTBUG-114602 Change-Id: I0ca69e11d7318310bc4d43b2243284ec0c50cd9a Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 7ec2b3da95c9652d38198d4b4780fbd42b00e606) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: mention textRole in *HeaderView detailed descriptionMitch Curtis2023-09-061-0/+4
| | | | | | | | | | | It may not be clear that Qt::DisplayRole is used by default, as this is only mentioned in textRole's documentation, which isn't mentioned in the detailed description. Change-Id: Ie7e16bbfbedc2de6cc336f3a548bf69d6dbbdf40 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> (cherry picked from commit 9bd72f48600e19743c120035cbbd63fd93f5c8c1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: de-duplicate header view docsMitch Curtis2023-09-062-122/+80
| | | | | | | | | | Parameterize the variable part of each section and include each section as a snippet. Change-Id: If5251cb2ee40dfb57cf57e0f1cad00b04c582e98 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> (cherry picked from commit d33edd9d36f9692a4dc8f51ef47efc6a1a5aec92) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: improve event handling sectionsMitch Curtis2023-09-062-0/+6
| | | | | | | | | | | | | - Mention wheel events. - Add a couple of sentences in the detailed description of Pane to supplement the existing link in the "See also" section, which is easy to miss. Task-number: QTBUG-113228 Change-Id: Iec29e8a13a6243a87b9ebe7d3456716387efbd08 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 2f5e24bdcb06db63ddab2f6cbdf3945af8fa3d3c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* scenegraph: un-blacklist the render autotest on AndroidAndy Nichols2023-09-065-5/+18
| | | | | | | | | | | | | | | | | | | | | | | | | The tst_scenegraph render tests were disabled for Android because they were failing in CI. This appears to mostly be related to Android devices having non-integer scaling factors, which causes issues with the render test as it tests pixel color values derived from QML coordinates. Most of these issues can be resolved by having the color sample function round it's floating point values instead of implicitly flooring them when they are converted to int values. The render_bug37422 test was failing because the .qsb file was not handled correctly as test data, so that was converted to use the new syntax that builds the .qsb file at build time. The render_OutOfFloatRange test still remains problematic by design on system with non-integer scaling factors so is disabled when that is the case. Fixes: QTBUG-102589 Change-Id: I3cae5c9700ef0d5acf2cce46518576de99717c99 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 4db97d57a9a8d9cabedf338ca1020a819ad65e35) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QSGBatchRenderer: Fix batching with geometry without index bufferAndy Nichols2023-09-061-1/+1
| | | | | | | | | | | | | | | | | If geometry without an index buffer becomes a batch root, it should not be merged with other geometry since an index buffer is required for a merged batch. This should not be very disruptive, as this can only occur under very specific circumstances anyway (custom QSGGeometry used in a scene in a particular order). Fixes: QTBUG-97557 Change-Id: I6b3845fb988a4bfe2a6f989801741246b8f4fb37 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit f9e95c9d447f8b4223ce02e7ddf6c4ed0bfc5ec9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Add missing closing parenthesisPaul Wicking2023-09-061-1/+1
| | | | | | | | | Fixes: QTBUG-116749 Change-Id: If1c61da09685045e40565e0d864db6d30896dd85 Reviewed-by: Safiyyah Moosa <safiyyah.moosa@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io> (cherry picked from commit 2866cecd95989d6292254bd8055a5b8b65f4c3dc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update dependencies on '6.5' in qt/qtdeclarativeQt Submodule Update Bot2023-09-061-5/+5
| | | | | Change-Id: I83534e8e6e4c759f8712ffc901cca727357eca6f Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* ScrollBar: Fix visualSize being stuck without change signalIvan Tkachenko2023-09-053-12/+33
| | | | | | | | | | | | | | | | | | | | | | | | | Fixes a bug that visualSizeChanged signal won't be emitted when needed, causing listeners such as binding expression being stuck with an old value without updates. This has caused a visual glitch with scrollbars in KDE: they appear incorrectly sized initially, but fix themselves as soon as scrolling starts. Needless to say, we don't use overshoot on desktops, but that feature is also plagued by this bug. Solution is to (1) don't assign new d->size before measuring visualArea, and (2) don't reassign oldVisualArea, because it would override visual size with an updated data, losing information needed for visualAreaChange to determine whether to emit signal or not. To optimize and avoid double-signals for visual position, existing setPosition() method was factored out into a new private method with an optional signal suppression flag. See also: https://bugs.kde.org/show_bug.cgi?id=473241 Change-Id: Id0482e5b90e08e1bb31367efe86f4a9cc046c4f6 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 470cc1a600ef5364fd7bee0f3f0b822ba95bab35) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Add example categories for qtquickJaishree Vyas2023-09-0523-0/+23
| | | | | | | | | Task-number: QTBUG-116334 Change-Id: Id17a546b9363e5225b8778c629fe9ffe30d2e719 Reviewed-by: Topi Reiniö <topi.reinio@qt.io> Reviewed-by: Kai Köhne <kai.koehne@qt.io> (cherry picked from commit b16bea02f65dea173eb42208e8750245f334b5e5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix linking of static plugins to android module targetsAlexey Edelev2023-09-041-1/+2
| | | | | | | | | | | | | | All android targets are created as module targets, using the 'add_library(<target> MODULE ...)' call. When we select the linking type for static QML modules, we don't take into account those and this ends up with interface linking of Android apps to static QML modules. Consider module library targets in this case. Change-Id: I8151764eca6391feb4b0bd76f313314f22d50f7b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 982a4d68af1b7483d91290a7b7c1c335fe9a52bc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update dependencies on '6.5' in qt/qtdeclarativeQt Submodule Update Bot2023-09-041-5/+5
| | | | | Change-Id: I2c09c020fe4e5ab0a189a9452e7b0d379a800686 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Fix memory leak in qquickpixmapcacheShawn Rutledge2023-09-011-11/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QtPdf depends on QQuickPixmap::loadImageFromDevice() to pass a QPdfFile (which carries a pointer to the QPdfDocument) down into QPdfIOHandler so that it can avoid needing to reopen the document. But the introduction of loadImageFromDevice(), and then using the pixmap cache so intensively to store a lot of rendered PDF pages, revealed a drastic memory leak: many QQuickPixmapData instances remained in QQuickPixmapStore::m_cache long after their refCounts became 0. Quick scrolling through a PdfMultiPageView (especially if the zoom level is also being changed dynamically) can easily generate a lot of page-rendering jobs, some of which get cancelled early because the view has moved on to other pages and/or zoom levels. Here are several related fixes: - QQuickPixmapReader::getImage() creates a "job" represented by the QQuickPixmapReply that is returned, but now we start the job in a separate method, to ensure that QQuickPixmap::loadImageFromDevice() succeeds in connecting the QQuickPixmapReply::destroyed() signal before the job completes and deletes itself. - Use a QMutex to prevent QQuickPixmapStore::m_cache reentrancy: Rarely, a crash was possible when QQuickPixmapStore's QHash m_cache was modified between QHash::find() and dereferencing the iterator it returns, e.g. in QQuickPixmap::loadImageFromDevice(). - QQuickPixmapData::release() is needed in a few more places. - QQuickPixmapReply::finished isn't emitted if the job is cancelled, so the lambda that called oldD->release() wasn't called, and that was the remaining leak. We tried connecting QObject::destroyed() earlier, but it was causing a crash because the mutex to protect m_cache from simultaneous modification and QHash::find() was not in place. Now it seems ok. - Show "Number of leaked pixmaps: 0" when QML_LEAK_CHECK is set to make verification less ambiguous. Task-number: QTBUG-114953 Change-Id: I11518ccf28ee5a5055ae745a5921837d2f3151b6 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit c871a52f94a4836515754e641ee02386a9876a58)
* Doc: Fix issues in Attractor QML type documentationTopi Reinio2023-09-011-34/+30
| | | | | | | | | | | | | | | | | | * Replace references to nonexistent type PointAttractor with the correct type name, Attractor. * Replace references to nonexistent enumerations with a generic 'enumeration' property type. * Use \value commands in QML enumeration docs * Address language issues Fixes QDoc warning: No such type 'PointAttractor' in QML module 'QtQuick.Particles'. Change-Id: I989bf62e8b96e2c508a3dbfdc4fd8d6ada0f6e32 Reviewed-by: Safiyyah Moosa <safiyyah.moosa@qt.io> Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io> (cherry picked from commit 03e14e4026e6256b26f03228514a97f17b005b73) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update dependencies on '6.5' in qt/qtdeclarativeQt Submodule Update Bot2023-09-011-5/+5
| | | | | Change-Id: I286c9c3c460aaff14048bb2be7995443fef7db74 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Doc: Fix broken linkAndreas Eliasson2023-08-311-1/+1
| | | | | | | | | | | This fix resolves the following qdoc warning: (qdoc) warning: Can't link to 'Limitations when compiling JavaScript' Change-Id: I76a3cb6188719bd7a893b4744a23c49a0e632015 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 751767d5ca31789ba73a29d815af25e0076e2f64) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Fix incorrect default value for FolderListModel.folderSze Howe Koh2023-08-311-1/+2
| | | | | | | | | | This behavior has been in place since Qt 5 (or perhaps even earlier) Change-Id: If60192e4302f5b1316d29dc42139eb66855789a1 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit e041ba46f2f407a306746b6a1dbe7d48a40401b7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Fix unqualified access in FolderListModel exampleSze Howe Koh2023-08-311-0/+1
| | | | | | | Change-Id: Iacbb8cc5f9d887cdd7f14f1d948e37e27e5c6083 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 6afb1ec82bdca7a1ea3a7a5e12a3f143962860ea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Fix qdoc warningsAndreas Eliasson2023-08-312-4/+41
| | | | | | | | | | | Adopt the documentation we've added in dev. Change-Id: Ic877e391b17b4b008f9f8543019f3944eb264475 Reviewed-by: Safiyyah Moosa <safiyyah.moosa@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit cd3a9cd96478b4b4e906ec025ae5574198801b6d) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix build with -no-feature-settingsTasuku Suzuki2023-08-307-2/+28
| | | | | | | Change-Id: I3667e087b13fba6f9804b76d2d0bed2ffefbddbe Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit a36782cfe86f2e274b8dff533eafe8cca67c0fc3) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* DelegateModel: handle roleName invalidationFabian Kosmale2023-08-304-7/+102
| | | | | | | | | | | | | | | | | | | | | | | | | roleNames are generally guaranteed to be stable (given that QAIM has no change signal for them), except that resetting the model is allowed to invalidate them. DelegateModel did so far not take this into account. Handle this case correctly by snapshotting the current roleNames before the model is reset. Afterwards, if we detect that roleNames has changed, we throw the current model set up away and rebuild everything from scratch – it is unlikely that a more efficient implementation would be worth it. If we detect no changes, we simply use the existing logic to handle the model reset. Note that some views, e.g. TableView do not use DelegateModel if they detect that the model is a QAIM. They require a conceptually similar fix (but can probaly implement this in a more efficient way). Fixes: QTBUG-32132 Fixes: QTBUG-103220 Change-Id: I6874988cf09b8fe75d2e9750d0bf209915554c45 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 837c2f18cd223707e7cedb213257b0158ea07146) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PropertyAnimation: Handle targets being deletedFabian Kosmale2023-08-304-4/+90
| | | | | | | | | | | | | | | | | | | | | | | QQuickPropertyAnimation does not own the targets in its targets list. Thus, we need to be careful to not access deleted objects. Calling QQmlData::wasDeleted is not enoguh, as the object might be fully deleted, but we'd still have a dangling pointer to it. Fix the issue by using QPointer. A similar issue might exists for target, but there we don't normally end up with dangling references - the engine will correctly null the target. And the QPointer isNull check will avoid potentiall nullptr derefences there, too. Ideally, we would use QQmlGuard instead of QPointer, as it would have a lower overhead - however, we run into linker issues on MSVC. Fixing them is deferred to a future commit, to not block this crash fix. Fixes: QTBUG-100392 Change-Id: If084e2e0f22d50dbee8bf5aedfa2e749e79fc105 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 8a74155411d7a22bb8efa405fe59a681e47e6b45) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Value types: Prefer assigning bindings instead of convertingFabian Kosmale2023-08-303-11/+31
| | | | | | | | | | | | | When we're assigning a QJSValue to a value type property, we must first check whether it is a binding created by Qt.binding. In that case, we should directly set that binding up. Going through the conversion code path might not necessarily fail, but might instead yield nonsense. Fixes: QTBUG-113472 Change-Id: If91e0843f0caf36c96b4c811b9ce8076adfc984f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 57e272fbd2bb4af083c640e8721e5ecbe869e384) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove some references to Q_ENUMSFabian Kosmale2023-08-301-1/+1
| | | | | | | | | | | Q_ENUM is the preferred way to expose enums to the metatype system since quite a few years. Tast-number: QTBUG-113229 Change-Id: Ie778d0d4620e73742ca59bb37112e939489ffa4d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 66a200011ea93959349ad7f8d6b34844ccbb418c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: add how-to for using C++ enums in JavaScriptMitch Curtis2023-08-307-0/+178
| | | | | | | | | | | | | | | The best search result for "qt how do i expose a C++ enum to javascript" is currently a Qt Forum post, and the relevant information in our docs is hard to find within QJSEngine's page. Add a how-to to make it easier to find the answer. Task-number: QTBUG-109634 Change-Id: Ia9c53c5d3826459655aa5b094c4d601b938ef3a3 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit c504227e235885199717129e7c05addd728361fa) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQmlJSTypePropagator: Support StoreNameStrictFabian Kosmale2023-08-304-4/+34
| | | | | | | | | | | | As far as the type propagator is concerned, it is the the same as StoreNameSloppy. This allows the unqualified id check to work in strict functions, too. Change-Id: Ie4ca823c996e058e4cdde632acaa1caa146b77bc Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit f9d74e8326b11b39b3bdbcb1ff87a9c8f8bc0d34) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qmllint: Detect unqualified id access in StoreNameSloppyFabian Kosmale2023-08-304-0/+38
| | | | | | | | | | | | | | | | In QQmlJSTypePropagator::generate_StoreName, we would return early in a few error cases (after calling setError). That is okay for the compiler, which cares about setError, but qmllint is not interested in compiler errors by default. This would result in us not issuing warnings about unqualified id accesses. Fix this by also logging the errors via the logger. Fixes: QTBUG-114467 Change-Id: I10ad10e5c93762b3d9d1fb50d3cabcff2c0b7a4f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 15082891f78d3e6df121fbaef7626be5250bd1e4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickTapHandler: Pass flag to Q_FLAG instead of enumFabian Kosmale2023-08-301-1/+1
| | | | | | | | | | Amends d3f2c6ac4205bbe5a1c7174965dbce6f90972be3 Fixes: QTBUG-115557 Change-Id: Ibd8e79bcb6bfec292bff12e8d4f166c0b4b6ba56 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 107d1be707d89432c3fe5a93c13df236bd95f75b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>