aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* macOS: adjust button layout margins according to macOS 26Richard Moe Gustavsen28 hours1-4/+11
| | | | | | | | | | | | | | | | The layout margins on macOS 26 was wrong, which meant a the focus ring on top of it would look really wrong (if button focus was enabled from system settings). This patch will adjust the layout rect so that it looks correct on macOS 26. Pick-to: 6.8 6.5 Change-Id: I828a4a25d3ffa58dd1fc942c25db1dcbb59f7525 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 4e31c33eea2d9cbe6181b2628643f7c8c4466588) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit d10da5160cf3b7399b3506388c19ef9199cd2148)
* macOS: adjust the button margins to ensure the title is centeredRichard Moe Gustavsen28 hours1-2/+6
| | | | | | | | | | | | | | | | | | The title (content) margins for a button had different margins at the top compared to the bottom. The result was that the label didn't end up centered on the button on macOS 26. This patch will adjust the button title margins so that the button label ends up centered on macOS 26. It will also slighly adjust the margins on macOS16.4, and earlier, to make label (more) centered on those platforms as well. Pick-to: 6.8 6.5 Change-Id: Icd7571202add65ec312787b0aa94fd1bc49ef72a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit a89bad645801060d54c3d7e60224b09652b4b0a6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8bb39ac2a5c92c4a32ab3b405c4c4f00c5033b35)
* macOS: add some padding inside a Frame and GroupBoxRichard Moe Gustavsen28 hours2-0/+9
| | | | | | | | | | | | | | | | | | | | Previously, the padding was taken from NativeStyle.Frame, which effectively returned the margins from QQuickCommonStyle. These margins only account for the frame border width and nothing else. As a result, controls appear glued to the edge of a Frame when using the macOS style, unless the application explicitly overrides the margins. This patch therefore hard-codes margins matching those used by the Fusion style, giving Frame and GroupBox a bit more visual “air”, similar to the other styles. Pick-to: 6.8 6.5 Change-Id: I6a80530d07a43bcaa6761cf3fc2d8a14e1fd0977 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 9d5e00cc8a0f6232671f0500e99c5ffd87d084ca) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit d49033f70c5cebe7e481105822e75de83901a3c1)
* macOS: adjust SearchField focus rect and radiusRichard Moe Gustavsen28 hours1-7/+17
| | | | | | | | | | | | Adjust the focus ring slightly, so that it fits the TextField on both macOS 26 and macOS 16.4 (and before). Change-Id: Iad1d23284f593a90a252bfdf7c5f6f4d79d309a9 Reviewed-by: Dilek Akcay <dilek.akcay@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit f994fe43aabee3f2112892cee2938f3484acee3e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 2e5c17aa90288b63b67e8167f9efbbf946816d45)
* macOS: draw ComboBox correctly on macOS 26Richard Moe Gustavsen33 hours2-11/+38
| | | | | | | | | | | | | | | | | | | | | On macOS 26, the down indicator in editable ComboBoxes was drawn with scaling applied, causing it to appear distorted. In addition, the focus frame was misaligned for both editable and non-editable ComboBoxes. This patch ensures that ComboBoxes are drawn with 9-patch scaling disabled. Previously, enabling 9-patch scaling caused the down indicator to be scaled together with the background, resulting in incorrect rendering. The patch also adjusts margins to properly center the label and align the focus frame with the control’s frame. Pick-to: 6.8 6.5 Change-Id: I0aafd77dd7ec098589c92fbc161a530a777b1d91 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 49033046e64ce238073dd4b0cf00c8010999e434) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit b387baca22f92731738bf99319a4c55ddac3699e)
* QmlCompiler: Mark contextUnit as unused when skipping a functionUlf Hermann3 days1-0/+1
| | | | | | | | | | | | | Amends commit b5e586f98444e8f83647b5a1451c4e7537b1d0ec. Fixes: QTBUG-141729 Pick-to: 6.8 Change-Id: Iecef73282837c38b0a65f04a52d83d148a58d2a6 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> (cherry picked from commit 76b4edba854c63692a1b9b1d95db979c8ab6a4d9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit b1a66836845d39b6406de3aecd843e9328b45e05)
* Popup Windows: Don't close when a pointer event hits the non-client areaOliver Eftevaag4 days1-2/+6
| | | | | | | | | | | | | | | | | | | On WebAssembly, when clicking on a dialogs TitleBar, the dialog would just close. That's because the event would get forwarded to the dialog that the title bar belongs to, but since the non-client area is outside the dialog window, it would close itself. This behavior was unintended. Fix it by not closing the window if a non-client area was hit. Pick-to: 6.8 Change-Id: Id54da63e0eee22f9c3b01301762f633c99821255 Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit 0c74b65a6627a31c0b3b0e49db0e994bbeecd35a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 59a62b7c2032145540b3c874af906d778ca98f42)
* AOT stats: do not use high_resolution_clockFabian Kosmale4 days1-3/+5
| | | | | | | | | | | | There is actually no guarantee that it's monotonic. Instead, use QElapsedTimer (we could also use monotonic_clock, but the Qt API is more convenient, except for the missing chrono return type). Change-Id: Iccdc988d0ff54dd9403f99d05b2c22fe8459ebe2 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> (cherry picked from commit 5b2b9afb39cf25139bc8cc93cf646fcd9634c2de) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit b3281c9d276f01cd1ab24838aaf0e1997a59bedc)
* SearchField: Prevent indicator warnings in testbenchDilek Akcay4 days1-4/+4
| | | | | | | | | | | | | | | In the SearchField testbench manual test for the macOS style, some warnings were appearing because the x and y positions of the indicators are used in this style, but are set to null in certain test cases. A condition was added to check whether the indicators are set before accessing their positions, preventing these warnings. Fixes: QTBUG-141882 Change-Id: I1c7a208ff32e570e384a2c41689cbfbb6d218be6 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 54b5bfb667fba5de1f1e3c89e1329ca0301cbce0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 4a6c0be0585e3416d8576724218687b5706a1cd9)
* QQmlImportInstance: Avoid URI confusionFabian Kosmale4 days1-1/+4
| | | | | | | | | | | | | | | | | | | | QQmlImportInstance::resolveType is meant to resolve a type name to a type in the import represented by the instance. It should not find the QQmlType of a type sharing the same name in a different import. However. to find types defined in C++, it has to use QQmlMetaType::qmlType. It passes its URI to that function to filter out unrelated types. However, a directory import without a qmldir will have an empty URI. QQmlMetaType::qmlType will interpret this as "find the type in any module", which is obviously not what we want. Fixes: QTBUG-142407 Pick-to: 6.8 6.5 Change-Id: I45bcf1c764d7e7cf9d479283970587a4e6519ce4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 0364a73c65629412e8b3959692e7cd405894099a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit ee807a80be28167a521a9b105d3fd5e8ffd3e2d2)
* QtQml: Check return field for toString()Ulf Hermann4 days1-0/+2
| | | | | | | | | | | | | In theory you could call toString() without providing space for the return value. We generally check argv[0] before writing to it. Pick-to: 6.8 6.5 Change-Id: I496eca3f428d0f8452a5bc0b1cb8ea78ee3805bb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> (cherry picked from commit 88dbb39e3b347e67eb0e5ee059c2545a1fbcaed9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit b7dd55a9bedbd127e63808a171aed3edf8a87803)
* Doc: Add a note that you don't need to run qmllint in IDEsAlexei Cazacov4 days1-0/+4
| | | | | | | | | | | | | | The qmllint page describes qmllint as a standalone console tool, but users don't have to run it in terminal. The IDEs display qmllint output as you type. This functionality is included to the QML Language Server, which is used in IDEs. Fixes: QTBUG-139636 Change-Id: Ib46116d341f59ae51a24504062e56ced8553b194 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit f12941c0d25256114758cb0ce2666ea4283e2d6e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 41b29392f5723024a5c08e83760758a01c11bd3a)
* FluentWinUI3: don't override propertiesMitch Curtis4 days2-6/+4
| | | | | | | | | | | | | | | | | | | | | | These warnings cause tests to fail: Member state of the object StyleImage_QMLTYPE_29589_QML_29616 overrides a member of the base object. Consider renaming it or adding final or virtual specifier Member __notCustomizable of the object SearchField_QMLTYPE_168 overrides a member of the base object. Consider renaming it or adding final or virtual specifier Amends d3ba7eb9badc931450f1c033d1bfc1763ca5ecb5 and 141993c0a5b2a2b6ea244c6bee2ca3141b1a020a. Change-Id: I03d83cdae27715b391ea67372e0b25267d729c77 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Dilek Akcay <dilek.akcay@qt.io> (cherry picked from commit e570a516fe312a414bb3b64bc316aff2127329b7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 591aeee2d545b3175186554f60c83f5cf45b176e)
* ColorDialog: use canvas to draw color picker for software rendererMorteza Jamshidi4 days5-8/+219
| | | | | | | | | | When backend renderer is software ShaderEffect doesn't render anything, so we use canvas renderer as a fallback. Fixes: QTBUG-139362 Change-Id: Id22305ab48d52f9bf2373c88f87cbb10c115999c Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit eaebe6716d0bc7aea7503048e243d269837411c8)
* Basic FileDialog: Don't let Folderbreadcrumbbar be smaller than upButtonOliver Eftevaag5 days1-1/+1
| | | | | | | | | | | | | The up button's size was 40x40, which was taller than the rest of the Folderbreadcrumbbar. This didn't look right. Pick-to: 6.8 Change-Id: I8d847b04e4a17ba570d366ebc7d584af36542519 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> (cherry picked from commit 70b885d2cd4eff2aa1ee08368893105666d5a92b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit d2972b3cb422197b0efef444c7efd955568f56a8)
* qmllint: dont assert on grouped property function definitionSami Shalayel5 days1-1/+2
| | | | | | | | | | | | | | | | | | Add an if-condition to avoid triggering the assert inside of qmllint. The runtime does not register this function declaration and therefore does not trigger the assert. QTBUG-142091 will make qmllint warn about the invalid function definition. Amends 009ef40c8c3a2c85860b4b309077a4dac90ad7a5. Fixes: QTBUG-142468 Change-Id: I2077908fdc83fd31bdda67a11f0e8a6949a102ae Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 0855e8f92027cd8a8826c08f07425e381658d8e2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 10fcc6af598bfa426654c1afca209533502e31b8)
* quicklintplugin: don't warn on Action not being ActionsSami Shalayel5 days1-2/+4
| | | | | | | | | | | | | | | It seems we forgot to add Action to the list of allowed types when the warning was changed to include Action in 7bdeea2c309150c8b49558b135232926d6a89c50. Pick-to: 6.8 Fixes: QTBUG-142549 Change-Id: I52e0ec0110e4d3915f36e3a54843d25b86d21a16 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 4862a753659a02540b2473b8df955bf590a5445b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8ebf47860d1b4469668ddd76121f4b21405de881)
* SearchField: Update the control's documentationDilek Akcay6 days2-1/+36
| | | | | | | | | | | | | SearchField documentation was outdated. The description of currentIndex was updated, and a note was added for the iOS style explaining that the control doesn't provide a popup in order to preserve the native look. Change-Id: I6ff23f51c0cf73a44baad7236c176363b3970f8e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit c3408ef5d69819abc3b991774cf92684d4dffab4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 055cd868d8ac81f0794849e07e5a366a71f0fcb2)
* QSGThreadedRenderLoop: fix typo in tracingTim Blechmann6 days1-1/+1
| | | | | | | | | Pick-to: 6.8 Change-Id: I0f48169d4678fc72dc16946bd6c4bf566ef48729 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit a09de708eea5e9680234e9656c93ccc63058c30f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 0d9984bcde168e43693e4c282b834b6d7bfbebe1)
* QmlPreview: Don't give up when positioning a window at (0, 0)Ulf Hermann7 days1-4/+0
| | | | | | | | | | | | | That's a perfectly fine place to position a window. Pick-to: 6.8 Task-number: QTBUG-142436 Change-Id: Ief27328f428ecbe54f57b79dd7408f55eba1d965 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> (cherry picked from commit a229973af85a4a2373bff67981bd7016372ddead) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 9d00d1d6ead5791939616c2d7fc170ccb0b50bd6)
* VectorImage: Sanitize source string used in outputEskil Abrahamsen Blomfeldt8 days1-1/+19
| | | | | | | | | | | | | | | | Source string is used as object name in output, so we sanitize it to make sure it does not contain illegal characters. SVG already mandates a limited character set here, but rather than trust the parser we sanitize before passing to the generator like the Lottie visitor does. Fixes: QTBUG-142556 Pick-to: 6.8 Change-Id: I0684e726ab69a0735dcb5f91369b090d58a90b7b Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit cfc3e783fed4e876c2c29d008b5ef43c547b16b7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit ce82a78b0d10703f9b172f9afeb3d5e832e05074)
* QmlCompiler: Get length from strings wrapped in QJSPrimitiveValueUlf Hermann10 days1-3/+14
| | | | | | | | | | | | | | We need to consider the original type of the value in order to see what we can do with it and we need to convert it (back) to string where necessary. Fixes: QTBUG-142550 Change-Id: Ic0eb2c7a22636cfb2d97297421b911555bd32bb1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit ee6a47ab3fc0dfcfb7301562b9b6dd5807d71079) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 2b3b3988bcdeaa62584d49698a6dbf0ca3ad81a7)
* QtQml: Update docs about constructible value typesUlf Hermann10 days1-21/+5
| | | | | | | | | | | | | | | You shouldn't use type assertions to create value types. That was a terrible idea. We can document the interaction with the 'new' operator now, though. Task-number: QTBUG-124662 Pick-to: 6.8 Change-Id: I94dbf47cfd72ef20a2d4758450634708590f8fec Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Elias Steurer <i@kelteseth.net> (cherry picked from commit def060a2ed60d323fafd4aa90777dd1f5d65543f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 7b193c56026b4427af77bf55b3559e7c2e176f34)
* Doc: Improve documentation for console.exceptionUlf Hermann10 days1-2/+4
| | | | | | | | | | | | | | console.exception() unironically throws an exception if you call it without arguments. Otherwise it's almost the same as console.error() but prints a stack trace in addition. Pick-to: 6.8 Fixes: QTBUG-119460 Change-Id: I99cc1c009310059d7bd5bbd8308436b832f41da7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 95ede80c64b87e2fbb69d36a77ac346a6a4631b7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 9e0cb603d7e7989476735f26462132255ccb6f02)
* VectorImage: Parse contents in separate QML contextEskil Abrahamsen Blomfeldt11 days2-1/+5
| | | | | | | | | | | The generated QML does not need access to the VectorImage's context, since it is self-contained. Change-Id: I61b12aaf5c3abcfe4c21057a28f46f9d85c2054a Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit 67bb01d79e6fb538191bb6b0bd1e85649b7afbd2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit d609292f4a4d2cc4ebb0b722e9cd581bfc3b89cb)
* VectorImage: Escape quotes in font familiesEskil Abrahamsen Blomfeldt11 days2-5/+10
| | | | | | | | | | | | | | | Loading SVG files that use font families with quotes will produce invalid output that does not parse correctly. When outputting the font family, we have to escape the quotes first. In addition, any character in the font family has to be valid HTML when we output it into a style tag. Pick-to: 6.8 Change-Id: If25b3cfd3a537d7f7c8c65045deece1ad02b43c3 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit 9e8a648a96ce1e2c901b92938c96a3ba5eb10f4e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 4839be8ac5c9f5069e43150cd944607dbbc7254b)
* Avoid the Shapes gradient texture cache growing without boundsEirik Aavitsland12 days3-32/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | Nothing was ever removed from the cache, so in case of e.g. an animated gradient, a large number of texture objects would be created and not released, and memory would quickly fill up. Fix by changing the caching implementation with a set maximum number of cached gradient textures. This introduces a soft limit on the supported number of simultaneously displayed different gradients in the application. If exceeded, some objects will show wrong gradient colors. Although unlikely to be reached, the limit is documented and configurable by environment variable. As a driveby, improve the gradient cache key qHash() implementation a bit, presumably giving better spread for the QCache. Fixes: QTBUG-142208 Fixes: QTBUG-136553 Pick-to: 6.8 6.5 Change-Id: Ie104f27031572e1c392c0a8ef79d09f4a2ba5a8e Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit aca98edecfc71ffb642abc003ddcd0d3270fc280) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8785982bcd7f54f15e1ba7e7ab0dfa5268c3894d)
* Doc: Remove stale version information from Qt Quick ControlsAlexei Cazacov12 days11-109/+120
| | | | | | | | | Fixes: QTBUG-141045 Change-Id: Ieb8882f4f07c0893095481e7f9104069cf92a389 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit b185a8dc5986c5af849e4815f8b49fb91ad732c8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 71e2f1366e0034f658dc6dbf02383b4c3ba4d9b4)
* Qt.createQmlObject: Trim compilation unitsFabian Kosmale13 days1-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | When we call createQmlObject, a completely new compilation unit is created. If an object is stil in use, that compilation is obviously needed. However, if code is using createQmlObject repeatedly with the same URL, there's a good chance that the object was only temporarily needed. To avoid unbounded memory usage in that case, we call trimCompilationUnitsForUrl, to remove the no longer needed CUs. Note that this does not help if the URL is also changing dynamically, but we don't want to trim all caches, including ones the user might actually want to hold on. To handle such cases, we should rather 1. integrate the trimming logic with the gc 2. give it a separate, configurable "high water mark" 3. Use some proper caching system for CUs, e.g. LRU That is however out of scope for this commit. Pick-to: 6.8 Fixes: QTBUG-142555 Change-Id: I7ebb63abd9bb99531b6b6b2cf1f98b35b1e652e2 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit a604a80c649f803c72416d7686ad67220e8822cf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 3f8a8e0375b033e2f64fb57162b777115d038558)
* QQmlJSAnnotation: de-inline op== and qHash()Marc Mutz14 days2-28/+37
| | | | | | | | | | | | | | | | | | | Way too much is going on in these functions to have them as inlines. Presumably, op== "looked" simple (but QHash equality is anything but...), and qHash() was inline because of the defaulted seed argument. Use overloading instead. The type doesn't seem to be used outside its own module, so there's no need to export the out-of-line functions. Amends d226e24a5d4288a3e7f263c526cb6cbf72255388. Pick-to: 6.8 6.5 Change-Id: Ib9641001a590fd1482ec463afd48003b7759e2f8 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit f9e25bbbb4e99941e3a4fef0cb2e64c1b6451d12) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 5cb4db93968e7d551d3e0c2f91e5c97b6a732a5f)
* QWidgetPlatformFileDialog: fix QFileDialog::directoryEntered connectionAhmad Samir2025-12-091-1/+5
| | | | | | | | | | | | | | QFD::directoryEntered()'s arg is a QString, whereas QWidgetPlatformFileDialog::directoryEntered() takes a QUrl, this works because there is an implicit conversion from QString to QUrl, but it would fail if QT_NO_URL_CAST_FROM_STRING is defined (which will happen in a subsequent commit). Pick-to: 6.8 6.5 Change-Id: I0e4c2e33bbaabe4553a3e49d05351ce32c0e6417 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit a52068b965f953f9158a23323ea4c9cdaf92b162) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtQml: Invalidate fallback lookups after each call from AOT codeUlf Hermann2025-12-092-4/+13
| | | | | | | | | | | | Fallback property lookups are created for completely dynamic metaobjects. Anything about them may change between any two calls. Pick-to: 6.8 6.5 Fixes: QTBUG-142331 Change-Id: Ib732c37a6f27ab8105bea0eeae000af7eb9c36d7 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit 9af6d2d6d0046b3c8369e15eb4791957cdc7ab7b) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* VectorImage: Fix opacity on individual shapesEskil Abrahamsen Blomfeldt2025-12-091-0/+3
| | | | | | | | | | | | | When shapes are combined into a single Shape object, the opacity information is lost. Similarly to how we handle non-default transforms on the shapes, we make sure the shapes with opacities are never combined with others. In principle, we could combine shapes with the same opacity, but for simplicity we just split them up at least until we see a strong need. Change-Id: I2c8a444f9b38fc8cf66728d80b1a724f24469630 Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io> (cherry picked from commit 46c0f62f3fb273cb22ca51cf77b0064c7d413a66)
* Windows style: override the application palette when in dark modeVolker Hilsheimer2025-12-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The native Windows (XP) styling code cannot render controls in the dark color scheme. Our code detects that the application is running in dark mode, and then explicitly creates a light palette that gets set on the QQuickTheme singleton. However, the palette that the style is actually using isn't always based on the QQuickTheme palette, so we get inconsistent colors: the window background is dark, a button font is light, while the button itself is also light. This makes the UI unusable. QGuiApp has no knowledge of Qt Quick's styling infrastructure, or of QQuickTheme, so it cannot ask the style to "polish" the palette like we do in widgets. As a quick fix, override the global QGuiApplication palette with the light palette. [ChangeLog][Controls] The Windows native style will use a light palette as the application global palette on Windows systems running in dark mode. The style cannot render dark controls, and mixing a dark application palette with some UI elements rendered in light mode using the Control style results in inconsistent and unusable user interfaces. For Dark mode UIs, use a style that supports dark mode, like the FluentWinUI3 or Fusion styles. Pick-to: 6.8 Change-Id: I5e279b88ba018baa03936624e07f48e8986eb1c6 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 672ad85d9475a5c02bfe877b16ac25d969cf9c41) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQmlCodeModel: avoid calling methods in wrong threadSami Shalayel2025-12-052-2/+13
| | | | | | | | | | | | | | | | | | | | | Add some asserts to avoid calling methods from the wrong thread (this only seems to happen in the tst_qmlls_qqmlcodemodel tests, not in qmlls itself). Also make the methods private to avoid this from happening again. Adapt the tests to call the right methods, and to wait for the QQmlCodeModel file loading thread to finish (by waiting on the newly added openUpdateThreadFinished signal). This fixes the flakines from tst_qmlls_qqmlcodemodel reloadLotsOfFiles, where a data race, caused by the test calling one of QQmlCodeModels function in the wrong thread, was making the test flaky. Fixes: QTBUG-142264 Change-Id: I6d6b89674344f271e94e6e558a34dd6900cfe703 Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> (cherry picked from commit d7833847a3141279c45ac20a13d4cad6cb985d7b) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmlls: qInfo() when receiving EOFSami Shalayel2025-12-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Add a test to avoid QTBUG-142025 from regressing, and log a message with qInfo() when receiving EOF to simplify debugging qmlls in the future. This should help to tell if qmlls stopped on start because of QTBUG-142025 or other reasons (invalid signature, or the qmlls client trying to spawn qmlls from a filepath that does not exist for example). The actual fix of QTBUG-142025 is in qtbase and tracked via QTBUG-142041. Changes compared to the dev version: * removed the cleanUp method that doesn't exist in dev anymore. The only other test function in this file (warnings()) already does everything that cleanUp attempted to do. * make sure to disconnect also stderr from m_server, otherwise it segfaults in dontShutdownOnStartup() trying to reference local variable from warnings(). Fixes: QTBUG-142025 Change-Id: I9cd215ac02e23a1d833755eda058d72622de7318 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 0784e56cea85137cf34b5065f3877fb7777099d4) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* a11y: Use Grouping a11y role for QQuickDialogButtonBoxMichael Weghorn2025-12-051-1/+1
| | | | | | | | | | | | | A dialog button box is not a list of page tabs, but it groups the buttons, so use QAccessible::Grouping for the accessible role like the QDialogButtonBox equivalent in qtbase does (see QAccessibleDialogButtonBox). Fixes: QTBUG-141734 Change-Id: I5ce474fbf6902c7e565f86307d00a0b8bdc63abd Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 1460f39ba98a590027bac012ea08caa9fa83b225) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* VectorImage: Fix compilation after qtsvg's ligature handling fixRobert Löhning2025-12-051-7/+15
| | | | | | | | | | | | While qtsvg now supports ligatures of multiple characters the existing code here does not yet. Fixing that is out of scope for this patch. It's only meant to keep the code working the way it did before. Change-Id: Ie62d3b3d5764a6bcb3d75e6594a8729652c0dcf4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit dce378678594b5e5b26fea6beb883879fe1a794f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QAccessibleQuickItem: support readonly stateOliver Eftevaag2025-12-041-0/+2
| | | | | | | | | | | | | | | | | | | | Accessibility Insights for Windows complained that the ProgressBar didn't communicate that it's readOnly. The reason, is because ProgressBar supports the ValueInterface, which according to https://www.access-board.gov/ict/#502-interoperability-assistive-technology must report its minimum value, maximum value, and readOnly state. In general, it looks like QAccessibleQuickItem never acknowledged that anything could be readOnly. Pick-to: 6.8 Change-Id: I96cc0d815e00981d320b50f4309fad6bb5ab0118 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit fb4b1dbdf9db6f96c8b0f0306fe023052f47ae84) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Dialogs: Link LabsFolderListModel into QuickDialogs2QuickImplUlf Hermann2025-12-022-6/+10
| | | | | | | | | | It uses FolderListModel. Task-number: QTBUG-137440 Change-Id: I44cc4f312dddde756bbb33aa7a564c1c4085c75e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit ce63ad2d4e5596e6151ea08c2d42adb6a1aeb85a)
* QmlCompiler: Don't read out of bounds when analyzing splice()Ulf Hermann2025-11-301-2/+3
| | | | | | | | | | | | You can call splice with only one argument, after all. Pick-to: 6.8 6.5 Fixes: QTBUG-142253 Change-Id: I3dec244325fd4d57a045ec024968e26e4f6372db Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit c094b60fedff5b2a52d0c350ecfa13fb5b9245b0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickStackView: don't convert QUrl -> QString -> QUrlAhmad Samir2025-11-281-1/+1
| | | | | | | | Pick-to: 6.8 6.5 Change-Id: I1bd30625e474ea4e36c6fb252afbbe2cd9e17162 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit a2d2941b90d534e94b65a7727dd3fb1176014907) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QuickControls: Fix linkage of controls stylesUlf Hermann2025-11-288-0/+8
| | | | | | | | | | | | | They need to link the styles they import so that the dependencies are clarified (and also they'll in fact need the linkage if we ever compile them in direct mode). Task-number: QTBUG-137440 Change-Id: I6edaba4390dce4f9cc2b95586f28331192cc01ff Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 985ff60882d8c1e461f387464ac3c29083088750) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* SearchField: Prevent clipped search icon on macOS 26(Tahoe)Dilek Akcay2025-11-282-8/+33
| | | | | | | | | | | | | | macOS 26 (Tahoe) changed NSSearchFieldCell: the magnifying glass icon is taller. Drawing it at the button's full rect causes the top to be clipped by the bezel, though the clear icon remains fine. To avoid this, we render the search icon at a fixed, smaller size to prevent upscaling and eliminate clipping after 26.0. Fixes: QTBUG-141776 Change-Id: Ifb5f4476253e55e700b8b89e864afdbb2ceedd8f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 3d5ba1bdc40d413974a6f37eeff7ac3ffc2146a4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Compiler: Stop std::move-ing the changed register in certain casesOlivier De Cannière2025-11-271-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes an optimization where we std::move the changed register into its target. A copy is performed instead. This resolves the more urgent issue of miscompilations. QTBUG-141920 has popped up and was either exposed or introduced by b303e0624d2ea2ab1c124961e7510a64d0ca1412. That change performs optimizations that avoid intermediary copies of values between registers. It was found that, in the process, the mapping from RegisterContent to variable name stored in m_resiterVariables was changed. One RegisterContent no longer uniquely maps to a variable name because of the direct moving of values to their destination. The registers alias the same value. This could cause issues and might need to be addressed. The original std::move was only added after 6.5 by 3193911b02424dd0365e03526a4c12ed7888b7ca. Cherry-pick to the later versions. Fixes: QTBUG-141920 Pick-to: 6.8 Change-Id: Ie6dad1a809ac5ee08de70971ec92d3c97fc50080 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> (cherry picked from commit 8890b4a2d56ebdd51bf550d307f48d60ccf9a632) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qmllint/quick: Don't complain about short hex codesFabian Kosmale2025-11-271-2/+3
| | | | | | | | | | | | 3 or 4 hex digit color names are fine, too: #abc is equivalent to #aabbcc and #abcd is equivalent to #aabbccdd Change-Id: I2c6ed5926b921cb1a357bdaefbe456f845990b21 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit 63e9bc0a57923142991b9fd94903f9563311c9a7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQmlListProperty: restore NRVO in toList()Marc Mutz2025-11-271-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.8 Task-number: QTBUG-142146 Change-Id: I3d559c6432b636608f94f29f03203111b6a95990 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit e26ba6812cde79579d721ca7f05056a63abd530f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QJSList: restore NRVO in slice(), join() specializationMarc Mutz2025-11-261-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.8 6.5 Task-number: QTBUG-142146 Change-Id: I38e9e8374e51d147cdaf4276fa791489117ee4e3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 0b1074b6da9ac15f66938ba68c1b038fa00e2bb3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Add alternate text for Qt Quick and Qt Quick Controls imagesJerome Pasion2025-11-2678-11/+543
| | | | | | | | | | | | Alternate text (alt text) improves the documentation experience for screen readers and for other accessibility tools. Pick-to: 6.9 Task-number: QTBUG-135120 Change-Id: I975c3de11f893882fb9a27218079f244bd38a622 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 5dceaca0a7bd0d63d349a8afc7583c166f2f5dfd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove redundant Q_FLAGS from classes that don't inherit from QObjectAhmad Samir2025-11-261-1/+0
| | | | | | | | Pick-to: 6.8 6.5 Change-Id: I810a7137470e0ee96c76819766ede2e9bc643d73 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 80103fd72215c32c8bc732d082d65fc6f6e009fd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>