aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * Fix tracking of sg initialized state in rendercontrolLaszlo Agocs2022-02-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The initialized = true statement either went missing or it never was there. This has zero effect on the common usage where the client does not bother with invalidate(), but rather destroys the QQuickRenderControl. However, more complex usages, such as in QQuickWidget do need to invalidate for various reasons, without destroying the entire QQuickRenderControl. Pick-to: 6.3 6.2 Change-Id: Iaabc6309cb42cfdd624321863a5504cdeb01275d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
| * Add QML_PLUGIN_PATH environment variable to plugin pathTinja Paavoseppä2022-02-221-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check for contents of environment variable QML_PLUGIN_PATH and add them to Qml plugin path. In some cases it would be preferable to add additional Qml plugin paths without having to call QQmlEngine::addPluginPath() in the application code. Qt Android apps have already been doing this with QT_BUNDLED_LIBS_PATH, but the naming could be a bit misleading outside bundled Android apps. The option to provide these additional paths with environment variables is already commonly used, e.g. for other Qt plugins and Qml imports. Change-Id: Id81bb4fc6caa3c9c3adfd73be6ea45be74c5d8c4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * QQuickTreeView: refactor 'setRequiredProperty()' into QQuickTableViewRichard Moe Gustavsen2022-02-224-69/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | Both TableView and TreeView needs to be able to set and update required properties. So move this helper function from QQuickTreeView into QQuickTableView, so that they both can use it. This will also make it easier to update how we deal with required properties in TableView/TreeView once QMetaProperty::isRequired() works. Task-number: QTBUG-100696 Change-Id: Iff0a86fe46cecdc4db8d307787fe148c7e71bbf6 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * Doc: link to Qt Quick Controls' Dialog type from Qt Quick Dialogs'Mitch Curtis2022-02-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Unfortunately when searching online for "dialog qml", the only doc.qt.io links are for Qt Quick Dialogs and Qt Labs Platform, which makes it difficult to find the Dialog from Qt Quick Controls. Link to it from the detailed description to make it clearer. Change-Id: I8874b9111be5938b4e77e4dbd397f5eace2e5242 Pick-to: 6.2 6.3 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * Doc: disambiguate section titlesMitch Curtis2022-02-221-8/+8
| | | | | | | | | | | | | | | | These were accidentally catching other links. Pick-to: 6.2 6.3 Change-Id: Ifc2d9eeef8d4629e25c217fc39d9f01ef134538c Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| * qmlmodels: Move QModelIndex from QtQmlMaximilian Goldstein2022-02-2110-20/+15
| | | | | | | | | | | | | | | | | | | | | | Moves the QModelIndex value types from QtQml to QtQml.Models as they cannot otherwise be properly resolved in tooling. Pick-to: 6.3 6.2 Fixes: QTBUG-100338 Change-Id: I30fc18b388974238ba8353e87ef09f57f8ceabd1 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * qmljstypepropagator: Rename checkRestricted method to isRestrictedMaximilian Goldstein2022-02-212-5/+5
| | | | | | | | | | | | | | | | Renamed the checkRestricted method in order to make it clear what the boolean return value means. Change-Id: I4f25b5a320779cabd53ea6091f42f60634ea3a97 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * Space optimize QQmlStrongJSQObjectReferenceFabian Kosmale2022-02-212-4/+20
| | | | | | | | | | | | | | | | | | | | We can get rid of the boolean member by reusing the objectDestroyed function pointer. Change-Id: Idb9e4d0ddfb04b109126378a6c18799018c74785 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
| * Cleanup QQmlGuard and related classesFabian Kosmale2022-02-2110-51/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An investigation of uses of QQmlGuard (+ related classes) yielded the following results: - objectDestroyed is the only virtual method of QQmlGuard (besides the dtor) - we never have an owning pointer of type QQmlGuard * to one of its subclasess => Therefore, we can replace the use of virtual methods with a function pointer, which avoids the issue of duplicated vtables. None of the objectDestroyed actually cares about the object we pass to them, so we can leave it out in the function pointer. As everything is private API, we could easily bring it back if the need arises in the future. By moving the function pointer into QQmlGuardImpl we also avoid UB in qqmlengine.cpp, which cast any QQmlGuardImpl pointer to QQmlGuard<QObject>. This, however, is wrong as QQmlGuard<T> does not inherit from QQmlGuard<QObject>, even if T inherits from QObject. As we now can sipmly access the pointer from QQmlGuardImpl, we can side-step any casting woes alltogether. Moreover, we use this opportunity to let QQmlStrongJSObjectReference drectly inherit from QQmlGuardImpl. This requires duplicating some of the QQmlGuard API, but on the other hand avoids busy-work to hide no longer desired API. Unfortunately, we can no longer inherit privately from QQmlGuardImpl, as otherwise the various subclasses can no longer cast the QQmlGuardImpl we pass to them to their own type in the objectDestroyed(Impl) methods. QQmlGuard(Impl) still could benefit from a move ctor/assignment operator; those will be added in a later commit. Task-number: QTBUG-45582 Change-Id: I995148a428e541ced5c79b3a61d91c4bb7e03308 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * QtQuick: Reduce number of V4 includesFabian Kosmale2022-02-214-8/+11
| | | | | | | | | | Change-Id: I801d2489e447309f25883e313cba13050fce20a4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * qquickinputmethod: Add documentationMaximilian Goldstein2022-02-212-0/+13
| | | | | | | | | | | | | | | | | | Documents the InputMethod singleton since it wasn't documented in the change it was introduced. Change-Id: I1f5bafcb69dcd65c25c8e30e20aaeeff27ce704b Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * MessageDialog: use QQuickDialog::implicitFooterHeight for implicitHeightOliver Eftevaag2022-02-215-5/+5
| | | | | | | | | | | | | | | | | | | | | | Using the dialog implicitFooterWidth in the implicitWidth binding is causing an infinite loop. But using the implicitFooterHeight for the implicitHeight binding is not causing any issues what so ever. Pick-to: 6.3 Task-number: QTBUG-99103 Change-Id: I6ba70bc9871d956e3ccd54662139dd1698d656ae Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * QmlCompiler: Avoid infinite loop in dead store eliminationUlf Hermann2022-02-184-3/+21
| | | | | | | | | | | | | | | | | | | | We have to mark the required variables also in block 0. And we shouldn't generate empty blocks. Pick-to: 6.3 Fixes: QTBUG-101011 Change-Id: I0dd19f69f45f507cb83e2ddfba3060de48a940b4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * qqmljslexer: Make lexer restartableMaximilian Goldstein2022-02-182-485/+509
| | | | | | | | | | | | | | | | | | | | | | Moves all variables that represent the lexers state into a separate struct that can be read and modified from the outside. This is necessary in order to enable per-line formatting in qmldom Change-Id: Iedde139cec6380bd62fa12c5ddec2a943a3b50f9 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * qmlcachegen: Re-enable pragma Strict checkingUlf Hermann2022-02-181-0/+1
| | | | | | | | | | | | | | | | We've accidentally disabled the pragma Strict check when re-designing the logging system. Change-Id: I74cf0d4a45742831037ec0bc0615f1f6a15b7023 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
| * QmlCompiler: Perform QVariant conversion in JavaScript semanticsUlf Hermann2022-02-186-58/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | In JavaScript we have a number of extra conversions not covered by qvariant_cast. Therefore, add a method to perform a QVariant conversion in JavaScript semantics to QJSEngine, and use that in the compiler. Pick-to: 6.3 Fixes: QTBUG-100883 Change-Id: I8b0bfa0974bc6b339d2601fb373859bc710788c8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
| * tst_qmltc_examples: Fix a documentation leftover (FILES -> QML_FILES)Andrei Golubev2022-02-181-2/+2
| | | | | | | | | | | | | | | | Amends 97123dbe6755a787e93797f717f8ebf193352b85 Pick-to: 6.3 Change-Id: I0f13df4abff4ba2f0bb066480a157f6cfbefa3c2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * QmlCompiler: Do not crash on attempts to lookup a function in the scopeUlf Hermann2022-02-184-1/+25
| | | | | | | | | | | | | | | | | | | | Rather, reject the code and let the engine handle it. Pick-to: 6.2 6.3 Fixes: QTBUG-100980 Change-Id: Ibcd1249ba3550b40121622752b4ca22d1df3ed2a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
| * QmlCompiler: Do not generate block comments into C++ codeUlf Hermann2022-02-184-9/+24
| | | | | | | | | | | | | | | | | | | | | | The code we're commenting could again contain block comments. You cannot nest them. Pick-to: 6.2 6.3 Fixes: QTBUG-100978 Change-Id: I78685bf29dd30f05e5a3b17abc43ba0b4cb6849e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| * QmlCompiler: Correctly encode inf/nan/-0 into C++Ulf Hermann2022-02-184-0/+46
| | | | | | | | | | | | | | | | Pick-to: 6.2 6.3 Fixes: QTBUG-100947 Change-Id: If0b05adac91f687daf697f3510e4cf48e7de4537 Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * qmllint: Warn about missing property types on current scopeMaximilian Goldstein2022-02-184-15/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we only warned about missing property types when the lookup was not on the current scope but only on an id, parent etc. This change makes sure we also warn in this case and don't produce false positives for an unqualified access. Pick-to: 6.3 Task-number: QTBUG-100839 Change-Id: I732b8420c0c6b96dd8f93cde66a7f9813e704671 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
| * QQuickWindow: improve docs for activeFocusItemRichard Moe Gustavsen2022-02-181-0/+2
| | | | | | | | | | | | Pick-to: 6.3 6.2 5.15 Change-Id: I6e107095a7dbd074e076ac6762f18cecf484691f Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| * Doc: Turn notes into section in QQuickWidget overviewKai Köhne2022-02-182-7/+13
| | | | | | | | | | | | | | | | | | | | The extensive use of notes in overview documentation should be avoided. All the notes are concerned with performance considerations, so let's group them together in one section. Pick-to: 6.2 6.3 Change-Id: I4854e078e35190726091b2ef6b7a674abda8b3b7 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| * Un-blacklist tst_QQuickFramebufferObject: skip offscreen/software renderingShawn Rutledge2022-02-182-8/+9
| | | | | | | | | | | | | | Pick-to: 6.3 6.2 Task-number: QTBUG-65614 Change-Id: I31e2a61e3b2df2432042c8b6028df63cc9cb8d22 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * QQuickIcon: Undo bool to tagged pointer conversionYuya Nishihara2022-02-181-26/+7
| | | | | | | | | | | | | | | | | | | | This partially reverts deb238586a "QQuickIcon: Resolve URL relative to current element." Since we've replaced the owner pointer with QUrl resolvedSource, we can no longer leverage tagged pointer to save space. Task-number: QTBUG-95587 Change-Id: I90c38a1d669c0175f1b694a6518997339d2c82b0 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * QQuickIcon: Resolve source URL relative to outermost property ownerYuya Nishihara2022-02-188-24/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original attempt, deb238586a "QQuickIcon: Resolve URL relative to current element," works fine for IconLabel itself, but not for Buttons containing IconLabel. // <style>/Button.qml T.Button { id: control icon: // owner: control contentItem: IconLabel { icon: control.icon // owner: this, but should be control } } // user code Button { icon.source: "a.png" } Since IconLabel is an implementation detail of the Button, IconLabel.icon owner needs to point to the Button so the user-specified icon.source can be resolved relative to the user code, not to the <style>/ directory. This patch fixes the problem by explicitly resolving the source URL on setIcon() and propagating the resolved icon object to the inner items. If the relative URL has already been resolved by e.g. Button, the inner IconLabel never resolves the URL again to itself. The problem could be addressed by initializing icon owner only once by Action/Button constructor, but that would lead to dangling owner pointer as icon object could be copied anywhere. So I've added resolvedSource data member in place of the owner pointer. Button { id: dangling } Button { id: victim; icon: dangling.icon } // owner: dangling Component.onCompleted: dangling.destroy() // ... would SEGV (or use after free) if victim.icon.source modified. Fixes: QTBUG-95587 Pick-to: 6.2 6.3 Change-Id: Ibdd07118e79f1e1f36e1faea0289150eca734e27 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * QQuickTreeView: add expandToIndex()Richard Moe Gustavsen2022-02-184-0/+131
| | | | | | | | | | | | | | | | | | | | | | Add a function that lets you expand the tree recursively from an index in the model, and all the way up to the root. [ChangeLog][QtQuick] New function "expandToIndex()" has been added to TreeView. Change-Id: I063ef698e37f44730438e1638d3b7c1b4edaa0d0 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * QQuickTreeView: add missing \since 6.4 linesRichard Moe Gustavsen2022-02-181-0/+2
| | | | | | | | | | Change-Id: I5cec24e231c9dc22d384afa5716a1758f59c0311 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Allow loading images from arbitrary QIODevice subclassesShawn Rutledge2022-02-173-29/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For PDF we need to pass a document object into QPdfIOHandler, but QImageIOHandler only takes a QIODevice. A subclass of QFile is one way to pass that extra object along. So the plan is that a private PDF document wrapper class can inherit QFile; and there will be a subclass of QQuickImage called PdfPageImage, which will override QQuickImage::load() to construct the wrapper, which will then get sent as QIODevice* into QPdfIOHandler. It will attempt to cast that to the known private class; if it succeeds, it already will have the FPDF_Document and will therefore not need to construct one. Task-number: QTBUG-77506 Task-number: QTBUG-83988 Task-number: QTBUG-96574 Change-Id: I19c90a9f2c7060574720f831b3394de6c3714383 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * Doc: Remove cmake-variables qdoc groupKai Köhne2022-02-171-1/+0
| | | | | | | | | | | | | | | | The group is not used anymore. Pick-to: 6.3 Change-Id: Ieebee205f10e5b96ed7cdc1a45b6a7d34d35fa26 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
| * QmlCompiler: Fix obscure build errorUlf Hermann2022-02-171-1/+2
| | | | | | | | | | | | | | | | | | We only want to resolve the value type of the list at that point. It's certainly curious that it may not be part of the imports, but we can just force it to be the one we want. Change-Id: If390b7ebd870f375c54fa9b7b7110f0b32ca4fcb Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
| * qmltc: Handle (simple) deferred properties correctlyAndrei Golubev2022-02-1713-1/+389
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simple deferred properties occur quite often in QML (throughout Qt Quick, for example), so qmltc should be able to deal with them as with deferred properties Ignore generalized group properties, PropertyChanges and similar types for now. They require more testing and are well out of scope of the tech preview Pick-to: 6.3 Task-number: QTBUG-100053 Change-Id: I0f3588789d188cd6bec81de0b61d3205b665a917 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * Fix copyright header of Calendar QML typesMitch Curtis2022-02-173-6/+6
| | | | | | | | | | | | | | | | They're in Qt Quick Controls 2, not Qt Quick Templates 2. Change-Id: I6199c695eadb5424885a6f0e1a25e584de4178a7 Pick-to: 6.3 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * Fix build after QJsonArray change to use QJsonValueConstRefVolker Hilsheimer2022-02-161-2/+2
| | | | | | | | | | | | | | | | | | Follows up on qtbase:f5762cd4b3130a650044863c5be132056f05daa5. Use auto instead of specific QJsonValue*Ref type to avoid need for orchtestrating with dependency update. Change-Id: Ib47d5d8ab8373562684b42a90c97634e07869328 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
| * Unblacklist tst_qmlformat::testExample on most platformsFabian Kosmale2022-02-161-2/+2
| | | | | | | | | | | | | | Task-number: QTBUG-98494 Change-Id: I070aa0005612d98c45923e2a97f175e9972fb849 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
| * Disable qmljs on iOS buildJuha Vuolle2022-02-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | When compiling for iOS the linking of qmljs tool fails with: Undefined symbols for architecture arm64 "_qt_main_wrapper" Fixes: QTBUG-100855 Pick-to: 6.2 6.3 Change-Id: I25a3ca9fd9d5efd2d6906087f1580b2679e6745f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * tst_qmltc_examples: Set visible text to 0 by defaultAndrei Golubev2022-02-161-0/+1
| | | | | | | | | | | | | | | | This gives slightly nicer initial UI as a result Pick-to: 6.3 Change-Id: I112ed029d3735b7c960b7723d2aef0b6fc8e1777 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * QmlCompiler: track register contents by cloning typesUlf Hermann2022-02-169-258/+417
| | | | | | | | | | | | | | | | | | | | | | Whenever we write a register, we create a new type. This way, whenever we determine that a different type would be a better fit at that place, we can just change the type in place, without affecting any unrelated code. Task-number: QTBUG-100157 Change-Id: I70be2eb83bda5483e083f58113fdfe57224b237e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * scenegraph: Add support for polygon fill modeBen Fletcher2022-02-164-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The qtbase RHI graphics pipeline recently gained support for Polygon Mode (Triangle Fill Mode in Metal, Fill Mode in D3D). This patch extends support to the scenegraph. Note - glPolygonMode not supported on OpenGL ES [ChangeLog][QtQuick][QSGMaterialShader] Added support for polygon rasterization mode to graphics pipeline state. Change-Id: I6fc05bc4d38446e573687ca651d6d13a76b3e667 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2022-02-161-5/+5
| | | | | | | | | | Change-Id: I3074b563f0cb602e8c72c3aa5b3c21e9f066b57b Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
| * QQmlJSRegisterContent: Make conversions explicitUlf Hermann2022-02-154-5/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a new kind to QQmlJSRegisterContent: "conversion". This is what we store when we merge multiple types together, or convert a selection of types into a new one. This way we can record what the original types were, and later figure out whether we can losslessly convert them already at the point where we store them. For now, only merges are implemented. Change-Id: If4ad0b1f075199e6aa1532959cf9591ba6755709 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * Quick.Particles: Do not depend on transitive includesFabian Kosmale2022-02-152-0/+3
| | | | | | | | | | Change-Id: I9ebb9c0946f74a14c551041bd67c65f5e349c0c3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * qmlcompiler: include necessary headers in generated codeFabian Kosmale2022-02-151-0/+2
| | | | | | | | | | | | | | | | | | | | The generated code currently relies on transitive includes. Avoid potential issues in the future by including the necessary headers directly. Pick-to: 6.3 Change-Id: I6b523d9c2cabef00bf182d139f8a0e8611d6bb9e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * Make formerly transitive includes explicitFabian Kosmale2022-02-157-0/+8
| | | | | | | | | | Change-Id: Ib10fc05dead6fcba222b9ef4cabcb92491bbdac3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * QmlCompiler: Improve register trackingUlf Hermann2022-02-157-398/+403
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | You can only change one register per instruction, and it doesn't have to be the accumulator. We don't have to store the full register set in every instruction annotation. It's enough to store the changed register. This simplifies the logic around choosing the in/out accumulator types. Now you can rely on the "in" accumulator to always be in the register set, and the "out" accumulator to be the changed register if applicable. There will typically be less than 10 registers active at any given instruction. Therefore, use QFlatMap to store them, rather than QHash. Also, rename the storage for the type conversions so that we can actually see what they are. Change-Id: I694ac2bce7911a4c290c1dccef34d28cde50a1d3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * QQuickFileDialogImpl: respect PreselectFirstFileInDirectory theme hintMitch Curtis2022-02-152-1/+12
| | | | | | | | | | | | | | | | | | | | Linux (at least Gnome) automatically selects the first file when entering a directory in a file dialog, whereas other platforms do not. In the auto test, we force the setting to true for simplicity. Change-Id: Ic733b5133ba03b36693d2f2f2d014a0e9cca8abd Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * Document that all required types must be implemented by custom stylesMitch Curtis2022-02-151-0/+8
| | | | | | | | | | | | | | | | | | | | | | For example, it's not possible to customize only ScrollBar and have ScrollView pick those changes up automatically; you must also implement ScrollBar. Task-number: QTBUG-99367 Pick-to: 6.2 6.3 Change-Id: Ie487b0b947fa936e56b5d8e473fbb66287b51c68 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * Fix QML warning in tst_QQuickListViewMitch Curtis2022-02-151-1/+1
| | | | | | | | | | | | | | | | | | The warning was about the delegate's parent being null in QTBUG_48044_currentItemNotVisibleAfterTransition. Pick-to: 6.2 6.3 Change-Id: I54198b26adea137d539f71c8aebc1ba3a18d1e97 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| * CMake: Document source file propertiesAlexandru Croitor2022-02-151-0/+187
| | | | | | | | | | | | | | | | Pick-to: 6.2 6.3 Task-number: QTBUG-100224 Change-Id: I548e0317f148cdedafd553a3591526c40b9b3a32 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * CMake: Rename QT_QML_MODULE_FOLLOW_FOREIGN_VERSIONING to be internalAlexandru Croitor2022-02-151-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Rename it to _qt_qml_module_follow_foreign_versioning to make it more clear it's an internal property. Amends 9cd3191d4eb42dbf7847ffccb178fe5402968464 Pick-to: 6.3 Fixes: QTBUG-100213 Change-Id: I7e6c45800e9e68d5837b906bf349a58330892f86 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>