Update tests/manual/windowmodality to test native dialogs
authorBradley T. Hughes <bradley.hughes@nokia.com>
Thu, 29 Mar 2012 12:16:02 +0000 (14:16 +0200)
committerQt by Nokia <qt-info@nokia.com>
Fri, 30 Mar 2012 07:31:03 +0000 (09:31 +0200)
Window- and ApplicationModal native dialogs need to send WindowBlocked
and WindowUnblocked events as well. This will let us test that they work
properly.

Change-Id: Iaa4ddb79bb0872f9ab1e61336a5decb262472283
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
tests/manual/windowmodality/dialog.ui
tests/manual/windowmodality/main.cpp
tests/manual/windowmodality/modality.pro
tests/manual/windowmodality/widget.ui

index 78d5ff3..0254311 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>574</width>
-    <height>300</height>
+    <width>515</width>
+    <height>480</height>
    </rect>
   </property>
   <property name="windowTitle">
       <string>Select the type of dialog to create:</string>
      </property>
      <layout class="QGridLayout" name="gridLayout">
-      <item row="6" column="0">
-       <widget class="QPushButton" name="siblingApplicationModalButton">
+      <item row="0" column="0" colspan="3">
+       <widget class="QCheckBox" name="useThisAsParentCheckBox">
         <property name="text">
-         <string>Application Modal Dialog (sibling)</string>
+         <string>Use this window as parent for newly created dialogs</string>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
         </property>
        </widget>
       </item>
-      <item row="1" column="0">
-       <widget class="QPushButton" name="windowModalButton">
+      <item row="3" column="0">
+       <widget class="QPushButton" name="modelessCustomDialogButton">
         <property name="text">
-         <string>Window Modal Dialog</string>
+         <string>Custom Dialog</string>
         </property>
        </widget>
       </item>
-      <item row="5" column="1">
-       <widget class="QPushButton" name="applicationModalNoParentButton">
+      <item row="3" column="1">
+       <widget class="QPushButton" name="modelessColorDialogButton">
+        <property name="text">
+         <string>Color Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="2">
+       <widget class="QPushButton" name="modelessFontDialogButton">
         <property name="text">
-         <string>Application Modal Dialog (no parent)</string>
+         <string>Font Dialog</string>
         </property>
        </widget>
       </item>
       <item row="5" column="0">
-       <widget class="QPushButton" name="applicationModalButton">
+       <widget class="QPushButton" name="windowModalCustomDialogButton">
         <property name="text">
-         <string>Application Modal</string>
+         <string>Custom Dialog</string>
         </property>
        </widget>
       </item>
-      <item row="1" column="1">
-       <widget class="QPushButton" name="windowModalNoParentButton">
+      <item row="5" column="1">
+       <widget class="QPushButton" name="windowModalColorDialogButton">
         <property name="text">
-         <string>Window Modal Dialog (no parent)</string>
+         <string>Color Dialog</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="1">
-       <widget class="QPushButton" name="modelessNoParentButton">
+      <item row="5" column="2">
+       <widget class="QPushButton" name="windowModalFileDialogButton">
         <property name="text">
-         <string>Modeless Dialog (no parent)</string>
+         <string>File Dialog</string>
         </property>
        </widget>
       </item>
-      <item row="4" column="0">
+      <item row="6" column="0">
+       <widget class="QPushButton" name="windowModalFontDialogButton">
+        <property name="text">
+         <string>Font Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="1">
+       <widget class="QPushButton" name="windowModalPageSetupDialogButton">
+        <property name="text">
+         <string>Page Setup Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="2">
+       <widget class="QPushButton" name="windowModalPrintDialogButton">
+        <property name="text">
+         <string>Print Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="10" column="0">
+       <widget class="QPushButton" name="applicationModalCustomDialogButton">
+        <property name="text">
+         <string>Custom Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="10" column="1">
+       <widget class="QPushButton" name="applicationModalColorDialogButton">
+        <property name="text">
+         <string>Color Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="10" column="2">
+       <widget class="QPushButton" name="applicationModalFileDialogButton">
+        <property name="text">
+         <string>File Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="11" column="0">
+       <widget class="QPushButton" name="applicationModalFontDialogButton">
+        <property name="text">
+         <string>Font Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="11" column="1">
+       <widget class="QPushButton" name="applicationModalPageSetupDialogButton">
+        <property name="text">
+         <string>Page Setup Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="11" column="2">
+       <widget class="QPushButton" name="applicationModalPrintDialogButton">
+        <property name="text">
+         <string>Print Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="12" column="0" colspan="3">
+       <widget class="QLabel" name="applicationModalNoteLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <pointsize>11</pointsize>
+         </font>
+        </property>
+        <property name="text">
+         <string>Native Application Modal Dialogs use static API instead of exec()</string>
+        </property>
+       </widget>
+      </item>
+      <item row="9" column="0" colspan="3">
        <widget class="QCheckBox" name="applicationModalUseExecCheckBox">
         <property name="font">
          <font>
         </property>
        </widget>
       </item>
