diff options
Diffstat (limited to 'tests/manual/windowflags/controllerwindow.cpp')
-rw-r--r-- | tests/manual/windowflags/controllerwindow.cpp | 163 |
1 files changed, 20 insertions, 143 deletions
diff --git a/tests/manual/windowflags/controllerwindow.cpp b/tests/manual/windowflags/controllerwindow.cpp index cee8976cfe..1b547117d7 100644 --- a/tests/manual/windowflags/controllerwindow.cpp +++ b/tests/manual/windowflags/controllerwindow.cpp @@ -49,6 +49,7 @@ #include <QtWidgets/QHBoxLayout> #include "controllerwindow.h" +#include "controls.h" //! [0] ControllerWindow::ControllerWindow() @@ -62,8 +63,6 @@ ControllerWindow::ControllerWindow() previewDialog = new PreviewDialog; createTypeGroupBox(); - createStateGroupBox(); - createHintsGroupBox(); quitButton = new QPushButton(tr("&Quit")); connect(quitButton, SIGNAL(clicked()), qApp, SLOT(quit())); @@ -72,12 +71,25 @@ ControllerWindow::ControllerWindow() bottomLayout->addStretch(); bottomLayout->addWidget(quitButton); + hintsControl = new HintControl; + hintsControl->setHints(previewWindow->windowFlags()); + connect(hintsControl, SIGNAL(changed(Qt::WindowFlags)), this, SLOT(updatePreview())); + + statesControl = new WindowStatesControl(WindowStatesControl::WantVisibleCheckBox); + statesControl->setStates(previewWindow->windowState()); + statesControl->setVisibleValue(true); + connect(statesControl, SIGNAL(changed()), this, SLOT(updatePreview())); + + typeControl = new TypeControl; + typeControl->setType(previewWindow->windowFlags()); + connect(typeControl, SIGNAL(changed(Qt::WindowFlags)), this, SLOT(updatePreview())); + QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(widgetTypeGroupBox); - mainLayout->addWidget(windowStateGroupBox); mainLayout->addWidget(additionalOptionsGroupBox); - mainLayout->addWidget(typeGroupBox); - mainLayout->addWidget(hintsGroupBox); + mainLayout->addWidget(typeControl); + mainLayout->addWidget(hintsControl); + mainLayout->addWidget(statesControl); mainLayout->addLayout(bottomLayout); setLayout(mainLayout); @@ -88,52 +100,7 @@ ControllerWindow::ControllerWindow() void ControllerWindow::updatePreview() { - Qt::WindowFlags flags = 0; - - if (windowRadioButton->isChecked()) { - flags = Qt::Window; - } else if (dialogRadioButton->isChecked()) { - flags = Qt::Dialog; - } else if (sheetRadioButton->isChecked()) { - flags = Qt::Sheet; - } else if (drawerRadioButton->isChecked()) { - flags = Qt::Drawer; - } else if (popupRadioButton->isChecked()) { - flags = Qt::Popup; - } else if (toolRadioButton->isChecked()) { - flags = Qt::Tool; - } else if (toolTipRadioButton->isChecked()) { - flags = Qt::ToolTip; - } else if (splashScreenRadioButton->isChecked()) { - flags = Qt::SplashScreen; - } - - if (msWindowsFixedSizeDialogCheckBox->isChecked()) - flags |= Qt::MSWindowsFixedSizeDialogHint; - if (x11BypassWindowManagerCheckBox->isChecked()) - flags |= Qt::X11BypassWindowManagerHint; - if (framelessWindowCheckBox->isChecked()) - flags |= Qt::FramelessWindowHint; - if (windowTitleCheckBox->isChecked()) - flags |= Qt::WindowTitleHint; - if (windowSystemMenuCheckBox->isChecked()) - flags |= Qt::WindowSystemMenuHint; - if (windowMinimizeButtonCheckBox->isChecked()) - flags |= Qt::WindowMinimizeButtonHint; - if (windowMaximizeButtonCheckBox->isChecked()) - flags |= Qt::WindowMaximizeButtonHint; - if (windowCloseButtonCheckBox->isChecked()) - flags |= Qt::WindowCloseButtonHint; - if (windowContextHelpButtonCheckBox->isChecked()) - flags |= Qt::WindowContextHelpButtonHint; - if (windowShadeButtonCheckBox->isChecked()) - flags |= Qt::WindowShadeButtonHint; - if (windowStaysOnTopCheckBox->isChecked()) - flags |= Qt::WindowStaysOnTopHint; - if (windowStaysOnBottomCheckBox->isChecked()) - flags |= Qt::WindowStaysOnBottomHint; - if (customizeWindowHintCheckBox->isChecked()) - flags |= Qt::CustomizeWindowHint; + const Qt::WindowFlags flags = typeControl->type() | hintsControl->hints(); previewWindow->hide(); previewDialog->hide(); @@ -168,16 +135,8 @@ void ControllerWindow::updatePreview() pos.setY(0); widget->move(pos); - 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()); + widget->setWindowState(statesControl->states()); + widget->setVisible(statesControl->visibleValue()); } void ControllerWindow::createTypeGroupBox() @@ -198,91 +157,9 @@ void ControllerWindow::createTypeGroupBox() l->addWidget(modalWindowCheckBox); l->addWidget(fixedSizeWindowCheckBox); additionalOptionsGroupBox->setLayout(l); - - typeGroupBox = new QGroupBox(tr("Type")); - - windowRadioButton = createRadioButton(tr("Window")); - dialogRadioButton = createRadioButton(tr("Dialog")); - sheetRadioButton = createRadioButton(tr("Sheet")); - drawerRadioButton = createRadioButton(tr("Drawer")); - popupRadioButton = createRadioButton(tr("Popup")); - toolRadioButton = createRadioButton(tr("Tool")); - toolTipRadioButton = createRadioButton(tr("Tooltip")); - splashScreenRadioButton = createRadioButton(tr("Splash screen")); - windowRadioButton->setChecked(true); - - QGridLayout *layout = new QGridLayout; - layout->addWidget(windowRadioButton, 0, 0); - layout->addWidget(dialogRadioButton, 1, 0); - layout->addWidget(sheetRadioButton, 2, 0); - layout->addWidget(drawerRadioButton, 3, 0); - layout->addWidget(popupRadioButton, 0, 1); - layout->addWidget(toolRadioButton, 1, 1); - layout->addWidget(toolTipRadioButton, 2, 1); - layout->addWidget(splashScreenRadioButton, 3, 1); - typeGroupBox->setLayout(layout); } //! [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() -{ - hintsGroupBox = new QGroupBox(tr("Hints")); - - msWindowsFixedSizeDialogCheckBox = - createCheckBox(tr("MS Windows fixed size dialog")); - x11BypassWindowManagerCheckBox = - createCheckBox(tr("X11 bypass window manager")); - framelessWindowCheckBox = createCheckBox(tr("Frameless window")); - windowTitleCheckBox = createCheckBox(tr("Window title")); - windowSystemMenuCheckBox = createCheckBox(tr("Window system menu")); - windowMinimizeButtonCheckBox = createCheckBox(tr("Window minimize button")); - windowMaximizeButtonCheckBox = createCheckBox(tr("Window maximize button")); - windowCloseButtonCheckBox = createCheckBox(tr("Window close button")); - windowContextHelpButtonCheckBox = - createCheckBox(tr("Window context help button")); - windowShadeButtonCheckBox = createCheckBox(tr("Window shade button")); - windowStaysOnTopCheckBox = createCheckBox(tr("Window stays on top")); - windowStaysOnBottomCheckBox = createCheckBox(tr("Window stays on bottom")); - customizeWindowHintCheckBox= createCheckBox(tr("Customize window")); - - QGridLayout *layout = new QGridLayout; - layout->addWidget(msWindowsFixedSizeDialogCheckBox, 0, 0); - layout->addWidget(x11BypassWindowManagerCheckBox, 1, 0); - layout->addWidget(framelessWindowCheckBox, 2, 0); - layout->addWidget(windowTitleCheckBox, 3, 0); - layout->addWidget(windowSystemMenuCheckBox, 4, 0); - layout->addWidget(windowMinimizeButtonCheckBox, 0, 1); - layout->addWidget(windowMaximizeButtonCheckBox, 1, 1); - layout->addWidget(windowCloseButtonCheckBox, 2, 1); - layout->addWidget(windowContextHelpButtonCheckBox, 3, 1); - layout->addWidget(windowShadeButtonCheckBox, 4, 1); - layout->addWidget(windowStaysOnTopCheckBox, 5, 1); - layout->addWidget(windowStaysOnBottomCheckBox, 6, 1); - layout->addWidget(customizeWindowHintCheckBox, 5, 0); - hintsGroupBox->setLayout(layout); -} //! [6] //! [7] |