QNX: Implement QQnxScreen::nativeOrientation()
authorKevin Ottens <kevin.ottens.qnx@kdab.com>
Fri, 25 May 2012 09:14:11 +0000 (11:14 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 5 Jun 2012 14:01:29 +0000 (16:01 +0200)
Provide a proper version of nativeOrientation(). We use the screen
physical size as reported by the device to determine its native
orientation.

Change-Id: I45b593b0d62436529f89050e98e10b8c9463b6b9
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
src/plugins/platforms/qnx/qqnxscreen.cpp
src/plugins/platforms/qnx/qqnxscreen.h

index 4a9c495..7ec84a4 100644 (file)
@@ -63,6 +63,7 @@ QQnxScreen::QQnxScreen(screen_context_t screenContext, screen_display_t display,
       m_primaryScreen(primaryScreen),
       m_posted(false),
       m_keyboardHeight(0),
+      m_nativeOrientation(Qt::PrimaryOrientation),
       m_platformContext(0)
 {
     qScreenDebug() << Q_FUNC_INFO;
@@ -93,6 +94,9 @@ QQnxScreen::QQnxScreen(screen_context_t screenContext, screen_display_t display,
     if (result != 0) {
         qFatal("QQnxScreen: failed to query display physical size, errno=%d", errno);
     }
+
+    m_nativeOrientation = val[0] >= val[1] ? Qt::LandscapeOrientation : Qt::PortraitOrientation;
+
     if (m_currentRotation == 0 || m_currentRotation == 180)
         m_currentPhysicalSize = m_initialPhysicalSize = QSize(val[0], val[1]);
     else
@@ -152,6 +156,11 @@ qreal QQnxScreen::refreshRate() const
     return static_cast<qreal>(displayMode.refresh);
 }
 
+Qt::ScreenOrientation QQnxScreen::nativeOrientation() const
+{
+    return m_nativeOrientation;
+}
+
 Qt::ScreenOrientation QQnxScreen::orientation() const
 {
     Qt::ScreenOrientation orient;
index e34723c..c2b7c68 100644 (file)
@@ -70,6 +70,7 @@ public:
 
     qreal refreshRate() const;
 
+    Qt::ScreenOrientation nativeOrientation() const;
     Qt::ScreenOrientation orientation() const;
 
     bool isPrimaryScreen() const { return m_primaryScreen; }
@@ -119,6 +120,7 @@ private:
     int m_keyboardHeight;
     QSize m_initialPhysicalSize;
     QSize m_currentPhysicalSize;
+    Qt::ScreenOrientation m_nativeOrientation;
     QRect m_initialGeometry;
     QRect m_currentGeometry;
     QPlatformOpenGLContext *m_platformContext;