-      <item row="0" column="0">
-       <widget class="QPushButton" name="modelessButton">
+      <item row="7" column="0" colspan="3">
+       <widget class="QLabel" name="windowModalNoteLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <pointsize>11</pointsize>
+         </font>
+        </property>
         <property name="text">
-         <string>Modeless Dialog</string>
+         <string>Native Window Modal Dialogs use open()</string>
         </property>
        </widget>
       </item>
-      <item row="3" column="0">
-       <widget class="QPushButton" name="siblingWindowModalButton">
+      <item row="8" column="0" colspan="3">
+       <widget class="QLabel" name="applicationModalDialogsLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <weight>75</weight>
+          <bold>true</bold>
+         </font>
+        </property>
+        <property name="text">
+         <string>Application Modal Dialogs</string>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="0" colspan="2">
+       <widget class="QLabel" name="windowModalDialogsLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <weight>75</weight>
+          <bold>true</bold>
+         </font>
+        </property>
         <property name="text">
-         <string>Window Modal Dialog (sibling)</string>
+         <string>Window Modal Dialogs</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0" colspan="3">
+       <widget class="QLabel" name="modelessDialogsLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <weight>75</weight>
+          <bold>true</bold>
+         </font>
+        </property>
+        <property name="text">
+         <string>Modeless (Non-Modal) Dialogs</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0" colspan="3">
+       <widget class="QCheckBox" name="createSiblingDialogCheckBox">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="text">
+         <string>Create new dialogs as siblings of this dialog</string>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
         </property>
        </widget>
       </item>
        <property name="text">
         <string>Close</string>
        </property>
+       <property name="default">
+        <bool>true</bool>
+       </property>
       </widget>
      </item>
     </layout>
     </hint>
    </hints>
   </connection>
+  <connection>
+   <sender>useThisAsParentCheckBox</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>createSiblingDialogCheckBox</receiver>
+   <slot>setDisabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>260</x>
+     <y>39</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>260</x>
+     <y>60</y>
+    </hint>
+   </hints>
+  </connection>
  </connections>
 </ui>
index 5016383..35584b5 100644 (file)
 
 #include <QtCore/QDebug>
 #include <QtCore/QTimer>
+#include <QtWidgets/QColorDialog>
+#include <QtWidgets/QFileDialog>
+#include <QtWidgets/QFontDialog>
+#include <QtPrintSupport/QPageSetupDialog>
+#include <QtPrintSupport/QPrintDialog>
 
