Improve windowflags, windowgeometry manual tests.
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>
Wed, 11 Jul 2012 13:12:26 +0000 (15:12 +0200)
committerQt by Nokia <qt-info@nokia.com>
Wed, 11 Jul 2012 14:58:53 +0000 (16:58 +0200)
- Make them compile with 4.8 for comparison
- Add Active to WindowStates control
- Add -layout option to windowgeometry

Change-Id: I052330eb8689883c104a0552708ea700c7cd790a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
tests/manual/windowflags/controllerwindow.cpp
tests/manual/windowflags/controllerwindow.h
tests/manual/windowflags/controls.cpp
tests/manual/windowflags/controls.h
tests/manual/windowflags/previewwindow.cpp
tests/manual/windowflags/previewwindow.h
tests/manual/windowflags/windowflags.pro
tests/manual/windowgeometry/controllerwidget.cpp

index 1b54711..5c6bd5b 100644 (file)
 **
 ****************************************************************************/
 
-#include <QtWidgets/QMainWindow>
-#include <QtWidgets/QLabel>
-#include <QtWidgets/QPushButton>
-#include <QtWidgets/QRadioButton>
-#include <QtWidgets/QCheckBox>
-#include <QtWidgets/QGroupBox>
-#include <QtWidgets/QApplication>
-#include <QtWidgets/QHBoxLayout>
+#include <QMainWindow>
+#include <QLabel>
+#include <QPushButton>
+#include <QRadioButton>
+#include <QCheckBox>
+#include <QGroupBox>
+#include <QApplication>
+#include <QHBoxLayout>
 
 #include "controllerwindow.h"
 #include "controls.h"
@@ -75,7 +75,7 @@ ControllerWindow::ControllerWindow()
     hintsControl->setHints(previewWindow->windowFlags());
     connect(hintsControl, SIGNAL(changed(Qt::WindowFlags)), this, SLOT(updatePreview()));
 
-    statesControl = new WindowStatesControl(WindowStatesControl::WantVisibleCheckBox);
+    statesControl = new WindowStatesControl(WindowStatesControl::WantVisibleCheckBox|WindowStatesControl::WantActiveCheckBox);
     statesControl->setStates(previewWindow->windowState());
     statesControl->setVisibleValue(true);
     connect(statesControl, SIGNAL(changed()), this, SLOT(updatePreview()));
@@ -94,7 +94,12 @@ ControllerWindow::ControllerWindow()
     setLayout(mainLayout);
 
     setWindowTitle(tr("Window Flags (Qt version %1, %2)")
-                   .arg(QLatin1String(qVersion()), qApp->platformName()));
+                   .arg(QLatin1String(qVersion()),
+#if QT_VERSION >= 0x050000
+                        qApp->platformName()));
+#else
+                        QLatin1String("<unknown>")));
+#endif
     updatePreview();
 }
 
index 5f6edbb..48b981b 100644 (file)
@@ -42,7 +42,7 @@
 #ifndef CONTROLLERWINDOW_H
 #define CONTROLLERWINDOW_H
 
-#include <QtWidgets/QWidget>
+#include <QWidget>
 
 #include "previewwindow.h"
 
index 7cb2a14..f1bd3ba 100644 (file)
@@ -98,6 +98,9 @@ HintControl::HintControl(QWidget *parent)
     layout->addWidget(windowStaysOnBottomCheckBox, 6, 1);
     layout->addWidget(customizeWindowHintCheckBox, 5, 0);
     layout->addWidget(transparentForInputCheckBox, 6, 0);
+#if QT_VERSION < 0x050000
+    transparentForInputCheckBox->setEnabled(false);
+#endif
 }
 
 Qt::WindowFlags HintControl::hints() const
@@ -129,8 +132,10 @@ Qt::WindowFlags HintControl::hints() const
         flags |= Qt::WindowStaysOnBottomHint;
     if (customizeWindowHintCheckBox->isChecked())
         flags |= Qt::CustomizeWindowHint;
+#if QT_VERSION >= 0x050000
     if (transparentForInputCheckBox->isChecked())
         flags |= Qt::WindowTransparentForInput;
+#endif
     return flags;
 }
 
@@ -149,7 +154,9 @@ void HintControl::setHints(Qt::WindowFlags flags)
     windowStaysOnTopCheckBox->setChecked(flags & Qt::WindowStaysOnTopHint);
     windowStaysOnBottomCheckBox->setChecked(flags & Qt::WindowStaysOnBottomHint);
     customizeWindowHintCheckBox->setChecked(flags & Qt::CustomizeWindowHint);
+#if QT_VERSION >= 0x050000
     transparentForInputCheckBox->setChecked(flags & Qt::WindowTransparentForInput);
+#endif
 }
 
 void HintControl::slotCheckBoxChanged()
@@ -220,6 +227,7 @@ void WindowStateControl::setVisibleValue(bool v)
 WindowStatesControl::WindowStatesControl(unsigned flags, QWidget *parent)
     : QGroupBox(tr("States"), parent)
     , visibleCheckBox(0)
