aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Qml[Table|Tree]Model: Move data to QAbstractColumnModelHEADdevMatthias Rauter4 hours6-109/+72
| | | | | | | | | | | | The only difference in the function is moved into dataPrivate. This is the 9th patch in an attempt to make them more similar and eventually merge common pars in a common abstract class. Task-number: QTBUG-138703 Pick-to: 6.10 Change-Id: I6b247121f64b070ee31846a5da4be9ad1abb93be Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Qml[Table|Tree]Model: Move setData to QAbstractColumnModelMatthias Rauter4 hours6-154/+94
| | | | | | | | | | | | | | The only difference in the function is moved into setDataPrivate. Q_STATIC_LOGGING_CATEGORY lcTreeModel is no longer used. This is the 8th patch in an attempt to make them more similar and eventually merge common pars in a common abstract class. Task-number: QTBUG-138703 Pick-to: 6.10 Change-Id: Id7a7166a7dd31a5ab3908e68571bc802729798a3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* DeliveryAgent: stop sending hovering mouse moves to grabberShawn Rutledge8 hours6-12/+97
| | | | | | | | | | | | | | | | | | | | For applications running under Qt Wayland compositors, touch events may be accompanied by fake mouse moves coming from the touchscreen device. That might or might not be useful: but since most of Qt Quick ignores such stray mouse moves, and PinchHandler was getting deactivated by them, we now make an effort to avoid delivering them to PinchHandler after it has become the exclusive grabber of those touchpoints (which looks the same as being the grabber of "that" mouse). Added a reminder to the handlePointerEvent() comment that tablet events are different: hover events are not enough, in fact we need to deliver TabletMove events to HoverHandler so that it has a chance to change the cursor (i.e. keep the tst_HoverHandler::deviceCursor test working). Pick-to: 6.8 6.9 6.10 Fixes: QTBUG-123985 Change-Id: I513caf277e2fb87401b3e0bb5547f9623467b423 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* sg: optimize Renderer::cleanupBatches() by removing sorting and copyingAurélien Brooke9 hours1-9/+12
| | | | | | | | | | | | | Replace the previous stable sort + filter approach with an in-place compaction loop that moves valid batches forward and recycles invalid ones immediately. This removes the need for temporary heap storage and avoids redundant copying and sorting, while preserving the original order of valid batches. Change-Id: Icbe2c3d96b5d38a0a1f2c14ce175eb19d45d5a63 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix QSGGeometryData::hasDirtyIndexData used wrong dirty flagDheerendra Purohit20 hours1-1/+1
| | | | | | | | | | | The method incorrectly returned m_dirty_vertex_data instead of m_dirty_index_data. Pick-to: 6.10 6.9 6.8 6.7 6.6 Fixes: QTBUG-123988 Change-Id: Ib99175adabc711c8449ff3db755fbade968f7c63 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Skip reordering content model if items aren't reparented to item viewSanthosh Kumar21 hours3-9/+118
| | | | | | | | | | | | | | | | | | | | | | | The container reorders the content model items after component completion. The content model can be assigned as a model to the item views to visualise through a container content item. The content item can have item views anywhere in the object hierarchy. If the item views are somewhere down in the line and not at the top, there is a chance during component completion that some of the items are reparented to the item views, and others are with the container content item itself. Thus, reordering at this stage (having partial items) can lead to changing the order of elements within the content model, which further causes repositioning of items within the item views. This patch resolves this issue by skipping reordering the content model, if any of the items are not reparented to the item views. Fixes: QTBUG-138490 Pick-to: 6.10 6.9 6.8 6.5 Change-Id: I1673e600774e2821653542c003d2d573f62d024d Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* manual tests: compile fix for namespaced qtTim Blechmann24 hours2-0/+4
| | | | | | | | QT_USE_NAMESPACE was missing, so they didn't compile with namespaced qt. Pick-to: 6.10 Change-Id: Ic4b1126cfab7780c714a737e81f0947664bade02 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix runtime error in the flexboxlayout exampleSanthosh Kumar33 hours1-1/+1
| | | | | | | | | | The Text::wrapMode has been referenced incorrectly as Text::wrap and its corrected in this patch. Fixes: QTBUG-137733 Pick-to: 6.10 Change-Id: Ieb1ab02e19bc929f103443f0845a8980daceb245 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* QtQml: Properly null-check module exports when iteratingUlf Hermann39 hours1-2/+2
| | | | | | | | | | | | | We construct the iterator from the exports of the module in all current code paths. Therefore, this case can't happen in the current code. Still, the fact that we have a branch that throws a reference error there tells us that it's intended to work on other collections of names, too. Let's complete the check and also check for nullptr since resolveExport can indeed return that. Coverity-Id: 486706 Change-Id: Ieaf3996e76265e9e6ef59c2168699e47e41e8ff5 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* JSRuntime: Add const correctnessOlivier De Cannière39 hours2-5/+5
| | | | | | Change-Id: I2fc82de562909ab2e0eecfbbe1e2e53953a33756 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQml: Optimize retrieval of string from ValueUlf Hermann39 hours1-2/+2
| | | | | | | | stringValue() already checks isString(). We don't have to do it twice. Coverity-Id: 486710 Change-Id: I074228f9a120c3bbfe6d4a65f05fe11322fbd07b Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* QtQml: std::move strings rather than copying themUlf Hermann39 hours2-4/+5
| | | | | | | | Coverity-Id: 486699 Coverity-Id: 486697 Coverity-Id: 486715 Change-Id: Icdd15ff578f8be55fe9db3ffc38e893f667edc40 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* QtQml: Drop dead codeUlf Hermann39 hours1-2/+0
| | | | | | | | | The propertyList is an array allocated on the JavaScript stack. None of it can be null. Coverity-Id: 486709 Change-Id: I3178181aa89bfff86fb5aa469660a912b4f1691c Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* Adapt to removal of QAbstactFileEngine::entryListLuca Di Sera39 hours2-8/+0
| | | | | | | | | | | | | The method is (going to be) removed in 6.11 and is currently producing a compilation error, as the method is marked `override` but is not overrinding anything anymore, on current development builds that use a recent qtbase. Follow along the base class path and the resolution method in similar patches (e.g for Qt Creator) by removing the method in its entirety. Change-Id: I6a334681764d9589317ef2121691f8d4e7888b98 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Unblacklist tst_QQuickPopup::closePolicy and cursorShape on openSuSEFrédéric Lefebvre42 hours1-7/+0
| | | | | | | | | | | | tst_QQuickPopup::closePolicy and cursorShape are no longer flaky on openSuSE 15.6. Unblacklist both tests. Fixes: QTBUG-94251 Pick-to: 6.10 6.9 6.8 6.5 Change-Id: Ic27016893b91fb38c8869c4e357be7b1b88dc45a Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* Curverenderer: Make QQuadPath::Element::isSubpathEnd() reliableEirik Aavitsland42 hours1-0/+5
| | | | | | | | | | QQuadpath did not maintain the isSubpathEnd-flag, so it would typically be lost during path processing. Fix to ensure that algorithms that test for it work correctly. Pick-to: 6.10 Change-Id: I793b06ef87087cce4a4545bcd7fd2e20ca3790ad Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Update svgtoqml generated examplesEskil Abrahamsen Blomfeldt44 hours12-14/+378
| | | | | | | | | | The svgtoqml tool has been updated, so we need to update its generated files as well. Pick-to: 6.10 Change-Id: Ie58653c35e99e0c1119a9bf64d803371d31261e5 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
* qmlscenegrabber: account for errors when loading QMLMitch Curtis2 days1-0/+10
| | | | | | | | | | | | | Both QQmlComponent's constructor (the "compile" phase) and create() (the "create" phase) can produce errors, according to https://doc.qt.io/qt-6/qqmlcomponent.html#errors. This fixes a crash caused by an error in the QML, which the tool would then silently ignore and try to access nullptr items. Pick-to: 6.5 6.8 6.9 6.10 Change-Id: I2ba6301f8f1f5cd4d804eba290606cf48b584ddb Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Document QQmlComponent error handling in detailed descriptionMitch Curtis2 days1-0/+9
| | | | | | | | | | | | | | QQmlComponent has two stages where it can produce errors that weren't accounted for in the first example (which is what most users will see first): in its constructor and in create(). Add error handling for these so that users aren't confused when their QML silently fails to load or they get crashes trying to access non-existent objects returned by create(). Pick-to: 6.5 6.8 6.9 6.10 Change-Id: I42d0222a997b3cac01cd191bb076513642f5716d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Android: Add braces to m_hasQueuedStatus checkAhmed El Khazari2 days1-1/+2
| | | | | | | | | | | | | Added braces to the m_hasQueuedStatus check for consistency and to prevent potential errors if more statements are added later. No functional changes. Amends 76bb559e5fbf2dfaf017f8b4a3435938b4d5f4fa Pick-to: 6.10 6.9 6.9.2 Change-Id: Ic465f41cf08aed0f3f6222786f8fa13f8657d385 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* FileDialog: Fix binding loops for Fusion, Material and Universal stylesOliver Eftevaag2 days4-7/+4
| | | | | | | | | | | | | | | These binding loops were introduced in 0e4d470d3df3963db3546f94e580994473052283, since the nested overwriteConfirmationDialog's width were still determined by the contentItem, but the contentItem's width depended on the overwriteConfirmationDialog's width. This resulted in a binding loop, which could be fixed by giving the overwriteConfirmationDialog an explicit width. Pick-to: 6.10 Change-Id: I3bb2957fd31710b093eb7f7e887df8f045809921 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* FileDialog: Fix major sidebar issuesOliver Eftevaag2 days5-19/+15
| | | | | | | | | | | | | | | | | | | | | | | | The SideBar were facing two major issues. The first had to do with the buttonDelegate's `required icon` line, which didn't work after 7322e051c9c3d8dc715c20a3d42d9be83ea2295c, resulting in an error during component creation. The other issue had to do with the icons qrc paths only working for the Basic style. Since the paths were relative, they'd assume that no file selectors were being used, and thus a simpler path resolution. This caused all non-basic styles to resolve the url to an invalid resource. The first issue was fixed by removing `required icon`, and the latter was fixed by using complete qrc paths. In addition, we do a small drive-by fix, by putting a user facing string into qsTr(). Pick-to: 6.10 6.9 Change-Id: If6cd7ab638ec349b39fe0e4bc763ead78a51a0f4 Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* SearchField: Use highlightedIndex instead of currentIndex in stylesDilek Akcay2 days3-6/+6
| | | | | | | | | | As highlightedIndex property is added to SearchField, relevant style implementations that previously relied on currentIndex have been updated to use highlightedIndex. Pick-to: 6.10 Change-Id: Ib8bc065c92aa95a1ea5ea3cd5c3825bbd15c2f2d Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* QtQml: Deduplicate enum handling in QtObject and clean up APIOlivier De Cannière2 days10-99/+202
| | | | | | | | | | | | | QJSValue is slow and can be avoided. Use more specific types. Also, switch to an exception based error handling instead of returning undefined. Amends 5e312953f6c41f244344bbd05a41f205a8d3f86d, found in API review Pick-to: 6.10 Change-Id: Ie7c304a0dd76c8096e7c1f9b7cc3cfe7471649da Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQmlJSTypeResolve: Support T -> QmlListProperty<T> conversionFabian Kosmale3 days3-0/+14
| | | | | | | | | | The engine handles this just fine, and we had examples (and probably documentation) shownig this pattern. If we want to warn about it, it should have a dedicated warning. Pick-to: 6.10 Change-Id: I105f4a49ecfc6fbd5f00c683e0dbef7d34a64a1d Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* Add QML test for QRangeModelVolker Hilsheimer5 days10-0/+849
| | | | | | | | | | | | | | | | | | | | We want QRangeModel to be the preferred mechanism for exposing C++ data to QML. Ideally, it will also be a replacement for using QVariantList or QObjectList, without the "quirks" of exposing a value type holding references, modelData vs named roles, no write-back etc. To make sure that the respective usage patterns don't break, add a test for QVariantList and QObjectList, and corresponding tests that use QRangeModel with equivalent data structures. The test shows some unexpected and excessive calls to both data() and setData() implementations of QRangeModel, which are QEXPECT_FAIL'ed for now. Unrelated to this test of QRangeModel, so leaving that for a future commit. Pick-to: 6.10 Change-Id: I870c78d845de507dafd27f6999154a1a7ea92a1b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot5 days1-5/+5
| | | | | Change-Id: I0204e4ca1ee787b7f7c8a5f8d980475554a50aac Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* FolderDialog: Declare FileDialogDelegateLabel from its module aliasOliver Eftevaag5 days5-5/+5
| | | | | | | | | | | | This was already done for FileDialog, but not for FolderDialog. It prevents a crash. Amends 87f6e63dfc32e4eac861f3490cb961dfbb028b23 Pick-to: 6.10 6.9 6.8 Change-Id: If6ab9152b9f1f5dcef92dfa891d09202968ef81e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* qmllint: allow mixing ID based with text based translationMasoud Jami6 days9-110/+67
| | | | | | | | | | | | | Since 6.10 Qt i18n component allows mixing id based with text based translation and this is reflected in lrelease, lupdate, and documentation. This patch is a partial revert of 8b61addfa42525c1bd5f27febbe62dcbdb645fc9 and removes the qmllint warning in the case of mixing these two. Pick-to: 6.10 Change-Id: Iae2407da2bc5cc21fc3664051834c99b8c72fe58 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* CMake: Use qt_internal_add_RunCMake_testAlexandru Croitor6 days4-7/+6
| | | | | | | | | Use qt_internal_add_RunCMake_test instead of add_RunCMake_test to ensure Qt specific behaviors are applied. Pick-to: 6.8 6.9 6.10 Change-Id: Ia751f66cd4cd76e76ea0bb5e31f4b8372b2ca22a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Android: fix broken link under QtQuickView pageAssam Boudjelthia6 days1-1/+1
| | | | | | | | Amends e0791e838daeb0dc99a3f28270bbfda3214a9fbf. Pick-to: 6.8 6.9 6.10 Change-Id: I8bf20c2cb01e1ff8e261fbb0c596a5b6b6c8aa68 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
* QQ4A: Add tests for early signal listenersPetri Virkkunen6 days4-1/+75
| | | | | | | | | This commit adds some tests for QtQuickView and QtQuickViewContent signal listeners that are registered before the QML is loaded. Task-number: QTBUG-137057 Change-Id: Id10420186399cb49d63f281ae195eeacf325250d Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QQ4A: Docs: Update connectSignalListener docs in QtQuickView/ContentPetri Virkkunen6 days2-7/+16
| | | | | | | | Update return value and behavior descriptions in QtQuickView/QtQuickViewContent::connectSignalListener functions. Change-Id: I566b5c7940c74daec6f20072d2db35bb66d3f86f Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QQ4A: Enable signal connection queuing in QtQuickView and ContentPetri Virkkunen6 days2-26/+43
| | | | | | | | | | | | | | | | | | | | | Use SignalQueue, implemented in an earlier patch, in QtQuickView and QtQuickViewContent to handle connecting to QML signals before the QML is done loading, in these cases: * QtQuickView: If the underlying QAndroidQuickView object has not been created * Once the QAndroidQuickView is created and the view reference is set, we can send the queued connections to the C++ side safely. * QtQuickViewContent: If the Content has not been attached to a QtQuickView * Once the Content has been assigned a QtQuickView, we can send these queued connections to the QtQuickView safely. The QtQuickView may or may not queue these as well. Task-number: QTBUG-137057 Change-Id: Id84fb184d2d60a95f0ffb77896d0c553d7f52338 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QQ4A: Add QtSignalQueue class to manage queued signal connectionsPetri Virkkunen6 days6-0/+256
| | | | | | | | | | | | | | | This class will be used in both QtQuickView and QtQuickViewContent, to keep track of queued signal connections and eventually process them, connecting them to the QML view. This class also introduces an internal class to represent the data required to make a successful signal connection, to assist with storing the data. Task-number: QTBUG-137057 Change-Id: I798dbf0c0b377f2bf07874b17b83d493aa4905d9 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QQ4A: QAndroidViewSignalManager: Move signal connection ID gen to JavaPetri Virkkunen6 days6-62/+85
| | | | | | | | | | | So that later patches can return valid values from the API when connecting to signals of QML views that have not been loaded, the Java API must be able to generate listener IDs. These calls can even happen before the Qt libraries are loaded. Task-number: QTBUG-137057 Change-Id: If2cafe8fd65841d2bcfc4a079939d81a279c7982 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QQ4A: Add possibility to register signals before QML is loadedPetri Virkkunen6 days4-28/+105
| | | | | | | | | | | | | | | | | | | | This commit adds a queue mechanism and API in QAndroidViewSignalManager that allows callers to add signal listeners before the QML view has been loaded. API Added to QAndroidViewSignalManager always returns true, but might still fail if a signal with the desired signalName does not exist. If using the QtQuickViewContent API, this should never happen, but with the QtQuickView API, this is a possibility with typos or signal names that are computed with some logic in code. Internally, QAndroidViewSignalManager listens to the QQuickView::statusChanged signal to detect when the QML view is done loading. Task-number: QTBUG-137057 Change-Id: I2ea95f096517f2b7f45a60f236923d42cb5cf1fe Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* tst_qmlls_utils: fix singleton in testSami Shalayel6 days3-2/+3
| | | | | | | | The singleton is in the wrong folder, and is missing a qmldir entry to be valid. Change-Id: I7d9d12681d025f6ca257cc1cfbcfb02fc977721d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Harden namespacingTim Blechmann6 days24-21/+96
| | | | | | | | | | | | | | | When using namespaced Qt, we need to prevent symbol clashes with symbols of the same name. * namespace some publicly visible classes * hide classes in implementation in an anonymous namespace * rename read/write to readValue/writeValue to avoid name clash with c functions. Task-number: QTBUG-138543 Pick-to: 6.10 Change-Id: Ica77462c1f81f1e01cc60477e5b56ecfe3c1abb4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmlls: remove unused headersTim Blechmann6 days1-5/+0
| | | | | | | | Flagged by qtcreator/clangd Pick-to: 6.10 Change-Id: I155d56e89d47e7c09cd7d1b5cb6ade13af565671 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* tst_qquickanimations: bump defaultTryTimeout to 2 secondsMitch Curtis6 days1-0/+2
| | | | | | | | | | | e7b90cfc31e9b651fd4895944f84d78aa637f120 changed the default to 1 second, which results in confusing failures where 1 second is not enough... but it also was (QTBUG-139036). Many animations are 1 second long, so bump the default timeout to 2 seconds. Task-number: QTBUG-138662 Change-Id: I9b38e6cdbecda17cc2be65e93be4bdc7b8b0a529 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Improve error message for invalid import qualifierDheerendra Purohit6 days3-3/+3
| | | | | | | | | | | | Previously, the error message for an invalid import qualifier did not show the qualifier name or explain what was wrong. This change adds the qualifier name to the message and says it must start with an uppercase letter. Pick-to: 6.10 Fixes: QTBUG-133313 Change-Id: I0bd4bb143f7b4cdc3b26cae73ab42a4fb05977b1 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Qml[Table|Tree]Model: Put column handling in abstract classMatthias Rauter6 days8-470/+338
| | | | | | | | | | | This is the 7th patch in an attempt to make QQmlTreeModel and QQmlTableModel more similar and eventually merge common parts in a common abstract class. Task-number: QTBUG-138703 Pick-to: 6.10 Change-Id: Ie73ae28617efd83d2644c7a745eb7c583c0b68e6 Reviewed-by: Mate Barany <mate.barany@qt.io>
* VerticalHeaderViewDelegate: set 6.10 with set_source_files_propertiesMohammadHossein Qanbari6 days6-0/+18
| | | | | | | | | | | | Found in 6.10 QML API review amend 9601b74dabed53e93a7a5144d4c1fadb7876db18 Task-number: QTBUG-137478 Pick-to: 6.10 Change-Id: I3a26307f304277dfd259da3736d1069a43c0cd03 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* HorizontalHeaderViewDelegate: set 6.10 with set_source_files_propertiesMohammadHossein Qanbari6 days6-0/+18
| | | | | | | | | | | | Found in 6.10 QML API review amend 9601b74dabed53e93a7a5144d4c1fadb7876db18 Task-number: QTBUG-137478 Pick-to: 6.10 Change-Id: I11fcf5317add4c07e211cff70d3b2e86bd470000 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Curve renderer: Fix filling of certain paths with degenerate partsEirik Aavitsland6 days3-15/+114
| | | | | | | | | | | | | Determining the fill side of a segment would fail if the path contained an overlapping segment in the opposite direction. If a subpath started with such a segment, the resulting fill could be incorrect. Fix by iterating over the subpath for a segment with a determinable fill side. Fixes: QTBUG-133247 Pick-to: 6.10 6.9 6.8 Change-Id: I07c4f884d525b19af93609bcb31b412d340bebd5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Make qmlscenegrabber manual test directly openable in CreatorMitch Curtis6 days1-0/+6
| | | | | | | | | | | This avoids the need to run qt-cmake-standalone-test and then import the test, as described in QTCREATORBUG-25389. Task-number: QTBUG-93020 Pick-to: 6.5 6.8 6.9 6.10 Change-Id: Idafddadfa91f5de9503983a22089fa6d8408ca4d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Fix invalid access to enginePriv in QQmlIncubatorPrivate::clear()Dheerendra Purohit6 days1-0/+2
| | | | | | | | | Add null check to avoid accessing enginePriv after it is set to nullptr. Pick-to: 6.10 6.9 6.8 6.5 Fixes: QTBUG-138927 Change-Id: I180828066a100465694337c4378139cfd9e4ab06 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* Fix qt.qpa.menus warning in tst_qquickmenuMitch Curtis6 days4-52/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The warning was: QWARN: tst_QQuickMenu::FluentWinUI3::nativeStatic() qt.qpa.menus: QPlatformMenuItem(0x60c0001c5040) does not belong to <QCocoaNSMenu: 0x6070000884a0> Title: Supermenu: 0x0 (None), autoenable: YES Previous menu: 0x0 (None) Next menu: 0x0 (None) Items: ( ) In nativeStatic.qml, we have an item tree that looks like this: Menu { Action { /* ... */ } MenuItem { action: Action { /* ... */ } } Menu { Action { /* ... */ } } } Removing the first two menu items of the top-level menu works. When we get to the menu item for subMenu, we see that it has a Menu of its own, and so we call recursivelyDestroyNativeSubMenus. That removes all of the menu's native items, and at the end it does this: menuPrivate->resetNativeData(); Here, menuPrivate refers to subMenu's private object. This line severs the connection between subMenu and menu, which leads to the warning. We then return from recursivelyDestroyNativeSubMenus and end up here in QQuickMenuPrivate::removeNativeItem: if (nativeItem->handle()) { handle->removeMenuItem(nativeItem->handle()); syncWithNativeMenu(); } The removeMenuItem call then triggers the warning. To fix this, we need to have control over when resetNativeData is called, so that we can do it after the removeMenuItem call. Do so by rewriting removeNativeItem to be recursive, and using it in favour of recursivelyDestroyNativeSubMenus, which we then remove. Improve internal docs while we're at it. Pick-to: 6.8 6.9 6.10 Change-Id: I4955a5e4d8e5aa5c9d46873b8b3a27f65446ea35 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QuickDialogs: Do not use QFLAGSFabian Kosmale6 days4-4/+4
| | | | | | | | | | | | | | | | | Dialogs uses QFLAGS to bring in various classes via related meta-objects. The goal is to expose specific enums in the QML API. What it does instead is to expose all enums of those classes at runtime, but not to tooling. Switch the code to use QML_EXTENDED_NAMESPACE, which also exposes all enums at runtime, but also to tooling. Task-number: QTBUG-137075 Pick-to: 6.10 Change-Id: Id8d5858575a445f957572fc090df482db1b6fce8 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>