-class Dialog : public QDialog, public Ui::Dialog
+enum DialogType
+{
+    CustomDialogType,
+    ColorDialogType,
+    FileDialogType,
+    FontDialogType,
+    PageSetupDialogType,
+    PrintDialogType
+};
+
+class CustomDialog : public QDialog, public Ui::Dialog
 {
     Q_OBJECT
 public:
-    Dialog(QWidget *parent = 0)
+    CustomDialog(QWidget *parent = 0)
         : QDialog(parent)
     {
         setupUi(this);
-        connect(this, SIGNAL(finished(int)), SLOT(dialogFinished(int)));
-        connect(this, SIGNAL(accepted()), SLOT(dialogAccepted()));
-        connect(this, SIGNAL(rejected()), SLOT(dialogRejected()));
+
+        // hide the "Create new dialogs as siblings of this dialog" button when
+        // we don't have a parent of our own (they would be parentless anyway)
+        if (!parent) {
+            createSiblingDialogCheckBox->setChecked(false);
+            createSiblingDialogCheckBox->setVisible(false);
+        }
     }
 
 private slots:
-    void on_modelessButton_clicked()
-    { newDialog(Qt::NonModal, this); }
-    void on_modelessNoParentButton_clicked()
-    { newDialog(Qt::NonModal, 0); }
-    void on_windowModalButton_clicked()
-    { newDialog(Qt::WindowModal, this); }
-    void on_windowModalNoParentButton_clicked()
-    { newDialog(Qt::WindowModal, 0); }
-    void on_siblingWindowModalButton_clicked()
-    { newDialog(Qt::WindowModal, parentWidget()); }
-    void on_applicationModalButton_clicked()
-    { newDialog(Qt::ApplicationModal, this); }
-    void on_applicationModalNoParentButton_clicked()
-    { newDialog(Qt::ApplicationModal, 0); }
-    void on_siblingApplicationModalButton_clicked()
-    { newDialog(Qt::ApplicationModal, parentWidget()); }
-
-    void dialogFinished(int result)
-    { qDebug() << "Dialog finished, result" << result; }
-    void dialogAccepted()
-    { qDebug() << "Dialog accepted"; }
-    void dialogRejected()
-    { qDebug() << "Dialog rejected"; }
+    void on_modelessCustomDialogButton_clicked()
+    { newDialog(CustomDialogType, Qt::NonModal); }
+    void on_modelessColorDialogButton_clicked()
+    { newDialog(ColorDialogType, Qt::NonModal); }
+    void on_modelessFontDialogButton_clicked()
+    { newDialog(FontDialogType, Qt::NonModal); }
+
+    void on_windowModalCustomDialogButton_clicked()
+    { newDialog(CustomDialogType, Qt::WindowModal); }
+    void on_windowModalColorDialogButton_clicked()
+    { newDialog(ColorDialogType, Qt::WindowModal); }
+    void on_windowModalFileDialogButton_clicked()
+    { newDialog(FileDialogType, Qt::WindowModal); }
+    void on_windowModalFontDialogButton_clicked()
+    { newDialog(FontDialogType, Qt::WindowModal); }
+    void on_windowModalPageSetupDialogButton_clicked()
+    { newDialog(PageSetupDialogType, Qt::WindowModal); }
+    void on_windowModalPrintDialogButton_clicked()
+    { newDialog(PrintDialogType, Qt::WindowModal); }
+
+    void on_applicationModalCustomDialogButton_clicked()
+    { newDialog(CustomDialogType, Qt::ApplicationModal); }
+    void on_applicationModalColorDialogButton_clicked()
+    { newDialog(ColorDialogType, Qt::ApplicationModal); }
+    void on_applicationModalFileDialogButton_clicked()
+    { newDialog(FileDialogType, Qt::ApplicationModal); }
+    void on_applicationModalFontDialogButton_clicked()
+    { newDialog(FontDialogType, Qt::ApplicationModal); }
+    void on_applicationModalPageSetupDialogButton_clicked()
+    { newDialog(PageSetupDialogType, Qt::ApplicationModal); }
+    void on_applicationModalPrintDialogButton_clicked()
+    { newDialog(PrintDialogType, Qt::ApplicationModal); }
 
 private:
-    void newDialog(Qt::WindowModality windowModality, QWidget *parent)
+    void newDialog(DialogType dialogType, Qt::WindowModality windowModality)
     {
-        Dialog *dialog = new Dialog(parent);
+        QWidget *parent = 0;
+        if (useThisAsParentCheckBox->isChecked())
+            parent = this;
+        else if (createSiblingDialogCheckBox->isChecked())
+            parent = parentWidget();
+
+        QDialog *dialog;
+        switch (dialogType) {
+        case CustomDialogType:
+            dialog = new CustomDialog(parent);
+            break;
+        case ColorDialogType:
+            if (windowModality == Qt::ApplicationModal && applicationModalUseExecCheckBox->isChecked()) {
+                QColorDialog::getColor(Qt::white, parent);
+                return;
+            }
+            dialog = new QColorDialog(parent);
+            break;
+        case FileDialogType:
+            if (windowModality == Qt::ApplicationModal && applicationModalUseExecCheckBox->isChecked()) {
+                QFileDialog::getOpenFileName(parent);
+                return;
+            }
+            dialog = new QFileDialog(parent);
+            break;
+        case FontDialogType:
+            if (windowModality == Qt::ApplicationModal && applicationModalUseExecCheckBox->isChecked()) {
+                bool unused = false;
+                QFontDialog::getFont(&unused, parent);
+                return;
+            }
+            dialog = new QFontDialog(parent);
+            break;
+        case PageSetupDialogType:
+            dialog = new QPageSetupDialog(parent);
+            break;
+        case PrintDialogType:
+            dialog = new QPrintDialog(parent);
+            break;
+        }
+
         dialog->setAttribute(Qt::WA_DeleteOnClose);
         dialog->setWindowModality(windowModality);
+
         if (windowModality == Qt::ApplicationModal && applicationModalUseExecCheckBox->isChecked())
             dialog->exec();
+        else if (windowModality == Qt::WindowModal)
+            dialog->open();
         else
             dialog->show();
     }
@@ -123,27 +194,89 @@ private slots:
         w->setAttribute(Qt::WA_GroupLeader);
         w->show();
     }
