| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is close to what the widget QMenu (and Windows native menu) do.
Before, the active menu was left open and Alt+<key> shortcut would be
delivered to one of the matching items, which might be an item shadowed
by the active menu popup.
With this patch, the active menu is closed on Alt key pressed so the
subsequent shortcut event will (likely) be delivered to the matching
MenuBar item. Since I'm going to fix the issue of &mnemonic key conflict
resolution, I need to first change the way of delivering a shortcut
event to the parent MenuBar.
The test cases use the undocumented function to simulate low-level
behavior of Alt itself and Alt+<key> events. Apparently, there's no
public QTest function to send multiple key events without releasing Alt
modifier.
Task-number: QTBUG-86276
Pick-to: 5.15
Change-Id: I0ed6ea94f0fee7983a5cb6352d388036d3a1f8df
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Controls][Menu] The deprecated removeItem(var)
function was removed. removeItem(Item) or takeItem(int) can be used
instead.
Change-Id: I79757c22b4f81e1b380798623bd1f15eb09c1647
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-82279
Change-Id: Ibc9bae71995f140882dd0f636ff360af8ac0337c
Pick-to: 5.15
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The existing implementation was removed in order to reduce massive code
duplication and simplify color resolving process. Unit tests were fixed
accordingly.
See related changes in the qtdeclarative module for the further details.
[ChangeLog][General] the palette API is a part of
QQuickItem now.
Change-Id: Ic94ab4632e626c11d9b26f035e2a8a119c9088ef
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The warnings were about:
- Undocumented function parameters
- Instances of \instantiates that us an internal class
- A few link issues
Task-number: QTBUG-79827
Change-Id: I60094279c7da6bc446b5c63b7b4924b71cee4672
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|\
| |
| |
| | |
Change-Id: I34f3fa5e3cd2ebb0ed8f7d4e6d5ed6f66422a48d
|
| |
| |
| |
| |
| |
| |
| |
| | |
if the timer event's timerId isn't recognized,
make sure control passes to the base class
Change-Id: If5988dbf4ccda6a9887805961b439f93640f71ea
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: Ib55ecb95e5ae47cc7a46f136a2f2eb158676ea34
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-75546
Change-Id: I6e672c3a8390c4cf10dc9576cc3bf1eb10a6246b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I2d9537a060ecbed1cc51dbebcc20b09753e41330
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Short version:
There are currently two problems with MenuItems:
- Mirrored MenuItems don't fill the Menu's available width.
- MenuItem does not fill the Menu's available width when changed
after Component completion.
This patch fixes both of them by listening to geometry changes in both
the contentItem and individual menu items, and setting the explicit
width of those menu items when either changes.
Longer version:
The first problem can be seen whenever the MenuItem's implicitWidth
changes:
- QQmlEngine::retranslate() is called, causing all bindings to be
re-evaluated
- The MenuItem's font size changes
- The MenuItem's icon size changes
- etc.
We fix this by making Menu listen to the width of each of its MenuItems
and call resizeItem() if it doesn't have an explicit width.
The second problem can be seen when e.g. resizing a Menu to account
for new items that are wider and hence require more space.
This can be fixed by listening to width changes in Menu's contentItem,
which was actually done in earlier versions but (probably accidentally)
removed in 482ecb0f.
I had tried to solve both issues by setting the explicit width of
MenuItem to the width of its Menu, or undefined if it has none
(which means it reverts to its implicit width). However, this does
not account for e.g. MenuSeparator and custom items that can be added
to Menu - they should also have their width fill the Menu automatically
if they don't have an explicit width set.
Change-Id: I95dd0da0919a1e297f2e2030da746ff1f1a17644
Fixes: QTBUG-75051
Fixes: QTBUG-75142
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|/
|
|
|
|
|
|
|
| |
After qtdeclarative/325e6305b418ffe1dfb9a36c2516c6a8a3de5733,
QML models are in a new module.
Change-Id: Ifa98380d4febd212628fb4007a3cc9dce98c995b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Change-Id: I7eb394ca3991eae585fbbd8e665c46b11ef64a07
Fixes: QTBUG-70181
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
When a menu item with a sub-menu was triggered by key or mouse,
it would open the sub-menu with the first menu item highlighted.
This doesn't make sense for disabled menu items, so this patch
makes it find the first enabled item.
Change-Id: I9df1c750749e5a77b027b6f476b8ae1f5ea035bd
Fixes: QTBUG-69540
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts the following commits:
d5cb26bc56a3b6f6e99c88654d4f7a65f43551ac - Menu: ensure the correct delegates are used when created via Component
d923dd467c1aeb3e195a09949b04862084002f88 - MenuBar: ensure the correct delegates are used when created via Component
d56c193eb4ceb640611d66f22e1f26aae91cd7d1 - QQuickPopupPositioner: avoid adding duplicate item change listeners
567a2de8cd493aabe0055d6dbc367b39447e70dd - Stabilize tst_qquickmenubar
953fbac6131823e4fce0eb4707a854469c4c04ff - Fix Instantiator-created MenuItems disappearing
936d31179d44220571ded15840bedeccb581c83b - tst_qquickmenu: add a test for MenuItems before and after a Repeater
fc1832810f6c09505d9413685ed0b2d6295bea4a - QQuickMenuBar: fix menu not opening
The fix for QTBUG-67559 has caused lots of issues, with the latest being a
crash right before the 5.12 release. The bug that they fix is a P2,
so it's not worth the hassle. The patches might be able to be resubmitted
to dev after the crash is fixed.
Change-Id: Ic192c7a302176bcdb2503b636b3462b10898a2ba
Fixes: QTBUG-71770
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When d5cb26bc fixed a bug in Menu, it also broke the use case
of having an Instantiator create menu items. Using an Instantiator
like this allows users to create a "Recent Files" menu, for example.
The issue was that we would indiscriminately recreate items, even
those owned by an Instantiator.
This patch avoids recreating items owned by Instantiators.
It also adds a logging category for Menu, to aid debugging.
Fixes: QTBUG-71066
Change-Id: Ie0e46de1cbfaee81b43d63f3143435f2514371d5
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|\
| |
| |
| | |
Change-Id: I3fa0011d8b69db2a004feb177a7f89ccb75a724d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Don't add items until we're complete, as the delegate could change in
the meantime. Instead, add them to contentData and create them when
we're complete.
Task-number: QTBUG-67559
Change-Id: I5f42129f49de861ff5f15d0069daeda0b4e5017c
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
We don't have the conflicting virtual getters anymore.
Change-Id: Ia20bfa0a0b1aa67c35a23270eb0241018f8e0ada
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quicktemplates2/qquickabstractbutton_p_p.h
src/quicktemplates2/qquickcombobox.cpp
src/quicktemplates2/qquickcontainer.cpp
src/quicktemplates2/qquickcontrol.cpp
src/quicktemplates2/qquickcontrol_p_p.h
src/quicktemplates2/qquickdialog_p_p.h
src/quicktemplates2/qquickdialogbuttonbox.cpp
src/quicktemplates2/qquickdialogbuttonbox_p_p.h
src/quicktemplates2/qquickdrawer.cpp
src/quicktemplates2/qquickmenubar.cpp
src/quicktemplates2/qquickmenubar_p_p.h
src/quicktemplates2/qquickpage.cpp
src/quicktemplates2/qquickpage_p_p.h
src/quicktemplates2/qquickpane.cpp
src/quicktemplates2/qquickpane_p_p.h
src/quicktemplates2/qquickpopup.cpp
src/quicktemplates2/qquickpopup_p_p.h
src/quicktemplates2/qquickrangeslider.cpp
src/quicktemplates2/qquickscrollview.cpp
src/quicktemplates2/qquickslider.cpp
src/quicktemplates2/qquickspinbox.cpp
src/quicktemplates2/qquickswipeview.cpp
src/quicktemplates2/qquicktabbar.cpp
src/quicktemplates2/qquicktextarea_p_p.h
src/quicktemplates2/qquicktextfield_p_p.h
src/quicktemplates2/qquicktheme_p.h
Change-Id: I6e2b8fe99e51e3e26c87546aa66af045bc429ec4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The code is more readable and less error-prone (this patch caught a few
uninitialized members) when the members are initialized in the same
place where they are declared. In many cases, empty default destructors
can be entirely removed, and we get faster implicitly declared inline
default constructors defined by the compiler.
Change-Id: I14c5448afc901f9b2ac5965f28c1c26c0b646c08
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Iea8c1b8609778604af06cc70eaefad21f00186bd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replace the old enums that were originally copied from QPlatformTheme,
including irrelevant entries for DockWidget, MdiSubWindow, MessageBox,
with a unified enum that will be matched to cover everything needed
for theming fonts and palettes for Qt Quick Controls 2.
Task-number: QTBUG-67062
Change-Id: Ia99d092f28c00210c0c7f24d4241eb5a5d9ceb5b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
QPlatformTheme is too limited for our theming purposes. We need support
for separate palettes (and later, icon colors) in dark and light themes.
Also, the fact that Qt Quick Controls 2 injects a platform proxy theme
does have undesired side effects in Qt Widgets and Qt Quick Controls 1.
Therefore, we start separating QPlatformTheme and QQuickTheme. The first
step is to eliminate some direct QPlatformTheme access in QQuickControl
and route it via QQuickTheme instead.
Task-number: QTBUG-51921
Change-Id: I055471a75ed6f26968796496efd1892975447c98
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/imports/controls/BusyIndicator.qml
src/imports/controls/CheckBox.qml
src/imports/controls/CheckDelegate.qml
src/imports/controls/ComboBox.qml
src/imports/controls/DelayButton.qml
src/imports/controls/Dial.qml
src/imports/controls/ItemDelegate.qml
src/imports/controls/MenuItem.qml
src/imports/controls/RadioButton.qml
src/imports/controls/RadioDelegate.qml
src/imports/controls/SwipeDelegate.qml
src/imports/controls/Switch.qml
src/imports/controls/SwitchDelegate.qml
src/imports/controls/doc/src/qtquickcontrols2-configuration.qdoc
src/imports/controls/material/CheckDelegate.qml
src/imports/controls/material/ItemDelegate.qml
src/imports/controls/material/MenuItem.qml
src/imports/controls/material/RadioDelegate.qml
src/imports/controls/material/SwipeDelegate.qml
src/imports/controls/material/SwitchDelegate.qml
src/imports/controls/qquickdefaultbusyindicator.cpp
src/imports/controls/qquickdefaultbusyindicator_p.h
src/imports/controls/qtquickcontrols2plugin.cpp
src/imports/controls/universal/CheckDelegate.qml
src/imports/controls/universal/ItemDelegate.qml
src/imports/controls/universal/MenuItem.qml
src/imports/controls/universal/RadioDelegate.qml
src/imports/controls/universal/SwipeDelegate.qml
src/imports/controls/universal/SwitchDelegate.qml
src/quickcontrols2/quickcontrols2.pri
src/quicktemplates2/qquickcontrol.cpp
src/quicktemplates2/qquickmenu.cpp
src/quicktemplates2/qquickpopup_p.h
Change-Id: Ib25c8b4a7fe018b7c0ade9b02bfaaa6980118c15
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickPopup is backed by a QQuickControl subclass aka QQuickPopupItem.
However, since the QML engine sees "background" and "contentItem" as
properties of QQuickPopup, we must ensure that the deferred properties
are executed for the QQuickPopup wrapper object.
Task-number: QTBUG-50992
Change-Id: I2ec055b382e41530a6f4a740cb80853c0181c21a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We've come to realize that even though it's tempting to group similar
properties together, organizing the API so that revisions are grouped
together makes future maintenance more pleasant. It's a lot easier to
to see what was added and when.
The same was done for earlier revisions in 5.9 in commit 430fe83.
Change-Id: I738d7fdadd348c21737228c37d0f31e39b37f8e7
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
MenuBar is an ordinary Item. It can be located basically anywhere, but
the idea is to introduce a new ApplicationWindow::menuBar property in a
follow-up commit. Currently the example snippets are using the header
property.
[ChangeLog][Controls][MenuBar] Introduced a MenuBar control.
Task-number: QTBUG-60350
Change-Id: Ie66dc457a3d8edbe8362fab2a591dc49442c95e2
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This seems to be one of the reasons why tst_QQuickMenuBar has had
troubles in a busy CI environment.
Change-Id: Ifa20c309eac86e8f47ba0a8c3da76a58f00465cb
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I8125971dd91614984379e734af21f5ff28852667
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is going to be used for sub-menus by QQuickMenu itself,
by the upcoming QQuickMenuBar, and allows users to implement
their own Menu navigation if desired.
Change-Id: I29258e78fec27e8dd207ed649958df1a718bcd39
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I075241c07702d1e8bbc89c43cef35525d9e67cc7
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A cascading sub-menu is parented to the menu item in its parent menu,
but a non-cascading sub-menu is parented to the parent menu's parent
item to be able to have the sub-menu visible while the parent menu
is hidden (non-cascading menus are opened and closed one by one).
Based on these conditions, resolve the parent item automatically
instead of doing it by hand in openSubMenu().
Change-Id: I5dd38ee0978604cd604dabf6f40ac4fb5f3eebbe
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][Controls][Menu] Added "count" property.
Change-Id: I42971a6bf8fd74b9f2d3df52f191b66cd7022b81
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ia63148beee6b574e435a120be245601b3a0b3322
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I0444e3e9137e1b71cdd16c35dc7cc47875937a22
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
To help propagating the cascade-property automatically, instead of
doing it manually in openSubMenu() that we're trying to get rid of.
Change-Id: I3a3d59cafccc85d6affc325eb60e717e22b8f812
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ia8ffca05d6eba5214dec3a4675be0f7a109f06bd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Moving stuff away from openSubMenu() until we can remove it...
Change-Id: I0a979a6a0de25584a213b59e1d29d3b9f78b184e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The parent argument is handy for sharing a single context menu instance
for multiple listview items:
ListView {
delegate: ItemDelegate {
onPressAndHold: contextMenu.popup(this)
}
Menu {
id: contextMenu
}
}
Change-Id: I77ff87ee03d2d1b53485863ab9c99f3226496dfc
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][Controls][Menu] Added a dismiss() method. Unlike close()
that only closes a menu and its sub-menus, dismiss() closes the whole
hierarchy of menus, including the parent menus.
Change-Id: Ibde2102bbb542a5deefdf17843496b7b80021db4
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Since 744164e6, there is no more need to manually transfer the focus
when dealing with nested menus.
Change-Id: I8e283b2ef4501aa36d57b3e06190237a1fee7133
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I960d90a7d1604f35a67dfe5f4adb57d4d62968f9
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Set the parent menu when added as a sub-menu, and reset when removed
from the parent menu, instead of waiting until the sub-menu is being
opened and never reseting it. Furthermore, fix onItemTriggered() to
not overwrite the original parentMenu value when iterating the parent
menus to close them.
Change-Id: If4cf9cd8794e34275f38a3b991e5c403725a8706
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This complements the add/insert/remove/take API that was added for
actions and menus. Unlike for menu items, there was no convenient
way to access a specific action or menu directly without accessing
the respective item first.
[ChangeLog][Controls][Menu] Added actionAt() and menuAt() accessors.
Change-Id: I5515441626b3a04b05265d5b42afdaea8e256709
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In general, when shortcuts override key press events, the respective
key release events are still sent. Therefore, in order to respect
shortcuts, key navigation should be based on key press events. Key
release -based navigation is also not going to work with nested menus
in a menubar, because a leaf menu may need to propagate key events up
to the parent menus and finally to the menubar, but only if keys are
not actually handled.
Change-Id: Ia040a387adc782d8828250fbed393ef1794f2148
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use a single example for the whole menu. We can now use Actions and the
delegate property to use the styled menu item for the whole menu. The same
structure will be used for the upcoming MenuBar example.
Change-Id: Idbaa38cc536b27a4d64eb9ad72c07936bf160d6e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously mnemonics worked only for "normal" menu items, but not for
dynamically created menu items that present actions and sub-menus. This
patch fixes the issue by specifying the menu as a QObject-parent for
such dynamically created items, because QQuickShortcutContext is based
on QObject-hierarchy.
Change-Id: I3637ef06e9cb2a27673e4618c253279a0123b7c8
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quicktemplates2/qquickmenu.cpp
Change-Id: I595ed1671fcad6c3b87123be2b825bca09552f0f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Remove the OnReleaseOutside close policy, just use the defaults from
QQuickPopup. This way menus won't get immediately closed on release,
when opened from an onPressAndHold signal handler.
Task-number: QTBUG-61608
Change-Id: Ifedd596aa0e71ac5f4211fa42e2ae499918df1b2
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|