summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Silence missing deployment qtpaths warning on non-Windows platformsAlexandru Croitor13 days1-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | In 36cee508a088e1570e1d89e060c3ccd14585d3f1 we started showing a warning when a qtpaths executable or shell wrapper was not found in the qt prefix. This warning would appear on all platforms equally, even though in the end the __QT_DEPLOY_TARGET_QT_PATHS_PATH variable is only used when deploying a Windows app using windeployqt. An example of when the warning appears is with a yocto SDK, where the target qt prefix does not contain a qtpaths executable. Make sure the warning is only shown when targeting the Windows platform. I considered searching for candidate qtpaths also in the host prefix when available, but such a qtpaths most likely will not show information for the target platform, and thus deploy the wrong libraries. Amends 36cee508a088e1570e1d89e060c3ccd14585d3f1 Pick-to: 6.8 6.10 Fixes: QTBUG-142336 Change-Id: If3df1f61cf1550b7271268c71a5826ed673a62fa Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* wasm: remove manual dead key translationLorn Potter13 days9-74/+8
| | | | | | | | | | | | Dead keys are now handled through QWasmInputContext. This removes the duplicated and previous method of dead key handling. Remove deadkeytranslator auto test, as it was testing the dead key translator class being removed. Change-Id: Ibada7ba873ff109d5ad2837a8d2fba354b7eb8c2 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Even Oscar Andersen <even.oscar.andersen@qt.io>
* QList: add missing Q_CHECK_PTR in the constructors and in reserve()Thiago Macieira13 days1-5/+18
| | | | | | | | | | | | | Because QArrayDataPointer doesn't. QString and QByteArray constructors do this. resize() already has the macro because it uses QArrayDataPointer::reallocateAndGrow(). squeeze() is untestable. Pick-to: 6.10 6.8 Fixes: QTBUG-142345 Change-Id: I8e7898aed09364f20d1efffdc7ed70a2c152005c Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* wayland: Remove call to flushWindowSystemEventsBłażej Szczygieł13 days5-128/+2
| | | | | | | | | | | | | | | The flushWindowSystemEvents() call in flushRequests() was added in commit 84f1360289a to preserve event order when we had mixed synchronous and asynchronous expose events. That issue has been resolved in Qt 6.10 when we were able to make all expose calls synchronous, rendering this unneeded. Reverts 6ff771b86f7b961a5ff63f148cf69ecb3415dd95 Pick-to: 6.10 Fixes: QTBUG-139425 Fixes: QTBUG-141938 Change-Id: Idcf3dbc54dc9c3e37cdc586f9f872338e63f4f0d Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Add QIORing backend for QRandomAccessAsyncFileMårten Nordheim13 days4-0/+463
| | | | | | | | | | | | | | | | This adds a backend for QRandomAccessAsyncFile to use the recently introduced QIORing. Since all uses of of QRandomAccessAsyncFile expects signals to be emitted after returning control to the caller, and QIORing may complete anything synchronously, we emit signals only after returning to the event loop. This could probably be optimized later to be a direct emission when it's not technically needed, but is not a priority right now. Task-number: QTBUG-136763 Change-Id: I8acfa7f716e5625da498cc4b6fbe493ebd783f99 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* QIORing/Linux: handle >2gib reads&writesMårten Nordheim13 days2-42/+173
| | | | | | | | | | | | | | | | | Linux internally truncates any read and write at a limit of 'MAX_RW_COUNT', which is slightly less than 2 GiB, for a few reasons. We will work around it by reading or writing some segments at a time, re-issuing another read/write operation whenever one completes until completed, EOF if reading, or an error occurs. Note that this MAX_RW_COUNT also applies to readv and writev, which means we would need a similar mechanism there to handle this. This is to be done in a follow-up. Task-number: QTBUG-136763 Change-Id: I9bcb75587ae5e84cb80ea3950a569f60c4906617 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Introduce QIORing to abstract io_uring on LinuxMårten Nordheim13 days5-0/+1204
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Somewhat low level code, intended as a low level abstraction. The QIORing interface would also be used for Windows' IORing, developed at the same time as the io_uring version. There is some shared code and helper functions, but a lot of the code in some way touch the platform specifics, so without yet more abstractions quite some code is left as unique. The fiveGiBReadWrite test case is currently EXPECT_FAIL because of the MAX_RW_COUNT limit on Linux (and its inability to report >2GiB results). Either we have to document this in the public-facing parts, or we need to work around / iron over the issue. To be done in a follow-up patch. We only ever notify the kernel of the work to be done after returning to the event loop, unless the ring is full. Then we notify the kernel right away in hopes it will manage to clear up some space to queue more. We, ourselves, are not actually limited by the kernel ring buffers as we keep a queue (in the form of a std::list) of pending tasks. The reason why it's a std::list is that it guarantees stable references, and that lets us use the pointer-to-task as the 'user_data' of the submitted work, so we can easily access the task again when the kernel adds it to the completion queue. Task-number: QTBUG-136763 Change-Id: I9cb80a2b96a49f2a557bef3b0ad6d367d76f5ab8 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* [docs] QMatrix4x4: fix a typo in the documentation of fill()Marc Mutz13 days1-1/+1
| | | | | | | | Amends the start of the public history. Pick-to: 6.10 6.8 6.5 Change-Id: I6773339a66806b07984fdc4772fa563891d53b0e Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* SQL/MariaDB: Enable MYSQL_OPT_TLS_VERSIONChristian Ehrlicher13 days2-2/+2
| | | | | | | | | MYSQL_OPT_TLS_VERSION is supported since MariaDB C Connector 3.1.10 so we should enable it also for MariaDB. Pick-to: 6.10 Change-Id: Iaec42fa83bf6da42295d297455f07436afeae8d3 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Doc: Update model/view diagrams to styled SVG versionsDavid Boddie13 days5-4/+518
| | | | | | | | | | | | Existing images are not suitable for use with the dark theme of the online documentation. SVG files are more versatile and can be styled for the light and dark themes. Some hard-coded properties are used to ensure that Assistant's SVG renderer can display the files in a reasonable way. Change-Id: Iafb72835937f1e96598993ee61de6f384e68b50b Reviewed-by: Jerome Pasion <jerome.pasion@qt.io>
* QRangeModel: fix two more unqualified wrapped_t usesMarc Mutz13 days1-3/+7
| | | | | | | | | One amending 4207a1664d6901322c19edddad95ec53bdd2a017, the other amending c1341b7557ce52c681618c77c17687623fc0f3b2. Pick-to: 6.10 Change-Id: Ib5db1a0728e359499a1a53d12a8157df7c3569e6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* CMake: Replace qt_set01 with explicit if() conditionsJoerg Bornemann13 days1-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | The qt_set01 function had a critical argument quoting flaw. This happened because CMake removes quotes when calling the function, causing variable substitution in the condition evaluation. For example, calling qt_set01(QNX CMAKE_SYSTEM_NAME STREQUAL "QNX") with QNX already set to 1 would evaluate CMAKE_SYSTEM_NAME STREQUAL QNX (where QNX expands to 1) instead of CMAKE_SYSTEM_NAME STREQUAL "QNX". This particularly affected users with QNX toolchains that pre-set the QNX variable, causing configure to fail. Replace all qt_set01 calls with explicit if/else blocks that properly preserve string literals and avoid the eval-like behavior. Remove the qt_set01 function. The platform detection code is now admittedly more verbose but plain CMake without argument quoting pitfalls. Pick-to: 6.8 6.10 Fixes: QTBUG-142267 Change-Id: I642fc8582001b8c7b7b6ff56eae7ccabc89ba565 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QRM: Only detect rotate if the iterator models at least forward_iteratorVolker Hilsheimer13 days1-2/+4
| | | | | | | | Amends dc2521c156fb694f379104191e540a57371b41f0 Change-Id: I2a1e7da5aa5b7015ced25fcc49c1e66275db4bc8 Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io> Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
* QRawFont: de-inline two-arg advancesForGlyphIndexes()Marc Mutz13 days2-11/+11
| | | | | | | | | | | | | | | | | Functions in which owning containers allocate should not be defined inline, because of the amount of code generated. Unlike similar changes in the past, this wasn't found by Clang -ftime-trace, but highlighted by adding GCC -Wnrvo to headersclean. Instead of rewriting the function, pull it behind the ABI boundary. Can't pick back, because it adds an exported symbol (on Unix, Windows already had it, due to the wholesale export of the class), so isn't forwards-BC. Change-Id: I0d7ac417e129023f9688028685e818e7ab6ab7e2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Doc: Mark internal reimplemented functions as only reimplementedDavid Boddie13 days2-4/+4
| | | | | | | | | This provides useful links to the reimplemented API documentation. Pick-to: 6.8 6.10 Task-number: QTBUG-140667 Change-Id: Ia7148b46f349357eae1f1a26a5737487371b88c1 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Doc: Fix QDoc warnings for internal classes in Qt WidgetsJerome Pasion13 days22-8/+138
| | | | | | | | -Internal classes should have internal class documentation. Task-number: QTBUG-141665 Change-Id: I399e0cec51a9308172301a862dcd07e6137e9854 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QRangeModel: don't refer to wrapped_t with its unqualified nameMarc Mutz14 days1-21/+28
| | | | | | | | | | | | | | | | This enables ADL, which might end up picking up unrelated templates from user namespaces, and, due to QtPrivate::wrapped_t in qanystringview.h, breaks TUs (such as -unity-build), where both headers are included. Amends the addition of the feature, somewhere before the bdbe4c8858e378d5b90bed799b67304d452fc0da rename to QRangeModel. Task-number: QTBUG-142184 Fixes: QTBUG-142182 Pick-to: 6.10 Change-Id: Id41ec4bca1059ab525c5c6bfad052d83572e1d91 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add missing forwarding for channel signals in QLocalSocket / UnixAndreas Hartmetz2025-11-301-0/+4
| | | | | | | | | | | | | | QLocalSocket internally uses a QTcpSocket that actually operates on a local socket file descriptor. The forwarding of what that socket does was missing for the channelReadyRead() and channelBytesWritten() signals. [ChangeLog][QtNetwork][QLocalSocket][Unix] Fixed QLocalSocket not emitting channelReadyRead() and channelBytesWritten() signals Pick-to: 6.10 6.9 6.8 6.5 Change-Id: Iacf736374e026ddb475522d4a8e8fd8c5b5564bb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QFlatMap: use QtPrivate::ArrowProxy instead of own mock_pointerMarc Mutz2025-11-291-26/+3
| | | | | | | | | | | | .. to use a common vocabulary, and share code. Amends 900d4bd29f30effbb5dbb0efa96886af03839a15, which introduced ArrowProxy for use in QKeyValueIterator and QDomNodeList::It. This is just another user I've overlooked up to now. Pick-to: 6.10 6.8 Change-Id: I2c1eecc75a209ce552ddd1fdebfc6da784c83a00 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Add computeWindowStyles helper to window class registryPavel Dubsky2025-11-292-20/+43
| | | | | | | | | Introduced computeWindowStyles to centralize logic for determining window class style flags based on window type, surface type, and properties like drop shadows. Change-Id: I3c3ddeb89b462f7a25754ae51e605f1fade7cf7f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Move hasIcon logic into computeHasIcon helperPavel Dubsky2025-11-292-6/+21
| | | | | | | | Introduced computeHasIcon to centralize logic determining whether a window class should include an icon, based on window type and flags. Change-Id: I4702bbb0833e90163382fb318f990c79fc0f93f5 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QFont: fix a QT_ASCII_CAST_WARNMarc Mutz2025-11-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Says GCC: qfont.cpp:2202:81: required from here 2202 | fontDescription += comma + tag.toString() + u'=' + QString::number(value); | ^ qstringbuilder.h:403:37: warning: ‘static void QConcatenable<QByteArray>::appendTo(const QByteArray&, QChar*&)’ is deprecated: Use fromUtf8, QStringLiteral, or QLatin1StringView [-Wdeprecated-declarations] 403 | QConcatenableEx<B>::appendTo(p.b, out); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ qstringbuilder.h:372:43: note: declared here 372 | QT_ASCII_CAST_WARN static inline void appendTo(const QByteArray &ba, QChar *&out) | ^~~~~~~~ This is because Tag::toString() returns QByteArray, not QString. To fix, wrap the toString() result in QLatin1StringView. This is safe, because the temporary QByteArray will be kept alive until the end of the full-expression, so until after op+= has executed. It does change the serialization vis-a-vis the old code, but a) only for non-US-ASCII tags, which are not really valid, and b) we make it more robust now, because each random 4-octet sequence is a valid L1 string, but many are not valid UTF-8, so their interpretation as U8 by the old code (QByteArray → QString assumes U8) depends on behavior of Qt outside its spec. GIGO applies, of course, but we don't tend to specify the GO for any given GI, so it's better to use an algorithm for which no input is "garbage". Amends 8fe6ad3eed40a8c851bf5d49e322f9794b9f7dcf. Task-number: QTBUG-141412 Change-Id: Ic45f9147ca54201a33d953da57b768d2a5d115e4 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* QFlatMap: use QT_DEFINED_TAG for OrderedUniqueRangeMarc Mutz2025-11-291-2/+2
| | | | | | | | | | | | It applies extra safety measures for such tag types. Amends 74a87a329498422db0dea3e469fb84704accbb2b, which ought to have ported this tag struct, too. Pick-to: 6.10 6.8 Change-Id: Idd2c116d1045f4218ec74c52f8ddf00324abd59c Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@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>
* Doc: Document the LegacyBehavior enum separately for clarityDavid Boddie2025-11-281-5/+7
| | | | | | | | | | | | | Improve the layout of the enum documentation by splitting LegacyBehavior from the rest of the enum values to prevent the value column from taking up too much of the page width. Mention transition details rather than times to avoid confusion about terminology. Fixes: QTBUG-141801 Change-Id: Ib995ab2af3bcddce669df818ff949b7a3e959667 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Extract classNameSuffix helper in window class registryPavel Dubsky2025-11-282-23/+33
| | | | | | | | Added a new helper function classNameSuffix to generate class name suffixes based on window type, style flags, and icon presence. Change-Id: I70c20f211255d9e79fc6e7e3b79dbefd861bf7be Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QFlatMap: remove STL-compatibility guard macroMarc Mutz2025-11-281-21/+0
| | | | | | | | | | The macro has been silently active since 6.5, with no way to disable it, so remove it now, after two LTS releases have been released with this new default. Pick-to: 6.10 Change-Id: Ibc12fa59707a75eb9e4a452471a83e9df206a7b6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Http: properly handle a connection: close state when server disconnectsMårten Nordheim2025-11-281-0/+4
| | | | | | | | | | | | | | | We already somewhat do this, but possibly due to version differences the path in _q_error is not reached on certain Windows systems. Add the same path checking for 'no content-length specified' in the slot to handle the socket disconnected() signal, though unlike the _q_error path we don't need to do a queued invoke - the socket is definitely already disconnected. Pick-to: 6.10 6.8 Change-Id: I65bcab18bd3de80c26a1a5f88e8ffd2840cfa291 Reviewed-by: Øystein Heskestad <oystein.heskestad@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* wasm: Refactor PromiseEven Oscar Andersen2025-11-282-6/+188
| | | | | | | | | | | | | | | | | | | | | | | | Switch from a function based implementation to making Promise a object. Maps straightforward to a javascript promise, except for this: We need to do cleanup when the promise has been fully processed. We do this by adding a final handler. However, the handlers are called in the order they are added, so the final handler we add in the constructor will be executed too early. We solve this, in a non optimal way, by adding a final handler after each then, and catch, handler. This makes the interface easy to use, even if it is suboptimal Fixes: QTBUG-142138 Change-Id: I6be3f102e838467cc98f4a9825fd5f6fe0e1e1a2 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Wayland plugins: replace header guards with #pragma onceMarc Mutz2025-11-2817-176/+18
| | | | | | | | | | | | | | | | | | | | | | Following qtbase/1c8884fc277c5916a420a3c14de68547a391f9fc's making syncqt error out when an installable header contains #pragma once, we can now flip the coin and use #pragma once as a static assertion that the given header is not going to be installed, making it easier to understand which headers are "public", which ones are "private" and which ones are "neither, since never installed". Do this for the Wayland platform support files, like 91f9ba2993a2652bcb349ce639aff67b5bfc8938 did for XCB. Since these headers are neither public nor private, also remove "We mean it" comments, where they existed. Had to exclude the QtWlShellIntegration headers, because, for some unknown reason, we install headers from the plugins/ subdir. Pick-to: 6.10 Change-Id: I92f336f79d23134e96cbac13088dbd352e2d3a84 Reviewed-by: David Redondo <qt@david-redondo.de>
* Add check for -Wcharacter-conversion supportMorten Sørvig2025-11-281-1/+1
| | | | | | | | | | | | | | | | | Use __has_warning() to check if -Wcharacter-conversion is supported before disabling it, in order to avoid "unknown warning" warnings. This is/was a problem when building with Emscripten 4.0.7, which uses a git snapshot of Clang 21 which does not support the warning. Amends f20f12baab1f40ec0aad2635186e7d270139509b. Pick-to: 6.10 Change-Id: I4c08e69013b36b87709295d9a3a79d8986078ef1 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove unused headers from qnetworkaccesscachebackend_p.hMate Barany2025-11-281-2/+0
| | | | | | Pick-to: 6.10 Change-Id: I728ff9a9b699d776d2aaf54b943f567ab962d6bf Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Docs: Add note about need for <!-- %%INSERT_PERMISSIONS -> in ManifestSheree Morphett2025-11-282-1/+9
| | | | | | | | | | | 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>
* QFont: add a code comment about an op<() observationMarc Mutz2025-11-281-0/+2
| | | | | | | | | | | | | | | | | The code consistently treats the op<() argument as the LHS and *this as the RHS, so it actually implements greater-than. Nothing that needs changing, as the docs don't promise anything and it's perfectly fine to implement op< using greater-than semantics, if done consistently, but worth nothing, because it may raise eyebrows, as it did in this author. Amends the start of the public history. Pick-to: 6.10 6.8 6.5 Task-number: QTBUG-142246 Change-Id: If5aafa4e01a963e622c1ad72deb265477855ec48 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add shouldDecorateWindowClassName to detect window class conflictsPavel Dubsky2025-11-282-6/+20
| | | | | | | | | | Introduces helper overloads that return true when a window class with the same name is already registered but uses a different window procedure. This will be used to decide when to register a new class with a decorated (UUID-suffixed) name. Change-Id: I613173e61152a6f717285a1d4943b01808c1a44e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Simplify WNDCLASSEX initialization in window class registryPavel Dubsky2025-11-281-10/+1
| | | | | | | | Replaced manual field-by-field zeroing with aggregate initialization and removed redundant assignments of default values. Change-Id: Ic2e974ef859d3142ae2077ef306403423c979d10 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* CMake: Automatically generate a vcpkg manifestJoerg Bornemann2025-11-274-12/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][configure] Added a -generate-vcpkg-manifest configure option. This generates a vcpkg.json file in the build directory. To just generate the manifest without configuring Qt, run configure with -generate-vcpkg-manifest -dry-run. [ChangeLog][configure] When configuring with -vcpkg, generate a vcpkg manifest file in the build directory, and set VCPKG_MANIFEST_DIR to the build directory to use that manifest file. You can turn off the manifest generation with -no-generate-vcpkg-manifest. You can turn off setting the manifest directory by passing -- -UVCPKG_MANIFEST_DIR to configure. Configuring with pure CMake won't generate a vcpkg.json. This patch adds a low-level CMake API for creating vcpkg manifests in QtVcpkgManifestHelpers.cmake. The functions qt_find_package and qt_feature gained arguments for creating dependencies in the manifest and add them to features. This adds a package dependency (not guarded by any feature): qt_find_package(WrapSystemFreetype 2.2.0 MODULE ... VCPKG_PORT freetype VCPKG_VERSION 2.3.4 ) This adds a package dependency `freetype` to the feature `freetype`: qt_find_package(WrapSystemFreetype 2.2.0 MODULE ... VCPKG_PORT freetype VCPKG_ADD_TO_FEATURE freetype ) This adds a feature `freetype` with `gui` as its "parent dependency": qt_vcpkg_scope(gui) ... qt_feature("freetype" PUBLIC PRIVATE SECTION "Fonts" LABEL "FreeType" PURPOSE "Supports the FreeType 2 font engine (and its supported font formats)." ) If features are turned on/off via configure arguments, we set the CMake variables VCPKG_MANIFEST_NO_DEFAULT to ON and VCPKG_MANIFEST_FEATURES to the list of corresponding vcpkg features to only install libraries that are needed for the build. For a per-repo build, we create a vcpkg.json with dependencies only for that repository. For a top-level build, we create a vcpkg.json with all dependencies of all repositories, excluding those that have been skipped (with configure's -skip argument). Task-number: QTBUG-73760 Change-Id: I6cc449d712f32d9e564acecaede5a7b31f309a8c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Unexport QCocoaSystemTrayIcon from Cocoa platform pluginTor Arne Vestbø2025-11-271-1/+1
| | | | | | | | We don't export symbols from the platform plugins. Pick-to: 6.10 6.8 6.5 Change-Id: Id3d801aba8b9fa59af9317602abffe6451be4c80 Reviewed-by: Tim Blechmann <tim.blechmann@qt.io>
* Rename m_proc to m_defaultProcedure in QWindowsWindowClassRegistryPavel Dubsky2025-11-272-5/+5
| | | | | Change-Id: I56a25033843c3c1ced047fe3e9072ee6014d182c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Wayland integration plugins: fix QT_END_NAMESPACE locationsMarc Mutz2025-11-274-11/+8
| | | | | | | | | | | | | | | Harmless, because QT_END_NAMESPACE is also just '}', but eyebrow-raising, so fix. Amends: - d8e37e4b03f9c786e1cb3dda80b050f05f974752 - 3bf9a581ee13cac988cdfadc7f22d472c1562214 - c2f156e27bf8865dc12108e1aba7cc78bd0dba38 - 6482bf50754e36a89e157ce94096be05b108db75 Pick-to: 6.10 Change-Id: Id59044023bfaf75ddc2bff024439f3d4a20d0936 Reviewed-by: David Redondo <qt@david-redondo.de>
* Wayland hw-integration headers: don't include yourselvesMarc Mutz2025-11-274-4/+0
| | | | | | | | | | Harmless, but ... eyebrow-raising. Amends 58e68f1981d0ba0a80e373dd5ca78a9260824c36. Pick-to: 6.10 Change-Id: Id5754a772c1e3244a88294390c98604bfe07f0ad Reviewed-by: David Redondo <qt@david-redondo.de>
* 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>
* QRangeModel: port some predicates to qxp::is_detectedMarc Mutz2025-11-271-23/+18
| | | | | | | | | | | | | | | It's easier to read, and involves less class template instantiations. As a drive-by, refer to wrapped_t using qualified lookup, to prevent ADL injections. There's much more whence these came. Created QTBUG-142184 to keep track of the general issue. Amends 8edabea2a76192788d30afc22e2ebcb560195401. Task-number: QTBUG-142182 Pick-to: 6.10 Change-Id: I1a54b904df4e0204a7909ea10845acccb539866b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add public interface for dynamic feature java binariesLauri Pohjanheimo2025-11-272-0/+51
| | | | | | | | | | | Dynamic Feature functionality requires java classes in jni interface to enable google play feature delivery functionality. This function adds public interface to add java source folder to the build. Task-number: QTBUG-124600 Change-Id: I77e87f752cfb74b734dc34470e39b279d11868a6 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QSpiMatchRuleMatcher: fix clazy-reserve-candidatesMarc Mutz2025-11-271-0/+1
| | | | | | | | | | | We know the final size of m_interfaces, so reserve() the container. Stops the line from flashing yellow in QtCreator. Amends 7a478ff96f27fbfc8ddfbc67ba62276580aa02b4. Change-Id: I51464d3385a2142ea3782dab770bbc85003f592d Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
* QSpiMatchRuleMatcher: reduce QList indexing by 32xMarc Mutz2025-11-271-1/+2
| | | | | | | | | Drag the constant out of the loop. The compiler likely won't. Amends 7a478ff96f27fbfc8ddfbc67ba62276580aa02b4. Change-Id: I16bd27c6c77d518933a5509a2f7fafb74c7175ac Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
* Windows11Style: add and use inputFillBrush()Christian Ehrlicher2025-11-272-11/+29
| | | | | | | | | | | | Input widgets have a slightly different styling as there is no 'pressed' state but an 'edit' state. The coloring for this state is also a little bit different (fillControlInputActive). Therefore add a corresponding function to controlFillBrush() to handle this case. Pick-to: 6.10 Task-number: QTBUG-142129 Change-Id: I5b2bf971cb5c7eb2ff8d63ffd381bfe7af659e9a Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
* Use categorized logging for window class (un)registration failuresPavel Dubsky2025-11-271-3/+4
| | | | | Change-Id: Ib4afaf179bed99bdbb1be6fc7deebbdb2e6d1627 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QSpiMatchRuleMatcher: prevent size() → int narrowingMarc Mutz2025-11-271-2/+2
| | | | | | | | | | Qt containers has qsizetype size_type since Qt 6.0. Don't use int for sizes. Amends 7a478ff96f27fbfc8ddfbc67ba62276580aa02b4. Change-Id: If6bd90150e361982624609d80abdc7b512a770e3 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
* QSpiMatchRuleMatcher: remove an unused unordered_mapMarc Mutz2025-11-271-1/+0
| | | | | | | Amends 7a478ff96f27fbfc8ddfbc67ba62276580aa02b4. Change-Id: I504362b42b09b880163bcd0dac9c088adcc80740 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>