aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
Commit message (Collapse)AuthorAgeFilesLines
* CMake: avoid warning twice when getting import pathsSami Shalayel8 hours1-6/+10
| | | | | | | | | | Now that qmlls uses the same import paths as qmllint, we warn multiple times if the import paths are bad, once in the qmlls.build.ini generation code and once in the linting target creation part. Add a target property to avoid warning multiple times. Change-Id: If427e17dbf4e21cb0121bf2acced9dccb228e221 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Qml language: add virtual and override property attributesDmitrii Akshintsev4 days4-14/+94
| | | | | | | | | | | | | | | This patch introduces 'virtual' and 'override' keywords. From the grammar perspective they are qml contextual keywords, first of all to preserve backwards compatibility (do not break the users code if they had object attributes named "virtual" or "override") "final" is made qml contextual keyword for the sake of consistency (to treat all "virt specifiers" equally) Change-Id: Ice13a77c8b54ce8219cd45cc7085fb3f10a5e908 Task-number: QTBUG-98320 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Qml Profiling: Handle the case of profiling without any featuresUlf Hermann4 days2-6/+8
| | | | | | | | | | | | | | We cannot encode the "running" state of a profiling adapter into the features it's recording. It may be started with no actual features enabled and then we still need to stop it eventually. In order for the QmlProfiler test to work without the DebugMessages feature we still need to create the DebugMessages client, but ignore its output. Otherwise the logic that checks "unrelated" clients gets confused. Change-Id: I52a3c2bc55ea36454ab9c8c7f25fe833c7f14a43 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QQmlListProperty: restore NRVO in toList()Marc Mutz5 days1-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | Found by GCC -Wnrvo, which we intend to add to headersclean. To fix, factor the tail part of the function into a private helper. This preserves git history on the complete original code, compared to the "usual" solution of wrapping the tail part of such functions in an IILE. Amends fa259ed4ff84a5952cdb6d2c6215e92d65afa56a. Note: The amended commit manually cherry-picked to 6.5, but only partially, and QQmlListProperty::toList() was not part of the pick. While this adds a new member function to a public class, this is forwards BC, because the added entity is a member function template. Member function templates are never part of the ABI, even if their class was inherited by a wholesale-exported class. Pick-to: 6.10 6.8 Task-number: QTBUG-142146 Change-Id: I3d559c6432b636608f94f29f03203111b6a95990 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Use QML markup in QML code blocksDavid Boddie5 days1-2/+2
| | | | | Change-Id: I9833c9c690b89e57ca511dd2a43e7a979c97367a Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io>
* QJSList: restore NRVO in slice(), join() specializationMarc Mutz5 days1-6/+6
| | | | | | | | | | | | | | | ... for <QQmlListProperty<QObject>, QObject *>>. Like in the primary template, return the same object in each return statement, fixing GCC -Wnrvo, which we're going to add to headersclean. Amends e84686415187455a7153d61ca82478053f13e3f9. Pick-to: 6.10 6.8 6.5 Task-number: QTBUG-142146 Change-Id: I38e9e8374e51d147cdaf4276fa791489117ee4e3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QJSEngine: fix -Wnrvo in coerceValue() and fromVariant()Marc Mutz5 days1-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ... as a preparation of enabling the flag in headerscheck. The coerceValue() functions was actually flagged by GCC in a headerscheck including -Wnrvo, probably because it was instantiated for some type in inline code. The fromVariant() function was not flagged automatically, but found by manual inspection. Because the structure of code, with the pre-existing extra scope, lends itself naturally to it, wrap the code that doesn't already return rvalues in an IILE. Outside the lambda, the return is now RVO'ed, and inside, NRVO'ed. Manual inspection also found the qjsvalue_cast() overloaded functions, but I don't readily see a fix for them, so deferring. GCC doesn't warn for function templates unless instantiated, so for the purposes of headerscheck, we should be good with the status quo. Amends 7b29ed6f64a300d4d714371c2872fcba344beebd (coerceValue()) and d0f4e0c037cf61eb5bb559755ee7c9ce6cf6b7dc (fromVariant()). Pick-to: 6.10 6.8 6.5 Task-number: QTBUG-142146 Change-Id: I2aa0ecb5a1cdc975c2ab8dffb9fe333bbeb7bc0f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* qqlmjs.g: Remove expect statementFabian Kosmale5 days1-1/+0
| | | | | | | We do, in fact, not expect any parsing conflict. Change-Id: I2df5e27f42dbdd7660eb0383da3c2bb01c6fc84e Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QV4: Hotfix bump QV4_DATA_STRUCTURE_VERSION to invalidate broken cacheOlivier De Cannière5 days1-1/+1
| | | | | | | Task-number: QTBUG-142186 Pick-to: 6.10 Change-Id: I07228c1ddd9196532886ad3b39751d525c525432 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* CMake: Allow qmlls.build.ini generation to be skippedUlf Hermann5 days2-9/+19
| | | | | | | | | We don't want a qmlls.build.ini to be generated on a module that's intentionally hidden from the outside world. That won't work anyway. Change-Id: I4231361ab4d786d661db19f80b5cf0de84cc0b35 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* qmlformat: Add GroupAttributesTogether optionXavier BESSON6 days1-3/+13
| | | | | | | | | | | | Equivalent to NormalizeOrder but reorder QML categories without sorting attributes (property definitions, property bindings, methods, signals, enums) Fixes: QTBUG-132060 Change-Id: Ib46ce4bb58ce46e3293d14954b0e363837b64b76 Original-patch-by: Oliver Kuss <oliver.kuss@okapp.de> Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Doc: Update links in qml-toc.qdocAlexei Cazacov6 days1-1/+5
| | | | | | Pick-to: 6.10 Change-Id: Id1cff25028f1e4b79bd53a44950b35643e08ce99 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQml: Fill in the const iterator functions in the empty sequenceUlf Hermann7 days1-0/+11
| | | | | | | | | | Without these you may get an infinite sequence when trying to iterate using const iterators. Pick-to: 6.10 6.8 Task-number: QTBUG-142097 Change-Id: Iae93063b240ebe9426804197533ed7efd8e007bc Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QtQml: Don't mark QJSValues on the AOT stackUlf Hermann7 days1-1/+10
| | | | | | | | | | | | QJSValue and QJSManagedValue hold persistent values which are marked elsewhere. QJSPrimitiveValue doesn't need to be marked at all. Amends commit 2d016a2653c59f10a57dc1903b817f71d16d0622. Pick-to: 6.10 6.8 Fixes: QTBUG-142097 Change-Id: I50d6405a684726a81ceee506b2d4f8b90330fcaf Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Doc: Use unambiguous link targets where possibleDavid Boddie10 days8-16/+18
| | | | | | | | | | | | | | Some links to sections within the same document were incorrectly going to other documents due to the way that QDoc handles duplicate section names. Additionally, documents containing duplicate section titles are not guaranteed to be handled as authors may expect. Links were changed to be more specific or removed in the case where the target was immediately after the original link. Change-Id: I78696519bd811dfe264561b799898a1d94b027dc Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* Tooling: Add test for integrating event replay with qmlpreviewUlf Hermann10 days1-0/+4
| | | | | | | | | | | | This makes sure that the relevant debug services can coexist. In order for this to actually be true, we need to initialize the type loader before we initialize the various services. Otherwise the profiler service will initialize the type loader which will query the preview service for some directories, leading to a deadlock. Task-number: QTBUG-141569 Change-Id: Ia0873802b94b885654c693bdb9a96100cad492bf Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Doc: Make module links more precise, fix markupDavid Boddie11 days12-40/+41
| | | | | | | | | | | QDoc can be inconsistent with link targets when there are duplicate page and section titles. Using link commands can help with more precise linking. In addition, code can be markup up as QML or using the \c command to make quoted content more accurate. Change-Id: I480b7cd301d5495201af926895a9bfec7b3bd9c8 Reviewed-by: Jerome Pasion <jerome.pasion@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QtQml: Optimize QQmlObjectCreator a bitUlf Hermann13 days1-9/+12
| | | | | | | | | std::move some strings into place, check condition only once, use constFind() and constEnd() where applicable. Coverity-Id: 897291 Change-Id: Icad3a49bc1137bc42de14f064cac111134993a2d Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* QtQml: Reset JS libraries and ES modules on clearComponentCache()Ulf Hermann13 days1-2/+13
| | | | | | | | | | | | | We can't drop the respective compilation units without re-opening QTBUG-128638 and QTBUG-128782. However, we can empty them out and force them to be re-evaluated. Since you can store arbitrary data in those libraries, this is important for a proper clearing of the component cache. You may hold on to a QObject that in turn holds on to other compilation units. Change-Id: Ie6bd3878c0d45086a7efade76ad5696bf8428acb Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* gc: Fix sweep logicFabian Kosmale13 days1-1/+43
| | | | | | | | | | | | | | | | | | | | | | | When sweeping chunks, we might end up allocating additional chunks in a custom destroy handler. This could cause the insertion of a new chunk into the chunk vetcor, in the worst case invalidating the iterators (in the slightly less worse case, we still have a chunk on which we don't call sweep, leading to meta-data corruption later on). Note that while the number of chunks can grow, it can't decrease. Therefore, we can fix the problem by replacing the iterator based partition with a size based one, which has additional checks in case the size has changed during the iteration. As a small optimization, wer run the loops without always checking for a size change first, and only afterwardts check for it (as allocating destroy handler aren't that common). Only afterwards we check if the size has changed, and rerun the loop on the remaining vector. Pick-to: 6.10 6.8 6.5 Initial-patch-by: Rafal Chomentowski <rafal.chomentowski@ge.com> Fixes: QTBUG-141963 Change-Id: If9429a4a9030ec64952426ac35c38d3ae250e18d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qqmldebugserverfactory: use file-based includeSami Shalayel2025-11-171-4/+4
| | | | | | | Qt Code should use file based includes. Change-Id: I19a5b583c0df9c2c418c322ee1221afa1517f77b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qqmldebugserverfactory: add qFatal() on QApplication leakSami Shalayel2025-11-172-2/+18
| | | | | | | | | | | | It seems that the QML debugger framework cleanup does not happen correctly when QApplication is leaked. Instead of running into the asserts of QQmlDebugServerImpl::removeService and ~QObject (during destruction of QQuickProfilerAdapter), warn the user with qFatal() about the possible leak of QApplication. Task-number: QTBUG-139131 Change-Id: If0497b3d4de4a1dec1bf968760d9fa79eb24683e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* cmake: unify import paths for qmlls, qmllint, qmlimportscannerSami Shalayel2025-11-171-41/+38
| | | | | | | | | | | | | | | | | | | | | Use _qt_internal_collect_qml_import_paths() to collect import paths for qmlls, qmllint and qmlimportscanner. _qt_internal_collect_qml_import_paths was previously only used to collect import paths for qmlimportscanner. Adapt _qt_internal_collect_qml_import_paths to add the special qmllint import path, and remove the duplicate code for qmllint and qmlls's import path. Fixes QTBUG-141242 where the path of the QML module is not in the import path of qmlls when the QML module path is a subfolder of the build folder. Pick-to: 6.10 Fixes: QTBUG-141242 Fixes: QTBUG-141555 Change-Id: I9fa2cc091ca08be6df9da5d6cf4794c08d3dd0ce Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QQmlObjectCreator: Extract + refactor posthoc required property handlingFabian Kosmale2025-11-132-41/+47
| | | | | | | | | Move the code out of populateInstance to improve readability. Do not try to unify the three similarily shaped loops to keep a readable diff, and to avoid potential mistakes during refactoring. Change-Id: Ia85652c14f794ec04764904fe6f04bf662ac08c4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Check for a null instance before unregisterTypes()Jacek Poplawski2025-11-131-1/+2
| | | | | | | | | | | Avoid crash when unloading invalid or partially loaded plugins Amends 97fe92bd8ee55f4b6a44a052925b643366734f1d Fixes: QTBUG-141911 Pick-to: 6.10 6.8 Change-Id: I3423c4c161cf499f84bbc0fa3bcdf4727a158562 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* JSRuntime: Don't immediately connect reference objectsOlivier De Cannière2025-11-133-47/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change in a7349e6433d092398d76cafa5408753f06892cd7 reduced the number of readbacks of reference objects by using connections to set the dirty state only when necessary. Establishing connections, however, comes at a cost and this introduced a regression in the delegates_item_childrenRect QmlBench benchmark. The mitigation introduced in this patch is to delay creating the connection. When a reference object is created, it does not read or create a connection but is simply marked as dirty. Only on a subsequent read from within a different statement than the reference object's creation's statement, does a connection get created. This keeps the benefit of reducing unnecessary reads on objects that are used multiple times while not spending too much on creating connections. This brings back the benchmark to its original level of performance. The referenceObjectChainReadsBackAsRequiredBasedOnParentSignals test was changed to expect 8 reads instead of 4. Since all the accesses are part of the same statement, no connection is ever created and more reads are required than before. The referenceObjectDoesNotFetchWithoutNotifyEventDateObject test is reformatted to separate the assignment from the reads. Otherwise no connection is ever created. The referenceObjectDoesNotLeakAConnectionToTheDestroyedSignalOnANotifyBindable test can be updated to expect 0 connections. With this change, we only connect if the reference object is read again from a different statement. Amends a7349e6433d092398d76cafa5408753f06892cd7 Fixes: QTBUG-140757 Pick-to: 6.10 Change-Id: I5d02ec6266c51fbbe5f2e01405081dd5a167a833 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* JSRuntime: Extract ReferenceObject::init lambdas into functionsOlivier De Cannière2025-11-132-64/+67
| | | | | | Pick-to: 6.10 Change-Id: I489b515388f9aba9250bfb05687331c92578ca57 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: Fix small typos in ReferenceObject's documentationOlivier De Cannière2025-11-132-7/+7
| | | | | Change-Id: I71ba63cdde7c8f3e18b89a1a4e35da30202fd8e4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* CMake: Fix defer call for directories with spacesAlexandru Croitor2025-11-121-1/+1
| | | | | | | | | Amends ddcafa0a51c65d86f6b5481f06fce5faeb75920d Pick-to: 6.10 Fixes: QTBUG-141893 Change-Id: I509a58c14a7081d90917058b3952ef03bc855085 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: Enable QML markup for inline code snippetsDavid Boddie2025-11-111-18/+18
| | | | | Change-Id: I7f236b614b3f84b37a9954389cd39ee2c5f621aa Reviewed-by: Jerome Pasion <jerome.pasion@qt.io>
* Add JIT to VxWorksKarim Pinter2025-11-111-2/+2
| | | | | | | | | Qt 5.15 for VxWorks had JIT and this change brings back this feature. Task-number: QTBUG-133449 Pick-to: 6.8 6.10 Change-Id: I0ce487ca01e5578f47fdb5cddac9ea4e5804b857 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* CRA review: mark qml/common subfolderFabian Kosmale2025-11-1015-0/+15
| | | | | | | | | | | | | | | | Give most things default significance, except for qjsnumbercoercion.cpp which only contains documentation and qv4compileddata.cpp which gets flagged as critical for being a data-parser. That's somewhat debatable, given that we also excepect qmlc files to be as trustworthy as qml files, but while that is not explicitly stated anywhere we might want to err on the side of caution. Pick-to: 6.10 6.8 Task-number: QTBUG-136194 QUIP: 23 Change-Id: I2987cea2453dcc3b828dc4ecf0ad22fdfd0d1000 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQmlContext: Add methods for querying childrenUlf Hermann2025-11-072-11/+105
| | | | | | | | | | | | | childContexts() returns the immediate child contexts. findObjectRecursively() does the equivalent of objectForName() on all child contexts recursively, returning the first non-null one. findObjectsRecursively() does the same but returns the first non-null result. We use BFS since that should return "closer" results when iterating many contexts. Fixes: QTBUG-140389 Change-Id: Ic34b5f4916768c0a0b8ed0e615d6f73c0aa5d06b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Doc: Mark internal APIs with \internal commandJerome Pasion2025-11-074-0/+22
| | | | | | | | | | | These internal APIs have function documentation but are missing class documentation. Adding an internal class documentation fixes QDoc warnings. Task-number: QTBUG-141697 Change-Id: Iecb289d39e34ddaa964fbe0a1404830cd2269caa Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Tooling: Add an event replay debug serviceUlf Hermann2025-11-072-1/+18
| | | | | | | | | | | The event replay service can funnel input events recorded by the QML profiler service back into the program. This way we can re-create the exact behavior of a previous execution, including user input. Task-number: QTBUG-141569 Change-Id: I069cf546f6c62b3abb7637fb064ebb1b3158129f Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Try harder to find a propertyCache for destroy() and toString()Ulf Hermann2025-11-074-12/+17
| | | | | | | | | | | | | Those are conceptually part of the QObject property cache, even though they have no property data. So, if the object at hand does not have a property cache of itself (e.g. because its fully dynamic), look up the QObject one and use that. Fixes: QTBUG-141704 Pick-to: 6.10 6.8 6.5 Change-Id: Ia333ac8c29f3797fb4b3ff37863b7c01fae8b076 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Joshua GPBeta <studiocghibli@gmail.com>
* Doc: Fix QDoc warnings for internal classes and functionsJerome Pasion2025-11-0712-15/+52
| | | | | | | | | | -Mark internal functions with \internal -Sometimes the solution is to have a \class command and marked internal -Fixed whitespace issues when the new marking introduced them Task-number: QTBUG-141665 Change-Id: I4f744aa94ca679da74b6c5e846e49a73346e2625 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQmlListWrapper: add createOwnedFabian Kosmale2025-11-052-0/+25
| | | | | | | | | | | | We are going to need a way to store a copy of a QQmlList in Binding, which doesn't reflect changes to the list. For that, we'll use QQmlListWrapper in its "owning" mode. Add a helper function to make its construction easier. Pick-to: 6.10 6.8 Task-number: QTBUG-140858 Change-Id: Iee8af6d5d8f9772366f44f2a29cf90dbeada8823 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQmlProperty: Split write handling for listsFabian Kosmale2025-11-052-62/+110
| | | | | | | | | | | | | | | The code working with lists backed by QQmlListProperty is quite different than the one used to handle other types of lists. Separate the two methods, which makes the function smaller, and which will allow more focused unit testing later on. Moreover, separate the code dealing with list properties in a part dealing with the conversion logic, and a part which takes care of the signal handling. Task-number: QTBUG-140858 Pick-to: 6.10 6.8 Change-Id: Ie05cfca99fd0bdc668d320e1587abb68784ee1c2 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQml: Don't delete the Qt object when clearing singletonsUlf Hermann2025-11-051-1/+12
| | | | | | | | | | | | | | | | | We need the object not only as singleton but also as member of the global object. If there is a QJSEngine, parent it to the engine and make it explicitly C++-owned. This way clearSingletons() won't delete it. If there is no QJSEngine, there can't be any clearSingletons(). Therefore we're safe in that case. The only known example for an ExecutionEngine without a QJSEngine is the WorkerScript case, but since ExecutionEngine is exported, it could be instantiated on its own in other Qt modules. Amends commit 9dc7a22b212c18215942b9a4bfa17bd16dd5151b. Pick-to: 6.10 6.8 Task-number: QTBUG-95788 Change-Id: I5a0aa35fadd552af208538ab2715efaff77f8f4e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Fix marking of values on AOT stackUlf Hermann2025-11-051-2/+2
| | | | | | | | | | | | | We need to pop the value that's being processed before we push further values. Amends commit 2d016a2653c59f10a57dc1903b817f71d16d0622. Fixes: QTBUG-141646 Pick-to: 6.10 6.8 Change-Id: I92c69d612891d4360d83348c4df707389dda582a Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QtQml: Document QQmlDebuggingEnabler and enableDebugging()Ulf Hermann2025-11-051-0/+34
| | | | | | | | | Without this, the existing documentation for the other methods of QQmlDebuggingEnabler doesn't show up. Pick-to: 6.10 6.8 Change-Id: I97335271035294b7f65d9ac78b9cf0143896a6c3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qmllint: Also lint inner functionsOlivier De Cannière2025-11-052-42/+55
| | | | | | | | | | | | | | | | | | | We were only collecting the 'QML' functions that would be passed to the AOT compiler. Other function types were ignored. Also collect those and pass them to the compiler but only use them when linting. Defer invistigating whether it is a good idea to try to compile JS functions as well to a later point. Logic in a few places was adapted with this changing assumption. [ChangeLog][QML][qmllint] qmllint will now lint inner functions, defined in javascript, in addition to top-level functions and bindings. Fixes: QTBUG-138845 Pick-to: 6.10 6.8 6.5 Change-Id: If6f62aeace8739442b6a1f355fad95ce19c0643c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Minor cleanup of existing qmllint categories documentationOlivier De Cannière2025-11-048-4/+16
| | | | | | | | | | | Make sure all pages have the \qmllintwarningcategory macro and start with the same structure. Start \brief section with missing [<id>] to follow convention. Pick-to: 6.10 Change-Id: I2a9733beab5a2f599b6e5c51ed8db3d945e9dcb5 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QmlTooling: Add security headersUlf Hermann2025-10-312-0/+2
| | | | | | | | | | | | | | | The whole debugging framework (services and clients) should only be used in trusted environments. Therefore it's "significant" despite using network connections and parsing data. Mark the code the enables the debug framework in qqmldebug.{h|cpp} as crtical in turn. Fixes: QTBUG-136187 Pick-to: 6.10 6.8 Change-Id: Ie0a4ad555e088f564a233629e4d99e84b1327486 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Remove qml-i18n example in qtdeclarative repoAlexandru Croitor2025-10-313-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | The qml-i18n example and the qtdeclarative repo itself depend on the LinguistTools CMake package, which is not available while building qtdeclarative. This results in: - missing build coverage for the example - a cyclic dependency, because qtdeclarative depends on qttools (because of LinguistTools), and qttools depends on qtdeclarative (because of qdoc needs) - we try to find a module that will never be available, unless qtdeclarative is built together with qttools in a top-level build - in certain cases, if the top-level build fails early enough, the cyclic dependency causes reconfigurations to fail Remove the example, the lookup of LinguistTools, and the linguist doc references to avoid all these issues. Replace the qt_add_translations reference in the docs of the QQmlApplicationEngine class with a snippet copy. Pick-to: 6.8 6.10 Task-number: QTBUG-141465 Change-Id: Id88603a3753f53dfac9f350e981073effda15eb1 Reviewed-by: Masoud Jami <masoud.jami@qt.io>
* Doc: Fix link to QJSEngine::uiLanguageKai Köhne2025-10-301-1/+1
| | | | | | | | uiLanguage is a property of QJSEngine, not QQmlEngine. Pick-to: 6.5 6.8 6.10 Change-Id: Id865f969119d8a5aef2e46d1b673db97da6e40f9 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmlformat: Add argument to output available optionsXavier BESSON2025-10-301-0/+4
| | | | | | Task-number: QTCREATORBUG-33305 Change-Id: I9e23a755da0354ab1d64b7f50ff6f9cc7acbe85a Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Doc: Remove Details link from qmlformat documentationKai Köhne2025-10-291-1/+1
| | | | | | | | | There's no Details section for qmlformat, so it ends up actually linking to the Details section of qmlpreview ... Pick-to: 6.10 Change-Id: Ib6142b362b15a72ef847bb6e751cf64bd64a9e04 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Avoid ternary expression in return statementUlf Hermann2025-10-281-4/+4
| | | | | | | | | This trips up Coverity. Instead use an "if" clause. Coverity-Id: 896869 Change-Id: I0eddc4b4547a7bb9055734b7304112e9174ff5fc Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>