summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qplatformmenu.h
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@digia.com>2014-03-31 14:17:29 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-04-07 08:30:24 +0200
commitb5eb850e0deb61ff71e26a5a2d0e070b91306aa2 (patch)
tree957dcbb14ee657afd74348cd4fd0179650401e5b /src/gui/kernel/qplatformmenu.h
parenta7f98a7ac01a9faa08d1119cf4d5550c50e00005 (diff)
OSX: add several menuitem roles to support menu shortcuts in dialogs
Now menu items and key shortcuts for Cut, Copy, Paste and Select All work in the standard ways in dialogs such as the file dialog, provided that the corresponding QActions have been created and added to the menu. This depends on new roles to identify each menu item which is so broadly applicable that it should work even when a native widget has focus; but the role will be auto-detected, just as we were already doing for application menu items such as Quit, About and Preferences. When the QFileDialog is opened, it will call redirectKnownMenuItemsToFirstResponder() which will make only those "special" menu items have the standard actions and nil targets. When the dialog is dismissed, those NSMenuItems must be reverted by calling resetKnownMenuItemsToQt(), because to invoke a QAction, the NSMenuItem's action should be itemFired and the target should be the QCocoaMenuDelegate. Task-number: QTBUG-17291 Change-Id: I501375ca6fa13fac75d4b4fdcede993ec2329cc7 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Diffstat (limited to 'src/gui/kernel/qplatformmenu.h')
-rw-r--r--src/gui/kernel/qplatformmenu.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gui/kernel/qplatformmenu.h b/src/gui/kernel/qplatformmenu.h
index 9326a2b3a1..19e2d9bccf 100644
--- a/src/gui/kernel/qplatformmenu.h
+++ b/src/gui/kernel/qplatformmenu.h
@@ -66,7 +66,11 @@ Q_OBJECT
public:
// copied from, and must stay in sync with, QAction menu roles.
enum MenuRole { NoRole = 0, TextHeuristicRole, ApplicationSpecificRole, AboutQtRole,
- AboutRole, PreferencesRole, QuitRole };
+ AboutRole, PreferencesRole, QuitRole,
+ // However these roles are private, perhaps temporarily.
+ // They could be added as public QAction roles if necessary.
+ CutRole, CopyRole, PasteRole, SelectAllRole,
+ RoleCount };
virtual void setTag(quintptr tag) = 0;
virtual quintptr tag()const = 0;