summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* cmake: Fix config for the networkaccessmanagerfactory manual exampleOlivier De Cannière2023-05-022-17/+18
| | | | | | | | Amends: d023d149d934897515a532a483def76801b93585 Pick-to: 6.5 6.5.1 Change-Id: I54adf85c1ff7da2d6cc1aa13b9c9c5e1a334c1d8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQuickFlickable: avoid processing the same event twiceRichard Moe Gustavsen2023-05-023-0/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If Flickable has an exclusive grab (e.g if it's being dragged), and at the same time, a child has a passive grab (e.g a TapHandler inside a child of the content item), Flickable ends up getting the same pointer events twice. The reason this happens is because Flickable has a childMouseEventFilter. So the flickable will first get all the pointer events since it has an exclusive grab, just to see that the filter will receive the same events once more, as they next are delivered to the passive grabbers. The result is that Flickable will handle all pointer events (move, release etc) twice when it has en exclusive grab, which will even cause the flickable from stop flicking prematurely if the mouse release ends up outside the bounds of the flickable (because of a double call to handleReleaseEvent(), which will set stealMouse to false too early). To fix this, this patch will make sure that we don't handle any pointer events in the childMouseEventFilter if we already have an exclusive grab. After all, having an exclusive grab means that we're already getting the events the "normal" way, and shouldn't handle the same events once more. Fixes: QTBUG-104987 Pick-to: 6.5 6.4 6.2 Change-Id: Iaed49cb860cf50ea38a70a6e546d9dcf25cce444 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Remove obsolete Q_ENUMS usageFabian Kosmale2023-05-022-2/+1
| | | | | | | | | In qgfxsourceproxy_p.h, we can use the modern Q_ENUM. In QQuickStyleOption, he usage of Q_ENUMS did not make sense to begin with, as the class is neither a QObject nor a Q_GADGET (nor a Q_NAMESPACE). Change-Id: I5b85a46f57033442504a27bf2e1a05d7b0aaac48 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* add internal documentation to DomItem::visitTreeSami Shalayel2023-05-021-0/+17
| | | | | | | The usage is not clear from the implementation. Change-Id: Iaa94bb88a6c190dcd7d3dcfcc4d1a396cb3affde Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Qml: Add script element for return statementsSami Shalayel2023-05-029-1/+98
| | | | | | | | | Implement and test the DOM representation of a JS return statement. Task-number: QTBUG-100084 Task-number: QTBUG-111415 Change-Id: I2c11c0b9be3c93cf5be2bd9db5575335d4be19c1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qqmldomastcreator: set qqmljsscope in DOM script elementsSami Shalayel2023-05-028-56/+143
| | | | | | | | | | | | Rename the getter from {setQ,q}QmlJSScope() to {setS,s}emanticScope(). Set the semantic scope in the script elements where needed. Test that BlockStatements contain their semantic scope. Task-number: QTBUG-100084 Task-number: QTBUG-111415 Change-Id: If8b34c7edaac6aaf42a1cb2c47b12820358709e5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* tst_qmldomitem:domContructionTime for scriptexpressionSami Shalayel2023-05-021-4/+12
| | | | | | | | Add a benchmark for DomConstruction using the scriptexpressions. Task-number: QTBUG-92876 Change-Id: Ieab942a194d82933601424247d6ab71bce0540e2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Dom: Introduce scriptelements in the DOM representationSami Shalayel2023-05-0216-32/+1765
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement the Dom representation for some constructs, like: * Literals (string and numbers) * IdentifierExpressions (variableNames appearing in expressions) * VariableDeclarations and VariableDeclarationEntries * ForStatements * BlockStatements * IfStatements Introduce the namespace QQmlJS::Dom::ScriptElements that will contain the Dom representation of javascript statements and expressions. To incorporate the new DomItem wrappers in the Dom, extend the qqmldomastcreator to also visit the corresponding javascript AST parts. Like this, it can create the new Dom script elements using its stack: visit() pushes new elements on the stack while endVisit() collects the children of the current element from the stack (note: in the reverse order they were pushed on the stack). The implementation uses two stacks to avoid having to check every time if the top of the stack is a QmlStackElement or a ScriptStackElement, but logically both stacks work as one stack, containing first all QmlStackElements and then all ScriptStackElements. In case non-implemented script elements are encountered by QQmlDomAstCreator, it will disable the script expression construction and print a warning, instead of asserting and making a lot of unrelated tests fail. This mechanism can be removed once all script elements are implemented in the DOM. Wrap script element pointers into a ScriptElementVariant variant that can be used to contain any script element. Added a flag to enable script element construction during DOM construction. Task-number: QTBUG-92876 Change-Id: I24b070ca3ff6ce916036842280cf91a21d049f30 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQmlDomAstCreator: Rename StackEl to QmlStackElementSami Shalayel2023-05-022-9/+9
| | | | | | | | | | This prepares qqmldomastcreator for the introduction of ScriptStackElements in a later commit. Task-number: QTBUG-92876 Change-Id: Ice74f05129c2935aa13bf68189cee211eaa72c7a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2023-05-021-5/+5
| | | | | Change-Id: I92030ae5bbce5f61aa14ef0dad53e2338531ba77 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* QML metatypes: Adjust to QMetaType revision incrementFabian Kosmale2023-05-021-2/+2
| | | | | | | Pick-to: 6.5 Task-number: QTBUG-113227 Change-Id: Icd2ca482ef8656d544c7c560ca05b9dd222f9c0a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix build with -no-feature-qml-delegate-modelTasuku Suzuki2023-05-014-3/+14
| | | | | Change-Id: I5c4d7df079346e9750b521e19bff3f34b6c81306 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* BusyIndicator: stop animation when not visibleMitch Curtis2023-05-012-2/+2
| | | | | | | | | | | | | | | | | This prevents unnecessary CPU and GPU usage with the iOS and Fusion styles. It's not currently possible to test this without adding objectNames to each animation, which relies on us remembering to do so. Even then, not all styles use QML animations in their BusyIndicator implementations - some use e.g. QQuickAnimatedNode). Also, there is no QML API to find QObject children of a given type (animations) - I've created QTBUG-113264 to propose such an API. Task-number: QTBUG-50161 Pick-to: 6.5 Change-Id: Ieafb5f2f1a9703d4dc26e4f934dbcc86e2709445 Reviewed-by: Doris Verria <doris.verria@qt.io>
* Flickable: Send movement signal when flick startsSeokha Ko2023-04-292-1/+84
| | | | | | | | | | | | | If there are multiple moves between touch down and release, but they are merged, or if there is only one move, flick occurs but no movement signal is generated. So, send movementStarted if the view is moving in handleReleaseEvent Fixes: QTBUG-112924 Pick-to: 6.2 6.4 6.5 Change-Id: I774799bac2a00296a72005dcfa9ade6683836d08 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QmlCompiler: Inline some array methodsUlf Hermann2023-04-2815-4/+787
| | | | | | | | | | | So far we can only deal with methods that don't change the source array and don't use iterators or functions as parameters. We also omit concat() for now. However, indexOf(), lastIndexOf(), includes(), join(), slice() and toString() are possible already now. Task-number: QTBUG-112722 Change-Id: Id19c74e8ad25af876bc954c040c767823b7e3259 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlCompiler: Remove emptyListTypeUlf Hermann2023-04-285-37/+4
| | | | | | | | | | | | It was a stop-gap solution on the way to actual list type support. It creates problems because it's a sequence type but doesn't have a value type. Add an assert to catch related problems earlier in the future. Fixes: QTBUG-113265 Change-Id: Iae955ab6c5ca41113095b523a5d6b9bcfd4d2396 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Add the use of the qt_internal_project_setup functionAlexey Edelev2023-04-281-0/+1
| | | | | | | | | The function sets the required CMake variables and policies. Pick-to: 6.5 Task-number: QTBUG-112685 Change-Id: Idae8f19eca28bac764480130dc679df1c1273598 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add wrapped signal to DialMatthias Rauter2023-04-283-26/+94
| | | | | | | | | | | The signal allows to track when a dial is wrapped around (jumping from end to start or vice verse) and count the full rotations of the dial. [ChangeLog][Controls] The dial element emits the wrapped() signal when it is wrapped around. Change-Id: I6e4cb29b0ddf96a7819b51cff3b21e1755edf765 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add startAngle and endAngle properties to DialMatthias Rauter2023-04-2812-45/+407
| | | | | | | | | | | | | | | | | | | | The start and end angle of the Dial element were hard coded before. Now they can be set by the application developer using the new properties startAngle and endAngle. The angle property is set to an angle between those values, even if it is >360 or <0. The setter functions make sure that the relation between angle and value is unique. Further, values for start and endAngle are limited to [-360, 720]. Wrap works as before. Tests have been updated. All styles have been updated to the new functionality except the Imagine style (see task QTBUG-112387). [ChangeLog][Controls] The start and end angle of the dial element are made customizabe. Fixes: QTBUG-57822 Change-Id: I941837008d4f9b4dde1979e91db5adb624bcbe41 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQmlData: Implement markAsDeleted without recursionFabian Kosmale2023-04-281-5/+9
| | | | | | | | | | | | | | | | | | | While a normal QML scene should not feature extremely deep object trees, one can still encounter them in some test cases. Those test cases might then run out of (C++) stack space with the previous recursive version of markAsDeleted. Thus, we change the implementation to use an explicit workqueue instead of relying on recursion. This changes the visitation order, but code is not supposed to rely on the order of Component.onDestroyed calls anyway (and we keep at least the order in so far that the parent emits the "signal" before it's children. Pick-to: 6.5 Change-Id: I93b30cc26b984d1a21cff92df1dd68cd45e67477 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Blacklist failing tests in tst_flickableinteropSeokha Ko2023-04-281-0/+3
| | | | | | | | | | | | pinchHandlerOnFlickable fail with QTBUG-112924. Blacklist it for now. It will be handled in QTBUG-113226 Fixes: QTBUG-113226 Fixes: QTBUG-112924 Pick-to: 6.2 6.4 6.5 Change-Id: I58c646f957fb6f397405dc477d00eee770602e80 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* qmlpreview: fix crash on exitTim Jenßen2023-04-281-1/+0
| | | | | | | | | | | | | | | saveWindowPosition() uses QSettings which uses the special file engine, which does not exist at destructor time anymore. This resulted in a crash. QQmlPreviewPosition idea is that saveWindowPosition() is called when there was a move event. Also saving it at the constructor was just a nice to have. Pick-to: 6.5 Change-Id: I650176691acf8ad1ef9ae46b76f61dafee82a56d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Models: Make all model roles available for array modelsUlf Hermann2023-04-279-74/+341
| | | | | | | | | | | | | | | | | | | | | | | | | | This includes various kinds of objects in lists of various kinds. We just dynamically create a metaobject that includes all keys we've seen so far. For example, you can now pass an array of JavaScript objects as model to a ComboBox and it will retrieve the correct textRole: ComboBox { model: [ { name: "Apple", color: "red" }, { name: "Orange", color: "orange" }, { name: "Banana", color: "yellow" } ] textRole: "color" } This will create the entries "red", "orange", and "yellow". Amends commit 86794e82ea92cff3b36bbb58f813b625f0230e51. Change-Id: I3df1f0b43ca1496f7eaed1165731d871c354ac1a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Add more output to lcContextMatcherMitch Curtis2023-04-281-1/+4
| | | | | | | | Combined with qt.gui.shortcutmap, this makes it possible to see why a Shortcut isn't activated, as you can now see which popup blocked it. Change-Id: Ieadcfd47300bd41d8ca42116650d94ab711f59d4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Make the colorresolving benchmark also a benchmark for cmakeVolker Hilsheimer2023-04-271-15/+10
| | | | | | | | | | Using qt_internal_add_test for a benchmark gives it a _check target, not a _benchmark target. Use qt_internal_add_benchmark instead, link against QuickTest, and set the QUICK_TEST_SOURCE_DIR variable explicitly. Pick-to: 6.5 Change-Id: Id72f2623b7edaa538ef3ff2cb3f505506652ee5a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* qml: Construct QQmlApplicationEngine only when we need itUlf Hermann2023-04-271-1/+3
| | | | | | | | | | Otherwise we leak a lot of memory if any of the exit() calls is triggered. Change-Id: I338abe2ef63217e6b80ffc2f8fe65d9cac03d994 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qqmllist.h: Include qcontainerinfo.hUlf Hermann2023-04-271-1/+3
| | | | | | Task-number: QTBUG-113148 Change-Id: I9dfdc5601b684b2c54c6436ab86cd2f633c432b5 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2023-04-271-5/+5
| | | | | Change-Id: I0eb05e0a2d4fb50a2d5181b0f3c5e3c94b20f530 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Models: Fix condition for context objectUlf Hermann2023-04-262-3/+17
| | | | | | | | | | | | | | As shown in the ComboBox test, it is possible for a context object to coexist with required properties. We have to check if the context object is the same as the model object. Amends commit e9f650cad82e7eff2234cdf2d37bb9b1bb25d27d Task-number: QTBUG-111176 Task-number: QTBUG-110980 Task-number: QTBUG-104752 Change-Id: Idfee277b5c3b78c514b2d239d73fcb6809577678 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Doc: Fix typo in qmllint overviewKai Köhne2023-04-261-1/+1
| | | | | Change-Id: I4ea406cac1acc138c4a1097795ba9347f21d9530 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QmlCompiler: Use actual type of enums, rather than intUlf Hermann2023-04-2611-37/+124
| | | | | | | | | | Now that the type is available from qmltypes we can just use it. Task-number: QTBUG-112180 Change-Id: I315372da0925f19c209f676226f450863b0d3ea5 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Controls: Remove remaining isArray() hacks and improve delegatesUlf Hermann2023-04-265-46/+39
| | | | | | | | | | | | The text role data can be retrieved with model[textRole] in all cases these days. The delegate components should be bound and the model and index properties should be required. Also adapt the documentation to not explain the isArray() hack anymore. Task-number: QTBUG-112291 Change-Id: Ife323b4de1b081168bb02e2564a67203741818e0 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix StackLayout to keep the current visible item after insert/removalJan Arve Sæther2023-04-263-6/+37
| | | | | | | | | | | | | | | | If an item is inserted or deleted at an index less than or equal to the current index, StackLayout.currentIndex will be updated in order to reflect which is the current visible item. This is consistent with QStackedLayout, QStackedWidget and TabBar [ChangeLog][QtQuick][Layouts] StackLayout will now update currentIndex if an Item is inserted or removed at an index less than or equal to the current index. Task-number: QTBUG-112691 Pick-to: 6.5 Change-Id: Id1d687e309c8f199a4f68698b53ca7c169f17dcd Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Trace: Convert qtdeclarative to use new tracepoint generationAntti Määttä2023-04-2614-71/+78
| | | | | | | Pick-to: 6.5 Change-Id: Ieacfa716b657ac221a75cd5a0dd75d5099962e91 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
* tst_qmlls: Fix CMakeLists.txtSemih Yavuz2023-04-262-5/+5
| | | | | | | | | | | Some tests link to Qt::QuickTestUtilsPrivate which depends on Qt::Quick target. In case qtdeclarative is built without qtshadertools, qtquick is not build and cmake fails for those tests. Add Qt::QuickTestUtilsPrivate check and also remove the duplicate dependency. Change-Id: Ifafe567a8d61fe4174d31fc0ab7a6a3148fdd4c9 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Hook up GPU frame timing to QQuickGraphicsConfig and the logsLaszlo Agocs2023-04-256-6/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | The idea being that setting QSG_RHI_PROFILE=1 will not just enable debug markers (which is only actively used in Quick 3D right now), but also timestamps, and then we can start showing GPU frame times from the GPU side with Vulkan, Metal, and D3D11 atm. (the only catch is that the value is heavily asynchronous and is always referring to a previous frame, usually current - 2, but may be up to current - 4 etc.) In addition to the env.var., the setter/getter API is added to QQuickGraphicsConfiguration. In the end they all maps to the QRhi::Timestamps flag. Once enabled, the renderloop timing log, both with threaded and basic, will start including a new line, as long as the underlying 3D API supports timestamp queries or similar. (in practice this is implemented for Metal, Vulkan, and D3D11 for now) [ChangeLog][QtQuick][Scenegraph] The scenegraph render loop timing logs can now show GPU-side times as well, as long as the application is launched with the env.var. QSG_RHI_PROFILE=1 or the feature is enabled via the new APIs in QQuickGraphicsConfiguration. Change-Id: I42202882b418e12028d6a287c19352a8fb893365 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Tidy up stray braces and blank lines in XHR test-csesEdward Welbourne2023-04-2520-69/+19
| | | | | Change-Id: I9155f0a78443a8bbd11dc6ddb05cbc4f21bf6c00 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove spurious && true from two boolean conditions in XHR test QMLEdward Welbourne2023-04-252-2/+2
| | | | | | | | | The properties modified by this condition are booleans, that have been set, so there is no need to && true them to ensure they are boolean. Change-Id: I94f166c91549a5c212de5f694901896657cd04e0 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Save some duplicate code in send_ignoreData.qml test-case for XHREdward Welbourne2023-04-251-7/+3
| | | | | Change-Id: Ib6f8fedcf77e647021f3d3d7a4ca0464739c7558 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* XHR sendPropfind_data(): split some long linesEdward Welbourne2023-04-251-3/+6
| | | | | | | | Use string concatenation for the long test names. Split data rows are more << markers. Change-Id: I502bcc615a53169a4175a09af08ae5f2c3133668 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Split some long lines in XHR's getResponseHeader.qml test-caseEdward Welbourne2023-04-251-4/+9
| | | | | Change-Id: I68acc7df09a99961f895c1763df2d6cecb292604 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Split a long line in an XHR test using [].join()Edward Welbourne2023-04-251-1/+5
| | | | | | | | This both makes the list of headers more readable and keeps the line of code within our 100-column limit. Change-Id: I7d53cca5beeeb9f6dd2b2a7c3311362750695d10 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* XHR WebDAV test: don't expect more than Keep-Alive in Connection: headerEdward Welbourne2023-04-251-1/+1
| | | | | | | | | | | | | | Only one XHR test expects Keep-Alive, Upgrade, HTTP2-Settings as the Connection: header, which fails when I run it locally, and I can see no reason why that test [0] would expect it, where all the others just give "Keep-Alive{{Ignore}}" (or "close") in their .expect files, so do the same for [0] as well. [0] sendPropfind:Send PROPFIND "allprop" request for collection. Pick-to: 6.5 Change-Id: I09cafcf282861b87693b5782f34e2fb84c888ff1 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QmlCompiler: Implement ConvertThisToObject and basic DTZUlf Hermann2023-04-2511-9/+74
| | | | | | | | | | | | | | We know that 'this' is a QObject* since the metatypes stack frame mandates it. Whenever you pass 'this' to anything it's loaded from the special 'This' stack slot which then triggers a DTZ check. A DTZ check is a noop if we can prove that the type is statically known, though. In QmlCompiler, if we have a valid register content, then the register has been set in all code paths that lead to the instruction in question. Fixes: QTBUG-111439 Change-Id: I81d1cd140eea63f85628c3bef3a8f6db0a12096d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: Exclude licensing header when including a .qdocincTopi Reinio2023-04-253-2/+4
| | | | | | | | | | | | | The \include command includes the source in its entirety when the second parameter is omitted. This pulled in also the license header which was visible in the generated documentation. Add snippet tags and use them to extract only the content we need. Pick-to: 6.5 Task-number: QTBUG-113138 Change-Id: Ie3fe2fede1e81d08201ec4353352ef069aebc388 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Fix StackLayout to react to reordering siblingsJan Arve Sæther2023-04-253-0/+118
| | | | | | | | | | When siblings in a StackLayout are reordered, we need to react, since the sibling order corresponds to the "stack order" Fixes: QTBUG-112691 Pick-to: 6.5 Change-Id: Ie768af34bf5ee9d15ca67d61a64115f3df31990f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Avoid rebuilding the layout before the component is completeJan Arve Sæther2023-04-251-0/+2
| | | | | | | | | | | | | | | isReady() will only return true *after* componentComplete() and *before* destruction is about to happen There is no point in rebuilding the layout when an item is added or removed before the component is ready, because there will be a full layout rebuild as soon as the component is completed. This is a preparation for fixing QTBUG-112691 Pick-to: 6.5 Change-Id: I6e19578d847c6d4518479bc00f21442333e0fb07 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* qquickwindow: Clear hover when a window is hiddenDavid Edmundson2023-04-254-0/+71
| | | | | | | | | | | | | | | | | This fixes a bug in the following sequence: - user opens a window - the window is hidden whilst under the mouse - later the window is reopened without the mouse being under the window - with the lastMousePosition set an item underneath where the mouse used to be gets activated. On X11 we get a Leave event for the hidden window, this is not true for wayland. Pick-to: 6.5 Change-Id: Ib14e8dbe29f1ad9a71a488b671d226be1d017b8d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Doc: Specify that class name must be fully qualifiedAndreas Eliasson2023-04-252-3/+25
| | | | | | | | | | To avoid confusion, all macros that take a class name as an argument should specify that the class name needs to be fully qualified, even if you're already inside the namespace. Fixes: QTBUG-110718 Pick-to: 6.5 Change-Id: Icaed4be5df44e8d35ef382a918246ed03b0bb0c5 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmltyperegistrar: Pass on type of enumsUlf Hermann2023-04-246-2/+70
| | | | | Change-Id: I1ee1efe31985b24923c024658adb2968dd2dfae2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>