summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/ios')
-rw-r--r--src/plugins/platforms/ios/qiosglobal.h4
-rw-r--r--src/plugins/platforms/ios/qiosglobal.mm8
-rw-r--r--src/plugins/platforms/ios/qiosscreen.mm4
-rw-r--r--src/plugins/platforms/ios/qioswindow.mm2
4 files changed, 15 insertions, 3 deletions
diff --git a/src/plugins/platforms/ios/qiosglobal.h b/src/plugins/platforms/ios/qiosglobal.h
index 849d9bce37..86377e7c64 100644
--- a/src/plugins/platforms/ios/qiosglobal.h
+++ b/src/plugins/platforms/ios/qiosglobal.h
@@ -47,9 +47,13 @@
#import <QtGui/qguiapplication.h>
#import "qiosscreen.h"
+@class QIOSViewController;
+
QT_BEGIN_NAMESPACE
bool isQtApplication();
+QIOSViewController *rootViewController();
+
CGRect toCGRect(const QRect &rect);
QRect fromCGRect(const CGRect &rect);
Qt::ScreenOrientation toQtScreenOrientation(UIDeviceOrientation uiDeviceOrientation);
diff --git a/src/plugins/platforms/ios/qiosglobal.mm b/src/plugins/platforms/ios/qiosglobal.mm
index 69547fb2a1..cf69d8fdef 100644
--- a/src/plugins/platforms/ios/qiosglobal.mm
+++ b/src/plugins/platforms/ios/qiosglobal.mm
@@ -41,6 +41,7 @@
#include "qiosglobal.h"
#include "qiosapplicationdelegate.h"
+#include "qiosviewcontroller.h"
#include <QtGui/qscreen.h>
QT_BEGIN_NAMESPACE
@@ -57,6 +58,13 @@ bool isQtApplication()
return isQt;
}
+QIOSViewController *rootViewController()
+{
+ static QIOSViewController *c = isQtApplication() ?
+ static_cast<QIOSViewController *>([UIApplication sharedApplication].delegate.window.rootViewController) : nil;
+ return c;
+}
+
CGRect toCGRect(const QRect &rect)
{
return CGRectMake(rect.x(), rect.y(), rect.width(), rect.height());
diff --git a/src/plugins/platforms/ios/qiosscreen.mm b/src/plugins/platforms/ios/qiosscreen.mm
index a0403a0d69..5905f1630e 100644
--- a/src/plugins/platforms/ios/qiosscreen.mm
+++ b/src/plugins/platforms/ios/qiosscreen.mm
@@ -44,6 +44,7 @@
#include "qioswindow.h"
#include <qpa/qwindowsysteminterface.h>
#include "qiosapplicationdelegate.h"
+#include "qiosviewcontroller.h"
#include <sys/sysctl.h>
@@ -141,8 +142,7 @@ QIOSScreen::QIOSScreen(unsigned int screenIndex)
if (isQtApplication()) {
// When in a non-mixed environment, let QScreen follow the current interface orientation:
- UIViewController *controller = [UIApplication sharedApplication].delegate.window.rootViewController;
- setPrimaryOrientation(toQtScreenOrientation(controller.interfaceOrientation));
+ setPrimaryOrientation(toQtScreenOrientation(rootViewController().interfaceOrientation));
}
[pool release];
diff --git a/src/plugins/platforms/ios/qioswindow.mm b/src/plugins/platforms/ios/qioswindow.mm
index af184e2e7b..71816f7d94 100644
--- a/src/plugins/platforms/ios/qioswindow.mm
+++ b/src/plugins/platforms/ios/qioswindow.mm
@@ -197,7 +197,7 @@ QIOSWindow::QIOSWindow(QWindow *window)
, m_devicePixelRatio(1.0)
{
if (isQtApplication())
- [[UIApplication sharedApplication].delegate.window.rootViewController.view addSubview:m_view];
+ [rootViewController().view addSubview:m_view];
setWindowState(window->windowState());