diff options
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qscreen.cpp | 2 | ||||
-rw-r--r-- | src/gui/kernel/qwindow.cpp | 14 | ||||
-rw-r--r-- | src/gui/kernel/qwindow.h | 2 |
3 files changed, 13 insertions, 5 deletions
diff --git a/src/gui/kernel/qscreen.cpp b/src/gui/kernel/qscreen.cpp index 43c2dcc50d..d8413d5cb2 100644 --- a/src/gui/kernel/qscreen.cpp +++ b/src/gui/kernel/qscreen.cpp @@ -351,6 +351,8 @@ QRect QScreen::availableVirtualGeometry() const will change based on the device is being held, and a desktop display might be rotated so that it's in portrait mode. + Qt::PrimaryOrientation is never returned. + \sa primaryOrientation(), orientationChanged() */ Qt::ScreenOrientation QScreen::orientation() const diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 65ac5f1539..5bab203abc 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -411,24 +411,26 @@ bool QWindow::isActive() const void QWindow::reportContentOrientationChange(Qt::ScreenOrientation orientation) { Q_D(QWindow); + if (d->contentOrientation == orientation) + return; if (!d->platformWindow) create(); Q_ASSERT(d->platformWindow); d->contentOrientation = orientation; d->platformWindow->handleContentOrientationChange(orientation); + emit contentOrientationChanged(orientation); } /*! Returns the actual content orientation. - This is the last value set with reportContentOrientationChange(), - except Qt::PrimaryOrientation gets converted to the screen's - primary orientation. + This is the last value set with reportContentOrientationChange(). It defaults + to Qt::PrimaryOrientation. */ Qt::ScreenOrientation QWindow::contentOrientation() const { Q_D(const QWindow); - return d->contentOrientation == Qt::PrimaryOrientation ? screen()->primaryOrientation() : d->contentOrientation; + return d->contentOrientation; } /*! @@ -461,12 +463,14 @@ bool QWindow::requestWindowOrientation(Qt::ScreenOrientation orientation) /*! Returns the actual window orientation. + The default value is Qt::PrimaryOrientation. + \sa requestWindowOrientation() */ Qt::ScreenOrientation QWindow::windowOrientation() const { Q_D(const QWindow); - return d->windowOrientation == Qt::PrimaryOrientation ? screen()->primaryOrientation() : d->windowOrientation; + return d->windowOrientation; } Qt::WindowState QWindow::windowState() const diff --git a/src/gui/kernel/qwindow.h b/src/gui/kernel/qwindow.h index 1de5105b1c..be0ca99b8b 100644 --- a/src/gui/kernel/qwindow.h +++ b/src/gui/kernel/qwindow.h @@ -90,6 +90,7 @@ class Q_GUI_EXPORT QWindow : public QObject, public QSurface Q_PROPERTY(int width READ width WRITE setWidth NOTIFY widthChanged) Q_PROPERTY(int height READ height WRITE setHeight NOTIFY heightChanged) Q_PROPERTY(bool visible READ visible WRITE setVisible NOTIFY visibleChanged) + Q_PROPERTY(Qt::ScreenOrientation contentOrientation READ contentOrientation WRITE reportContentOrientationChange NOTIFY contentOrientationChanged) public: enum SurfaceType { RasterSurface, OpenGLSurface }; @@ -259,6 +260,7 @@ Q_SIGNALS: void heightChanged(int arg); void visibleChanged(bool arg); + void contentOrientationChanged(Qt::ScreenOrientation orientation); private Q_SLOTS: void screenDestroyed(QObject *screen); |