aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Doc: Use tabs instead of a table that has code snippets6.3Andreas Eliasson2022-12-281-22/+31
| | | | | | | | | | | | | | Using a table with code snippets in different columns will cause the table to expand outside of the page width, forcing the user to scroll horizontally. In addition, in mobile view, the table with code snippets messes up the entire width of the page. Fixes: QTBUG-104156 Change-Id: I36341a5da162cd88961ee1f8741b166b167f8770 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io> (cherry picked from commit b6d3f84c2a2bd7bed7a85618a30e05925bc2b6c0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Flickable: prevent fixup() from being called while draggingOliver Eftevaag2022-12-192-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A previous patch 5647527a8cde84b51fff66fc482f02435770b3dd causes a regression. The purpose of the patch, that caused this regression, was to update the pressPos variables, in cases where the contentItem's geometry was modified externally, while a user were dragging the contentItem around. The mistake that was made, was how width and height changes were handled. We had previously added logic in setContentWidth() and setContentHeight() that would call fixup() (with immediate fixupMode) to ensure that the contentItem would immediately be repositioned inside the flickable's viewport, if the contentItem was being dragged. It turns out that setContentWidth() and setContentHeight() are being called from QQuickItemViewPrivate::updateViewport(), which happens quite often, while dragging. This would make fixup() and dragging constantly interfere with each other, since they'd not always agree on a specific position for the contentItem. This patch reverts the changes made to setContentWidth() and setContentHeight(), since it turns out that those changes weren't necessary after all. QQuickFlickablePrivate::itemGeometryChanged() only calls viewportMoved() on x and y changes anyways. Done-with: Jan Arve Sæther <jan-arve.saether@qt.io> Done-with: Santhosh Kumar Selvaraj <santhosh.kumar.selvaraj@qt.io> Fixes: QTBUG-109140 Change-Id: I0bddf8685d3afc1ae04b2c092212d3c1bd742c3b Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit b307bf3c4f63c6e04874a972c747f18e18ddc199) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Add missing QQuickWindow constructorHatem ElKharashy2022-11-171-1/+5
| | | | | | | | | | | | | QQuickWindow::QQuickWindow(QQuickRenderControl *control) should be part of the public API. The user can use QQuickRenderControl with QQuickWindow to control the scenegraph rendering. This constructor is used in the QQuickRenderControl example. Change-Id: I1bb38d64173c24ba835137897ef915dfde83b1f3 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 7454d3b612eab92b8e91741fc1c51311cf80c3a2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix performance issue with drag retrigger events for qtquick itemsSanthosh Kumar2022-11-072-11/+28
| | | | | | | | | | | The items that reject drag events (specifically onEntered in DropArea) should not be retriggered with DragEnter event until entered once again. Fixes: QTBUG-74496 Change-Id: I241a6004da6382685be89fe8a001b98dfde5c8a2 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 0b7374fefa1abf08e956bc5d34008352144bd9ae) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix broken Text rendering when noantialiased NativeRendering is usedDominik Holland2022-10-111-1/+4
| | | | | | | | | | | | In case antialiasing is disabled the QFontEngine::Format_Mono is used to render in the glyph cache. In this format the padding needs to be 8-bit aligned. Fixes: QTBUG-107038 Change-Id: Icc3c69fe0395cea9954c2fa07c39e7769fc91800 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit cba96b3a97977f71931f311db9d5644d1d74d694) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Do not listen to baselineOffset changes unless really neededJan Arve Sæther2022-09-273-2/+17
| | | | | | | | | | | | | | | | | | | | | | | For some controls, (e.g. TextInput and Text) we can get changes in baseline offset when they change their height. These changes will invalidate the layout and generate a polish event. This means that during a rearrange of a layout with TextInput children, it might change the height of its children. This might change the baselineOffset of these children, which again will cause the layout to have to be invalidated (and rearranged again) This double-loop is unnecessary if the layout is not supposed to align these items by their baselines, so we add some conditions to see if we really need to connect to the baselineOffsetChanged() signal. This also fixes a bug observed in the color dialog, where the semi-recursiveness described above lead to a problem with that the alpha TextField of the RGBA color input was *not* laid out by the parent RowLayout Fixes: QTBUG-105899 Change-Id: If66b4bbde6a37c962b157e166c883ba20ff24c21 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 1fe641c50defed77590e2eba9d33e6c3746fa832) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix casts in qquickshapegenericrendererLaszlo Agocs2022-09-271-4/+4
| | | | | | | | | | | Works anyway because the data layout (a single m_node member) is the same for all the materials, but let's correct the casts. Fixes: QTBUG-106824 Change-Id: I84038b04ca03339bdefc61d5780b35309fcf6670 Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit 2afb9fe157ff7ead678f1b29f3c2955e277e7d1c) Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
* Adjust baselineOffset correctly when fontSizeMode == HorizontalFitJan Arve Sæther2022-09-221-15/+17
| | | | | | | | | | This caught my attention while reviewing a related fix (4933bd6351feec988746af647c391c46483f049a) Task-number: QTBUG-106594 Change-Id: Ie8c7fb2d9e504b14a924eca72a87295d8764cf39 Reviewed-by: Dominik Holland <dominik.holland@qt.io> (cherry picked from commit a7c8bd27e390db9d0d401f9008ceb4130da53d6f)
* Text: Re-layout the text when a alignment is set and the height growsDominik Holland2022-09-201-1/+1
| | | | | | | | | | | | | | When the top alignment (default) is used, a growing height can be ignored in some situations and no re-layout is needed. But once the alignment has been changed, the re-layout needs to happen, as otherwise not all anchors are updated correctly. Fixes: QTBUG-106594 Change-Id: I9ab9999f49331aadd3bb8247d520288c40b51b21 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit 4933bd6351feec988746af647c391c46483f049a) Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* mac style (quick): sync slider setup with qmacstyleTimur Pocheptsov2022-09-161-1/+13
| | | | | | | | | | | By essentially porting Volker's change (4bee9cdc0ac) from qmacstyle_mac. Fixes: QTBUG-106604 Change-Id: I3d17b96cb919299eb8e33afb9bfed7778423c88a Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 34a42dad18681911985a3648f7d8b19e3d174b63) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* DA: ignore disabled HoverHandlers when delivering hover eventsRichard Moe Gustavsen2022-09-162-14/+30
| | | | | | | | | | | | | | | | | | | | | | According to the documentation for HoverHandler::enabled, a disabled hover handler will not accept any mouse events. It therefore follows naturally that a disabled HoverHandler should also not affect event propagation elsewhere. This patch will change the implementation, so that we don't deliver hover events to HoverHandlers that are disabled. This also means that disabled HoverHandlers will no longer block propagation to its siblings. [ChangeLog][QtQuick][HoverHandler] Disabled hover handlers will no longer receive hover events, or block siblings from being hovered. Fixes: QTBUG-106548 Change-Id: I7f2e459ba39f1e23cdb13bf94f8754e185dcd0c1 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 205e31df1674da5d9de78c4338d3221309086333) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PinchArea: Keep the touch/mouse grab when pinch activatedSeokha Ko2022-09-141-0/+4
| | | | | | | | | | | | | Keep the touch/mouse grab when pinch activated to prevent childMouseEventFilter of parent from stealing the event Amends 10800723ab6dacf1203986a6b0815dec45528ef4 Fixes: QTBUG-105058 Change-Id: I6589b7d9cc5cc51ffe5dcaac137d1608604db572 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 4461dfc06b4b1b4bd97a0972ca10a1ab4d53a4c3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qmltyperegistrar: Add .hh to the list of recognized header extensionsUlf Hermann2022-09-131-0/+1
| | | | | | | | Fixes: QTBUG-106347 Change-Id: Idf70fbfee2006d9e5b3a89f9126277683a24c236 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> (cherry picked from commit 9716c0187bff4d2742f0f304da93090347495486)
* Qml: Don't crash on bad grouped propertiesUlf Hermann2022-09-131-1/+3
| | | | | | | | Fixes: QTBUG-106457 Change-Id: Id36b54fd3ed413c0ac49e33e5ea87984d5220aef Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit e061c934d5a6d93493ba2be7b61efdd055d1e164) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix flaky ToolTip::test_activateShortcutWhileToolTipVisible testMitch Curtis2022-09-131-0/+5
| | | | | | | | | | | | | | | Ensure that the window has focus, otherwise QQuickShortcutContext::matcher will return false. The patch also adds a logging category to allow debugging similar issues in the future without modifying Qt sources (which consumes an ungodly amount of time to do in a CI VM), and fixes a typo. Fixes: QTBUG-106465 Change-Id: I11f78479a7ed2e43ad25e8fccd7fd2af7338c6ea Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 8c6ff5a68d2da9b1520db69a56708f7e88b4e58f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* UrlObject: Add colon after schemeLeticia Valladares2022-09-131-4/+12
| | | | | | | | | | | | | | | This change adds a colon after scheme in methods 'setProtocol' and 'setUrl' on its protocol line. Likewise, this includes a test called 'colonAfterProtocol' to check if colons were correctly added by using different schemes: ftp, http and https, or if colons were removed when setting the scheme (i.e. from protocol 'ftp:', 'ftp:http:' or 'ftp:::' to 'ftp'). Fixes: QTBUG-103746 Change-Id: I8f847bedd23e476e0ae7901a2f3f3963da3ca04d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit c61075d2e0049b3c92556c7221e38ef1122118b6) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix for selecting file in FileDialog in AndroidBartlomiej Moskal2022-09-121-1/+1
| | | | | | | | | | | | The file URLs provided by the native Android dialog use the "content://" scheme. Calling toLocalFile() method on such QUrl returns empty string. That is why we need to use QQmlFile::urlToLocalFileOrQrc(). Fixes: QTBUG-105110 Change-Id: I80e9a9e90fdad4b22c5c58b06dab8af31ea84c82 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit bf3793a1a1a03408e4eea31d6460b7d4bc274556) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Correctly process root paths for qmlimportscannerAlexandru Croitor2022-09-091-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The values in _qt_additional_packages_prefix_paths end in /lib/cmake, because they are prefix paths, not root paths. Adding ./qml to the end of those paths would never result in valid qml import path locations on disk. Use __qt_internal_prefix_paths_to_roots from the Qt6 package to strip away that suffix, before adding ./qml. This should fix the Conan multiple root paths case, as well as builds of ExternalProject examples during a prefix build of qtdeclarative. Note that the examples will still not run without setting the QML_IMPORT_PATH env variable to point to the qtdeclarative/qml build directory, or creating a qt.conf file in the example build dir that sets the qml import path to the qtdeclarative build dir. Amends 8bf916bfcbd5a05ec7370179317cd6d3a7dbd905 Fixes: QTBUG-106431 Task-number: QTBUG-96232 Task-number: QTBUG-102339 Change-Id: I6d3dd2b82634efc0faf756d884816dfb8a6ff4b6 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 727151e0e03b0b91e1dc83c205a8608d5d5c236b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Harden construction of QML import paths for qmlimportscannerAlexandru Croitor2022-09-091-10/+12
| | | | | | | | | | | | | | | | | | In certain cases where QT6_INSTALL_PREFIX/qml might not exist, we wouldn't add the -importPath argument itself, but would still try to add import paths, which would then confuse qmlimportscanner and trigger an error. qmlimportscanner: Invalid argument: ... Make sure to prepend -importPath for each passed import path. Task-number: QTBUG-96232 Task-number: QTBUG-106431 Change-Id: Iae2b02a0b50e75a297df8fbaf0427df2b6b30c93 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 300074edaacdad3f2ffacb87c3e718db620c564a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: Fix for URLs with local authoritiesBartlomiej Moskal2022-09-091-17/+58
| | | | | | | | | | | | | | | | | | The file URLs provided by the native Android can use the "content://" or "assetes://" scheme. That was already handled by urlToLocalFileOrQrc(), but we cannot assume that authority is empty. Some authorities still point to local host, like: - com.android.externalstorage.documents; - com.android.providers.downloads.documents; - com.android.providers.media.documents; This commit treats URLs with the above mentioned authorities as local. Fixes: QTBUG-105110 Change-Id: I9c080305547e5cd2c2d1be489f59d185a5d49658 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit b65a5a9d06307eb6ad19abe9585c3b20a3db583f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix alias to inline component typeFabian Kosmale2022-09-082-2/+9
| | | | | | | | | | | | | | | | | | | When we create an alias property, we resolve its targets metatype. In the case of inline components of the same file, that's however not possible via QQmlType, as the type will only be available once the outer type has been fully set up. Fix this by looking up the type in the ExecutableCompilationUnit, where the information is available while the type registraiton process is still ongoing. As a drive-by, also set the alias flag correctly when constructing the QMetaObject of a QML element. Fixes: QTBUG-106392 Change-Id: Ie8f55dd0894cc5c8d683dd3c685980878956d3ca Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 2a37ff2f49140272d0122ccc097cc14c2fa4133e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix flaky tst_QQuickFileDialogImpl::goUpIntoLargeFolder testMitch Curtis2022-09-081-2/+10
| | | | | | | | | | | | | | | | | Ensure that all expected delegates have loaded before trying to verify that the correct file is selected. This requires a modification to verifyFileDialogDelegates to account for the large amount of files that goUpIntoLargeFolder deals with, as QTest's failure message is limited to 1024 characters. Fixes: QTBUG-101488 Change-Id: I65cf6ffc4724309083899dac2acc1f04a11a1220 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit f406385dfb9e88b3661f8524281b8f9d9e1351a7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* V4: Account for the guard pages when allocating stack spaceUlf Hermann2022-09-071-4/+7
| | | | | | | | | | | | | | | | Previously we've assumed the whole allocation can be used, even though the first and the last page are actually not usable. This makes a difference when the size of the guard pages grows, such as on macOS, which these days has 16k pages. Add the extra guard page size to the amount of memory to be allocated in order to fix the calculation. Fixes: QTBUG-93188 Change-Id: I0ebece94449da3127e9a78a19d8a22722ad8d698 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 826b77c8cf0ffbef4f95e7b9e72eb9dc25936657) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickLabsPlatformFolderDialog: Modify the logic of setting the folderDuan Ting2022-09-071-1/+0
| | | | | | | | | | | | | In QQuickPlatformFolderDialog, when triggering acceptance, the folder is set by the value of currentFolder, and the value is set back to currentFolder inside the setFolder function. This action causes currentFolder to be abnormal after the folder is modified. Fixes: QTBUG-104629 Change-Id: I99978de5bbd019024c499c50f61d6e7b6e7dc140 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 5e8b7627565d408ed6dbd9f3a192d0bbeff6720e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQmlEngineExtensionPlugin: Mention that CMake API is generally fineFabian Kosmale2022-09-071-0/+8
| | | | | | | | | | | | | | With qt_add_qml_module, the generated plugin will be sufficiant most of the time. Mention that this is the case, and also mention NO_GENERATE_PVUGIN_SOURCE for the case where customization is required (most likely to occur with image providers). Fixes: QTBUG-106270 Change-Id: I7e9399f9617e7d531b84b68afc9e8f9aa85f0704 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> (cherry picked from commit 2ca9d70c17e790f55f9b09088e1c3bca77488560) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* StackLayout: Do not set size of children to (-1, -1)Jan Arve Sæther2022-09-062-4/+12
| | | | | | | | | | | The item-size-hint-cache in StackLayout was not always valid when QQuickStackLayout::rearrange() was entered, so it would end up setting the size of the item to (-1, -1) Fixes: QTBUG-105899 Change-Id: I632aa18bb10b84d59af35cd3c7cb0c675d8d1692 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 9a4874ab7f18a54b2497f689dfd7f7a2ee0516b8)
* Doc: fix and improve FileDialog example snippetMitch Curtis2022-09-053-17/+61
| | | | | | | | | Replace it with a self-contained example that can be copy-pasted and run, and that is easier to understand. Change-Id: I54b67b0173d25aee509318ff842bb895c7244a48 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 25bd3b526c6b78694422d0ebcb6052996dd68f2c)
* Engine: Fix handling of attached objects in function callsFabian Kosmale2022-09-021-4/+6
| | | | | | | | | | | | | | | | | When we use an attached object as an argument to a function call, we need to properly extract it from the QmlTypeWrapper. Before this change, we simpley left the argument pointer as null, which lead to subsequent crashes when it got dereferenced. Moreover, treat passing namespaces to functions expecting a QObject as a TypeError, by returning false from CallArgument::fromValue (used to crash for the same reason as with the attached object case). Fixes: QTBUG-106119 Change-Id: Ifa6a32e20a29935aff1f265eb0edd3e35ea1c11b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 84483bff4f4d49e5f87abf564021647f2fb2a8d0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Flickable: let changing contentItem pos also affect the drag starting posOliver Eftevaag2022-09-022-7/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When calling the setContentX(qreal) and setContentY(qreal) functions, the flickable would not update the drag starting position if they were called in the middle of a dragging operation. This patch makes those function update the drag starting position, so that the drag will take into account the external changes to the contentItem position, and not make any massive leaps on the next call to drag() after changing the contentItem position directly. Note that vData.pressPos and hData.pressPos are set to the x and y position of the contentItem at the beginning of a drag operation. They are unrelated to the mouse position. The bug QTBUG-104966 will be fixed from this, since QQuickItemView::setModel() calls QQuickListViewPrivate::setPosition() which calls QQuickFlickable::setContentX/Y(). The QQuickFlickable::setContentX/Y functions are public (part of the public API). They will update the timeline value for the x and y axis, which will as a result also call setViewportX/Y, which calls setX/Y for the contentItem itself. Done-with: Jan Arve Sæther <jan-arve.saether@qt.io> Fixes: QTBUG-104966 Change-Id: Id5165e1ff37a07b94be8c1cc152e86dfcc13d1c6 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit 5647527a8cde84b51fff66fc482f02435770b3dd)
* Imagine: fix ComboBox's implicit size bindingsOliver Eftevaag2022-09-021-2/+2
| | | | | | | | | | | | | | | | | | The parentheses were misplaced, causing e.g. contentItem.implicitWidth to be ignored. Without any parentheses, the same issue is present due to evaluation order, so we do still need them, just in the correct place. While we're at it, we replace contentItem.implicitWidth with implicitContentWidth so that Imagine respects implicitContentWidthPolicy (which was added in 49ffc6e6af83b295c67fd119b79c925879cc292e). Fixes: QTBUG-106098 Change-Id: I6ff08f5cb9309ae0494d95917ce8b7a22d2ba663 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit e11df48384e38f2903a88f8dd3db49b78f1e27c6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PinchHandler: Enforce min/max scale limits with native gesturesShawn Rutledge2022-09-021-0/+1
| | | | | | | | | | | | So far the qBound() using m_minimumScale and m_maximumScale was only applied for normal pointer events: there were no limits when using a touchpad that sends native gestures. Fixes: QTBUG-106110 Change-Id: Ibf8d955e5f1dac517e0a3e9588fb117d83f443a6 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 5cb3ba93da2673b20abae8a544a961b7b57dff45) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Integrate property binding evaluation fix from qtbaseFabian Kosmale2022-09-021-3/+5
| | | | | | | | | | | | This is basically the same as QTBUG-105204, only with the QML engine being involved. Fixes: QTBUG-104982 Change-Id: I5afaadedcd7af41198702a8f2331703b4f6ef2e7 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 2879c7c3411955b1d4f795436f803abd960c176d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Optimize QQuickMultiPointHandler::grabPoints slightlyShawn Rutledge2022-09-021-1/+1
| | | | | | | | | Clazy reminded me about the usual const-ref optimization in a range for. Change-Id: I2eafb49d341758829ce8fc43a8e5432a2d6dd4f6 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 5b81451d448d667b500ae6283ded9e59826e72b3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QmlCompiler: Prevent lookup of value type where we need an object typeUlf Hermann2022-08-312-58/+70
| | | | | | | | | | | | | | | | | With a particular nefarious combination of Q_GADGET and inheritance from QObject you can make QmlCompiler believe a type is a value type even though it is actually an object type. We never want to touch such a thing. There was a safe guard against this when looking up the type from the scope, but by putting it in a type namespace you could circumvent it. Refactor the code to apply to both cases the same way. Fixes: QTBUG-104556 Fixes: QTBUG-105608 Change-Id: I8a690e2b6f78fcaba0911a93504cde0d2c7dde0d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 0a8fe228f6bb65afe08f1bc203653266fa204ba5)
* Transition: properly remove QPropery based bindingsFabian Kosmale2022-08-301-5/+10
| | | | | | | | | | | | We need to use QQmlAnyBinding::removeBindingFrom instead of the functionality in QQmlPropertyPrivate, as the latter does not correctly handle QProperty based bindings. Fixes: QTBUG-105535 Change-Id: Ifcd8d3a97ff6d62b365008768e6bf50cfa102a39 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit af5f853413c633c665696dc176677fdde196dd01) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Document behavior of remote implicit importsUlf Hermann2022-08-292-2/+11
| | | | | | | | | | | | They are remote directory imports for all practical purposes. Therefore, you need to add qmldir files to make them work. Fixes: QTBUG-92068 Change-Id: I7b11e55e53b2c96d95619ac2346cd45561e73b9a Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit a22bd4164e10fd2e208d0fa6e3373c8e27996952) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: fix typo in QQuickAccessibleOliver Eftevaag2022-08-281-1/+1
| | | | | | | | Fixes: QTBUG-105812 Change-Id: I735b23999a87bead759ea7987975c3d4cefdebf8 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit af34e238b8bb572097a99b45b8522b120fd102ea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix bad rendering after text selectionShawn Rutledge2022-08-272-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 9db23e0e04906cf9ea33e23fa41f34955e5e6fe0 we added a new call to createTextNode(), but it turns out that it could be called again for the same block, a few lines below (in code that was originally added in dfdc4ce825e814b30449cfa1c85d3d2f47f8a845), if we have not reached the "last node that needed replacing or last block of the frame". This resulted in a memory leak: TransformNodes were created without parents, which b616028dae933e7ff6142d41bdafee8ad445a8ec tried to fix by calling addCurrentTextNodeToRoot(). That change made the code in "Update the position of the subsequent text blocks" re-add offsets that had already been added, which had the effect of moving down the blocks below the selected ones by the height of one line; but the new call to addCurrentTextNodeToRoot() was anyway just adding empty TransformNode instances to the scene graph. Afterwards we can see that any TransformNode that does not have a GeometryNode as a child is not actually rendering any text, it's just wasting memory. Having a debug operator for QQuickTextEditPrivate::Node, and using a QQuickTextEdit subclass in the autotest that checks the nodes corresponding to blocks rendered at the end of updatePaintNode(), makes this easier to see and verify. So now, if createTextNode() has already been called, we avoid calling it again a few lines below; but we keep the checks in place to make sure that every node which does not have a parent will get added to the scene graph (regardless of which line of code it was created on), so that there's no leak. It remains to be seen if this could be cleaned up further. Amends 9db23e0e04906cf9ea33e23fa41f34955e5e6fe0 and b616028dae933e7ff6142d41bdafee8ad445a8ec Task-number: QTBUG-103819 Fixes: QTBUG-105208 Fixes: QTBUG-105555 Fixes: QTBUG-105728 Change-Id: I321980c705887bfdb37825f7e6ed8da3d200654e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit b271755e6c9a5a939c3ad6dfca8da573779e06ee) Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use the time stamp of the touch event when deliver touch as mouseSeokha Ko2022-08-261-0/+1
| | | | | | | | | | | Use the time stamp of the touch event when converting a touch event to a mouse event for items that do not handle touch events Fixes: QTBUG-105907 Change-Id: I642093346459a031b77174eeecba8470e103e8dc Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 3c3aef14865fe8a9865403feb044771a27522256) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove stray qDebug()Ulf Hermann2022-08-251-1/+0
| | | | | | | | | | Amends commit af1ef35fa00a466d3af04c17b59fcb4ea38f396a. Task-number: QTBUG-92192 Change-Id: I7523b9294d543eaaf2c37f4d2d4456758cdb6e3e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 7be4dcfd2c2dd27627bfc6a319f348a52c390632) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Apply some fixes to LocalStorage documentationUlf Hermann2022-08-251-5/+5
| | | | | | | | | | | | | | | The identifier is of course not a full (as in absolute) path, but rather a relative path. The documentation states above that all paths are relative to the engine's offlineStoragePath after all. Also, drop the version number from \qmlmodule. Fixes: QTBUG-95232 Change-Id: I9202d4ecd45d3efca00ad48dbef359491c373916 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 33fbb6ce749e469c116dd07a6604248031d9caf5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Drop duplicated wordPaul Wicking2022-08-251-1/+1
| | | | | | | Change-Id: Ie1814aa6d990e1caecf0a92d983d8260c48669ec Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit e3aeb13052c1d783c92a6043614a196a267d5fea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: fix FolderDialog example snippetMitch Curtis2022-08-251-4/+4
| | | | | | | | | Use the correct properties and use qsTr(). Change-Id: Ic9765503845e5d9d64c2c77c60238095b4947058 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit c4b4812d5da917b83e1d83079fa992e00b612141) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Platform: fix MenuItem being triggered when disabledMitch Curtis2022-08-252-33/+45
| | | | | | | | | | | Ensure that we remove shortcuts for a MenuItem when it's disabled, not just when a new shortcut is set. Fixes: QTBUG-89567 Change-Id: I9c4eeda1a68a23317fe5e7bf517046e4e403c46a Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit acf2ed0c5fb7594ab01ff48e3dc5c3c16e203755) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Native style: ensure implicitSize is not less than minimumSizeRichard Moe Gustavsen2022-08-232-11/+19
| | | | | | | | | | | | | | | | | | | | | | | After e0990f8b406, we now send a content rect that is smaller than the minimum size to QQuickMacStyle::sizeFromContents(CT_LineEdit). Because the affected code in sizeFromContents doesn't expect that, it returns a size that is too small to fit the background. Since a QQuickStyleItemTextField will respect the minimum size, and therefore end up drawing a background that is bigger than the control, the focus rect (that respects the size of the control) will appear too big. This patch will ensure that sizeFromContents never returns a size that is smaller than the minimum size, even if the contents are smaller. A small check in the code for this is also added, so that we can avoid similar cases early on later. Fixes: QTBUG-104705 Change-Id: Ifb763dcce5cef43e6aec9a7da70d73bf8f1255ff Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 18b7cc43853b1cf48a8994ecfbf742d61fa730c3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* A11Y: Send Scrolling Events when Flickable movesJens Trillmann2022-08-191-0/+12
| | | | | | | | | | Task-number: QTBUG-103513 Change-Id: I6b67ff2611f37a6519420d875e7d9a70d0eb210a Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit ac0d923de68cad62d87e116fbb5e5cc2af28349c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* doc: Add missing PointerHandler.CanTakeOverFromItems enum valueShawn Rutledge2022-08-181-0/+2
| | | | | | | | | Amends 0a3eec60cab3c453b378ee45ac335e0dc2951f4b Change-Id: Iae9d1b2b68dc48a52adf0438a09af8e53f5527f1 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit c2d92c241274f9abdcb24637f9838210f191e8ed) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix scroll bars not showing up when binding to standalone contentItemMitch Curtis2022-08-173-0/+42
| | | | | | | | | | | | | | | | | | | | 908aa77d16e00f2bccc0ddae0f8b61955c56a6a1 hid old scroll bars, but didn't account for the situation where the old scroll bars would be put back into place, and so they never showed up. In the case of the linked bug report, since there was a binding to the ScrollView's contentItem, a default Flickable would be created. After that binding was evaluated, the contentItem was set, causing the scroll bars to be hidden (as part of the process of disconnecting from the old flickable). To fix the issue, we now do the reverse of hideOldItem when a new contentItem is set. Fixes: QTBUG-104983 Change-Id: I910259cc3e8f6a6231ae6c87c7d4f0f652bd0545 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Nate Graham (cherry picked from commit 58bae53237417f28eac6d772fa6ecab657f8a73f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PinchArea: fix pinches being stolen when in PathViewMitch Curtis2022-08-161-0/+6
| | | | | | | | | | | | Keep the mouse grab in addition to touch, as PathView apparently doesn't deal with touch events yet. Fixes: QTBUG-105058 Change-Id: Id94768aec847138cccdeccfa92e4bc72a19810fe Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 10800723ab6dacf1203986a6b0815dec45528ef4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Don't compress touch events in subscene DeliveryAgentsShawn Rutledge2022-08-151-0/+5
| | | | | | | | | | | | | | | | | | | flushFrameSynchronousEvents() is only called on the window's DA, so a touch event stored in QQuickDeliveryAgentPrivate::delayedTouch in a subscene DA would be lost, unless we make the flush recursive. However, a grabbed touchpoint remembers its DA; when that's a subscene agent, subsequent touch moves are delivered directly via the subscene DA, and touch event compression does not occur at all. This may pessimize performance if touch events occur many times more often than frame rendering, but it's not expected to matter a lot on 3D-capable hardware. Fixes: QTBUG-105566 Change-Id: I9102b20806f9577fba0f741f7589ee5b1642e5a5 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 212f31f9eaa0e2ba569ae1458fd0f0dca3c53e60) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>