+    , activeCheckBox(0)
     , minimizeCheckBox(new QCheckBox(tr("Minimized")))
     , stateControl(new WindowStateControl(0))
 {
@@ -231,6 +239,11 @@ WindowStatesControl::WindowStatesControl(unsigned flags, QWidget *parent)
         connect(visibleCheckBox, SIGNAL(toggled(bool)), this, SIGNAL(changed()));
         layout->addWidget(visibleCheckBox);
     }
+    if (flags & WantActiveCheckBox) {
+        activeCheckBox = new QCheckBox(tr("Active"));
+        connect(activeCheckBox, SIGNAL(toggled(bool)), this, SIGNAL(changed()));
+        layout->addWidget(activeCheckBox);
+    }
     layout->addWidget(minimizeCheckBox);
     layout->addWidget(stateControl);
     connect(stateControl, SIGNAL(changed()), this, SIGNAL(changed()));
@@ -242,6 +255,8 @@ Qt::WindowStates WindowStatesControl::states() const
     Qt::WindowStates s = stateControl->state();
     if (minimizeCheckBox->isChecked())
         s |= Qt::WindowMinimized;
+    if (activeValue())
+        s |= Qt::WindowActive;
     return s;
 }
 
@@ -252,6 +267,7 @@ void WindowStatesControl::setStates(Qt::WindowStates s)
     minimizeCheckBox->blockSignals(false);
     s &= ~Qt::WindowMinimized;
     stateControl->setState(Qt::WindowState(int(s)));
+    setActiveValue(s & Qt::WindowActive);
 }
 
 bool WindowStatesControl::visibleValue() const
@@ -268,6 +284,20 @@ void WindowStatesControl::setVisibleValue(bool v)
     }
 }
 
+bool WindowStatesControl::activeValue() const
+{
+    return activeCheckBox && activeCheckBox->isChecked();
+}
+
+void WindowStatesControl::setActiveValue(bool v)
+{
+    if (activeCheckBox) {
+        activeCheckBox->blockSignals(true);
+        activeCheckBox->setChecked(v);
+        activeCheckBox->blockSignals(false);
+    }
+}
+
 TypeControl::TypeControl(QWidget *parent)
     : QGroupBox(tr("Type"), parent)
     , group(new QButtonGroup)
index 45f295e..68d89a8 100644 (file)
@@ -121,7 +121,8 @@ class WindowStatesControl : public QGroupBox
     Q_OBJECT
 public:
     enum Flags {
-        WantVisibleCheckBox = 0x1
+        WantVisibleCheckBox = 0x1,
+        WantActiveCheckBox = 0x2
     };
 
     explicit WindowStatesControl(unsigned flags, QWidget *parent= 0);
@@ -131,12 +132,15 @@ public:
 
     bool visibleValue() const;
     void setVisibleValue(bool);
+    bool activeValue() const;
+    void setActiveValue(bool v);
 
 signals:
     void changed();
 
 private:
     QCheckBox *visibleCheckBox;
+    QCheckBox *activeCheckBox;
     QCheckBox *minimizeCheckBox;
     WindowStateControl *stateControl;
 };
index ba5399d..b129855 100644 (file)
@@ -39,9 +39,9 @@
 **
 ****************************************************************************/
 
-#include <QtWidgets/QTextEdit>
-#include <QtWidgets/QPushButton>
-#include <QtWidgets/QVBoxLayout>
+#include <QTextEdit>
+#include <QPushButton>
+#include <QVBoxLayout>
 
 #include "previewwindow.h"
 
index 9ff091f..c69c1c5 100644 (file)
@@ -42,8 +42,7 @@
 #ifndef PREVIEWWINDOW_H
 #define PREVIEWWINDOW_H
 
-#include <QtWidgets/QWidget>
-#include <QtWidgets/QDialog>
+#include <QDialog>
 
 QT_BEGIN_NAMESPACE
 class QPushButton;
index 46e9475..ba0f75b 100644 (file)
@@ -1,5 +1,3 @@
-QT += widgets
-
 HEADERS       = controllerwindow.h \
                 previewwindow.h \
                 controls.h
@@ -9,4 +7,4 @@ SOURCES       = controllerwindow.cpp \
                 main.cpp \
                 controls.cpp
 
-QT += widgets
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
index e45b057..a537398 100644 (file)
@@ -269,7 +269,7 @@ private:
 
 WidgetWindowControl::WidgetWindowControl(QWidget *w )
     : BaseWindowControl(w)
-    , m_statesControl(new WindowStatesControl(WindowStatesControl::WantVisibleCheckBox))
+    , m_statesControl(new WindowStatesControl(WindowStatesControl::WantVisibleCheckBox | WindowStatesControl::WantActiveCheckBox))
 {
     setTitle(w->windowTitle());
     m_layout->addWidget(m_statesControl, 2, 0);
@@ -435,6 +435,11 @@ ControllerWidget::ControllerWidget(QWidget *parent)
 
     x += 800;
     m_testWidget->setWindowTitle(tr("TestWidget"));
+    if (args.contains(QLatin1String("-layout"))) {
+        QVBoxLayout *layout = new QVBoxLayout(m_testWidget.data());
+        QLabel *label = new QLabel("Hallo");
+        layout->addWidget(label);
+    }
     m_testWidget->move(x, y);
     m_testWidget->resize(200, 200);
     m_testWidget->show();