aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual
Commit message (Collapse)AuthorAgeFilesLines
* cmake: fix warning in manual testTim Blechmann5 days1-3/+3
| | | | | | | | | | | | | | | cmake complains: The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. the custom command is triggered whenever the target is built, so extra dependencies make no real sense. however copy_if_different might be a little friendlier Pick-to: 6.11 6.10 Change-Id: I66d0619c39b0c6354d7e6dba5797cdd4b6a116cc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Android: update Qt Quick for Android examples to SDK 36Rami Potinkara6 days1-2/+2
| | | | | | | | | | | This patch updates qtdeclarative examples to use SDK 36 as a target and compile version SDK. Task-number: QTBUG-138552 Task-number: QTBUG-138549 Pick-to: 6.11 6.10 6.8 Change-Id: If655c6654790b4be3704325aceca6df4947362d4 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
* Qt Quick Controls: add DoubleSpinBoxXavier BESSON2025-12-042-0/+33
| | | | | | | | [ChangeLog][Controls] Added DoubleSpinBox. Fixes: QTBUG-67349 Change-Id: Icb2f02162825daf74778de725f80af63874a5d16 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Android: Bump Gradle and APG versions in QtQ4A examplesOlli Vuolteenaho2025-11-282-2/+2
| | | | | | | | | This will match them with Q4A. Task-number: QTBUG-138877 Pick-to: 6.10 Change-Id: Ia5cb1954b361f7f0abb788c326045f71da202607 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: update manual test for software keyboardKonsta Alajärvi2025-11-261-49/+53
| | | | | | | | | | | | | | | | Small update for the Android software keyboard test application. Replace previous many checkboxes for InputMethodHints related TextFields with just one, as we can confirm the inputhints working with just one check. Add GBoard checkbox for default behavior TextField, as this was missing. This creates less repetition when running the test. Task-number: QTBUG-140933 Change-Id: I4eaf340d3240d03225df56e15e37c25082866991 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* testbench: add transparent icon to relevant controlsMitch Curtis2025-11-2413-10/+48
| | | | | | | | This allows us to test icons with their original colors. Pick-to: 6.8 6.10 Change-Id: I794be82b286d71d3b037209624169bf18c57e62b Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* testbench: add icons to more controlsMitch Curtis2025-11-246-0/+35
| | | | | | | | | Not all styles display icons for all controls, but it's good to have complete coverage in testbench anyway. Pick-to: 6.8 6.10 Change-Id: Ic347c408ababca4c8deb9acea83c26fa36c7ea75 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* testbench: fix build on macOSMitch Curtis2025-11-181-13/+16
| | | | | | | | | | | | | | The error was: ld: open() failed, errno=21 Use similar CMake commands as e.g. the textrendering manual test. Amends dd31db74a3e8d741fce5b64e5f9223d162534b1a. Pick-to: 6.8 6.10 Change-Id: I7dac1567fd2e4269516f7d6c7db5812be3646e6d Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Android: add manual test for software keyboardKonsta Alajärvi2025-11-173-0/+163
| | | | | | | | | | | | | | | | | | | | | Add tests to check that Android software keyboard performs as expected with various scenarios, such as: - Portrait mode - Landsape mode - Multi-window mode - Split-screen mode - CJK languages - Microsoft Swiftkey keyboard There are also three different Textfields that all have different configurations. To consider the test completed succesfully, all of the listed scenarios need to be completed with each of the Textfields. Task-number: QTBUG-140933 Change-Id: Id9e82d6ca189b5f6761b47d672ee032913610bf6 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* testbench: add icon states for delegate controlsMitch Curtis2025-11-115-5/+40
| | | | | | Pick-to: 6.8 6.10 Change-Id: Ia9a58cfe033b4243bb75c1250b75c8080ad7042d Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* testbench: replace check icon with heartMitch Curtis2025-11-114-1/+19
| | | | | | | | This allows us to test setting icon.color to "transparent". Pick-to: 6.8 6.10 Change-Id: I5b4523a8c4d45de3455302cf582dd33a23399ae3 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* testbench: move context property into Utils singletonMitch Curtis2025-11-115-2/+42
| | | | | | Pick-to: 6.8 6.10 Change-Id: Iabfea6ceddb85a58b24180e09c20980b383e5fb5 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* testbench: convert to declarative type registrationMitch Curtis2025-11-1118-227/+102
| | | | | | | | Also remove unused qmake files. Pick-to: 6.8 6.10 Change-Id: I3a29e1b40361d852b4a87c748e8838b99fbd8805 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Dialogs manual test: add radio buttons for selecting popupTypeOliver Eftevaag2025-10-245-0/+125
| | | | | | | | | | This makes it more convenient to test changes to dialogs for both popup types. Only Popup.Item and Popup.Window are relevant for dialogs at the moment. Change-Id: I766030dee06d342c115941e83acb74afedc82921 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQmlCodeModel: call CMake on workspace openingSami Shalayel2025-10-211-0/+8
| | | | | | | | | | | | Run CMake when opening a workspace, right after CMake was enabled. Add a scenario in the manual test for this feature, and disable CMake builds in some tests to avoid running CMake in unrelated tests and making them slower. Fixes: QTBUG-119163 Change-Id: Ia076db3d44fa41db747dc09afdb2902be0c472a3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* test: Make manual vectorimagetest compile againEskil Abrahamsen Blomfeldt2025-10-161-1/+1
| | | | | | | | find_package(Foo) no longer implies find_package(FooPrivate), so this needs to be made explicit. Change-Id: I281b376c123bde0b0e067f2fc329a5e4d28ebfca Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QQmlCodeModel: run CMake build in backgroundSami Shalayel2025-10-021-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | Move the CMake feature from QQmlCodeModel to the QQmlCodeModelManager and use QProcessScheduler to run CMake builds. Move the CMake prober thread (that tests whether `cmake --version` can be executed) into the QQmlCodeModelManager, as it does not need to be executed for each code model. QQmlCodeModelManager::tryEnableCMakeCalls() will run the CMake test, and then enable CMake on all workspaces if CMake is available. Use an enum for QQmlCodeModelManager's CMake status, instead of a bool, as we now have three states: CMake enabled, CMake disabled and CMake currently being tested. Let the QQmlCodeModel register their build commands into the shared QProcessScheduler via signal-slot connections setup in their tryEnableCMakeCalls(QProcessScheduler *). Once a build is done, force update all open files to get up-to-date linting warnings, go to definition destinations, autocompletions, etc... Task-number: QTBUG-119163 Change-Id: If8978834b582fa66854ab9bc45e138e5d052d506 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Tests: gifs - include missing headerTim Blechmann2025-09-241-0/+1
| | | | | | | | | QSignalSpy is used, but the header is not included. This patch fixes a compile error when building manual tests. Pick-to: 6.8 6.10 Change-Id: I8e6fc644aa73ff3d926a61687122fa210bcf5cd9 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* qmlls: fix manual testSami Shalayel2025-09-161-2/+6
| | | | | | | | | | | | | Fix the module name, it seems that the author didn't realize the mismatched case probably due to his case-insensitive file system. Also add an artificial warning (assigning to inexisting property `invalid`) to better distinguish the cases of "qmlls has no lint warnings to show about the module import" and "qmlls crashed and thats why no lint warnings are to be seen". Task-number: QTBUG-119163 Change-Id: I32735dfa08417ca1dba11f4a4899a040907c4999 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Add ShapePath.cosmeticStrokeShawn Rutledge2025-09-126-11/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QSvgRenderer already obeys the QPen::isCosmetic() setting. Now we add a ShapePath.cosmeticStroke property and try to support cosmetic stroking both with SVG and with Shapes, in all renderers. The curve renderer now starts with skinny triangles: each segment's end vertices are passed to the vertex shader with their original positions, and the shader uses the normal and the stroke width to expand the stroke triangles outwards as needed. We always add triangles for end caps, regardless whether they are square or round. We get rid of addBevelTriangle and fix bevels, square caps and miters: All three of these cases are done by drawing lines adjusted to the right direction within the respective triangles. And to avoid seeing rounded ends at any reasonable zoom level, we need the line equation coefficients to take the line very far outside the actual triangles. Square caps are really square: we render line segments in those three triangles, not extensions of the adjacent curve or line. Miters are also rendered as straight tangent lines. The bevel's triangle is very short when the join is an acute angle, and almost as tall as the full stroke width when the join is very obtuse. But when the triangle is short, we need to diminish the stroke width rendered in the fragment shader so that the center of the stroke falls on the inner corner of that triangle, and the edge of the stroke is rendered along the outer bevel edge rather than trying to go outside. That's achieved by multiplying the stroke width by the cosine of half the total angle, AKA the dot product. That is now in the normalExt.z vertex attribute. Normals (normalExt.xy) can be premultiplied rather than normalized: in fact some of them already have length > 1. In qsgbatchrenderer, Renderer::prepareAlphaBatches() breaks batches when overlaps occur. Now that we stroke lines with vertices that represent them as zero-width lines (and thus Element.bounds has the same x or y coordinates on both corners), we must consider lines right on top of each other to be overlapping: e.g. the stacks of horizontal (dashed) line segments in paint-stroke-202-t.svg must be in separate batches. At the time QQuickShape::updatePaintNode() is called, the available transform node (from UpdatePaintNodeData or an individual node's parent which is a transform node) does not contain the scaling factor that we need to allow for the stroke width to be adjusted for cosmetic stroking. But in QQuickShapePrivate::sync(), windowToItemTransform() is known, and from bde55ad574ac84440e2cdc9c1122a344bb1cb67a we have a precedent in QSGCurveStrokeMaterialShader::updateUniformData() for using the square root of the matrix determinant as a scaling approximation (ok when the scaling is uniform). QQuickShapeSoftwareRenderer::setNode() was already adjusting a path's bounding rect by its stroke width, and we need a multiplicative factor there to account for cosmetic stroking, to avoid excessive clipping in the software renderer. So now we have another use for the triangulationScale that was introduced in bcfcaeb87be783d8c329b0bc96323f1c9863982d. When QQShapeGenericRenderer is used (rendererType == GeometryRenderer), and any ShapePath has cosmeticStroke, we need it to re-triangulate whenever scale changes. QQuickShapeGenericRenderer::triangulateStroke() calls QTriangulatingStroker::setInvScale(1 / triangulationScale), and QTriangulatingStroker::process() multiplies its m_width by the inverse scale that was set (since 2009). So this tells us that the intended meaning of triangulationScale is the inverse of the factor by which we multiply the pen width. And when QQShapeGenericRenderer is in use, and there are cosmetic strokes, QQuickShape::itemChange triggers re-triangulation on changes in scale. When setting the QQuickShapeCurveRenderer::DebugWireframe debug visualization flag, we need to repeat the vertex shader calculations to expand the "skinny" triangles according to stroke width, just as we do with the actual stroking vertices. For now customTriangulator2 remains as legacy code, to be removed later on. It's poorly named, and returns a list of TriangleData which need to be iterated afterwards ("fix it in post"), looking up the QQuadPath::Element again in that second loop, which can go wrong when a path contains a move command. (For example, it could calculate a bevel between the end-tangent of one subpath and the start-tangent of the next.) customTriangulator2() was called from only one place, processStroke(), to which addStrokeTriangleCallback() is given: so the new way is to just call the callback directly as soon as we've calculated each triangle. Because we are not iterating again afterwards, the switch(type) is not needed in that case, and we no longer need TriangleData::type, except for supporting customTriangulator2(). [ChangeLog][QtQuick][Shapes] ShapePath now has a cosmeticStroke property which causes strokeWidth to be constant despite scaling. Set the environment variable QT_QUICKSHAPES_STROKE_EXPANDING to 1 to enable an experimental method of expanding strokes in the vertex shader, minimizing the need to re-triangulate when strokeWidth changes. Task-number: QTBUG-124638 Change-Id: I4eac0ddcd6f623b79bc70c766ff116f4b77736cb Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* painterpathquickshape test: Add designhelpers_rectangleshape.qmlShawn Rutledge2025-09-103-0/+79
| | | | | | | | | | | | | | | | Lancelot at some point complained about AA changes in (among others) the designhelpers_rectangleshape.qml baseline. By having a closer look, it became clear that the issue was actually overlapping triangles on arc triangulation. It's not the only case where those occur, but it seems like a good test case to have, because rounded rectangles are so common. This is not the complete set of shapes from designhelpers/designhelpers_rectangleshape.qml : just a few that were flagged in Lancelot, plus a ControlledShape that reproduces a similar shape and is adjustable in the usual ways. Change-Id: Ic87f51e284157ca37b0e693e057a5ff9bdba3dcf Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Dom: remove redundant codeDmitrii Akshintsev2025-09-081-2/+7
| | | | | | | | | | | | | This commit removes the following: - pre and postCode from MethodInfo and ScriptExpression - setCode from MethodInfo and MutableDomItem - some other dead code of MutableDomItem Change-Id: Id5be7626d75c2c469bafd792994c3030c23a5595 Task-number: QTBUG-121518 Task-number: QTBUG-121933 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* tests: Support looping in vector image manual testEskil Abrahamsen Blomfeldt2025-08-208-20/+87
| | | | | | | | This adds an option to run animations in a loop. Pick-to: 6.10 Change-Id: Ie6324ddb47c86c66e3089e91e41aead85c00877e Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* manual tests: compile fix for namespaced qtTim Blechmann2025-08-132-0/+4
| | | | | | | | QT_USE_NAMESPACE was missing, so they didn't compile with namespaced qt. Pick-to: 6.10 Change-Id: Ic4b1126cfab7780c714a737e81f0947664bade02 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQ4A: Update Gradle and Kotlin plugin versions in examplesOlli Vuolteenaho2025-07-151-1/+1
| | | | | | | | | | | Gradle 8.10 -> 8.14.2 Kotlin Android Gradle plugin 2.1.0 -> 2.2.0 Pick-to: 6.10 Task-number: QTBUG-137782 Change-Id: I62b54d2730b1fc48139057d1a4ef0ce4061aaeb0 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
* tests: fix cmake buildTim Blechmann2025-07-101-1/+1
| | | | | | | | | | The manual test svg was renamed, which breaks builds with manual tests enabled. Amends 7b44231f33959a40684aebefcf6473a5339ef445 Pick-to: 6.10 Change-Id: Ib03e4036718c49297e88ab35c43aa411963a41a1 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* tests: Keyboard navigation in vector image manual testEskil Abrahamsen Blomfeldt2025-07-031-0/+3
| | | | | | | | | | This makes it possible to just use the arrow keys to navigate back and forth between files, since doing this with the mouse can get tedious. Pick-to: 6.10 Change-Id: I48bd4c644d1acddb6b46293b72b154d4e87001a8 Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
* test: Make file selector combo in the vectorimage manual testEskil Abrahamsen Blomfeldt2025-07-023-15/+36
| | | | | | | | | Instead of just showing the current file in a label, make it a combobox, so that you can skip directly to the file you want. Pick-to: 6.10 Change-Id: Ia9c48414541bb3e8ad70d685e6e426446ce4c1a8 Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
* testbench: add SearchFieldMitch Curtis2025-07-012-0/+72
| | | | | | | Pick-to: 6.10 Change-Id: Ieafa5b40a3c43646ec89649afec80d0748ccfa2f Reviewed-by: Dilek Akcay <dilek.akcay@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Rename svg manual test to vectorimagetestEskil Abrahamsen Blomfeldt2025-06-2630-0/+0
| | | | | | | | | | This now shows Lottie files as well, so it should have a more generic name. Task-number: QTBUG-135267 Pick-to: 6.10 Change-Id: Ibb6a17cf215dde7c0c32b4cdfd37e6227ec3cd9a Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Also support Lottie files in manual testEskil Abrahamsen Blomfeldt2025-06-269-61/+144
| | | | | | | | Task-number: QTBUG-135267 Pick-to: 6.10 Change-Id: I505ae072ed61e39ec43370cfd1b538f24b3b7926 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
* Remove QML generator from SVG manual testEskil Abrahamsen Blomfeldt2025-06-265-86/+9
| | | | | | | | | | | | | | | | | The QML generator code path in the test has some bugs due to how it generates embedded images. In addition, it does not map to loading other file types such as Lottie in the same application, since that would need special handling. Since it is now tested through the item generator (the item generator uses it internally), we don't need a separate UI for this in the test. Task-number: QTBUG-135267 Pick-to: 6.10 Change-Id: I9e35bccebcd9e763c74ce44cf9d4e89fc0d1a802 Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Allow SelectionRectangle dragging if TableView doesn't flick via mouseShawn Rutledge2025-06-201-5/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting `interactive: false` on TableView is drastic (except perhaps in some mode that the user can enter somehow), but setting `acceptedButtons: Qt.NoButton` should be the default, to have flicking on touchscreens but avoid dragging by mouse. This is possible since cbc694491b8431fd3dcf82c3d17a17a06cbccebc (but the default was not changed, for fear of surprising users with a behavior change). So now QQuickSelectionRectanglePrivate::updateSelectionMode() allows dragging in either case, via all devices if the TableView is not interactive, or mouse-only if the flicking is touch-only. Long-press has so far been allowed to select only in the case when dragging cannot select. But if the TableView has interactive: true, then you can flick it on a touchscreen, regardless of how acceptedButtons is set, even though we may expect the user to select dragging the mouse. So now if `selectionMode: Auto` is declared, and touch flicking works, we allow the long-press to select, because otherwise there would not be a way to make a selection on a touchscreen. We should not consider `interactive: false` to be normal (unless the developer finds a need to disable scrolling in some unique modal use case that can be exited somehow). `acceptedButtons: Qt.LeftButton` is not a very useful setting either (even though it's still the default). The snippet is improved to illustrate, along with some drive-by's. Docs explain the behavior in more detail. Test coverage is added in the manual test and the autotest. Pick-to: 6.9 6.10 Task-number: QTBUG-97111 Task-number: QTBUG-132268 Change-Id: I912dbc7bf8de536794b5bdcc1269bf2860645de9 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* compile fix for manual testsTim Blechmann2025-06-201-6/+7
| | | | | | | | QLibraryInfo was used, but the header was missing Pick-to: 6.10 Change-Id: I141f7b5340b92df5bb757f2caed22b8375ee05e7 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Improve builds for non-threaded qtTim Blechmann2025-05-201-1/+1
| | | | | | | | | | A top-level configuration with FEATURE_thread=OFF fails when autotests are enabled. Most tools can be built without threads nowadays, so we enable them and only exclude the qquickworkerscript and gifs tests. Pick-to: 6.8 6.9 Change-Id: I809b021b4bdc4031d6c3335bea3aee414f5ce863 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Don't enable ASM languageJoerg Bornemann2025-05-0231-31/+31
| | | | | | | | Remove the ASM language where no assembler files are used. Pick-to: 6.5 6.8 6.9 Change-Id: I3c94f798803b054a432fc2c8d6d65c665572a202 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Doc: Version string '6.9.0' found in 6.10.0 sourcesInkamari Harjula2025-04-241-1/+1
| | | | | | | | | Version strings fixed in qtdeclarative. Task-number: QTBUG-135944 Change-Id: If829e0b430532c38300a461351e80e79665756e0 Reviewed-by: Johanna Äijälä <johanna.aijala@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Tests: include QTest, not QtTestGiuseppe D'Angelo2025-04-155-5/+5
| | | | | | | | | | | | | Never use module-wide inclusions. They blow up build times. For QtTest this is usually just a typo (QTest was meant instead). Add missing includes as needed. In the diffs I've spotted other huge inclusions (QtQuick, QtQml), but those need more attention. Task-number: QTQAINFRA-7110 Pick-to: 6.9 6.8 Change-Id: I74bf3fe212f50a7a3a6af2b1c80bbcaabc2516d7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Port away from QPairZhao Yuhang2025-04-122-5/+5
| | | | | | | | QPair is just an alias of std::pair anyway. Task-number: QTBUG-115841 Change-Id: I26fc90adcc775aac9955ad57304af914dc4ed48f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix the build with manual tests enabledAlexey Edelev2025-03-241-0/+4
| | | | | | | | | | Add the missing intermediate CMakeLists.txt Ammends 8009825f52d72d03921739af162410491ba8dc58 Fixes: QTBUG-135091 Change-Id: Idde1c8c08d18ef678e1c5a7acf544f5c451f35a5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Android: update Qt Quick for Android examples to SDK 35Rami Potinkara2025-03-201-2/+2
| | | | | | | | | | | | This patch updates qtdeclarative examples to use SDK 35 as a target and compile version SDK. Task-number: QTBUG-130285 Task-number: QTBUG-129461 Pick-to: 6.9 6.8 Change-Id: Ie11f8bebff7dfeb4c1a87c07826f9e9ef0f78d4b Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Document better how listview snaps its items under its various modesJan Arve Sæther2025-03-061-0/+185
| | | | | | | Also add a manual test Change-Id: I28955a454eeaa8ab52431c85cd99649ccbb667d0 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Move manual test into sub folder of listviewJan Arve Sæther2025-03-063-0/+0
| | | | | Change-Id: I94a9220b27fb9160e2251342ac6f44f7eccf5feb Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QuickControls: Add vertical and horizontal header view delegatesMohammadHossein Qanbari2025-03-061-29/+106
| | | | | | | | | | | | | | | | | | | | | | Implement QQuickHeaderViewDelegate as the base class for header view delegates, introducing 'headerView' and 'orientation' properties. Separate previous delegate settings into HorizontalHeaderViewDelegate and VerticalHeaderViewDelegate components for Basic, Fusion, and Imagine styles. This change improves the modularity and reusability of header view delegates across different styles. It also allows for more consistent behavior and easier customization of header views. A test suite has been added to verify default property settings and ensure the new components work without warnings. [ChangeLog][QtQuickControls][HeaderView] Add dedicated delegate components for vertical and horizontal header views. Task-number: QTBUG-70326 Change-Id: I8831e77f6909bdae13c3a7262145ab156f63a59a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Material: Fix FloatingPlaceholderText X positionBartlomiej Moskal2025-02-282-0/+40
| | | | | | | | | | | | | | | | | | | In cb7eb152204e206539f307a9556eea43c589f026, we stopped using the leftPadding value for FloatingPlaceholderText. As a result, the text is now misaligned with the placeholder. This commit restores the FloatingPlaceholderText X position to leftPadding. If leftPadding is not set, it defaults to Material.textFieldHorizontalPadding. To prevent regressions (such as QTBUG-120149), a new X position animation has been added to FloatingPlaceholderText. Fixes: QTBUG-133492 Pick-to: 6.9 6.8 Change-Id: I5c80dcedd7c2beec0891b524fc55388fa5456f2a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* ContextMenu: add to text editing controlsMitch Curtis2025-02-281-29/+0
| | | | | | | | | | | [ChangeLog][Controls] TextField and TextArea now provide a ContextMenu by default. If you already have a custom context menu for these types, ContextMenu will not open its own on e.g. right click. Fixes: QTBUG-35598 Pick-to: 6.9 Change-Id: I0897a7ba5e1b5b6d5425c80cbc6f2550c904605b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* vectorimage: Use unhinted font layoutsEskil Abrahamsen Blomfeldt2025-02-272-5/+7
| | | | | | | | | | | | | | | The whole idea of VectorImage is scalable graphics, and a hinted font layout is inherently unscalable, as the glyph positions will be rounded to integers. Therefore, we need to disable hinting on the QFont before creating the layout. This also updates the svg manual test to compile and run again, as it seems to have been broken at some point. Pick-to: 6.8 6.9 Fixes: QTBUG-133852 Change-Id: Idd63a9fcab51c1f077427ea06ad891975ee73386 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QQ4A: Fix status change listener in service manual testPetri Virkkunen2025-02-241-15/+24
| | | | | | | | | | | | Due to 76bb559e5fbf2dfaf017f8b4a3435938b4d5f4fa, the QML status change listener is no longer a functional interface, and cannot be represented with a lambda. Replace usage of this interface with a fully formed instance. Fixes: QTBUG-132461 Pick-to: 6.9 Change-Id: Ib456df209189e9657fb65987e7f5b13f19e7b8f5 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Make module ready for source SBOM checkingLucie Gérard2025-02-212-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | This includes: - turning VERIFY_SOURCE_SBOM ON - adding rules to the licenseRule.json files - correcting the licensing given via REUSE.toml files - renaming license files not located in LICENSES folder. Their name needs to be prefixed with `LICENSE.` to be ignored by reuse and excluded from the source SBOM. The names are updated in the corresponding qt_attribution.json A lot of files are skipped during the license test, but all are present in the source SBOM. This is why corrections are needed before turning the source SBOM check on. [ChangeLog][Third-Party Code] Renaming the license files with prefix LICENSE. to have them ignored by reuse tool. Task-number: QTBUG-131434 Pick-to: 6.9 6.8 Change-Id: I2b3e4750405f13a97b350ee65def30f1330526a3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Refactor corner radius handling with explicit unset stateMagdalena Stojek2025-02-211-2/+2
| | | | | | | | | | Replace the use of -1 to indicate unset corner radii with explicit bitfield flags to track whether each corner radius is set. The default value for unset radii remains 0.0. Fixes: QTBUG-120188 Change-Id: If51a0165386a0c474ecd57ef23310d1c28f0f60b Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>