diff options
author | Samuel Rødal <samuel.rodal@nokia.com> | 2012-01-11 08:31:00 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-12 10:19:49 +0100 |
commit | 8ff37ff535318331f0179cdf0d2f6319cd7ae1c2 (patch) | |
tree | 640cd1a229f497624a4fc49bc24843ef2341fd35 /src/gui/kernel/qwindow.cpp | |
parent | bffbcfd0ccc863884701e79a260b1b05f9dc8bb0 (diff) |
Make show() default to sane sizing behaviour based on the platform.
Traditionally it's been hard to write a Qt app that behaves sanely
across embedded and desktop platforms, i.e. defaults to fullscreen on
embedded and non-fullscreen on desktop. For Qt 5 we can fix this by
making the behaviour of the default QWindow::show() be customizable by
the platform plugin.
If the application developer wants to override this behaviour he can
still use the explicit showFullScreen(), showNormal() etc functions.
Change-Id: I26a907b404058e345d841c818daefbb57a26d3fd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Diffstat (limited to 'src/gui/kernel/qwindow.cpp')
-rw-r--r-- | src/gui/kernel/qwindow.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 2e724e1b3c..0d08316945 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -54,6 +54,8 @@ #include <QtCore/QDebug> +#include <QStyleHints> + QT_BEGIN_NAMESPACE /*! @@ -741,30 +743,42 @@ QObject *QWindow::focusObject() const return const_cast<QWindow *>(this); } +void QWindow::show() +{ + if (qApp->styleHints()->showIsFullScreen()) + showFullScreen(); + else + showNormal(); +} + +void QWindow::hide() +{ + setVisible(false); +} void QWindow::showMinimized() { setWindowState(Qt::WindowMinimized); - show(); + setVisible(true); } void QWindow::showMaximized() { setWindowState(Qt::WindowMaximized); - show(); + setVisible(true); } void QWindow::showFullScreen() { setWindowState(Qt::WindowFullScreen); - show(); + setVisible(true); requestActivateWindow(); } void QWindow::showNormal() { setWindowState(Qt::WindowNoState); - show(); + setVisible(true); } bool QWindow::close() |