qt 6.5.1 original

This commit is contained in:
kleuter
2023-10-29 23:33:08 +01:00
parent 71d22ab6b0
commit 85d238dfda
21202 changed files with 5499099 additions and 0 deletions

View File

@ -0,0 +1,20 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
#####################################################################
## windowmodality Binary:
#####################################################################
qt_internal_add_manual_test(windowmodality
GUI
SOURCES
dialog.ui
main.cpp
widget.ui
LIBRARIES
Qt::Gui
Qt::PrintSupport
Qt::Widgets
ENABLE_AUTOGEN_TOOLS
uic
)

View File

@ -0,0 +1,326 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>515</width>
<height>480</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Select the type of dialog to create:</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" 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>
<item row="3" column="0">
<widget class="QPushButton" name="modelessCustomDialogButton">
<property name="text">
<string>Custom Dialog</string>
</property>
</widget>
</item>
<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>Font Dialog</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QPushButton" name="windowModalCustomDialogButton">
<property name="text">
<string>Custom Dialog</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QPushButton" name="windowModalColorDialogButton">
<property name="text">
<string>Color Dialog</string>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QPushButton" name="windowModalFileDialogButton">
<property name="text">
<string>File Dialog</string>
</property>
</widget>
</item>
<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>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Application Modal Dialogs use exec()</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<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>Native Window Modal Dialogs use open()</string>
</property>
</widget>
</item>
<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 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>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>131</width>
<height>31</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="okButton">
<property name="text">
<string>Close</string>
</property>
<property name="default">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>okButton</sender>
<signal>clicked()</signal>
<receiver>Dialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>397</x>
<y>338</y>
</hint>
<hint type="destinationlabel">
<x>96</x>
<y>254</y>
</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>

View File

@ -0,0 +1,257 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "ui_dialog.h"
#include "ui_widget.h"
#include <QtCore/QDebug>
#include <QtCore/QTimer>
#include <QColorDialog>
#include <QFileDialog>
#include <QFontDialog>
#include <QPageSetupDialog>
#include <QPrintDialog>
enum DialogType
{
CustomDialogType,
ColorDialogType,
FileDialogType,
FontDialogType,
PageSetupDialogType,
PrintDialogType
};
class CustomDialog : public QDialog, public Ui::Dialog
{
Q_OBJECT
public:
CustomDialog(QWidget *parent = nullptr)
: QDialog(parent)
{
setupUi(this);
// 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_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(DialogType dialogType, Qt::WindowModality windowModality)
{
QWidget *parent = nullptr;
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();
}
bool event(QEvent *event)
{
if (event->type() == QEvent::WindowBlocked)
setPalette(Qt::darkGray);
else if (event->type() == QEvent::WindowUnblocked)
setPalette(QPalette());
return QWidget::event(event);
}
};
class Widget : public QWidget, public Ui::Widget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr)
: QWidget(parent)
{
setupUi(this);
}
private slots:
void on_windowButton_clicked()
{ (new Widget)->show(); }
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(DialogType dialogType, Qt::WindowModality windowModality)
{
QWidget *parent = nullptr;
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();
}
bool event(QEvent *event)
{
if (event->type() == QEvent::WindowBlocked)
setPalette(Qt::darkGray);
else if (event->type() == QEvent::WindowUnblocked)
setPalette(QPalette());
return QWidget::event(event);
}
};
int main(int argc, char **argv)
{
QApplication app(argc, argv);
Widget widget;
widget.show();
return app.exec();
}
#include "main.moc"

View File

@ -0,0 +1,279 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Widget</class>
<widget class="QWidget" name="Widget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>622</width>
<height>462</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<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="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>Font Dialog</string>
</property>
</widget>
</item>
<item row="14" column="1">
<widget class="QPushButton" name="applicationModalPageSetupDialogButton">
<property name="text">
<string>Page Setup Dialog</string>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QPushButton" name="windowModalCustomDialogButton">
<property name="text">
<string>Custom Dialog</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QPushButton" name="windowModalPageSetupDialogButton">
<property name="text">
<string>Page Setup Dialog</string>
</property>
</widget>
</item>
<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>Window Modal Dialogs</string>
</property>
</widget>
</item>
<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="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>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Application Modal Dialogs use exec()</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="8" column="2">
<widget class="QPushButton" name="windowModalFileDialogButton">
<property name="text">
<string>File Dialog</string>
</property>
</widget>
</item>
<item row="13" column="0">
<widget class="QPushButton" name="applicationModalCustomDialogButton">
<property name="text">
<string>Custom Dialog</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QPushButton" name="modelessCustomDialogButton">
<property name="text">
<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>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,3 @@
SOURCES = main.cpp
FORMS = widget.ui dialog.ui
QT += widgets printsupport