summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@theqtcompany.com>2015-07-02 11:11:14 +0200
committerRichard Moe Gustavsen <richard.gustavsen@theqtcompany.com>2015-08-11 10:13:32 +0000
commit0cf00efcedb8f8ef438f8d204b7adf938849bf9c (patch)
treef30861392ebeb423ca9b390a87110710fe82a481 /src/plugins
parent3dcabd8c64c6e42c857b550d8dd7cca81f1f4ea2 (diff)
iOS: support cut/copy/paste shortcuts when using Bluetooth keyboard
Change-Id: Iaa602771227f64c3a477a27656362a361f78e8dd Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/ios/qiostextresponder.mm50
1 files changed, 42 insertions, 8 deletions
diff --git a/src/plugins/platforms/ios/qiostextresponder.mm b/src/plugins/platforms/ios/qiostextresponder.mm
index 09839790fa..e933c43a9e 100644
--- a/src/plugins/platforms/ios/qiostextresponder.mm
+++ b/src/plugins/platforms/ios/qiostextresponder.mm
@@ -322,6 +322,46 @@
// -------------------------------------------------------------------------
+- (void)sendKeyPressRelease:(Qt::Key)key modifiers:(Qt::KeyboardModifiers)modifiers
+{
+ QKeyEvent press(QEvent::KeyPress, key, modifiers);
+ QKeyEvent release(QEvent::KeyRelease, key, modifiers);
+ [self sendEventToFocusObject:press];
+ [self sendEventToFocusObject:release];
+}
+
+- (void)cut:(id)sender
+{
+ Q_UNUSED(sender);
+ [self sendKeyPressRelease:Qt::Key_X modifiers:Qt::ControlModifier];
+}
+
+- (void)copy:(id)sender
+{
+ Q_UNUSED(sender);
+ [self sendKeyPressRelease:Qt::Key_C modifiers:Qt::ControlModifier];
+}
+
+- (void)paste:(id)sender
+{
+ Q_UNUSED(sender);
+ [self sendKeyPressRelease:Qt::Key_V modifiers:Qt::ControlModifier];
+}
+
+- (void)selectAll:(id)sender
+{
+ Q_UNUSED(sender);
+ [self sendKeyPressRelease:Qt::Key_A modifiers:Qt::ControlModifier];
+}
+
+- (void)delete:(id)sender
+{
+ Q_UNUSED(sender);
+ [self sendKeyPressRelease:Qt::Key_Delete modifiers:Qt::ControlModifier];
+}
+
+// -------------------------------------------------------------------------
+
- (void)notifyInputDelegate:(Qt::InputMethodQueries)updatedProperties
{
// As documented, we should not report textWillChange/textDidChange unless the text
@@ -656,10 +696,7 @@
return;
if ([text isEqualToString:@"\n"]) {
- QKeyEvent press(QEvent::KeyPress, Qt::Key_Return, Qt::NoModifier);
- QKeyEvent release(QEvent::KeyRelease, Qt::Key_Return, Qt::NoModifier);
- [self sendEventToFocusObject:press];
- [self sendEventToFocusObject:release];
+ [self sendKeyPressRelease:Qt::Key_Return modifiers:Qt::NoModifier];
if (self.returnKeyType == UIReturnKeyDone)
[self resignFirstResponder];
@@ -677,10 +714,7 @@
// Since we're posting im events directly to the focus object, we should do the
// same for key events. Otherwise they might end up in a different place or out
// of sync with im events.
- QKeyEvent press(QEvent::KeyPress, (int)Qt::Key_Backspace, Qt::NoModifier);
- QKeyEvent release(QEvent::KeyRelease, (int)Qt::Key_Backspace, Qt::NoModifier);
- [self sendEventToFocusObject:press];
- [self sendEventToFocusObject:release];
+ [self sendKeyPressRelease:Qt::Key_Backspace modifiers:Qt::NoModifier];
}
@end