summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Complete splitting of delivery logic qqwindow.cpp -> deliveryagent.cppwip/qquickdeliveryagentShawn Rutledge2021-02-173-11/+24
| | | | | | | Event delivery logic will live in util/qquickdeliveryagent.cpp now. The actual QQuickDeliveryAgent class will be created in a followup patch. Change-Id: I5dcbb7602ff90d87f8e23e09e29b458d0d60905b
* Merge branch wip/qquickdeliveryagent into devShawn Rutledge2021-02-171-0/+1989
|\ | | | | | | | | | | This should finish the split between qquickwindow and qquickdeliveryagent. Change-Id: I6d440a146f84c0b3555be9537181ef48cca016e9
| * Stage 4: remove non-delivery code from qquickdeliveryagent.cppShawn Rutledge2021-02-171-3026/+0
| | | | | | | | Change-Id: Id729aa4ceac90e940a9e05405159970c0e677369
| * Stage 3: remove non-delivery code from qquickdeliveryagent.cppShawn Rutledge2021-02-171-827/+1
| | | | | | | | Change-Id: I94d2fb19b885a4821f3d2e12bde14fd834386848
| * Stage 2: splitting parts of qquickwindow.cpp to qquickdeliveryagent.cppShawn Rutledge2021-02-171-0/+0
| | | | | | | | | | | | | | | | This is another step in the process to split event delivery logic out of qquickwindow into qquickdeliveryagent, while keeping git blame intact. In this patch we just rename qquickwindow.cpp to qquickdeliveryagent.cpp Change-Id: I01b6a022c646239bb252654d4781b6efb81e9876
* | Remove code from qqwindow.cpp to be split into qqdeliveryagent.cppShawn Rutledge2021-02-171-1956/+12
|/ | | | | | | | | This is the first stage of a split according to the technique in https://devblogs.microsoft.com/oldnewthing/20190916-00/?p=102892 This won't compile as-is, but will after we merge the wip branch in which the functions exist in qquickdeliveryagent.cpp. Change-Id: I1a9749b7877248b54c557de564ec6fa5b0105f73
* Update localstore example to use QtQuickControls2Oliver Eftevaag2021-02-168-135/+35
| | | | | | | | Removing MyButton.qml and replacing it with QtQuickControls2. Task-number: QTBUG-90884 Change-Id: Ie1b22e817dedfd71593b074561bdfe2e7dc36008 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Uniformly support shebangFawzi Mohamed2021-02-1514-20/+29
| | | | | | | | | | | | | | | | | | | | | | | | The "qml" tool was the only way of loading QML files that would respect a shebang line. This is problematic as this way you cannot load such files programatically using QQmlComponent, limiting their re-use. Common tools like Qt Creator, but also qmllint, qmlformat, qmlcachegen, etc would not recognize files with shebangs. By moving she-bang support directly in the lexer all tools implicitly support it. Note that we could just as easily support '#' as extra comment character along with //, but here we narrowly add support for in the first line only, as node does (this means that javascript files using she-bang accepted by node, are now accepted also by qml). The only tool needing some adjustments is qmlformat, that has to emit the she-bang again as she-bang and as first line. Add tests for qmlformat, and sprinkle some she-bangs in the other tests just to be sure it doesn't affect anything. Change-Id: I1f6d881c7438bdb23163b5dbe829d59a35d11132 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Rename DBG_* logging categories in Qt QuickShawn Rutledge2021-02-158-71/+71
| | | | | | | | | | | | | We prefer camelCase rather than SHOUTING for module constants. It fits well to have logging categories as constants that start with lc. That has become conventional in various modules, and we've been using that convention already for some time when defining new logging categories. Now we finish renaming the Qt Quick ones, ahead of a refactoring which will result in moving some of them around. Pick-to: 6.1 Change-Id: I47003b9e525fe70d35dbd2450d03379b52d67c1d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add QWindow and QQuickWindow overloads for qmlInfo()Mitch Curtis2021-02-151-0/+15
| | | | | | | Otherwise you can't print out window objects with it. Change-Id: I2a177bd71215cfcb3f5fc47c9171eaba9a12ac0f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Blacklist a few tst_qquickflickable tests on macOSTor Arne Vestbø2021-02-151-0/+5
| | | | | | Task-number: QTBUG-91116 Change-Id: I8dd0d66a7cabe9b28e0246120d81dd99c8df9846 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* qquicktextinput: Fix Undo history for IM eventBartlomiej Moskal2021-02-151-4/+6
| | | | | | | | | | | | | | | | | | Do not set m_cursor (cursor position) before calling removeSelectedText() in processInputMethodEvent(QInputMethodEvent *) method. Before this change, DeleteSelection command was added to history with new cursor position. If this command will be later rolled back, cursor position will not be set correctly. It should be set to position before handling the event. Pick-to: 5.15 6.0 6.1 Task-number: QTBUG-90239 Change-Id: Ib5e46d232e6b32f904e745da4f9e5bc03a58963f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QQmlPropertyBinding: Create more verbose binding loop warningFabian Kosmale2021-02-151-1/+6
| | | | | Change-Id: I6f83fc61c72993c04c99ff16c31c10b20ada5db8 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-02-131-2/+2
| | | | | Change-Id: I269c78cf454276ce4d704a10f78afb29ee886464 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-02-131-2/+2
| | | | | Change-Id: Ibbe0d15f048846dcbe8dab203cb5984290940983 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* MouseArea: fix containsMouse behavior during visibility changesVolker Hilsheimer2021-02-123-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QQuickItem returns whether it contains QGuiApplicationPrivate's lastCursorPosition. Since that position stores the coordinate last seen by Qt (the window border), it will always be within the window, and within an item that covers that part of the window's border. However, QQuickWindow stores the lastMousePosition as well, and resets that value when it receives a QEvent::Leave. We can use that to test whether the window that contains the item has seen a Leave event, in which case the item is definitely not under the mouse. Notes on the test: That we use QPointF() as the "reset" value leave the small possibility that the cursor might be at position 0,0 of the window (ie inside the window), and the QQuickItem there will not be under the mouse. We can't confirm this (through an expected failure test), as QTest::mouseMove interprets a QPoint(0, 0) as "center of the window". And since we can't simulate mouse moves outside a window's boundary using QTest::mouseMove, the test needs to explicitly synthesize a QEvent::Leave for the window. Fixes: QTBUG-87197 Pick-to: 6.1 6.0 5.15 Change-Id: I04870d6e914092275d9d790312fc702fb99f2935 Done-with: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Animation: Export the remaining QtQuick animation typesUlf Hermann2021-02-121-3/+3
| | | | | | Change-Id: I058e7df9263be165ff0370ddc8c947aca1eba9b5 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-02-121-2/+2
| | | | | Change-Id: If4a233aa192051e320828d0dcefa7b3f62d7223a Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* QML: Warn about usage of injected signal parametersUlf Hermann2021-02-1210-23/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | You should declare functions with formal parameters if you want to use parameters passed by the signal. We need to generate two different warnings because there are two code paths by which such parameters are injected. If we compile with qmlcachegen, it simply inserts a lookup instruction in to the byte code. This lookup then triggers our special hack expressly made for signal parameters. If we don't compile using qmlcachegen, a function declaration with formal parameters is synthesized. We mark those formal parameters as injected and warn if we see one of them used. [ChangeLog][QML][Important Behavior Changes] The automatic injection of signal parameters into signal handlers is deprecated. This is because we cannot determine the names of the signal parameters at compile time. Furthermore, also for human readers it is difficult to discern between arguments, context properties, properties of the current object, and properties of the root object of the component. Requiring the signal parameters to be explicitly named resolves some of this confusion. You can turn the deprecation warning off using the "qt.qml.compiler" and "qt.qml.context" logging categories. Task-number: QTBUG-89943 Pick-to: 6.1 Change-Id: If0a5082adb735a73efd793868b3a55bc7d694cbe Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Support runtime functions evaluation by index through QQmlEngineAndrei Golubev2021-02-126-0/+99
| | | | | | | | | | | Add execution function that can evaluate runtime functions available in the compilation unit. Private API for now as it's unclear what would be a comprehensive solution to support all existing use cases Task-number: QTBUG-84368 Task-number: QTBUG-91039 Change-Id: Icf755b53484587d7983eaae4821c1aa0111d5c05 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Transform JSCallData args setting into a functionAndrei Golubev2021-02-124-22/+85
| | | | | | Change-Id: I4154a0b5c7115375292794e0564d2f3657e6b4dd Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qmllint: Fix false unknown grouped property warningMaximilian Goldstein2021-02-124-9/+8
| | | | | | | | We seem to be checking grouped properties twice by endVisit(UiObjectBinding*) and endVisit(UiObjectDefinition*). So the UiObjectBinding variant is removed here as this gets run before all type information is available. Change-Id: Idfe23869792f787df6109cde3b6bc1d96cce3dc3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Unregister value types when tearing down QML typesUlf Hermann2021-02-1223-218/+162
| | | | | | | | | Move the value type registry into QQmlMetaTypeData. This way we can conveniently drop the relevant entries when unregistering a type. Fixes: QTBUG-86946 Change-Id: Id024a34a8b2b622fd9417fc0e52864b43c66cc01 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Deprecate qmlplugindumpUlf Hermann2021-02-125-0/+15
| | | | | | | | | | | | | | You should use qmltyperegistrar these days. [ChangeLog][QML][Important Behavior Changes] qmlplugindump is deprecated. Instead of using qmlplugindump to generate qmltypes files by loading and analyzing the pre-built plugins, you should declare your QML types using QML_ELEMENT and friends. Then you can automatically generate the qmltypes files at compile time using qmltyperegistrar. Fixes: QTBUG-91089 Change-Id: Iebd1b71a8e36c311d1590cb10128f9fc6d5e318c Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Use functions as signal handlers when accessing parametersUlf Hermann2021-02-1238-59/+62
| | | | | | | | | Injected signal handlers are bad practice because they aren't declared. Pick-to: 6.1 Task-number: QTBUG-89943 Change-Id: I3a691f68342a199bd63034637aa7ed438e3a037b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* tst_qqmlengine: remove unused QSKIPSamuli Piippo2021-02-122-9/+0
| | | | | | | | The boot2qt condition is not true on boot2qt QEMU builds and the test passes correctly in CI using QEMU. Change-Id: Ifd87e543168f2dd8639a9287652e606a706f8ede Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: Add missing \inmodule commandNico Vertriest2021-02-122-0/+3
| | | | | | Task-number: QTBUG-90439 Change-Id: I0e29e2ee090d5aa4ae40bcca4bd5fa14f87d9c0c Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Fix CI warnings qtdeclarativeNico Vertriest2021-02-121-10/+10
| | | | | | | | Fix errors with \fn and hidden friend functions Task-number: QTBUG-90439 Change-Id: I1de021c953efdd397de4bb25cbe3180175265174 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Replace QScopedPointer with std::unique_ptrVolker Hilsheimer2021-02-124-27/+27
| | | | | | | | Fix compiler warning, QScopedPointer::take was deprecated in Qt 6.1. Pick-to: 6.1 Change-Id: I67045bce97efb082b1b7467a6c24d5dbf996fdc1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: Avoid unqualified lookup in the signals documentationUlf Hermann2021-02-121-2/+2
| | | | | | Pick-to: 6.1 Change-Id: Ibcb20311c7e5a56038c738da77d9dfcc9464bce4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-02-121-2/+2
| | | | | Change-Id: If7eaa4bcf1b362fce410a6e28fbc33ef8b43388a Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* qmllint: Warn about too many or mismatched signal parametersUlf Hermann2021-02-114-16/+82
| | | | | | | | | | It's easy to mess this up when you transform your signal handlers into functions. Task-number: QTBUG-89943 Pick-to: 6.1 Change-Id: If35be2f6828a0e19aada19abb41d8135b0c6ab45 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QML: Warn about variables being used before their declarationUlf Hermann2021-02-117-22/+71
| | | | | | | | | | | | | | | | | | This collides with injected signal parameters. qmlcachegen cannot tell those cases apart. [ChangeLog][QML][Important Behavior Changes] QML warns about JavaScript variables being used before their declaration now. This is almost always a mistake. It is particularly dangerous in the presence of injected signal parameters because qmlcachegen cannot identify a name collision between an injected signal parameter and a variable being used before its declaration. It therefore miscompiles such code. You can turn off the deprecation warning using the "qt.qml.compiler" logging category. Pick-to: 6.1 Task-number: QTBUG-89943 Change-Id: I8a9424ca8c6edd562402fe5c560ba7e8344b5585 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQuickWidget/Documentation: Mention the need to set the graphics APIFriedemann Kleint2021-02-111-3/+7
| | | | | | Pick-to: 6.0 Change-Id: I3b60586604003e360070a0d481e1a3df2e087e5c Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* SoftwareImageNodes: Initialize member variableDavid Edmundson2021-02-111-1/+1
| | | | | | | | | | | m_pixelRatio is not set in the constructor It seems the method setDevicePixelRatio is always called, so there are no ill effects, but without setting it we still read uninitialized data creating warnings when used with a memory checker. Change-Id: Iadfe07600d027dddb98fdd755b4022b2b81547a8 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* QHashedString(Ref): Use QStringView internallyFabian Kosmale2021-02-113-99/+28
| | | | | | | | | | | | | | | We cannot store a QStringView internally, as that would increase the size of our objects (QHashedString(Ref) does not support strings with sizes that do not fit into 32bit, thus it can store the hash and the size in one 64 bit block). What we can however do is to construct a QStringView on demand (which is cheap), and use its methods. The benefits are twofold: We get rid of some accidental complexity in qtdeclarative; and the code in QStringView is actually SIMD optimized. Change-Id: I2445a2d5a16b253f4971d7f3be0e1b274326eacb Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-02-111-2/+2
| | | | | Change-Id: I4543fd6e7e37c44f3dd97c202914708431e7a989 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-02-111-2/+2
| | | | | Change-Id: I897549d359b14ca65a560f7f0754b3a6342a4a81 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Enable tests of manually registered typesAlexey Edelev2021-02-102-9/+5
| | | | | | | | | Enable tests of 'qt_manual_moc' and manually registered types for cmake build Fixes: QTBUG-84906 Change-Id: I98b8902d4a2b70d4e1e218d8bfdedce25be1abc1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qmlformat: Use a struct to hold the command line optionsFurkan Uzumcu2021-02-101-80/+112
| | | | | | | | | | | | | | | Keeping the parser and the code that uses the command line options in the same function increases the number of lines for the same function, making it harder to read, and the number of arguments for parseFile function, makes it harder to understand and maintain. This commit adds an `Options` struct to hold on to the command line options and a build function to create the `Options` object. Pick-to: 6.1 Change-Id: I5dec0a5a5e990f413ee65bf2eba2ea1087e0ea28 Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Restore String size assertFabian Kosmale2021-02-101-0/+2
| | | | | | | | | Just like all of the other datastructures in qv4compileddata, changing the size of String would require an inrcement of QV4_DATA_STRUCTURE_VERSION. Change-Id: I462d04204255946d309d245bc20b044ba9d222d7 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QV4::Lookup: update comment about gc assumptionFabian Kosmale2021-02-101-0/+1
| | | | | Change-Id: I13304631a9870874fb130cd9e6598065fc952a71 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQmlPropertyPrivate: Remove documentation about flags parameterFabian Kosmale2021-02-101-3/+0
| | | | | | | The parameter is gone since 3bc239a0f16fb93f84def55a5980ef8561e7a7b4 Change-Id: Iae411b61f27efd60b489dbc219ef0ad07ad19938 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Use QQmlBinding::Ptr typedefFabian Kosmale2021-02-101-7/+7
| | | | | | | | | | Instead of spelling out QExplicitlySharedDataPointer<QQmlBinding>. That is consistent with all other code, and makes grepping for binding pointers easiers, as they now all end with Binding::Ptr. Change-Id: I19018732a699368200f129cecf869ece1c8b1a7f Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix QJSValue string parameters used in signalsMaximilian Goldstein2021-02-103-1/+33
| | | | | | | Pick-to: 6.1 6.0 5.15 Fixes: QTBUG-86482 Change-Id: If938fad22f51b08fe3cb20b94634efe46a1eed47 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-02-101-2/+2
| | | | | Change-Id: I7be2664bc75037d4575d2df7d0cd56c775512562 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Support and prefer QML_IMPORT_PATH over QML2_IMPORT_PATHUlf Hermann2021-02-106-41/+54
| | | | | | | | | | The 2 is meaningless. Task-number: QTBUG-85064 Change-Id: I9f140155d274c691b5eab1285d9b7153f9f93a87 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-02-101-2/+2
| | | | | Change-Id: Icbbddf19c5302196a56f5920de41ef0a2cec23b2 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-02-091-2/+2
| | | | | Change-Id: I83c4e4060be7ba21c6913a56fd9c5abb30527a29 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Use QLibraryInfo::QmlImportsPath rather than Qml2ImportsPathUlf Hermann2021-02-0910-17/+17
| | | | | | | | | The "2" is meaningless and there is a better name available now. Task-number: QTBUG-85064 Change-Id: I65d26b06712ed7dcf2825f16dffaa6060dd86985 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>