-    void on_modelessButton_clicked()
-    { newDialog(Qt::NonModal); }
-    void on_modelessNoParentButton_clicked()
-    { newDialog(Qt::NonModal, false); }
-    void on_windowModalButton_clicked()
-    { newDialog(Qt::WindowModal); }
-    void on_windowModalNoParentButton_clicked()
-    { newDialog(Qt::WindowModal, false); }
-    void on_applicationModalButton_clicked()
-    { newDialog(Qt::ApplicationModal); }
-    void on_applicationModalNoParentButton_clicked()
-    { newDialog(Qt::ApplicationModal, false); }
+
+    void on_modelessCustomDialogButton_clicked()
+    { newDialog(CustomDialogType, Qt::NonModal); }
+    void on_modelessColorDialogButton_clicked()
+    { newDialog(ColorDialogType, Qt::NonModal); }
+    void on_modelessFontDialogButton_clicked()
+    { newDialog(FontDialogType, Qt::NonModal); }
+
+    void on_windowModalCustomDialogButton_clicked()
+    { newDialog(CustomDialogType, Qt::WindowModal); }
+    void on_windowModalColorDialogButton_clicked()
+    { newDialog(ColorDialogType, Qt::WindowModal); }
+    void on_windowModalFileDialogButton_clicked()
+    { newDialog(FileDialogType, Qt::WindowModal); }
+    void on_windowModalFontDialogButton_clicked()
+    { newDialog(FontDialogType, Qt::WindowModal); }
+    void on_windowModalPageSetupDialogButton_clicked()
+    { newDialog(PageSetupDialogType, Qt::WindowModal); }
+    void on_windowModalPrintDialogButton_clicked()
+    { newDialog(PrintDialogType, Qt::WindowModal); }
+
+    void on_applicationModalCustomDialogButton_clicked()
+    { newDialog(CustomDialogType, Qt::ApplicationModal); }
+    void on_applicationModalColorDialogButton_clicked()
+    { newDialog(ColorDialogType, Qt::ApplicationModal); }
+    void on_applicationModalFileDialogButton_clicked()
+    { newDialog(FileDialogType, Qt::ApplicationModal); }
+    void on_applicationModalFontDialogButton_clicked()
+    { newDialog(FontDialogType, Qt::ApplicationModal); }
+    void on_applicationModalPageSetupDialogButton_clicked()
+    { newDialog(PageSetupDialogType, Qt::ApplicationModal); }
+    void on_applicationModalPrintDialogButton_clicked()
+    { newDialog(PrintDialogType, Qt::ApplicationModal); }
 
 private:
