aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/doc
Commit message (Collapse)AuthorAgeFilesLines
...
* Doc: List QtQml value types separate from QtQuick value typesUlf Hermann2023-08-222-4/+5
| | | | | | | | | | You don't need to import QtQuick for rect, size, and point. Pick-to: 6.5 6.6 Task-number: QTBUG-110821 Change-Id: I1f998a5f5b07b7f373e5c0ce3f7aff3b9983ccd7 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
* Compiler: Separate function prolog block and add validation of blocksOlivier De Cannière2023-08-041-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function prolog logic is now separated in its own basic block. The first "real" block with user code starts at offset 0. Having the function prolog as a hidden part of the first block caused some inconsistencies in block generation and would create empty blocks. This happened for example when a back edge of a loop would target offset 0 in code where a loop condition is the very first set of instructions that are run. This is because the target block offset didn't exist due to it being part of the hidden prolog block. Validation for the basic blocks was also added. This checks for three things at the moment: 1. That return and throw blocks don't have jump targets. 2. That the basic blocks graph is connected. 3. That jump targets are the first offset of a block. Test tst_QmlCppCodegen::basicBlocksWithBackJump_infinite() is expected to fail because it contains an infinite loop and the basic blocks that are generated for it are inconsistent due to dead-code elimination happening earlier in compilation. Debug outputs for dumping basic blocks were also adapted to reflect these changes. Change-Id: I513f73856412d488d443c2b47a052b0023d45496 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* doc: Fix typo in qt_deploy_qml_imports exampleAndy Shaw2023-07-251-1/+1
| | | | | | | Pick-to: 6.6 6.5 Change-Id: I52869a202169d7cc4bcf5337bcd61b10a68915de Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Doc: Add example category for Qt Qml examplesVenugopal Shivashankar2023-07-212-2/+2
| | | | | | | | | | Also, removed the \example command for a couple QML tutorial pages. Task-number: QTBUG-115226 Pick-to: 6.5 6.6 Change-Id: Ia3b988d369402b59c1a191fae12a5e8119ecbcab Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Doc: List of all Qt overviews which are now termed as explanationJaishree Vyas2023-07-192-0/+2
| | | | | | | | | | | | | The autogenerated list of overviews was adding the \group command which included all the groups instead of overviews. The idea here is to categorize the overviews later on once we have the list of all overviews. Task-number: QTBUG-114762 Pick-to: 6.5 6.6 Change-Id: I6e09a15bf991a2b6f152f037814ea1910ba7d83f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Use \qtpolicydeprecatedbehavior in doc for the deprecated behaviorAmir Masoud Abdol2023-07-181-2/+1
| | | | | | | Pick-to: 6.6 Change-Id: Ibbf9df039f384dc27a4de8102c3699b17519d457 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Doc: Fix typo in qt_add_qml_module() descriptionKai Köhne2023-07-111-1/+1
| | | | | | Pick-to: 6.5 6.6 Change-Id: Ic55b011704281d8334fff868e0c651d867e9f6ad Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Compiler: Allow dumping the basic blocks for visualization and debuggingOlivier De Cannière2023-07-101-0/+8
| | | | | | | | | | | | | | | | | | | | If the QV4_DUMP_BASIC_BLOCKS environment variable is set, the compiler will output the details of the basic blocks of the compiled functions to the console. It will also generate a control flow graph containing the byte code in DOT format for easier visualization and debugging of the program execution and of the structure of the generated code. The value of QV4_DUMP_BASIC_BLOCKS will be used as the path to the folder in which to output the DOT files. If the path is any of ["-", "1", "true"] or if files can't be opened, it will be dumped to stdout instead. The logic in dumpByteCode has been adapted to use a QTextStream. This way it can continue to be used to dump the byte code of the whole program as before and also to construct the CFG. Change-Id: If398d795e4fc0950b5fa8ee1349e80b1ae262deb Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Remove unused snippet fileKai Köhne2023-06-301-24/+0
| | | | | Change-Id: Icdb5f01e9f3180fb398c100ba763b9a0ce8be2a1 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Don't use versioned Qt imports in QML snippetsKai Köhne2023-06-3059-66/+66
| | | | | | | | | | | We don't promote versioned imports anymore in Qt 6. Patch done by find . -path "*/snippets/*.qml" -exec perl -pi -e "s/import Qt([\.a-zA-Z]*) \d\.\d+/import Qt\\1/g" {} ; Pick-to: 6.5 6.6 Change-Id: I20a5bf52f7cdd99124626f85ce9794af74382977 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Remove warninglimit .qdocconf variableTopi Reinio2023-06-271-3/+0
| | | | | | | | | | | | | | | | The most common limit for the maximum number of allowed documentation warnings is zero. As all Qt module docs include() a common configuration from qtbase, it's better to control the base warninglimit from a central location in qtbase/doc/global. This allows for a temporary increase of the limit across all modules as needed - for example, when updating the QDoc binary that the CI provisions to a version that introduces new types of documentation warnings. Task-number: QTBUG-113326 Change-Id: I7e5be717195049a6ce1d0a10ccbb1daeb175d714 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* doc: add '\since 6.6' for XHR overrideMimeType and responseURLOliver Eftevaag2023-06-241-0/+2
| | | | | | Pick-to: 6.6 Change-Id: I68ad17bc8c6cdfb134664f9b9d0da542420994df Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Doc: Remove mention of module version requirementPaul Wicking2023-06-241-4/+2
| | | | | | | Fixes: QTBUG-114715 Pick-to: 6.6 6.5 6.4 6.3 6.2 Change-Id: I7b5821820ba582fb21eaa56e3cf102fc3d61be00 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Qt Quick Compiler docs: Cross-reference pagesFabian Kosmale2023-06-022-1/+4
| | | | | | | | | Pick-to: 6.5 Fixes: QTBUG-112613 Change-Id: I502cbbaf2218d6ac2c7267ff386dd4f5d1b57c04 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: Capitalize header file in code snippetAndreas Eliasson2023-06-021-1/+1
| | | | | | | | Fixes: QTBUG-113584 Pick-to: 6.5 6.4 6.2 Change-Id: I2910eba4710e527baf258176921774dfa16b1485 Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Replace mentions of deprecated macro Q_ENUMS()Topi Reinio2023-05-162-2/+2
| | | | | | | | | Q_ENUMS() is deprecated in favor of Q_ENUM(). Pick-to: 6.5 Task-number: QTBUG-113229 Change-Id: If562e50a88ff04d02be0aa10c975e0af84d90e44 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Add missing \target keywords for QML macrosTopi Reinio2023-05-121-3/+5
| | | | | | | | | | | | PAST_MAJOR_VERSIONS, PLUGIN_TARGET, NO_CREATE_PLUGIN_TARGET, and CLASS_NAME are documented and elsewhere in the documentation we try to link to them, but they were missing a \target. Also, fix a link to QT_QML_SOURCE_TYPENAME. Pick-to: 6.5 Change-Id: I74ff0de558d1f43b739f64a4bab19863f8be34cb Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Document the --verbose flag to qmlcachegenUlf Hermann2023-05-121-0/+17
| | | | | | | | | Amends commit a7c92814f0ff6e9253c781b90e70ad645f8cd94e. Change-Id: I0568298aaa696036b5115f4e93ddeb1cf90c76a3 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mike Trahearn <mtrahearn@topcon.com>
* Examples: Move Qml plugin example to manual testsOlivier De Cannière2023-05-121-82/+0
| | | | | | | | | Outdated documention has been removed. Task-number: QTBUG-111036 Change-Id: I8db138ff71615a6ed6ac4cebdb365c27252fa5ee Pick-to: 6.5 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* 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>
* QmlCompiler: Disallow reading from values affected by side effectsUlf Hermann2023-05-041-56/+66
| | | | | | | | | | | | | | 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>
* Docs: Fix "Can't link to" example warningsSafiyyah Moosa2023-05-021-4/+16
| | | | | | | Task-number: QTBUG-113160 Pick-to: 6.5 Change-Id: I49de891c36d778df5d2727f2f0703d534421e2d5 Reviewed-by: Topi Reiniö <topi.reinio@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>
* 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>
* Doc: Fix typo in QT_QMLLINTER_TARGETS_FOLDER CMake QML property nameLeena Miettinen2023-04-241-1/+1
| | | | | | | Task-number: QTBUG-113116 Pick-to: 6.5 Change-Id: I8d2c1c2e8e96b365b4bd2e6c9a321cdf1824272b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* XMLHttpRequest: Implement XHR.overrideMimeType()Edward Welbourne2023-04-201-0/+7
| | | | | | | | | | | | | | | | | It was missing from QQmlXMLHttpRequestCtor, making life painful for XHR users. It's a method that has existed in every XHR specification, and is required, if the goal is to be compliant with any XHR web standard. [ChangeLog][Qml][XMLHttpRequest] Added missing overrideMimeType(mime) method. This function can be used to force the XHR object to parse the data in HTTP responses differently than what the server suggests. Done-with: Oliver Eftevaag <oliver.eftevaag@qt.io> Task-number: QTBUG-53709 Change-Id: I9f8ff37e1604b95306a85fc7e64db6d111b9e069 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Doc: Re-phrase descriptions around read-only propertiesSze Howe Koh2023-04-201-6/+6
| | | | | | | | The current text sounds a bit like it's describing a const value. Change-Id: Idf9b8ae14ce032af7ac073419aba6250b26f5847 Pick-to: 6.5 6.2 5.15 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Promote options for controlling QML compilationAndreas Eliasson2023-04-181-2/+6
| | | | | | | Fixes: QTBUG-112348 Pick-to: 6.5 Change-Id: I69f96ca15b8cae362f54afcd1dc0041e5932afb4 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* XHR: Add responseURLTasuku Suzuki2023-04-151-0/+7
| | | | | | | | | | | https://xhr.spec.whatwg.org/#the-responseurl-attribute the attribute was introduced around 2014. [ChangeLog][Qml][XMLHttpRequest] Added missing responseURL property. This returns the url that was used to retrieve the response data, after any redirects have occurred. Change-Id: Ice70520913bb306885a10dfd7a3a89da31bcfdeb Task-number: QTBUG-111217 Reviewed-by: Lars Knoll <lars@knoll.priv.no>
* Fix Qt Quick Compiler docsFabian Kosmale2023-04-061-3/+3
| | | | | | | | A subtitle is not a section Pick-to: 6.5 Change-Id: I870df8d9a69f3a9975cc8c64c213dfaf58105523 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Remove the extra backslashAmir Masoud Abdol2023-04-041-1/+1
| | | | | | | Pick-to: 6.5 Change-Id: Ife3ae2398fb5d2e50cd6f46b1f22d8905b042612 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Docs: add module dependencies to configurationVolker Hilsheimer2023-04-031-0/+1
| | | | | | | | | | Fixes various warnings when qdoc fails to link to APIs in Network, SVG, or OpenGL modules. Pick-to: 6.5 Change-Id: I4b28ea746094e5d49d6129aa2914f744cda22474 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Docs: fix links to QJSManagedValue membersVolker Hilsheimer2023-04-031-1/+2
| | | | | | | Pick-to: 6.5 Change-Id: Icdb523cc61fdf01e4aba2b7506d3f071fe6b5adb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Docs: remove more links to String::argVolker Hilsheimer2023-04-032-3/+3
| | | | | | | | There's only a single page about the `string` value type. Pick-to: 6.5 Change-Id: I781dc7ea53c293e1b3d3bdf4be59615e1c0fdf99 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Docs: fix warning from trying to link to "string" documentationVolker Hilsheimer2023-03-311-1/+1
| | | | | | | | We don't document that type, only mention that we extend it with `arg`. Pick-to: 6.5 Change-Id: I4acf48bba2d2ed5d1bb6902615c6ba50bbf9feb7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: Revamp "Extending QML" examples into a tutorialOlivier De Cannière2023-03-307-54/+395
| | | | | | | | | | | | | | | | | | | | | | | | The examples in the "Extending QML" series were often redundant with the information of the "Writing QML Extensions with C++" tutorial, had outdated code and sometimes had no documentation. The examples that covered topics not mentioned in the first tutorial were revamped into a second "advanced" tutorial extending the first one. The others were removed. The remaining examples were largely based on the same example code of a birthday party. This code was slightly adapted and separated into 7 states, each building upon the previous, with the code change illustrating the associated feature. A tutorial page, in the style of the first one, was added documenting the different QML features and the required code changes in the example project. Links in the documentation from and to the affected pages were update as best as possible. Pick-to: 6.5 Fixes: QTBUG-111033 Change-Id: I9d97e8b32b128c1624d67525996fa14d493909d3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Flatten header structure for 'Import Statements'Kai Köhne2023-03-291-9/+7
| | | | | | | | | | | Remove the top-level 'Import Types' \section2, which is redundant, as there's no second section. This makes sure that the structure of the page is better represented in the side-toc (online version), as it only lists headers of level 1 and 2. Pick-to: 5.15 6.4 6.5 Change-Id: I8a214db6745c9d3054e1aa4277b55b911b605218 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Doc: Use \relates for functions and macros in the global scopeTopi Reinio2023-03-291-0/+1
| | | | | | | | | | | | | This addresses the recent warnings introduced by a change to QDoc: src/qmlmodels/qqmlchangeset_p.h:120: (qdoc) warning: No documentation generated for function 'operator<<' in global scope. src/qml/doc/src/qmlfunctions.qdoc:534: (qdoc) warning: No documentation generated for macro 'QML_SEQUENTIAL_CONTAINER' in global scope. Pick-to: 6.5 Change-Id: I437933f797efc7569eb402e5c31cce8c2ba7d301 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Doc: Rename and rephrase pages for QML {script|type} compilerUlf Hermann2023-03-286-51/+72
| | | | | | | | | | | | | | | | They describe the user facing concepts, not the actual tools. In the case of QML script compiler there are two tools that implement it. Clarify what qmlsc and qmlcachegen actually do and highlight the differences. Also, lower case all references to type compiler and script compiler. They are not product names and therefore should not be upper cased. Pick-to: 6.5 Change-Id: If800d368c904bd829d88b7376b107b1c5351a1ed Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: Improve QML string value type documentationAndreas Eliasson2023-03-253-46/+44
| | | | | | | | | | | | | | | | | | QML only has a string value type, no String object type. * Remove the QML String (Object) type page as it may cause confusion. * Clarify that the QML string value type extends the JavaScript String (primitive) type. * Link to the JavaScript Host Environment page for information about which version of ECMAScript QML supports. * Provide some examples of features and methods that QML string supports. * Make minor grammatical adjustments. Fixes: QTBUG-111809 Pick-to: 6.5 Change-Id: Iadbd0586579c6190122cccbd1097a2bc51c0d9e4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Fix documentation warningsTopi Reinio2023-03-201-14/+0
| | | | | | | | | | * Remove \generatelist example[files|images] commands, they do not produce any output, only warnings. * Add missing full stop to \brief descriptions. Pick-to: 6.5 Change-Id: I90c67b8c3f3bbe901fa083f781e9056da7763671 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* CMake: Add docs for NO_PLUGIN and clarify NO_GENERATE_PLUGIN_SOURCEUlf Hermann2023-03-141-1/+16
| | | | | | | | Fixes: QTBUG-111577 Pick-to: 6.5 6.2 Change-Id: I7f259c3b710d0be16844d159e3204ee2e51f2a06 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
* CMake: Add NO_COMPILER_RUNTIME to qt_generate_deploy_qml_app_scriptChristian Heimlich2023-03-131-0/+4
| | | | | | | | | | | | | | | | | | Provides the NO_COMPILER_RUNTIME boolean option to qt_generate_deploy_qml_app_script(), which forwards to qt_deploy_runtime_dependencies(). On Windows, this option prevents the deployment of compiler runtimes. [ChangeLog][CMake] Added the option NO_COMPILER_RUNTIME to qt_generate_deploy_qml_app_script. Task-number: QTBUG-111741 Pick-to: 6.5 6.5.0 Change-Id: Ic51fc5430e21b8c5aba201d4675a37c9c220a3f2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: Fix a broken link to restructured I18N informationLeena Miettinen2023-03-101-11/+16
| | | | | | | | | | Rewrite using the current style and add links to the translation functions. Pick-to: 6.5 6.5.0 Change-Id: I8257d6e371b508e1ab23b0887eaa6316d2240ee0 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io>
* Doc: Fix target for qt_deploy_qml_importsVolker Hilsheimer2023-03-091-1/+1
| | | | | | | | Use \keyword instead of \target for proper landing. Pick-to: 6.5 Change-Id: I5ccc8fb3f853e8c65b4797e9b44c0622e1dcf6b4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: fix links to cmake functionsVolker Hilsheimer2023-03-093-19/+23
| | | | | | | | | | Follow the convention that we link to qt6_ prefixed functions, but refer to them in the documentation with only a qt_ prefix and trailing parenths. Pick-to: 6.5 6.5.0 Change-Id: Icd0d5e51d1147f159aaaa4cc7f7faac6dfea5df5 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Doc: fix link to cmake functionVolker Hilsheimer2023-03-091-1/+1
| | | | | | | | | Replace qt6_ prefix with qt_. Also refer to cmake functions as such in the text. Pick-to: 6.5 Change-Id: I848a43fc64bd0ed18ce89ca1b720f8dea1f75e6c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Doc: fix qdoc warning, end brief with full stopVolker Hilsheimer2023-03-091-1/+1
| | | | | | Pick-to: 6.5 6.5.0 Change-Id: I5b2401a7aed684da06ff14fad11227b49798583c Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* docs: exception for the void typeSemih Yavuz2023-03-071-0/+1
| | | | | | | | | We cannot use void as a property type. Pick-to: 6.5 Change-Id: I9ca28a762dfb26f2a14b1962856ee7eb8715fda5 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Remove duplicate words (typos)Andreas Eliasson2023-03-071-1/+1
| | | | | | Pick-to: 6.5 6.4 6.2 Change-Id: Ibd29739b894598e5d7837ed5f9150e08ca07fa35 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>