summaryrefslogtreecommitdiffstats
path: root/src/controls/qquickmenu_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Add missing overrideAlexander Volkov2020-05-251-4/+4
| | | | | | Pick-to: 5.15 Change-Id: Iba896b0af174ed28a27413d7343427cf9b4600d3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Compile controls after changes in the meta system that broke itJan Arve Saether2020-03-251-0/+3
| | | | | | | | Problem was that moc needs to have the full definition of the types, it's not sufficient for it to have a fwd-declared type anymore. Change-Id: Ie1f1402d53e4336cd4afd018f5ae4dbdc88118c6 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Menu: Provide a safe clear() functionUlf Hermann2018-09-271-0/+2
| | | | | | | | | | | | | The menu items are generally owned by QML. Therefore we cannot delete them on clear(). The containers, however, are owned by the menu, and we have to delete them also when clearing the QQmlListProperty for a proxy menu. The QQmlListProperty, when clearing the items for a non-proxy menu, will still delete them, as that seems to be the way QML expresses its desire to get rid of them. Fixes: QTBUG-64464 Change-Id: Ied0b86496b289c2e2a83f3d6fd53d7045929beb0 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-271-0/+2
|\ | | | | | | | | | | | | Conflicts: tests/auto/qquicktreemodeladaptor/tst_qquicktreemodeladaptor.cpp Change-Id: I0b6018fdac65a5385136e4c3561fba1c52ecd32e
| * macOS: Fix native dangling menu still visible on screen and crashFilipe Azevedo2016-08-221-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | If the parent window gets destroyed while a QtQuick Controls menu is open the macOS native platform menu is not dismissed and you see a blank gray rectangle without any text. Also, at this point the QQmlEngine was already destroyed but it's still present on the call stack, so you get a crash when the stack unwinds to the original right mouse click that created the context menu. Change-Id: I638b0de13734815995d2994e6dd6603bcb0ebefc Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* | Controls: append "1" to all C++ classesMitch Curtis2016-03-181-15/+15
| | | | | | | | | | | | | | | | | | | | This is consistent with the classes that have already had this done. It prevents clashes with Qt Quick Controls 2. These classes are not available to the user, so it doesn't affect compatibility. Change-Id: Iee73ee6bc530182732ae95993e1f4fc3766eb8e0 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* | Unify license header usageAntti Kokko2016-02-041-12/+15
|/ | | | | | | Update old header.LGPL3 to header.LGPL Change-Id: I3c851bc24da89f6300b94199387d1adf16ca4f48 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Suffix QQuickMenu, QQuickMenuBar & QQuickMenuItem with 1J-P Nurmi2015-12-161-10/+10
| | | | | | | | This avoids clashes between Qt Quick Controls and Qt Labs Controls. Change-Id: Ia1d367c271a3c80259d4f59be891c211ec061e01 Task-number: QTBUG-49794 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Moved menuBar function from QQuickMenuPopupWindow to QQuickmenuv5.6.0-beta1Filippo Cucchetto2015-12-071-0/+3
| | | | | Change-Id: I6628ac2b8b07634afc1062488a12788a4e3f66c0 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* Fix proxy menu crashJ-P Nurmi2015-11-171-0/+6
| | | | | | | | | | | | Mobile-centric ApplicationWindowStyle implementations (Flat & Android) use a proxy menu to morph menubar items into a single menu button. The items are owned by the menubar and must not be deleted by the proxy menu. Otherwise, depending on the destruction order, the items would get deleted twice. Change-Id: I92d0c45fc3274574fd1edf34d8d3d081990f2727 Task-number: QTBUG-48927 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5' into 5.6Simon Hausmann2015-10-021-3/+10
|\ | | | | | | Change-Id: Ie26c941c33fdd8baab49dc13b84d02e2b83af5e1
| * Menus: Clean popup hide and destroy logicGabriel de Dietrich2015-10-011-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a menu popup gets closed it usually needs to be destroyed right away since we don't recycle its contents. There is an exception, however, and it's when he user triggers a menu item. In this case, we need to proceed in three steps. First, we hide the menu popup, then we emit the triggered signal, and when that one returns, the menu contents can be disposed. If we did all in a single step, we may end up with a crash since we don't support deleting a QtQuick item while it's running a signal handler. Delayed deletions don't work either in the case when the triggered handler ends up running the event loop. Task-number: QTBUG-45182 Task-number: QTBUG-47682 Task-number: QTBUG-48382 Change-Id: Ic39717e09f38df602f641250cd81cf4931863db6 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* | Pass non-trivially-copyable or large types by const-refSergio Martins2015-07-221-2/+2
|/ | | | | | | Change-Id: I38af4720b916731451cb28aee0d16eed097d3350 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* Menu: Add aboutToShow, aboutToHide signalsGabriel de Dietrich2015-04-161-2/+3
| | | | | | | | | | | These do the same as for QMenu, and are emitted right before the pop-up is shown or hidden. On Mac, these signals are emitted by the QPA plugin and relayed by QQuickMenu. Task-number: QTBUG-40576 Change-Id: I59113d8d9cc8c5b3140f4f552772d33dd0b6e138 Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-151-0/+5
|\ | | | | | | | | | | | | Conflicts: src/controls/qquickmenupopupwindow_p.h Change-Id: Ic935bb56f5df70645eea30c890759f5980d68fe4
| * Menu: Separate dismiss and destroy actionsGabriel de Dietrich2015-03-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids issues when the action is triggered from a Menu and the slot ends up processing pending events, effectively deleting an object while one of its QML signal handlers is being executed. The reason being that we used to call deleteLater() on the menu popup window while still in the mouse event handler. Now, we do the same thing in three separate steps. 1. Close/dismiss the menu popups, 2. trigger the action, and 3. delete the popups. This keeps the menu popups and their contents alive until we return from the action triggered handler. We also need to take care of manually destroying any popup we may create. Finally, the menu content creation in Menu.qml had to be tweaked since we shouldn't rely on the popup visibility anymore. Task-number: QTBUG-45182 Change-Id: I9f1155bbf74dd3353c6c4066a24abf1cd2c3a283 Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com> Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* | Controls: update license headersJ-P Nurmi2015-02-111-15/+18
|/ | | | | | | Change-Id: I77e7a218a958d76ac7ef7780f4be52a81f76fa6b Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* qquickmenu: add support for providing a target rect to __popup()Richard Moe Gustavsen2014-09-301-1/+1
| | | | | | | | | | | | | | | | | Using a target rect as menu location instead of a position has been supported in QPlatformMenu for a while. The reason for specifying a rect instead of a position is that then the OS can decide if the popup should be placed above or below the target rect so that it fits inside the screen. A typical example is when showing an edit menu around a text selection. If the selection (target rectangle) is far up on the screen, the popup (with arrow) will be placed below the selection instead of above, which is the normal. Change-Id: Ie6cd6a92f1d9ef480c1e455960021c7f18f86569 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Update license headers and add new license filesAntti Kokko2014-08-251-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: I470909ba0980db33ab551790d619c59a35978590 Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
* QQuickMenu: add enum MenuType that reflects QPlatformMenu::MenuTypeRichard Moe Gustavsen2014-08-061-1/+5
| | | | | | | | | | | | On mobile platforms several different popup menu types exist. E.g on iOS, you have a special popup just for selecting text. A recent patch added to QtBase added a new enum to QPlatformMenu that lets UI controls select/hint which one to use. This patch adds the same enum to QQuickMenu so that we can control this from Controls as well. Change-Id: Ibf4bdc84577b5a6527021b1cb15578b56bb4a92e Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Menu: Properly relay enabled state to QPA menu objectGabriel de Dietrich2014-06-061-0/+2
| | | | | | Task-number: QTBUG-39384 Change-Id: I1b71912b4f35ea0aa9e06667a5c0ecedec30f980 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Popup Window: Privately expose popup geometryGabriel de Dietrich2014-03-071-0/+4
| | | | | Change-Id: I28a8edd657f02cecbd0c31965bd4085429cf4537 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Menu: Don't create platform item for QQuickMenuItemContainersGabriel de Dietrich2013-12-171-1/+0
| | | | | | | | | | They don't have any QPA counterpart as they're just plain containers. This also removes that "Menu does not contain the item to be removed" warning on Mac. Task-Number: QTBUG-32197 Change-Id: I06e08817194c2e3ad3efd7ded193bfac9d3a1948 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* ComboBox: Make popup scrollableGabriel de Dietrich2013-09-191-1/+2
| | | | | | | | | | | | | | | | We factor out part the menu item container logic from Menu into ColumnMenuContent, which takes care of scrolling and mouse hovering, and selection. This makes possible to extend the menu items layout. The pop-over and pull-down look is specified by the menu style component by overriding the ScrollView style. The popup's maximum height is also specified by the menu style. The gallery example can finally use a font families combo box. Task-number: QTBUG-31568 Change-Id: I34a7278f476471c0eb51ef51dde3dd83e13002fe Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Menu: Enable mnemonic menu navigationGabriel de Dietrich2013-09-131-1/+3
| | | | | | | | | | | We also added a new mnemonic specific shortcut context matcher. This prevents two menu items with the same mnemonic but within different menus to be reported as ambiguous. Task-number: QTBUG-33030 ChangeLog: Added mnemonic navigation for menus Change-Id: I192c9aacba4d15851fe65bf9201251962fe976d5 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* MenuBar: Make sure invisible menus appear soGabriel de Dietrich2013-08-131-0/+2
| | | | | | | Task-number: QTBUG-32899 Change-Id: Id07baba90ff45ba420d563ce47ee58964d4e4d02 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Fix warning in qquickmenu_p.hCaroline Chao2013-05-031-1/+4
| | | | | | | | | | 'Warning: Property declaration __font has no READ accessor function or associated MEMBER variable. The property will be invalid.' Task-number: QTBUG-30988 Change-Id: I7530310d0da03ecd59bfe1cc3e221e776c17d4f7 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Menu: Add __xOffset, __yOffset propertiesGabriel de Dietrich2013-04-301-0/+9
| | | | | | | | | | These are for tweaking the popup position according to the current style. First usage goes to ComboBox. Also prepares for proper support of 'small' and 'mini' style hints. Change-Id: I7bc682d5d82bf6fa7a36916a9d4c64dfb2bdb56e Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Rename QtMenuXxx to QQuickMenuXxxJ-P Nurmi2013-04-151-0/+171
Change-Id: I89aa205686f0bdf2b267ad17a8ae0470c2f4751f Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>