-    void newDialog(Qt::WindowModality windowModality, bool withParent = true)
+    void newDialog(DialogType dialogType, Qt::WindowModality windowModality)
     {
-        Dialog *dialog = new Dialog(withParent ? this : 0);
+        QWidget *parent = 0;
+        if (useThisAsParentCheckBox->isChecked())
+            parent = this;
+
+        QDialog *dialog;
+        switch (dialogType) {
+        case CustomDialogType:
+            dialog = new CustomDialog(parent);
+            break;
+        case ColorDialogType:
+            if (windowModality == Qt::ApplicationModal && applicationModalUseExecCheckBox->isChecked()) {
+                QColorDialog::getColor(Qt::white, parent);
+                return;
+            }
+            dialog = new QColorDialog(parent);
+            break;
+        case FileDialogType:
+            if (windowModality == Qt::ApplicationModal && applicationModalUseExecCheckBox->isChecked()) {
+                QFileDialog::getOpenFileName(parent);
+                return;
+            }
+            dialog = new QFileDialog(parent);
+            break;
+        case FontDialogType:
+            if (windowModality == Qt::ApplicationModal && applicationModalUseExecCheckBox->isChecked()) {
+                bool unused = false;
+                QFontDialog::getFont(&unused, parent);
+                return;
+            }
+            dialog = new QFontDialog(parent);
+            break;
+        case PageSetupDialogType:
+            dialog = new QPageSetupDialog(parent);
+            break;
+        case PrintDialogType:
+            dialog = new QPrintDialog(parent);
+            break;
+        }
+
         dialog->setAttribute(Qt::WA_DeleteOnClose);
         dialog->setWindowModality(windowModality);
+
         if (windowModality == Qt::ApplicationModal && applicationModalUseExecCheckBox->isChecked())
             dialog->exec();
+        else if (windowModality == Qt::WindowModal)
+            dialog->open();
         else
             dialog->show();
     }
index 7bed916..973579c 100644 (file)
@@ -1,3 +1,3 @@
 SOURCES = main.cpp
 FORMS = widget.ui dialog.ui
-QT += widgets
+QT += widgets printsupport
index 63a6ae7..26d218b 100644 (file)
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>519</width>
-    <height>207</height>
+    <width>622</width>
+    <height>462</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
-  <layout class="QVBoxLayout">
+  <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QGroupBox" name="groupBox">
      <property name="title">
       <string>Select the type of window to create:</string>
      </property>
      <layout class="QGridLayout" name="gridLayout">
-      <item row="2" column="1">
-       <widget class="QPushButton" name="windowModalNoParentButton">
+      <item row="2" column="0" colspan="3">
+       <widget class="QLabel" name="topLevelWindowsLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <weight>75</weight>
+          <bold>true</bold>
+         </font>
+        </property>
+        <property name="text">
+         <string>Top-level Windows</string>
+        </property>
+       </widget>
+      </item>
+      <item row="15" column="0" colspan="3">
+       <widget class="QLabel" name="applicationModalNoteLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <pointsize>11</pointsize>
+         </font>
+        </property>
+        <property name="text">
+         <string>Note: Native Application Modal Dialogs use static API instead of exec()</string>
+        </property>
+       </widget>
+      </item>
+      <item row="14" column="2">
+       <widget class="QPushButton" name="applicationModalPrintDialogButton">
+        <property name="text">
+         <string>Print Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0">
+       <widget class="QPushButton" name="windowButton">
+        <property name="text">
+         <string>Window</string>
+        </property>
+       </widget>
+      </item>
+      <item row="13" column="1">
+       <widget class="QPushButton" name="applicationModalColorDialogButton">
+        <property name="text">
+         <string>Color Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="9" column="0">
+       <widget class="QPushButton" name="windowModalFontDialogButton">
+        <property name="text">
+         <string>Font Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="14" column="0">
+       <widget class="QPushButton" name="applicationModalFontDialogButton">
+        <property name="text">
+         <string>Font Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="2">
+       <widget class="QPushButton" name="modelessFontDialogButton">
         <property name="text">
-         <string>Window Modal Dialog (no parent)</string>
+         <string>Font Dialog</string>
         </property>
        </widget>
       </item>
-      <item row="2" column="0">
-       <widget class="QPushButton" name="windowModalButton">
+      <item row="14" column="1">
+       <widget class="QPushButton" name="applicationModalPageSetupDialogButton">
         <property name="text">
