diff options
author | Morten Johan Sorvig <morten.sorvig@nokia.com> | 2012-03-21 11:07:35 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-20 10:29:14 +0200 |
commit | 128b7c56b732cabdbd600445aac5162c775e58d4 (patch) | |
tree | c6699b97cdd9522bb24cf8588810c12d03dd60bc /tests/manual/windowflags | |
parent | 872f567d530daad7d897767fd56e061d8f4e5f36 (diff) | |
download | qtbase-128b7c56b732cabdbd600445aac5162c775e58d4.tar.gz |
Implement QCocoaWindow::setWindowState.
Add window state change notification logic. Send
and expose event in addition to window state change
on window restore since the QWidget logic expects
this.
Modify QCocoaWindow::setVisible to sync up window
state that may have been set on the hidden window.
Refactor NSWindow event observing to use one observer
function for all notifications.
Add window state testing to tests/manual/windowflags
Add delay after showFullScreen in tst_qstatusbar to
wait for the Lion fullscreen transition.
Change-Id: I57c523cedd0644d4181b40d72046fad4fdb09a9c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'tests/manual/windowflags')
-rw-r--r-- | tests/manual/windowflags/controllerwindow.cpp | 35 | ||||
-rw-r--r-- | tests/manual/windowflags/controllerwindow.h | 10 | ||||
-rw-r--r-- | tests/manual/windowflags/previewwindow.cpp | 6 | ||||
-rw-r--r-- | tests/manual/windowflags/previewwindow.h | 6 | ||||
-rw-r--r-- | tests/manual/windowflags/windowflags.pro | 1 |
5 files changed, 54 insertions, 4 deletions
diff --git a/tests/manual/windowflags/controllerwindow.cpp b/tests/manual/windowflags/controllerwindow.cpp index 586691a37d..cee8976cfe 100644 --- a/tests/manual/windowflags/controllerwindow.cpp +++ b/tests/manual/windowflags/controllerwindow.cpp @@ -62,6 +62,7 @@ ControllerWindow::ControllerWindow() previewDialog = new PreviewDialog; createTypeGroupBox(); + createStateGroupBox(); createHintsGroupBox(); quitButton = new QPushButton(tr("&Quit")); @@ -73,6 +74,7 @@ ControllerWindow::ControllerWindow() QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(widgetTypeGroupBox); + mainLayout->addWidget(windowStateGroupBox); mainLayout->addWidget(additionalOptionsGroupBox); mainLayout->addWidget(typeGroupBox); mainLayout->addWidget(hintsGroupBox); @@ -165,7 +167,17 @@ void ControllerWindow::updatePreview() if (pos.y() < 0) pos.setY(0); widget->move(pos); - widget->show(); + + Qt::WindowState windowState = Qt::WindowNoState; + if (minimizeButton->isChecked()) + windowState = Qt::WindowMinimized; + else if (maximizeButton->isChecked()) + windowState = Qt::WindowMaximized; + else if (fullscreenButton->isChecked()) + windowState = Qt::WindowFullScreen; + + widget->setWindowState(windowState); + widget->setVisible(visibleCheckBox->isChecked()); } void ControllerWindow::createTypeGroupBox() @@ -212,6 +224,27 @@ void ControllerWindow::createTypeGroupBox() } //! [5] +void ControllerWindow::createStateGroupBox() +{ + windowStateGroupBox = new QGroupBox(tr("Window State")); + visibleCheckBox = createCheckBox(tr("Visible")); + visibleCheckBox->setChecked(true); + + restoreButton = createRadioButton(tr("Normal")); + restoreButton->setChecked(true); + minimizeButton = createRadioButton(tr("Minimized")); + maximizeButton = createRadioButton(tr("Maximized")); + fullscreenButton = createRadioButton(tr("Fullscreen"));; + + QHBoxLayout *l = new QHBoxLayout; + l->addWidget(visibleCheckBox); + l->addWidget(restoreButton); + l->addWidget(minimizeButton); + l->addWidget(maximizeButton); + l->addWidget(fullscreenButton); + windowStateGroupBox->setLayout(l); +} + //! [6] void ControllerWindow::createHintsGroupBox() { diff --git a/tests/manual/windowflags/controllerwindow.h b/tests/manual/windowflags/controllerwindow.h index 02827cffd8..02a8eb98ab 100644 --- a/tests/manual/windowflags/controllerwindow.h +++ b/tests/manual/windowflags/controllerwindow.h @@ -42,7 +42,7 @@ #ifndef CONTROLLERWINDOW_H #define CONTROLLERWINDOW_H -#include <QWidget> +#include <QtWidgets/QWidget> #include "previewwindow.h" @@ -68,6 +68,7 @@ private slots: private: void createTypeGroupBox(); + void createStateGroupBox(); void createHintsGroupBox(); QCheckBox *createCheckBox(const QString &text); QRadioButton *createRadioButton(const QString &text); @@ -77,6 +78,7 @@ private: PreviewDialog *previewDialog; QGroupBox *widgetTypeGroupBox; + QGroupBox *windowStateGroupBox; QGroupBox *additionalOptionsGroupBox; QGroupBox *typeGroupBox; QGroupBox *hintsGroupBox; @@ -87,6 +89,12 @@ private: QCheckBox *modalWindowCheckBox; QCheckBox *fixedSizeWindowCheckBox; + QCheckBox *visibleCheckBox; + QRadioButton *restoreButton; + QRadioButton *minimizeButton; + QRadioButton *maximizeButton; + QRadioButton *fullscreenButton; + QRadioButton *windowRadioButton; QRadioButton *dialogRadioButton; QRadioButton *sheetRadioButton; diff --git a/tests/manual/windowflags/previewwindow.cpp b/tests/manual/windowflags/previewwindow.cpp index 684d1ee1fe..ba5399dd68 100644 --- a/tests/manual/windowflags/previewwindow.cpp +++ b/tests/manual/windowflags/previewwindow.cpp @@ -107,6 +107,8 @@ PreviewWindow::PreviewWindow(QWidget *parent) showNormalButton = new QPushButton(tr("Show normal")); connect(showNormalButton, SIGNAL(clicked()), this, SLOT(showNormal())); + showMinimizedButton = new QPushButton(tr("Show minimized")); + connect(showMinimizedButton, SIGNAL(clicked()), this, SLOT(showMinimized())); showMaximizedButton = new QPushButton(tr("Show maximized")); connect(showMaximizedButton, SIGNAL(clicked()), this, SLOT(showMaximized())); showFullScreenButton = new QPushButton(tr("Show fullscreen")); @@ -115,6 +117,7 @@ PreviewWindow::PreviewWindow(QWidget *parent) QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(textEdit); layout->addWidget(showNormalButton); + layout->addWidget(showMinimizedButton); layout->addWidget(showMaximizedButton); layout->addWidget(showFullScreenButton); layout->addWidget(closeButton); @@ -143,6 +146,8 @@ PreviewDialog::PreviewDialog(QWidget *parent) showNormalButton = new QPushButton(tr("Show normal")); connect(showNormalButton, SIGNAL(clicked()), this, SLOT(showNormal())); + showMinimizedButton = new QPushButton(tr("Show minimized")); + connect(showMinimizedButton, SIGNAL(clicked()), this, SLOT(showMinimized())); showMaximizedButton = new QPushButton(tr("Show maximized")); connect(showMaximizedButton, SIGNAL(clicked()), this, SLOT(showMaximized())); showFullScreenButton = new QPushButton(tr("Show fullscreen")); @@ -151,6 +156,7 @@ PreviewDialog::PreviewDialog(QWidget *parent) QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(textEdit); layout->addWidget(showNormalButton); + layout->addWidget(showMinimizedButton); layout->addWidget(showMaximizedButton); layout->addWidget(showFullScreenButton); layout->addWidget(closeButton); diff --git a/tests/manual/windowflags/previewwindow.h b/tests/manual/windowflags/previewwindow.h index 42189016e1..9ff091f304 100644 --- a/tests/manual/windowflags/previewwindow.h +++ b/tests/manual/windowflags/previewwindow.h @@ -42,8 +42,8 @@ #ifndef PREVIEWWINDOW_H #define PREVIEWWINDOW_H -#include <QWidget> -#include <QDialog> +#include <QtWidgets/QWidget> +#include <QtWidgets/QDialog> QT_BEGIN_NAMESPACE class QPushButton; @@ -63,6 +63,7 @@ private: QTextEdit *textEdit; QPushButton *closeButton; QPushButton *showNormalButton; + QPushButton *showMinimizedButton; QPushButton *showMaximizedButton; QPushButton *showFullScreenButton; }; @@ -80,6 +81,7 @@ private: QTextEdit *textEdit; QPushButton *closeButton; QPushButton *showNormalButton; + QPushButton *showMinimizedButton; QPushButton *showMaximizedButton; QPushButton *showFullScreenButton; }; diff --git a/tests/manual/windowflags/windowflags.pro b/tests/manual/windowflags/windowflags.pro index 06def212b3..81ca7ad0e0 100644 --- a/tests/manual/windowflags/windowflags.pro +++ b/tests/manual/windowflags/windowflags.pro @@ -5,3 +5,4 @@ HEADERS = controllerwindow.h \ SOURCES = controllerwindow.cpp \ previewwindow.cpp \ main.cpp +QT += widgets |