From 772d748b95c068d93fce1d681a457ae97019ec40 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Wed, 28 Mar 2012 11:36:10 +0200 Subject: [PATCH] QWindow: add windowModality as a Q_PROPERTY() This also adds the QWindow::windowModalityChanged() signal. Change-Id: I6e3bc3155d72811d173857c39d36dcb264928334 Reviewed-by: Alan Alpert Reviewed-by: Lars Knoll --- src/gui/kernel/qwindow.cpp | 29 +++++++++++++++++++++-------- src/gui/kernel/qwindow.h | 2 ++ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 7248a990d7..519e18e940 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -363,6 +363,8 @@ bool QWindow::isTopLevel() const Returns whether the window is modal. A modal window prevents other windows from getting any input. + + \sa QWindow::windowModality */ bool QWindow::isModal() const { @@ -370,26 +372,37 @@ bool QWindow::isModal() const return d->modality != Qt::NonModal; } -/*! - Returns the window's modality. +/*! \property QWindow::windowModality + \brief the modality of the window - \sa setWindowModality() + A modal window prevents other windows from receiving input events. Qt + supports two types of modality: Qt::WindowModal and Qt::ApplicationModal. + + By default, this property is Qt::NonModal + + \sa Qt::WindowModality */ + Qt::WindowModality QWindow::windowModality() const { Q_D(const QWindow); return d->modality; } -/*! - Sets the window's modality to \a windowModality. -*/ -void QWindow::setWindowModality(Qt::WindowModality windowModality) +void QWindow::setWindowModality(Qt::WindowModality modality) { Q_D(QWindow); - d->modality = windowModality; + if (d->modality == modality) + return; + d->modality = modality; + emit windowModalityChanged(modality); } +/*! \fn void QWindow::windowModalityChanged(Qt::WindowModality windowModality) + + This signal is emitted when the Qwindow::windowModality property changes to \a windowModality. +*/ + /*! Sets the window's surface \a format. diff --git a/src/gui/kernel/qwindow.h b/src/gui/kernel/qwindow.h index 1461f12520..711761e5e0 100644 --- a/src/gui/kernel/qwindow.h +++ b/src/gui/kernel/qwindow.h @@ -85,6 +85,7 @@ class Q_GUI_EXPORT QWindow : public QObject, public QSurface Q_DECLARE_PRIVATE(QWindow) Q_PROPERTY(QString windowTitle READ windowTitle WRITE setWindowTitle) + Q_PROPERTY(Qt::WindowModality windowModality READ windowModality WRITE setWindowModality NOTIFY windowModalityChanged) Q_PROPERTY(int x READ x WRITE setX NOTIFY xChanged) Q_PROPERTY(int y READ y WRITE setY NOTIFY yChanged) Q_PROPERTY(int width READ width WRITE setWidth NOTIFY widthChanged) @@ -255,6 +256,7 @@ public Q_SLOTS: Q_SIGNALS: void backBufferReady(); void screenChanged(QScreen *screen); + void windowModalityChanged(Qt::WindowModality windowModality); void xChanged(int arg); void yChanged(int arg);