summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios/qiostextresponder.mm
diff options
context:
space:
mode:
authorKai Uwe Broulik <kde@privat.broulik.de>2015-03-30 17:05:40 +0200
committerKai Uwe Broulik <kde@privat.broulik.de>2015-04-09 08:25:33 +0000
commit921b22e5cee1be54b96dcd1eebbb3db48301bc9a (patch)
tree04531f5dc2a2fb2f9d2c2fe2ca0012a8ae23f8ec /src/plugins/platforms/ios/qiostextresponder.mm
parentd47294bec7b339792cc38a0be4b05fa6bd79a6ca (diff)
qiostextresponder: Add support for ReturnKeyType
Change-Id: Ic9212468fb41d8042a345267ae69c95e0d9b4cf2 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Diffstat (limited to 'src/plugins/platforms/ios/qiostextresponder.mm')
-rw-r--r--src/plugins/platforms/ios/qiostextresponder.mm33
1 files changed, 28 insertions, 5 deletions
diff --git a/src/plugins/platforms/ios/qiostextresponder.mm b/src/plugins/platforms/ios/qiostextresponder.mm
index 5d2a675f90..4f85fb7b55 100644
--- a/src/plugins/platforms/ios/qiostextresponder.mm
+++ b/src/plugins/platforms/ios/qiostextresponder.mm
@@ -170,9 +170,31 @@
QVariantMap platformData = m_configuredImeState->value(Qt::ImPlatformData).toMap();
Qt::InputMethodHints hints = Qt::InputMethodHints(m_configuredImeState->value(Qt::ImHints).toUInt());
- self.returnKeyType = platformData.value(kImePlatformDataReturnKeyType).isValid() ?
- UIReturnKeyType(platformData.value(kImePlatformDataReturnKeyType).toInt()) :
- (hints & Qt::ImhMultiLine) ? UIReturnKeyDefault : UIReturnKeyDone;
+ Qt::ReturnKeyType returnKeyType = Qt::ReturnKeyType(m_configuredImeState->value(Qt::ImReturnKeyType).toUInt());
+
+ switch (returnKeyType) {
+ case Qt::ReturnKeyEnter:
+ self.returnKeyType = UIReturnKeyDefault;
+ break;
+ case Qt::ReturnKeyDone:
+ self.returnKeyType = UIReturnKeyDone;
+ break;
+ case Qt::ReturnKeyGo:
+ self.returnKeyType = UIReturnKeyGo;
+ break;
+ case Qt::ReturnKeySend:
+ self.returnKeyType = UIReturnKeySend;
+ break;
+ case Qt::ReturnKeySearch:
+ self.returnKeyType = UIReturnKeySearch;
+ break;
+ case Qt::ReturnKeyNext:
+ self.returnKeyType = UIReturnKeyNext;
+ break;
+ default:
+ self.returnKeyType = (hints & Qt::ImhMultiLine) ? UIReturnKeyDefault : UIReturnKeyDone;
+ break;
+ }
self.secureTextEntry = BOOL(hints & Qt::ImhHiddenText);
self.autocorrectionType = (hints & Qt::ImhNoPredictiveText) ?
@@ -231,7 +253,7 @@
}
// Based on what we set up in initWithInputContext above
- updatedProperties &= (Qt::ImHints | Qt::ImPlatformData);
+ updatedProperties &= (Qt::ImHints | Qt::ImReturnKeyType | Qt::ImPlatformData);
if (!updatedProperties)
return NO;
@@ -657,7 +679,8 @@
[self sendEventToFocusObject:press];
[self sendEventToFocusObject:release];
- if (self.returnKeyType == UIReturnKeyDone)
+ if (self.returnKeyType == UIReturnKeyDone || self.returnKeyType == UIReturnKeyGo
+ || self.returnKeyType == UIReturnKeySend || self.returnKeyType == UIReturnKeySearch)
[self resignFirstResponder];
return;