diff options
author | Liang Qi <liang.qi@qt.io> | 2016-10-06 13:04:47 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-10-06 20:12:27 +0200 |
commit | ef25620ac1acbe7a723b6b213d7d50468a748119 (patch) | |
tree | abdff2aed36655dfb0305d232b0ac48f8ad67391 /src/plugins/platforms/ios | |
parent | 669add92d9adc15ecfa0b2d62dd90ea9066d401e (diff) | |
parent | 6feec9da93032d11a768802ac2187d9d4153b1ec (diff) |
Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts:
mkspecs/features/mac/default_pre.prf
mkspecs/features/qpa/genericunixfontdatabase.prf
mkspecs/features/uikit/default_post.prf
mkspecs/features/uikit/resolve_config.prf
mkspecs/macx-ios-clang/features/default_post.prf
mkspecs/macx-ios-clang/features/resolve_config.prf
src/corelib/io/qiodevice.cpp
Change-Id: I6f210f71f177a3c3278a4f380542195e14e4b491
Diffstat (limited to 'src/plugins/platforms/ios')
-rw-r--r-- | src/plugins/platforms/ios/qiosinputcontext.h | 1 | ||||
-rw-r--r-- | src/plugins/platforms/ios/qiosmenu.mm | 1 | ||||
-rw-r--r-- | src/plugins/platforms/ios/qiostextresponder.mm | 11 |
3 files changed, 13 insertions, 0 deletions
diff --git a/src/plugins/platforms/ios/qiosinputcontext.h b/src/plugins/platforms/ios/qiosinputcontext.h index 9fdf021d07..966d1a7e80 100644 --- a/src/plugins/platforms/ios/qiosinputcontext.h +++ b/src/plugins/platforms/ios/qiosinputcontext.h @@ -49,6 +49,7 @@ const char kImePlatformDataInputView[] = "inputView"; const char kImePlatformDataInputAccessoryView[] = "inputAccessoryView"; +const char kImePlatformDataHideShortcutsBar[] = "hideShortcutsBar"; const char kImePlatformDataReturnKeyType[] = "returnKeyType"; @class QIOSLocaleListener; diff --git a/src/plugins/platforms/ios/qiosmenu.mm b/src/plugins/platforms/ios/qiosmenu.mm index 02deab59b5..01cb3badea 100644 --- a/src/plugins/platforms/ios/qiosmenu.mm +++ b/src/plugins/platforms/ios/qiosmenu.mm @@ -521,6 +521,7 @@ bool QIOSMenu::eventFilter(QObject *obj, QEvent *event) QVariantMap imPlatformData = queryEvent->value(Qt::ImPlatformData).toMap(); imPlatformData.insert(kImePlatformDataInputView, QVariant::fromValue(static_cast<void *>(m_pickerView))); imPlatformData.insert(kImePlatformDataInputAccessoryView, QVariant::fromValue(static_cast<void *>(m_pickerView.toolbar))); + imPlatformData.insert(kImePlatformDataHideShortcutsBar, true); queryEvent->setValue(Qt::ImPlatformData, imPlatformData); queryEvent->setValue(Qt::ImEnabled, true); diff --git a/src/plugins/platforms/ios/qiostextresponder.mm b/src/plugins/platforms/ios/qiostextresponder.mm index 3c95083e45..d7b0a323ad 100644 --- a/src/plugins/platforms/ios/qiostextresponder.mm +++ b/src/plugins/platforms/ios/qiostextresponder.mm @@ -236,6 +236,17 @@ self.inputView = [[[WrapperView alloc] initWithView:inputView] autorelease]; if (UIView *accessoryView = static_cast<UIView *>(platformData.value(kImePlatformDataInputAccessoryView).value<void *>())) self.inputAccessoryView = [[[WrapperView alloc] initWithView:accessoryView] autorelease]; + if (QSysInfo::MacintoshVersion >= QSysInfo::MV_IOS_9_0) { + if (platformData.value(kImePlatformDataHideShortcutsBar).toBool()) { + // According to the docs, leadingBarButtonGroups/trailingBarButtonGroups should be set to nil to hide the shortcuts bar. + // However, starting with iOS 10, the API has been surrounded with NS_ASSUME_NONNULL, which contradicts this and causes + // compiler warnings. And assigning just an empty array causes layout asserts. Hence, we assign empty button groups instead. + UIBarButtonItemGroup *leading = [[[UIBarButtonItemGroup alloc] initWithBarButtonItems:@[] representativeItem:nil] autorelease]; + UIBarButtonItemGroup *trailing = [[[UIBarButtonItemGroup alloc] initWithBarButtonItems:@[] representativeItem:nil] autorelease]; + self.inputAssistantItem.leadingBarButtonGroups = @[leading]; + self.inputAssistantItem.trailingBarButtonGroups = @[trailing]; + } + } self.undoManager.groupsByEvent = NO; [self rebuildUndoStack]; |