-         <string>Window Modal Dialog</string>
+         <string>Page Setup Dialog</string>
         </property>
        </widget>
       </item>
-      <item row="1" column="1">
-       <widget class="QPushButton" name="modelessNoParentButton">
+      <item row="8" column="0">
+       <widget class="QPushButton" name="windowModalCustomDialogButton">
         <property name="text">
-         <string>Modeless Dialog (no parent)</string>
+         <string>Custom Dialog</string>
         </property>
        </widget>
       </item>
-      <item row="1" column="0">
-       <widget class="QPushButton" name="modelessButton">
+      <item row="9" column="1">
+       <widget class="QPushButton" name="windowModalPageSetupDialogButton">
         <property name="text">
-         <string>Modeless Dialog</string>
+         <string>Page Setup Dialog</string>
         </property>
        </widget>
       </item>
-      <item row="4" column="0">
-       <widget class="QPushButton" name="applicationModalButton">
+      <item row="6" column="1">
+       <widget class="QPushButton" name="modelessColorDialogButton">
+        <property name="text">
+         <string>Color Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="13" column="2">
+       <widget class="QPushButton" name="applicationModalFileDialogButton">
+        <property name="text">
+         <string>File Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="7" column="0" colspan="3">
+       <widget class="QLabel" name="windowModalDialogsLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <weight>75</weight>
+          <bold>true</bold>
+         </font>
+        </property>
         <property name="text">
-         <string>Application Modal Dialog</string>
+         <string>Window Modal Dialogs</string>
         </property>
        </widget>
       </item>
-      <item row="3" column="0" colspan="2">
+      <item row="5" column="0" colspan="3">
+       <widget class="QLabel" name="modelessDialogsLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <weight>75</weight>
+          <bold>true</bold>
+         </font>
+        </property>
+        <property name="text">
+         <string>Modeless (Non-Modal) Dialogs</string>
+        </property>
+       </widget>
+      </item>
+      <item row="11" column="0" colspan="2">
+       <widget class="QLabel" name="applicationModalDialogsLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <weight>75</weight>
+          <bold>true</bold>
+         </font>
+        </property>
+        <property name="text">
+         <string>Application Modal Dialogs</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1">
+       <widget class="QPushButton" name="groupLeaderButton">
+        <property name="text">
+         <string>Window (Group Leader)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="9" column="2">
+       <widget class="QPushButton" name="windowModalPrintDialogButton">
+        <property name="text">
+         <string>Print Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="10" column="0" colspan="3">
+       <widget class="QLabel" name="windowModalNoteLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <pointsize>11</pointsize>
+         </font>
+        </property>
+        <property name="text">
+         <string>Note: Window Modal Dialogs use open()</string>
+        </property>
+       </widget>
+      </item>
+      <item row="8" column="1">
+       <widget class="QPushButton" name="windowModalColorDialogButton">
+        <property name="text">
+         <string>Color Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="12" column="0" colspan="3">
        <widget class="QCheckBox" name="applicationModalUseExecCheckBox">
         <property name="font">
          <font>
         </property>
        </widget>
       </item>
-      <item row="4" column="1">
-       <widget class="QPushButton" name="applicationModalNoParentButton">
+      <item row="8" column="2">
+       <widget class="QPushButton" name="windowModalFileDialogButton">
         <property name="text">
-         <string>Application Modal Dialog (no parent)</string>
+         <string>File Dialog</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="1">
-       <widget class="QPushButton" name="groupLeaderButton">
+      <item row="13" column="0">
+       <widget class="QPushButton" name="applicationModalCustomDialogButton">
         <property name="text">
-         <string>Window (Group Leader)</string>
+         <string>Custom Dialog</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="0">
-       <widget class="QPushButton" name="windowButton">
+      <item row="6" column="0">
+       <widget class="QPushButton" name="modelessCustomDialogButton">
         <property name="text">
-         <string>Window</string>
+         <string>Custom Dialog</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0" colspan="3">
+       <widget class="QCheckBox" name="useThisAsParentCheckBox">
+        <property name="text">
+         <string>Use this window as parent for newly created dialogs</string>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
         </property>
        </widget>
       </item>