summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
Commit message (Collapse)AuthorAgeFilesLines
* Doc: Qt Core: Document QUntypedPropertyBindingTopi Reinio2 days1-6/+14
| | | | | | | | | | | | | | | | | QUntypedPropertyBinding is declared in a public header file and referred to in the documentation of QUntypedBindable. It has multiple documented members but the \class topic was missing. Fixes QDoc warnings such as (qdoc) warning: No output generated for function 'QUntypedPropertyBinding::QUntypedPropertyBinding()' because 'QUntypedPropertyBinding' is undocumented Pick-to: 6.11 Task-number: QTBUG-141665 Change-Id: Id419bc448d15fb66ac74d396ea81320aba12696b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: Qt Core: Mark private APIs internalTopi Reinio2 days1-0/+1
| | | | | | | | | | Resolves multiple QDoc warnings of type "No output generated for X::Y because X is undocumented." Pick-to: 6.11 Task-number: QTBUG-141665 Change-Id: I9b2d7b1ecfb694316e32801839f89d543ea2f861 Reviewed-by: Topi Reinio <topi.reinio@qt.io>
* Doc: Qt Core: Fix documentation linking issuesTopi Reinio2 days2-3/+3
| | | | | | | | | | | | | | | | | | | | Fixes the following QDoc warnings: * (qdoc) warning: Can't link to 'qt_add_android_permission()' * (qdoc) warning: Can't link to 'raiseError(const QString &message)' -> raiseError() now takes QAnyStringView * (qdoc) warning: Can't link to 'I18N Example' * (qdoc) warning: Can't link to 'Hello tr() Example' -> Examples were removed, replace with 'Localized Clock' example * (qdoc) warning: Can't link to 'QCharConverter::FinalizeResult::Error::NoError' Pick-to: 6.11 Change-Id: I8e11a8896dd10652852e81c5d7ddf080f69aba37 Reviewed-by: Topi Reinio <topi.reinio@qt.io>
* Add QDebug operators for NSPoint/NSSize/NSRect/NSEdgeInsetsTor Arne Vestbø3 days2-0/+49
| | | | | | | | These are commonly used in platform code, and having to wrap them in calls to QRectF::fromCGRect() just to debug them is a pain. Change-Id: I28fc5ef659f5b24e22b04f8de99c2db5cdb816c3 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add GCC -Wnrvo to headerscleanMarc Mutz4 days2-0/+5
| | | | | | | | | | | | | As started by Allan, this patch completes the job by adding -Wnrvo to headers-clean, so the functions treated in [1] won't get un-NRVO'ed again. [1] e2d19b9b8f4f7b87a0a4bfe5b6afd1395685ba20 Fixes: QTBUG-142146 Pick-to: 6.11 Change-Id: I4a1be1e20e2e32ad2f7068681e5f1f7153d62745 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Core: Turn some ### Qt7 into #if QT_VERSIONUlf Hermann5 days2-3/+11
| | | | | | | | | | | This way we won't have to re-visit this when Qt7 comes around. Amends commit 9adaf8505a9eb9d7acb7fee6aeac5341aa24a074. Pick-to: 6.11 Change-Id: I75348ca1f63b39b49bea5e94b2c12a5eb2440d28 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Core: Rename constants to upper caseUlf Hermann5 days3-11/+11
| | | | | | | | | Amends commit 9adaf8505a9eb9d7acb7fee6aeac5341aa24a074. Pick-to: 6.11 Change-Id: I03b60f79f4c267f5dff7da0b004e11ec567f96eb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QMetaSequence: Delete methods instead of immediately deprecating themUlf Hermann5 days1-44/+3
| | | | | | | | | | | | | These method declarations are only there to tell people what other methods they should actually be using. They've been introduced as immediately deprecated. Amends commit 9adaf8505a9eb9d7acb7fee6aeac5341aa24a074. Task-number: QTBUG-140181 Change-Id: I5b3f97d6c888056ecb206cbc93003c569e1c9ad8 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* JNI: document QJniObject's explicit exception handling featureVolker Hilsheimer6 days1-11/+65
| | | | | | Pick-to: 6.11 Change-Id: Idbee38ca81f3d65a8faf5daa7582ff63dc7204d9 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* MetaObjectBuilder: add support for Virtual and OverrideDmitrii Akshintsev8 days2-0/+56
| | | | | | | | | Adapt MetaObjectBuilder to newly added property attributes. Task-number: QTBUG-98320 Change-Id: Ife1d388fd75939c730055746426dbf5459e170d8 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QMetaObject: Include a class def's hash in the meta objectOlivier De Cannière8 days6-4/+39
| | | | | | | | | | | | | | The hash has the following format <hash_revision>$<hash_b64>, where hash_revision is an integer and hash_b64 is the base64 encoding of the hash. MetaObjects built using QMetaObjectBuilder do not yet support the hash. That will need to be added at a later point. Task-number: QTBUG-142186 Change-Id: Ifafc7df2202decf48e8a1a45e652c2f61c5cea64 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QMetaProperty: Introduce VIRTUAL, OVERRIDE attributesDmitrii Akshintsev9 days3-1/+32
| | | | | | | | | | [ChangeLog][QML] VIRTUAL and OVERRIDE attributes will be used for the expanded override semantics in QML. See QTBUG-98320 for the details. Task-number: QTBUG-98320 Change-Id: I56826a6b9158c0beeb58ad1564a58c22f15027bf Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Core: Deprecate QVariant{Ref|ConstPointer|Pointer} only in 6.15Ulf Hermann10 days2-10/+10
| | | | | | | | Amends commit 9dec893bf64f36fa339a1226a77bf938c5603587 Task-number: QTBUG-140181 Change-Id: If2fdb72b901ef7c577e7a46266f35c749a6958cb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Core: Restore export of Q{Associative|Sequential}IterableUlf Hermann10 days4-44/+64
| | | | | | | | | | | | | | | gcc < 13 doesn't accept both visibility and deprecation attributes on the same class. Therefore omit the deprecation attribute there. We need to retain the export attribute because MSVC also exports the inline methods. Also, push the deprecations forward to 6.15. We can't deprecate the iterables in 6.13. Amends commit 8b246f262346ded7860ad76fdedc8d59f037a374. Change-Id: I333a4c05baf12a75dc93e1dbb08dabbc23ccf468 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove operator[] from meta-association iteratorsUlf Hermann11 days3-23/+0
| | | | | | | | Most of them are not random access and operator[] makes no sense then. Amends commit 8d359d61c16641d523e4189a7d473b6126b11011. Change-Id: I724aaf98e14114d0fd1cb5bce5fdc2ed4690dae0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Core: Add operator[] to our meta-iteratorsUlf Hermann12 days5-0/+44
| | | | | | | | It's required by std::random_access_iterator_tag. Fixes: QTBUG-140181 Change-Id: Icb9c72395ea5c1a26069ac66d969c98fb9a58407 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Core: Deprecate QVariant{Ref|ConstPointer|Pointer}Ulf Hermann12 days2-8/+29
| | | | | | | | | They cannot be fixed and have to be replaced by QVariant::{ConstReference|Reference|ConstPointer|Pointer}. Task-number: QTBUG-140181 Change-Id: I0b1f5799565a4965eef16bd6c88e6868c748f493 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Core: Deprecate Q{Associative|Sequential}IterableUlf Hermann12 days5-64/+155
| | | | | | | | | They cannot be fixed and have to be replaced by QMeta{Association|Sequence}::Iterable. Task-number: QTBUG-140181 Change-Id: Ic62dcfecb576f8cd11902a245a2ac5422f5011d3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Core: Provide non-broken metacontainer iterablesUlf Hermann12 days10-76/+1184
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QSequentialIterable and QAssociativeIterable are incapable of providing operator[] on their iterators because the references used by those iterators are not actually stable when the iterator is modified. The only way to fix this in a binary compatible way is to provide a complete set of new iterables and iterators. These are implemented in qmeta{association|sequence}.h and exposed through QMeta{Association|Sequence}::Iterable. In order to give users a convenient way to include those, we instruct syncqt to regard qmeta{association|sequence}.h as header to use in order to provide QMetaSequence and QMetaAssociation. These headers are the natural choice anyway. qmetacontainer.h still has to hold the (now incomplete) declarations for QMetaSequence and QMetaAssociation so that we remain source compatible. The new iterables offer a more consistent set of accessor methods and deprecate some of the old accessor methods. It makes little sense to add or remove a value from/to an iterable at an unspecified place. The new sequential iterable offers the more familiar append/prepend and removeFirst/removeLast methods. Finally, the new iterables warn when taking a slow code path that synthesizes operations not avaible on the actual container using iterators. There generally is a reason for those operations to not be available and we shouldn't second-guess the choices made by the authors of the container. For now, we have to keep those code paths intact to remain compatible with QSequentialIterable and QAssociativeIterable. Task-number: QTBUG-140181 Change-Id: I2f4c32716951fa023ae1fb8028d1a87e4c85c3a0 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* JNI: document the JObject type, remove TECH_PREVIEW_API tagsVolker Hilsheimer12 days3-4/+185
| | | | | | | | | | | | | The JObject(Base) types have been around for a while now, and are heavily used in Qt code. We can be confident that they work. Add documentation for the JObject helper type. The JObjectBase type has no public usage, it's just a technicality that takes care of type-independent implementations. Document it as internal. Fixes: QTBUG-141156 Change-Id: Ia6567e10dc57a022beb3d3aff0420b2b9b9f6b2f Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* JNI: Allow clients to opt into their own exception handlingVolker Hilsheimer2025-11-285-239/+432
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Detect whether the return type of a call is similar to std::expected. This indicates that the caller wants to handle exceptions explicitly, so in case of error, we pass it through the the std::expected-like value. We still clear the exception state. The caller is responsible for freeing the jthrowable local reference. For this to work, we have to propagate errors through to the outer-most function. This includes allowing QJniObject to create QJniEnvironment instances that don't implicitly return a clean environment in the destructor. As long as we can call checkAndClearExceptions() in the public functions (unless the caller opts in), this should not break any existing code that expects QJniObject to implicitly clear exceptions. Add tests for all overloads to make sure that exceptions (from wrong class or method names, and thrown in methods) are caught. Add "Impl" helpers that do not handle exceptions if instantiated accordingly, and call those if we have to maintain compatibility in public functions while also enabling opt-in handling for modern APIs. Add tests that show that we can now handle exceptions ourselves for all public QJniObject APIs. If possible, we build the test with C++23 so that we can use std::expected; otherwise, try to use tl::expected by downloading the header-only implementation from github; and failing that, use a minimal implementation of a type that could be used instead and makes the test pass. Fixes: QTBUG-93800 Fixes: QTBUG-119791 Task-number: QTBUG-92952 Change-Id: I1cfac37ac9af8fd421bc0af030a1d448dd0e259e Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Docs: Add note about need for <!-- %%INSERT_PERMISSIONS -> in ManifestSheree Morphett2025-11-281-1/+5
| | | | | | | | | | | Added a note to the qt_add_android_permission documentation clarifying the need for INSERT_PERMISSIONS to be present for it to work with the API. Fixes: QTBUG-138568 Pick-to: 6.8 6.10 Change-Id: Ibb7a5594ae731f3c64582ea27db329a582a94d5b Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
* QObject: optimize err_ functions for sizeMarc Mutz2025-11-271-10/+25
| | | | | | | | | | | | | The compiler cannot look into format strings and extract common parts for us. We need to do it manually. Saves more than 400B in text size on optimized GCC 15 C++26 unity AMD64 builds. Pick-to: 6.10 6.8 6.5 Change-Id: Ia8db139d9a1fc219a84eaec42c6f72dc9dc9d135 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* QMetaContainer: Optimize iterator comparison a bitUlf Hermann2025-11-261-4/+4
| | | | | | | | | | | If the iterator pointers are the same, then the iterators are the same and their distance is 0. No need to call any functions for this. This also makes empty container interfaces less dangerous. The resulting containers are simply empty, too. Change-Id: I64896fdaa391e97e46430233a74071aadf20f0ea Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: Remove unnecessary #ifndef Q_QDOCPaul Wicking2025-11-261-4/+0
| | | | | | | | The #if-ery is not needed and confuses documentation authors. Get rid of it. Change-Id: Icd6cfd9baa1389eadc87a03ec0583767ae0a3fb0 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Use Q_ENUM/Q_FLAG instead of Q_ENUMS/Q_FLAGSAhmad Samir2025-11-201-3/+2
| | | | | | | | | Q_ENUMS and Q_FLAGS have been deprecated since at least Qt 6.0. Task-number: QTBUG-99060 Change-Id: Ia8cbc607c34683dec99587571c0d04f1854e77c2 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qtmetamacros.h: sort out Q_{ENUM,FLAG}* when Q_MOC_RUN is definedAhmad Samir2025-11-201-1/+3
| | | | | | | | | | | | | | | | | | When Q_MOC_RUN is defined, some Q_ENUM/FLAG related macros are defined as themselves, whereas some other ones are missing. It's not obvious what the exact purpose of having those macros defined when Q_MOC_RUN is defined, but until we know better, add macros that we think are missing from the list. This also fixes a typo (s/Q_FLAGS/Q_FLAG/) from commit 14583137ae445fbfdc82922266f5c0736454f6c4. Pick-to: 6.10 6.8 6.5 Task-number: QTBUG-99060 Change-Id: I096a774baffc05826320af5454563a7825ce064f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* qtmetamacros.h: fix comment of two #endifAhmad Samir2025-11-131-2/+2
| | | | | | | It starts with `#ifndef QT_NO_META_MACROS`. Change-Id: Ibd065b7b3432d1b8e6ab81e913c09bdcddc5173f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qtmetamacros.h: remove redundant Q_PRIVATE_QPROPERTYAhmad Samir2025-11-131-4/+0
| | | | | | | | | It was removed in commit e6988d4d0bef2c3f474576250cb305a2f00a688b. Pick-to: 6.10 6.8 6.5 Change-Id: Ia376c11cb8ace52472260cbde6424b9d1c082c97 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qtmetamacros.h: don't use Q_ENUMS/Q_FLAGS in {Q_ENUM,Q_FLAG}{,_NS}Ahmad Samir2025-11-131-4/+4
| | | | | | | | | | | | Q_ENUMS and Q_FLAGS have been deprecated since at least Qt 6.0. Since the behavior doesn't change at all, pick it to stable branches to reduce git merge conflicts for backports. Pick-to: 6.10 6.8 6.5 Task-number: QTBUG-99060 Change-Id: Ib4153897b3e178d810627ab2a54f72b202a6b06b Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QVariant: remove pointless castMarc Mutz2025-11-111-1/+1
| | | | | | | | | | | | | | | | Placement new wants to be called with a void* (cf. VOIDIFY() in std::construct_at()'s definition), so stop there, don't continue to cast to char*. This was already done for the primary overload of the in-place constructor, but forgotten in the initializer_list one. Amends c81e8f8ff24d30cc4c137d6f071954958e984ce9. Pick-to: 6.10 6.8 Change-Id: I5fe43d0062f2ad5e88603d5d231c2053f1164fed Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QCoreApplication: use unique_ptr in PermissionReceiverMarc Mutz2025-11-071-1/+1
| | | | | | | | | | | | | ... not shared. Amends 0bd1fc006097e481d8b92ee1c5246ffa1ae9379f, which removed the need for SlotObjSharedPtr, but didn't adjust the data member. Pick-to: 6.10 6.8 Change-Id: If5991d20b091271f9e38e2f621eb62020cee9871 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* macOS: Check entitlements directly for app sandbox detectionTor Arne Vestbø2025-11-071-46/+4
| | | | | | | | | | | | | | | Checking entitlements via the code signing verification machinery of SecStaticCodeCheckValidityWithErrors is potentially slow (may even reach out to the network, in some cases). We were mitigating this by spinning up a short lived thread to resolve the state before it was needed, but pulling the sandbox state out of the entitlements directly removes all this complexity, and is 4x faster for those times we would end up blocking waiting for the thread to finish (3-4ms vs 20ms). Pick-to: 6.10 6.8 Change-Id: I069b5bb576464b6add92dc9d37fdf116f3553d0c Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* macOS: Add private API to get a process' entitlementsTor Arne Vestbø2025-11-072-0/+16
| | | | | | | | | There's unfortunately no public API for this on iOS or other non-macOS Apple platforms. Pick-to: 6.10 6.8 6.5 Change-Id: Ib4ef0f021ae44c9df89764215bcafecc1e7c29ad Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Core: Provide non-broken implementation of QVariant{Ref|Pointer}Ulf Hermann2025-11-052-1/+283
| | | | | | | | | | We need to store the pointed-to value so that it stays stable even if the original is iterated further. Task-number: QTBUG-140181 Pick-to: 6.10 6.8 Change-Id: I59891210577e58f7360019d436b3985b4f9a4cd1 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QCoreApplication: mark applicationPid() noexceptThiago Macieira2025-11-012-2/+2
| | | | | | Pick-to: 6.10 6.8 Change-Id: Ia3982aa4c68bec07fb09fffd2e08ca332e6d00bf Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* Add note about limitations of permission API typesTor Arne Vestbø2025-11-011-0/+4
| | | | | | | Pick-to: 6.10 6.8 Change-Id: I638587825d6aa4680467205bff785b5c69aaa8ed Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Mark Q{Sequential|Associative}{Const|}Iterator as \internalUlf Hermann2025-10-292-0/+20
| | | | | | | | | They've never been documented properly and otherwise produce qdoc warnings. Now that they're deprecated, we don't need to start documenting them anymore. Change-Id: I7686a974f9c97c6198e36bd466e9744e815a8c5c Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* QObjectPrivate::connectImpl: remove unnecessary check we've already doneThiago Macieira2025-10-241-1/+1
| | | | | | | | | We checked above that if the UniqueConnection bit is set, slot is not null. Pick-to: 6.10 6.8 Change-Id: I1a323f917be73c0653cefffd852e46ca8b0fa22f Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* QObject: use connectWarning() moreThiago Macieira2025-10-231-18/+19
| | | | | | | | Drive-by mark it cold, like the other error functions above it. Pick-to: 6.10 6.9 6.8 Change-Id: I2e4b0c0cad3d04ed7597fffd9616301fc736ed2e Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* QMetaObjectBuilder: Fix detecting enum properties from QMetaTypeFriedemann Kleint2025-10-201-1/+1
| | | | | | | | | Fix condition wrongly inverted by dd95d5126ce9e022dfd25f0f44ee0f2a9e50f45e. Fixes: PYSIDE-3217 Pick-to: 6.10 Change-Id: I3c30541617a90ac32020aaddfca79024ba1ba351 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QTimer: fix clang -Wshorten-64-to-32 warningsAhmad Samir2025-10-181-11/+16
| | | | | | | | | | | | | | std::chrono::milliseconds::count() does not return int, so assigning the result to an int variable triggers said warning. Fix by using q26::saturate_cast<int> and checking (or asserting) that the value didn't change. Amends 1ca89b65d85c5df971fac7c1f9d5678e0e0cf45b. Pick-to: 6.10 6.8 Change-Id: I419c931d04b533402335568cc2e9569cc627f117 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QWinRegistryKey: de-pessimize stringValue()Marc Mutz2025-10-151-1/+3
| | | | | | | | | | | | | | | | | | | Don't create a QString object that we might not need (if the optional already contains one). Using value_or() with an argument that is not of trivial type is like having a function default argument of the same type: it's constructed whether we need it or not; one should use overloading instead (QTBUG-98117). Rewrite to the equally-readable check-and-return-else-default-construct. Amends 40523b68c14bf618bdc2d5438deebf34627be3af. Pick-to: 6.10 6.8 Task-number: QTBUG-98117 Change-Id: Iecd7fa9c3705c8416b5609e6d157079e10bfca59 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* QObject: docs: clarify that "window system events" means the event loopAhmad Samir2025-10-151-2/+2
| | | | | | | Fixes: QTBUG-140923 Pick-to: 6.10 6.8 6.5 Change-Id: Ia8ee47715f787847204c3addf2d2d0e85e202685 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Core: Move QMetaSequence docs and implementation to own fileUlf Hermann2025-10-142-468/+479
| | | | | | | | | | | This is in preparation for adding further inner classes to QMetaSequence that can't live in qmetacontainer.{h|cpp}. Also fix bogus references to QMetaSequence in QMetaContainer. Pick-to: 6.10 6.8 Task-number: QTBUG-140181 Change-Id: Ieed1a3766c7d9f930eac08e6c132e3b664a97ba7 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Core: Add documentation for QMetaAssociationUlf Hermann2025-10-142-23/+299
| | | | | | | | | | | | The documentation was missing. Create the documentation in a separate file, in preparation for adding further inner classes to QMetaAssociation that can't live in qmetacontainer.{h|cpp}. Also, move the two out of line methods into the same file. Pick-to: 6.10 6.8 Task-number: QTBUG-140181 Change-Id: I907ced8446ff0d63bcf73ae601130d541816402b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Mark QWinRegistryKey as security-criticalMarc Mutz2025-10-132-0/+2
| | | | | | | | | | | | | | | | It's a data parser, even though the parsing is generally rather trivial, but it's also low-level, with unsecure C APIs being called. The data is external, because the Windows registry is open like the file system is. So if parsing from the file system is critical (cf. QSettings), then so is parsing from the registry. The header only contains trivial implementation, so mark it as significant. Task-number: QTBUG-135190 Pick-to: 6.10 6.8 Change-Id: I44ad39ec12460e862f97911bc68166cb2f7122cf Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QWinRegistryKey: disable moves and swap()Marc Mutz2025-10-131-0/+5
| | | | | | | | | | | | | | | | | | | Since 589bfddc7c44a92e7e3f98a1e73871793c153ab7, the class is-a QObject and has a new data member, m_keyChangedEvent. Neither swap() nor the move SMFs handle the new member, and it's unclear how they should handle it, seeing it is tied to both m_key and the QObject identity of its enclosing class, the latter of which cannot be moved or swapped. De-QObject-ify'ing the class again (QTBUG-140671) would allow to define the semantics of subsribing to valueChanged() notifications vis-a-vis move semantics. Until then, and as a hot-fix, disable the move SMFs and swap(). Task-number: QTBUG-140725 Pick-to: 6.10 Change-Id: I9cecbe2afb98e5caa6889c2591fdd6a59106dab3 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Silence NewDeleteLeaks warning for QMetaObject::invokeMethodMike Senter2025-10-081-1/+2
| | | | | | | | | | | | Using the functor version of QMetaObject::invokeMethod resulted in a NewDeleteLeaks warning from clang-tidy. There was a NOLINTNEXTLINE at the source of the problem, but it was placed incorrectly. This replaces it with NOLINTBEGIN/NOLINTEND wrapping around the problem lines. Pick-to: 6.10 6.8 Change-Id: I351f1a4691648a12d3e0f6c2da4ecef8adce5714 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Core: Decouple QIterable from QMetaContainerUlf Hermann2025-10-082-2/+8
| | | | | | | | | | | Technically, the thing we're iterating over doesn't have to be a QMetaContainer. It's templated all the way. Only in one place we accidentally referenced QMetaContainer and that should be just "auto". Task-number: QTBUG-140181 Pick-to: 6.10 6.8 Change-Id: Ic6b129822345f9ef4c9a117eb4a3e84cbcc148c3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>