Commit Graph

69 Commits

Author SHA1 Message Date
Tim Blechmann 94f1f5e27e manual tests: compile fix for namespaced qt
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>
2025-08-13 09:25:59 +08:00
Mitch Curtis 2ed569070e testbench: add SearchField
Pick-to: 6.10
Change-Id: Ieafa5b40a3c43646ec89649afec80d0748ccfa2f
Reviewed-by: Dilek Akcay <dilek.akcay@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2025-07-01 09:13:50 +08:00
Tim Blechmann 9b6f70c038 Improve builds for non-threaded qt
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>
2025-05-20 15:04:51 +00:00
Joerg Bornemann 4f57e20f25 CMake: Don't enable ASM language
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>
2025-05-02 16:02:32 +02:00
Giuseppe D'Angelo fb4abf95c1 Tests: include QTest, not QtTest
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>
2025-04-15 19:27:07 +02:00
Bartlomiej Moskal e709946314 Material: Fix FloatingPlaceholderText X position
In cb7eb15220, 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>
2025-02-28 09:29:02 +01:00
Mitch Curtis 3b598b6f75 ContextMenu: add to text editing controls
[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>
2025-02-28 08:48:48 +08:00
Mitch Curtis 0794a0e06e Add ContextMenu
This is an attached type that provides a way to open a context menu
in a platform-appropriate manner.

[ChangeLog][Controls] Added ContextMenu. ContextMenu can be attached
to any item in order to show a context menu upon a platform-specific
event, such as a right click or the context menu key.

Fixes: QTBUG-67331
Pick-to: 6.9
Change-Id: I225a8f498cc5bc18d36c3dc4cf481ef5ef95cd88
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2024-12-24 19:23:43 +08:00
Mitch Curtis a2f29f710a testbench: default Material and Universal to System theme
This helps test out the runtime system theme switching.

Pick-to: 6.8
Change-Id: I02a40f2625a1afce634c7676bd94a78a052dced0
Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
Reviewed-by: Doris Verria <doris.verria@qt.io>
2024-09-18 08:47:26 +08:00
Mitch Curtis 4b996eda57 Fix warnings in ListView delegate width bindings in manual tests
Bind width to the ListView's width, not the parent, which may be null.

Pick-to: 6.5 6.7 6.8
Change-Id: I020d23bb0c98b3da00db9ffd3400a89cfdeb1810
Reviewed-by: Doris Verria <doris.verria@qt.io>
2024-08-12 10:25:25 +08:00
Mitch Curtis 199185ff53 Fix assertion failure in screenshots manual test
SNIPPETS_DIR needs to be updated after the merge of qtquickcontrols2
into qtdeclarative.

Pick-to: 6.5 6.7 6.8
Change-Id: Ic2ceabd34b35a64868e6b7e261dca19b46c7f195
Reviewed-by: Doris Verria <doris.verria@qt.io>
2024-08-12 10:25:21 +08:00
Doris Verria 84a0da1bd4 FluentWinUI3 Style: Add documentation
Task-number: QTBUG-125748
Pick-to: 6.8
Change-Id: Iaeedd4044c686d1dce4ef611a4cf9a7ea8060f83
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2024-08-09 10:27:05 +02:00
Richard Moe Gustavsen fdac10eb0d testbench: don't use native menus or menubars
The purpose of the tool is to show the styled controls.
So don't use native menus or menubars. Also, since the
menubar will warn (since Qt 6.8) if you add a MenuBarItem
to a MenuBar without a Menu, give each MenuBarItem a dummy
menu.

Pick-to: 6.8
Change-Id: I51972deea0308e7c994460ab4c6cca4fa9b5a9ab
Reviewed-by: Doris Verria <doris.verria@qt.io>
2024-07-04 16:14:08 +02:00
Richard Moe Gustavsen 399c3c4216 QQuickMenu: respect Qt::AA_DontUseNativeMenuWindows
Now that we enable native menus by default for the macOS
style, we also need to make sure that we actually respect
the Qt::AA_DontUseNativeMenuWindows.

Pick-to: 6.8
Change-Id: I2a02b5528110a4e0514fb53c0673653f0086dfe8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2024-07-03 16:36:50 +02:00
Lucie Gérard ed6afe6ae0 Correct license for tests file
According to QUIP-18 [1], all tests file should be
LicenseRef-Qt-Commercial OR GPL-3.0-only

[1]: https://contribute.qt-project.org/quips/18

Pick-to: 6.8
Task-number: QTBUG-121787
Change-Id: I50964da74d6360bb88fc468765f6362ad39d20d1
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2024-06-27 09:17:10 +02:00
Richard Moe Gustavsen 4c1174938c menus manual test: add SubSub menus
Its nice to be able to test that you can still
e.g hover the root menu, even when a subsub menu
is the active popup.

Pick-to: 6.8
Change-Id: Ibf76770a13c41f4712187daeb793439c83730db9
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2024-06-21 11:45:40 +02:00
Richard Moe Gustavsen d09570b489 Menus manual test: update popupType combobox
Update the manual test to reflect that we no longer
have a Popup.Default option. Also, after seeing some
warnings, add a popupType() function, to improve
type safety.

Pick-to: 6.8
Change-Id: I70c4a52d776522541251bb0b2ab260b735d49171
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2024-06-19 18:08:05 +02:00
Mitch Curtis da85aef9ba Fix a couple of issues in the testbench manual test
- Ensure lastSearchText is serialized when clearing text.
- Ensure that MenuItems are actually checkable.

Pick-to: 6.5 6.7 6.8
Change-Id: I51eed8b89777f79b1d86427adbd7952812f6883a
Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
2024-06-14 09:47:51 +08:00
Mitch Curtis 006bd9d7a2 testbench: add checkable ToolButton
Change-Id: I7e2ff1eda5884d1322636f29f428cd6a33559495
Reviewed-by: Doris Verria <doris.verria@qt.io>
2024-06-12 08:19:10 +08:00
Oliver Eftevaag 823026646c Replace AA_DontUsePopupWindows with Popup::popupType
The application attribute approach has some weaknesses which makes it
less suitable, than simply having a property which can be set per
instance of Popup. In addition, given just how many of our own tests
that are failing, when changing the default behavior of popup, it`s a
much safer approach to introduce this feature as an opt-in, in the
beginning. We can instead potentially modify the behavior of
PopupType::Default in the future, when we feel that it's less risky
to do so.

To give more context to why the AA approach is bad:
- The AA is too grandiose of a solution, which adds an arbitrary
  limitation of not allowing mixing of in-scene popups and popup windows.
  This also affects 3rd party libraries.

- It causes inconveniences when styling the various popup types.
  Dialog, for instance, has a title property, which should be shown in
  the window title, and not inside the popup window.

- It also makes it less flexible for potential future changes. We've
  learned that this change is riskier, than initially expected, since
  the qobject and visual hierarchy of popup objects are different when
  using popup windows, and tests that simulate events,
  will need to send the events to a different window.

The introduction of the PopupType::Default value, allows us to, for
instance, add a property later in ApplicationWindow, or somewhere else,
to change the behavior of PopupType::Default. Meaning that we can still
add a more grandiose API, that affects the behavior of multiple popup
instances, if we think it's too cumbersome for developers to add
`popupType: Popup.Window` to all popup instances.

Task-number: QTBUG-121363
Change-Id: I544da820261607621a9b9ad5c4c9679e676e44a0
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2024-05-30 21:18:42 -07:00
Richard Moe Gustavsen 562353a720 manual test, menus: use Popup.popupType
Now that Popup has a popupType API, use it in favor
of AA_DontUseNativeMenuWindows.

Change-Id: I6b666e9c36f5d8b95701ac6a94c29ac3d7a6d206
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2024-05-30 15:28:48 +02:00
Richard Moe Gustavsen 67fcd9f035 Menus test: inform when a restart is needed
Changing whether or not to use a native menu bar requires
setting AA_DontUseNativeMenuBar. But this will only take
effect the next time the app is started. So inform about
this, since it can otherwise be quite confusing for the
"tester".

Change-Id: Ie37b9ec0cc66660548ea13cb383440536e6fd707
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2024-05-29 18:48:25 +02:00
Mitch Curtis 84998a7d78 menus: fix quitting with Cmd+Q on macOS
It seems the Quit menu bar item steals the shortcut, so we have to do
something with it.

Change-Id: I3831c8bc99728773e22284232d7ab54ba6eb117f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-05-20 10:13:44 +08:00
Shawn Rutledge 3b3b5a1743 Menus manual test: open context menu on mouse press or touch long-press
This enables testing the drag-press-release gesture.

Change-Id: I953fee1f891b2ac907a5a69ca98f720496e7ed91
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-05-16 15:41:46 -07:00
Richard Moe Gustavsen 5d5849117a manual test, menus: add support for more test cases
Add more logic to the manual test to test:
1. changing the delegate
2. changing the title of a menu in the menu bar
3. using sub menus
3. using checkable menu items in the menu bar menus

Change-Id: I6a7256fb368a3557837c0448a6ddc895bb24924d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2024-05-10 09:22:43 +02:00
Mitch Curtis d981634520 Add support for icons to native menus
Task-number: QTBUG-69558
Change-Id: I9486f474dd386061636c326b508c20848ebab807
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-05-06 10:49:48 +08:00
Mitch Curtis d2711e6961 menus: add shortcuts
Task-number: QTBUG-69558
Change-Id: I440fb7caff125d2417fb648df667219e42b375bc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-04-23 13:48:01 +08:00
Mitch Curtis 822db20f84 Menu, MenuBar: remove requestNative and rely solely on app attributes
It was decided that we'll have two attributes:

- AA_DontUseNativeMenuBar
- AA_DontUseNativeMenuWindows

Setting AA_DontUseNativeMenuWindows only affects windows we create
(context menus, combobox menus, menus of non-native menu bars).
So, setting AA_DontUseNativeMenuWindows restores Qt to today's behavior.
But we can't control the windows of native menu bars, so if you don't
want those to be native, you have to set AA_DontUseNativeMenuBar just
like today.

By removing requestNative, we also effectively default to native menus
and menu bars, as the attributes are not set by default.

[ChangeLog][Controls][Important Behavior Changes] Menu and MenuBar
now use native menus by default on platforms where they're supported.

Task-number: QTBUG-69558
Change-Id: Ia917c2f820634def0cf815aa8ca8895ca79db75d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-04-17 15:05:01 +08:00
Richard Moe Gustavsen 68d40a5d44 Merge remote-tracking branch 'origin/dev' into nativemenus
Change-Id: Id09a36871013f65e5f9185fed0e3658a43bc934e
2024-03-12 10:55:22 +01:00
Mitch Curtis cb7eb15220 Material: fix floating placeholder text x position
Don't set it to control.leftPadding, because we don't want it to change
if the user changes leftPadding.

Fixes: QTBUG-120149
Pick-to: 6.5 6.6 6.7
Change-Id: I67bbc22192fef386fe088398b67d3eb0a10421ba
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
2024-03-07 09:32:12 +08:00
Volker Hilsheimer d0823fb78b Fix spelling of FFmpeg in (end-)user-visible strings
It's two capital "FF", lowercase "mpeg".

Pick-to: 6.7 6.6 6.5
Change-Id: Icc379d0a680612b612ee306be7749697906bf4c3
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
2024-03-01 15:35:15 +01:00
Lucie Gérard 9c5fc88388 Correct license for test files
According to QUIP-18 [1], all test files should be
LicenseRef-Qt-Commercial OR GPL-3.0-only

[1]: https://contribute.qt-project.org/quips/18

Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: I26d72e8de04d4c7c57b3b7838af5d033265de5ba
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2024-02-27 10:32:21 +01:00
Richard Moe Gustavsen 02a2ec0dc5 Manual test, menus: add support for testing menubar
Change-Id: Id8e55e3f3b05aab0ab02452452e08783181a7be8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2024-02-23 10:31:29 +01:00
Richard Moe Gustavsen 05b916be5c QQuickMenuBar: respect AA_DontUseNativeMenuBar
If the application sets AA_DontUseNativeMenuBar, it should
override the requestNative property.

Change-Id: Id69c09310d61e9a59746e32435a97742e28c80d3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2024-02-22 18:49:27 +01:00
Santhosh Kumar 8d3ed392bb Update manual tests and examples for change in default size policy
The size policy of item updated as part of task QTBUG-117597. This
patch update existing examples and manual tests that depends on quick
layout to embrace size policy change.

Task-number: QTBUG-117597
Pick-to: 6.7
Change-Id: I68469a3bba3c4d3e5ed4b6eae0fd765b5206efc0
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2024-02-21 14:27:54 +01:00
Mitch Curtis 9fde076798 Menu: fix native checkable MenuItems (without an Action) not checking
Not only do we need to ensure that the checked state changes so that
syncing the MenuItem to the native menu item works, but we should also
emit the same signals that would be emitted if the user had actually
interacted with the MenuItem.

Task-number: QTBUG-69558
Change-Id: I0ac1d16c0f84da1d9f6639b724ba47ea124da59a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-02-12 18:43:42 +08:00
Mitch Curtis c97884540b Menu: support adding MenuItem to native menu
Originally the plan was to revert to a non-native menu when MenuItem
was used, but now that we always create the non-native items
regardless, we shouldn't need to do that.

Checkable MenuItems do not currently work. This will be implemented in
a follow-up commit.

Task-number: QTBUG-69558
Change-Id: I7238dad89e478f7cc664738fb6036787e0193dab
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-02-12 18:43:35 +08:00
Mitch Curtis 4c21626003 Menu: allow setting (but not always respecting) requestNative
We can allow this to be set while the menu is a sub-menu and/or
visible, and instead wait until it is re-opened to take the change into
effect.

Task-number: QTBUG-69558
Change-Id: Ie79819609950c2f6432e55c09d21dce7e8d9b220
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-02-12 18:43:32 +08:00
Mitch Curtis 6ea3edd493 Menu: respect requestNative changes
This patch ensures that a native menu is created (or destroyed)
when requestNative is set, if possible.

Task-number: QTBUG-69558
Change-Id: Ic7f8826bf4def66e66932618767a81ad19e114f0
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2024-02-12 18:43:23 +08:00
Mitch Curtis d56e3f254f Implement native menu separator
Task-number: QTBUG-69558
Change-Id: I3da4509a722ec5ee4620111fc9482e6d688fdd9d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-02-12 18:43:20 +08:00
Richard Moe Gustavsen 23d9b5bfb7 Merge "Merge remote-tracking branch 'origin/dev' into nativemenus" 2024-01-22 11:53:28 +01:00
Richard Moe Gustavsen d28b13c7b1 Merge remote-tracking branch 'origin/dev' into nativemenus
Change-Id: I54bfced2ff9d5d897027dc81e6d5234d317b9b48
2024-01-22 09:00:10 +01:00
Mitch Curtis c48ef8428c Add disabled Actions to menus manual test
Task-number: QTBUG-69558
Change-Id: I6517a679a3fb80cda577971425e582c8bab5eba6
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-01-22 12:52:11 +08:00
Mitch Curtis 9563db8763 Add checkable Actions to menus manual test
This can't reliably be auto-tested because we can't interact with menu
items with the mouse, and there's no way to know if a native menu is
focused in order to interact with it via keyboard.

Task-number: QTBUG-69558
Change-Id: I21134743ccc64ca1bf99f085f09c00d66a3ca3dc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-01-22 12:52:07 +08:00
Thiago Macieira e8e818df99 Doc & Test: fix syntax of QSettings sub-groups
These examples and .conf files were using two different syntax to create
a subgroup. QSettings may not support one of them and is misbehaving. So
let's use one syntax only and the one that it produces when writing the
output.

This code:

    s.beginGroup(u"Material");
    s.beginGroup(u"Font");
    s.setValue("Family", "Open Sans");
    s.setValue("PixelSize", 20);

Produces:

 [Material]
 Font\Family=Open Sans
 Font\PixelSize=20

Fixes: QTBUG-121035
Pick-to: 6.7 6.6
Change-Id: I76ffba14ece04f24b43efffd17ab7ea941910c19
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2024-01-19 13:11:15 +08:00
Mitch Curtis bedbc950d9 Menu: get native sub-menus working
Task-number: QTBUG-69558
Change-Id: Iee7393a00bcaf4f25f579ec60ebfecf7ef357761
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-01-17 10:07:37 +08:00
Mitch Curtis 01f06efa2a Add menus manual test
This gives us a convenient way to manually test native menus, which
can't be fully auto-tested.

Task-number: QTBUG-69558
Change-Id: I045eef8d30eb8f130f6e4ba4787a9d0ad84c109f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2024-01-17 10:07:34 +08:00
Mitch Curtis 540848a4ed Material: reduce padding for Dense variant of Button
The padding was increased with the Material 3 update
(f47f8d6931), but the Dense variant never
had an effect on the values. This patch changes that.

Fixes: QTBUG-119793
Pick-to: 6.5 6.6 6.7
Change-Id: Ic37bb7861fe5e3f3dc9e97fe4ee7369b487f89df
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
2023-12-18 09:29:09 +08:00
Mårten Nordheim 0df834ee11 testbench: fix font name
fontawesome was replaced with fontello at some point

Change-Id: I435d06611ebf6f2b9b7647b0d769b75a3f6cd089
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2023-11-10 21:44:16 +01:00
Mitch Curtis 21a9e41422 macOS: add RadioDelegate
Task-number: QTBUG-115165
Change-Id: I166c4d71e62d8340a37bb11803ad209a88e4764f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2023-11-01 21:45:06 +08:00