summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@theqtcompany.com>2015-08-28 15:46:07 +0200
committerRichard Moe Gustavsen <richard.gustavsen@theqtcompany.com>2015-09-04 11:35:20 +0000
commitd4799d02385ffd9bb4c0ba2c757059a70305daf0 (patch)
treee6664bf9b62e9468a504c3b5009d3ef8fa75a17a
parent69e1b1de935511e5513fb002e2df96ac08e433f6 (diff)
iOS: compose key events from QKeySequences
Instead of hard-coding the key and modifier that should trigger a shortcut, we read it out from the QKeySequence that corresponds to a StandardKey instead. Change-Id: I6325534d3ff91c788d7e660d9009954e437b8534 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
-rw-r--r--src/plugins/platforms/ios/qiostextresponder.mm28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/plugins/platforms/ios/qiostextresponder.mm b/src/plugins/platforms/ios/qiostextresponder.mm
index 685ff8ff47..4e109f6921 100644
--- a/src/plugins/platforms/ios/qiostextresponder.mm
+++ b/src/plugins/platforms/ios/qiostextresponder.mm
@@ -333,65 +333,73 @@
#ifndef QT_NO_SHORTCUT
+- (void)sendShortcut:(QKeySequence::StandardKey)standardKey
+{
+ const int keys = QKeySequence(standardKey)[0];
+ Qt::Key key = Qt::Key(keys & 0x0000FFFF);
+ Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(keys & 0xFFFF0000);
+ [self sendKeyPressRelease:key modifiers:modifiers];
+}
+
- (void)cut:(id)sender
{
Q_UNUSED(sender);
- [self sendKeyPressRelease:Qt::Key_X modifiers:Qt::ControlModifier];
+ [self sendShortcut:QKeySequence::Cut];
}
- (void)copy:(id)sender
{
Q_UNUSED(sender);
- [self sendKeyPressRelease:Qt::Key_C modifiers:Qt::ControlModifier];
+ [self sendShortcut:QKeySequence::Copy];
}
- (void)paste:(id)sender
{
Q_UNUSED(sender);
- [self sendKeyPressRelease:Qt::Key_V modifiers:Qt::ControlModifier];
+ [self sendShortcut:QKeySequence::Paste];
}
- (void)selectAll:(id)sender
{
Q_UNUSED(sender);
- [self sendKeyPressRelease:Qt::Key_A modifiers:Qt::ControlModifier];
+ [self sendShortcut:QKeySequence::SelectAll];
}
- (void)delete:(id)sender
{
Q_UNUSED(sender);
- [self sendKeyPressRelease:Qt::Key_Delete modifiers:Qt::ControlModifier];
+ [self sendShortcut:QKeySequence::Delete];
}
- (void)toggleBoldface:(id)sender
{
Q_UNUSED(sender);
- [self sendKeyPressRelease:Qt::Key_B modifiers:Qt::ControlModifier];
+ [self sendShortcut:QKeySequence::Bold];
}
- (void)toggleItalics:(id)sender
{
Q_UNUSED(sender);
- [self sendKeyPressRelease:Qt::Key_I modifiers:Qt::ControlModifier];
+ [self sendShortcut:QKeySequence::Italic];
}
- (void)toggleUnderline:(id)sender
{
Q_UNUSED(sender);
- [self sendKeyPressRelease:Qt::Key_U modifiers:Qt::ControlModifier];
+ [self sendShortcut:QKeySequence::Underline];
}
// -------------------------------------------------------------------------
- (void)undo
{
- [self sendKeyPressRelease:Qt::Key_Z modifiers:Qt::ControlModifier];
+ [self sendShortcut:QKeySequence::Undo];
[self rebuildUndoStack];
}
- (void)redo
{
- [self sendKeyPressRelease:Qt::Key_Z modifiers:Qt::ControlModifier|Qt::ShiftModifier];
+ [self sendShortcut:QKeySequence::Redo];
[self rebuildUndoStack];
}