summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* QML: Allow conversion from QV4::Sequence to different iterableUlf Hermann2023-05-095-11/+109
| | | | | | | Pick-to: 6.5 Fixes: QTBUG-112291 Change-Id: Idd47ea8daf9c54759af6c1feba68bd52d1163615 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QML: Don't try to convert objects with prototypes to QVariantUlf Hermann2023-05-094-4/+31
| | | | | | | | | This is likely to lose some properties. Pick-to: 6.5 Fixes: QTBUG-106266 Change-Id: Ib5a2567d61635a5cf7b3abee7cfef0c073d59e63 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlCompiler: Generate trace info for ConvertThisToObjectUlf Hermann2023-05-091-0/+2
| | | | | | Change-Id: I021b8bea01cfcccd062b7e23d265208ae6b3e490 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQuickItem: Do not synthesize replace() for data/resources/childrenUlf Hermann2023-05-093-13/+222
| | | | | | | | | | | | | Those properties are not actually sequential containers. They have some internal logic that refuses certain operations and changes the semantics of others. We should not run things like splice() on them. We can natively implement removeLast(), though. Pick-to: 6.5 Fixes: QTBUG-112949 Change-Id: Ic9fa84f98a68428df9e958ba7fc72b0987e8601f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix duplicate data tag warning in tst_tumbler.qmlMitch Curtis2023-05-101-1/+4
| | | | | | | | | | When the count property was added it wasn't added to the tag. Amends 4dc0c0d4fa4e886650fb72161448bfb1f621b53b. Pick-to: 6.2 6.5 Change-Id: Ice7714621cafde1a185b22a6968120eb5194d7f0 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Add Local storage example to IO categoryKai Köhne2023-05-091-0/+1
| | | | | | | Pick-to: 6.5 Task-number: QTBUG-112372 Change-Id: Ic69a7653bef314625deb7ec2b54688fa7729de63 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Material: fix clipped floating placeholder textMitch Curtis2023-05-095-4/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The changes to placeholder text in 20e3d1b522d1b79239e9ac4a6af47ce3648512bd and 5704741a4073ac131782c3dd73cac5cda6800a28 result in floating placeholder text (i.e. the text shown at the top of the control when it has active focus) being clipped when e.g. in a ScrollView. This is probably only an issue for TextArea in practice, since you wouldn't usually put a TextField in a ScrollView, but you can still run into it if you clip it. We don't want to unconditionally set topInset by default, because, as mentioned above, these controls are not always clipped. In most cases they are used on their own, and this issue won't affect them. Unconditionally setting topInset would ruin the layout of existing UIs. So, we set topInset only if the control itself clips (or its Flickable parent in the case of TextArea). [ChangeLog][Controls][Material] The outlined TextArea now sets topInset by default if it or its Flickable parent clips. This avoids the floating placeholder being clipped in those cases. The outlined TextField sets topInset by default only if the TextField itself clips. Fixes: QTBUG-113321 Pick-to: 6.5 Change-Id: I8555e4fc0c7a9800f76b54a84d94f4d04691bc23 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Doc: make grabToImage example snippet more usefulVolker Hilsheimer2023-05-091-2/+3
| | | | | | | | | | | | | The example doesn't work as is (when run with the qml binary) because by the time Component.onCompleted is called, there might not be a window yet. Use a key press handler instead (which then needs focus to be set). Fixes: QTBUG-113312 Change-Id: I2986334aca4ca670e206ceadf1093a87aa304e8e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* qml: Straighten out configuration QML moduleUlf Hermann2023-05-086-41/+24
| | | | | | | | | | | | Use qt_add_qml_module correctly, apply a standard resource path, and move the files into the same directory as the module. Use upper case file names for the (re-usable) container definitions and lower case file names for the configuration entry points. This way we only need one directory and therefore only one QML module. Change-Id: Ic45dd0e8866f8f62bbaa639b6f138e9a75e05863 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Silence signed vs unsigned warning on 32 bit VS 2022 debug buildJøger Hansegård2023-05-071-1/+1
| | | | | | | | | | | | | | The warning C4018: '<': signed/unsigned mismatch appears in a Q_ASSERT when checking a lookup index against the size of the container. Fixed by changing from unsigned to signed type for the index. Since the index is already implicitly converted to signed type when used, we can use a signed type from the start. We rely on implicit conversion from unsigned instead of static_cast to not hide other warnings in the future. Change-Id: I2b1983bdd40104e2c7135eec849a198ac074517c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QQmlComponent: Remove pending bindings when setting propertiesUlf Hermann2023-05-065-7/+70
| | | | | | | | Pick-to: 6.2 6.5 Fixes: QTBUG-99363 Change-Id: I2c731ec0b8c5947192accdeb5ef52903d9c7cd90 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QML: Don't crash when monitoring binding removalUlf Hermann2023-05-053-8/+47
| | | | | | | | There are more bindings kinds around. Fixes: QTBUG-113353 Change-Id: If545f56bd61c238431883be3eb013841d96b18bb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlCompiler: Fix operator== of VirtualRegisterUlf Hermann2023-05-051-1/+2
| | | | | | | | | | This should not happen, but let's better be safe than sorry. Amends commit 4634b6bf54e5ba15aa2e8efc12feb156e3d9c309. Change-Id: I0bac55e8ce4518b2d90f19ea28d58ed629659778 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Quick: Update documentation of TapHandler to reflect renamed enumDavid Edmundson2023-05-051-1/+1
| | | | | | | | | PointerDevice.GenericPointer was the enum value in Qt5, but in Qt6 this changed to PointerDevice.Generic Pick-to: 6.2 6.5 Change-Id: Ic5e4a5fe5fd91f7478d00e0d2c643b99eaa7ab14 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* qmldom: Add more literalsSemih Yavuz2023-05-055-3/+72
| | | | | | | | | | Dom construction fails before this commit if it encounters one of null expression, true and false literals. Add dom representation for them. Change-Id: I2dbb2ebfce83b32426eb5e159fe9e4f0f68c56c3 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove conanfile.pyFabian Kosmale2023-05-051-87/+0
| | | | | | | | | The conan experiment has ended, and the file is only bitrotting nowadays. Change-Id: Ida60a3f4e658734520f8cc92ef870622896188f6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Fix small errors in the C++ integration tutorialsFriedemann Kleint2023-05-052-3/+2
| | | | | | | | | Fix spelling and remove QGraphicsItem::ItemHasNoContents reference. Pick-to: 6.5 Task-number: QTBUG-111033 Change-Id: I9564fa1bb4eb1af786078d1909a3ad8268dfe290 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Material: don't set all caps for Button textMitch Curtis2023-05-052-4/+3
| | | | | | | | | | | | | The guidelines have changed since Material 2, and they now recommend to use sentence case: https://m3.material.io/components/buttons/guidelines Amends f47f8d69319fa7b0b71cc8036c5bdfd1e8407e70. Pick-to: 6.5 6.5.1 Change-Id: I055f4acc9c1e594b5c87818bcce5abd774b01d04 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* QmlCompiler: Convert thisObject to correct typeUlf Hermann2023-05-044-1/+37
| | | | | | | Amends commit 365b781599993aef933228599eaeb6eb909d9a93. Change-Id: I5775d634ef4e5204cdec2f440b1992b7272866d2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlCompiler: Recognize QList<QObject*> as QObjectListUlf Hermann2023-05-043-0/+27
| | | | | | | | | Since QObjectList is a builtin, we can use it. Pick-to: 6.5 Fixes: QTBUG-112529 Change-Id: I73c59d575092d5cccf28eecb5baaf2fd1e25c76a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* tst_qmldomitem: Add more testsSemih Yavuz2023-05-043-23/+118
| | | | | | | | | Add test for null statements inside blocks. Also, add tests for const and var variable declarations. Change-Id: I7eacb74a848e3ee7a4c0b2053de72c902330ce2b Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* qmllint: Do not crash on invalid aliasFabian Kosmale2023-05-043-1/+17
| | | | | | | | | We handle already multiple invalid alias constructs, but the case where the alias is illegal without being an expression was not handled so far. Pick-to: 6.5 Change-Id: If85bc4b61f645a8f1eff3afa4da394c7373d8d53 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QmlCompiler: Disallow reading from values affected by side effectsUlf Hermann2023-05-0410-130/+203
| | | | | | | | | | | | | | Instead of accepting the inconsistency between interpreter and compiled code here, we can just detect whether a value can be affected by side effects and refrain from reading it then. Since you can always explicitly reload a value that may have been changed, the resulting compile warnings are easily worked around in user code. Refactoring user code this way also makes it much clearer what is actually going on. Pick-to: 6.5 Task-number: QTBUG-109221 Change-Id: Ica832e39838ef732b0d181364630737fd7709b74 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Examples: Add equality an operator to Extending Qml Advanced tutorialsOlivier De Cannière2023-05-048-4/+84
| | | | | | | | | | | | This allows for more meaningful checks for identical assignment in Person::setShoe(). Amends: 405bd4299819e39397cea0090a9442fd4b6ce911 Pick-to: 6.5 Change-Id: Id731f3f9163fb311ff9b04e2bbf4786a3022a11b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QmlDom: Remove the standalone version of QmlDomOlivier De Cannière2023-05-0414-950/+5
| | | | | | Change-Id: I2582f3ca0217ec9791ead71393cfa506c28086b8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Runtime codegen: Avoid memset for zeroingFabian Kosmale2023-05-041-12/+8
| | | | | | | | | We can just use calloc and zero-initialization. Change-Id: I88dc79d5b880253655159ae3b4385b9792a18ec6 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmlls: move common module code to base classSami Shalayel2023-05-045-120/+81
| | | | | | | | | | | | Move boilerplate code that is duplicated (or will be duplicated when the find usages module will be added in a later commit) into the qqmlbasemodule and BaseRequest class. Also rename the BaseRequest members to start with "m_". Task-number: QTBUG-100084 Task-number: QTBUG-111415 Change-Id: I69ce175a9438feb599c23f13803a673c460c5f3f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* tst_qmlcppcodegen: Sort methods alphabeticallyUlf Hermann2023-05-041-2474/+2471
| | | | | | | This way we won't get so many merge conflicts. Change-Id: I2630838d4d310141a6a427a6494c87cb73f79063 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QML: Fix call frame conversion for QVariant return typesUlf Hermann2023-05-046-0/+169
| | | | | | | | | | | The function may return a QVariant in place of the actual type because it cannot express the actual type as-is. This case needs special care because QMetaType::convert() doesn't know what to do with it. Pick-to: 6.5 Fixes: QTBUG-112837 Change-Id: Ibf93a28aa6a60d49c5ab63fa7eed5f5a8e58e163 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlCompiler: Do not crash when converting number literals to enumsUlf Hermann2023-05-047-4/+52
| | | | | | | Amends commit 2a21efb5f7a6cac6f6101f2f42fe38f16dc68149. Change-Id: Id7d739b58c723eed9f165951b51ee2e5e55d7fe2 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* qmlls: Do not return relative paths to clients for go-to-type-definitionSami Shalayel2023-05-042-2/+2
| | | | | | | | | | Make sure that there is a file:// in the URI returned to the clients, as else the path will be interpreted as being relative (which it is not). Task-number: QTBUG-113336 Change-Id: I4cc781aaf4514759cfb21f949dd8cc12eb93421a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* FileLocations::Tree: rename treePtr and fileLocationsPtrSami Shalayel2023-05-049-30/+22
| | | | | | | | | | | | | | | | | Rename and add documentation to FileLocations::Tree::treePtr and FileLocations::Tree::fileLocationsPtr. Also remove a helper method in QQmlLSUtils that did exactly the same as treePtr. Both static methods allow to obtain information about the location of some DomItem in the source code. treePtr() is now called treeOf() and fileLocationsPtr() is fileLocationsOf(). Change-Id: Ia6c92f7576b36727ce2fb72b729a4730b5250c3d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Baseline scenegraph test: support the -keeprunning argumentEirik Aavitsland2023-05-041-1/+1
| | | | | Change-Id: Id0aa83ce27cda84956a10df18e06a5587432eff1 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* QmlCompiler: Do not stop parsing on top-level Component elementsUlf Hermann2023-05-036-5/+45
| | | | | | | | | | | | | This just creates an inconsistent state where some of the document has been parsed and some hasn't. The only thing we actually need is the log message. Also, fix the warning message. Amends commit 169f0f71665a3a5155f8d63a9c11bc2484353561. Pick-to: 6.5 Fixes: QTBUG-112897 Change-Id: Ie8486909f9bea9ee1b87f2857f7b77fb7cc561e8 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* tst_qmldomitem: Refactor scriptExpressions testSemih Yavuz2023-05-037-359/+367
| | | | | | | | Divide scriptExpressions test into smaller testable units Change-Id: Ib8a3b58e43bfe9a22ae72f35600f67bef163d855 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Doc: explain how to handle currentIndex changes in TabBar and SwipeViewMitch Curtis2023-05-032-0/+19
| | | | | | | | | | Add a snippet and link to property change signal handlers to explain the concept, since that page is hard to find unless you know where to look. Pick-to: 6.5 Change-Id: Id4019076d55199a9cafe4acdced1a7efc64bb3f2 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Material: fix placeholder text alignmentMitch Curtis2023-05-033-16/+99
| | | | | | | | | | The placeholder text should always be aligned to the left according to my tests on native Android via an emulator. Fixes: QTBUG-113172 Pick-to: 6.5 6.5.1 Change-Id: I75ae31e1e6b9846d90ab5034c43f8684698e0ab7 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* tst_qmlcppcodegen: Sort QML files againUlf Hermann2023-05-021-10/+10
| | | | | | | | Keeping them sorted reduces the chance of collisions and makes it easier to find related ones. Change-Id: Ie05cbfefa5805cd27ec91e566dd922107c70d8e2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlCompiler: Relax shadowing checkUlf Hermann2023-05-0213-46/+372
| | | | | | | | | | | | | | | | | If we detect a property or method as potentially shadowed, we don't have to abandon all hope. We can still retrieve it as untyped var. Since there are a number of things we can do with untyped var, this may still be useful. In the same sense, we need to treat function calls as untyped when the function in question can be shadowed. Calling functions with var arguments and return types leads to some more interesting situations in the call frame setup, so we fix that, too. Task-number: QTBUG-112480 Change-Id: I238d1cf04951f390c73e14ed9e299f2aa72b68cb Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Docs: Fix "Can't link to" example warningsSafiyyah Moosa2023-05-022-5/+16
| | | | | | | Task-number: QTBUG-113160 Pick-to: 6.5 Change-Id: I49de891c36d778df5d2727f2f0703d534421e2d5 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* qmlls: Remove leftover methodSemih Yavuz2023-05-021-1/+0
| | | | | Change-Id: Ia88f508bbec868497cc72c4ba5b5d81b75e46555 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Use new rvalue overload of QMetaProperty::writeOnGadget()Marc Mutz2023-05-024-5/+10
| | | | | | | | | | The new overload avoids the unconditional deep copy inside QMetaProperty::write()'s lvalue overload. Task-number: QTBUG-112762 Change-Id: Ic224faf72288e73bb6ad9049f1e0dc585e04ca19 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* RangeSlider: Don't update position only if mouse/touch is grabbedDoris Verria2023-05-022-19/+167
| | | | | | | | | | | | | | | | | A mouseClick will cause the RangeSlider handle to move to the click position and we should expect the same for a touch press. We update the position of the handle in handleRelease if keepMouse/ TouchGrab is set to true. However, we don't grab the touch on a touch press in case eg.: a flickable wants to steal the event. So we can remove the check as we shouldn't update the position only if grabbed. This makes the behavior similar to the slider too. Fixes: QTBUG-112945 Pick-to: 6.5 6.2 5.15 Change-Id: Id2cf99416a52b5e42989a4adda1532e3ac550a93 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Drop extra resizing of upload poolsMårten Nordheim2023-05-021-9/+4
| | | | | | | | | | | It already happens as part of Renderer::map. So, if we set size = 0 before we call uploadBatch then it will implicitly set the size needed. One of the loops was also grabbing the sizes before the final size was determined. Pick-to: 6.5 Change-Id: I610d9850a66011c3d17eea131c063c42fe149962 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Really release pool resources in Renderer::releaseCachedResourcesMårten Nordheim2023-05-021-2/+4
| | | | | | | | | | | resize(0) only sets the size and doesn't deallocate anything. Conversely, shrink(0), which was used before it was changed to resize(0) doesn't change the size and only deallocates. Use a mix of both for now. Pick-to: 6.5 Change-Id: I3e36a766ef7483158a5a300351b0d7864d24e184 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Examples: Use versioned CMake targets for Qt modulesKai Köhne2023-05-02108-418/+418
| | | | | | | | | | | | Use e.g. Qt6::Core instead of Qt::Core. This is better matching the find_package(Qt6 ...) call, and also avoids issues that the versionless targets have. Pick-to: 6.5 Task-number: QTBUG-113277 Change-Id: Ib80f885e9f73fb9ad54b9e9b22cae2318877dc07 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Examples: Replace broken link to Qt logo in networkaccessmanagerfactoryOlivier De Cannière2023-05-021-3/+3
| | | | | | Pick-to: 6.5 Change-Id: Idda2d0e70049873622e43baea2fbcf80f4b5723c Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQuickIndicatorButton: fix listeners being called after destructionMitch Curtis2023-05-025-2/+23
| | | | | | | | | Remove the listeners of the indicator upon the button's destruction. Task-number: QTBUG-98790 Pick-to: 6.2 6.5 Change-Id: I76509ebec601b8f6d004c90cdfbda46e390463a3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* PageIndicator: fix change listeners being called after destructionMitch Curtis2023-05-023-2/+15
| | | | | | | | | | Remove the listeners of the contentItem upon the PageIndicator's destruction. Task-number: QTBUG-98790 Pick-to: 6.2 6.5 Change-Id: Ic03a0ea149806de524567b4115255e308df90105 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Menu: fix change listeners being called after destructionMitch Curtis2023-05-022-0/+15
| | | | | | | | | Remove the listeners of the contentItem upon the Menu's destruction. Task-number: QTBUG-98790 Pick-to: 6.2 6.5 Change-Id: Ic1aa842f003c9ced40e88b195021d085e86540eb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>