diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2013-04-10 13:55:50 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-04-19 20:10:46 +0200 |
commit | da01deb0ac01b37656e021b9d5d696c5de7b0afb (patch) | |
tree | 6a689d5cddc689bc83c6a74c8dc5ef0f48359b64 /src/widgets/kernel/qapplication_qpa.cpp | |
parent | 926086b9e37d45d09d5ce7d632a07583b40a8f70 (diff) |
Implement alertion state for windows.
Add QWindow::alert() and QPlatformWindow::setAlertState().
Add logic to clear alertion state when the window becomes
active. The platform plugins then only need to implement a setter
and a cheap getter and need not handle activation.
Prototypically implement X11 and Windows.
Task-number: QTBUG-30416
Change-Id: Ia70c4722d812462a21f4034b7d52735c9f2bc49c
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Diffstat (limited to 'src/widgets/kernel/qapplication_qpa.cpp')
-rw-r--r-- | src/widgets/kernel/qapplication_qpa.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/widgets/kernel/qapplication_qpa.cpp b/src/widgets/kernel/qapplication_qpa.cpp index 54eb443c43..0d929f367b 100644 --- a/src/widgets/kernel/qapplication_qpa.cpp +++ b/src/widgets/kernel/qapplication_qpa.cpp @@ -55,6 +55,7 @@ #include <qdesktopwidget.h> #include <qpa/qplatformcursor.h> #include <qpa/qplatformtheme.h> +#include <qpa/qplatformwindow.h> #include <qdebug.h> #include <qpa/qwindowsysteminterface.h> @@ -410,8 +411,17 @@ void QApplication::beep() { } -void QApplication::alert(QWidget *, int) +void QApplication::alert(QWidget *widget, int duration) { + if (widget) { + if (widget->window()->isActiveWindow()&& !widget->window()->windowState() & Qt::WindowMinimized) + return; + if (QWindow *window= QApplicationPrivate::windowForWidget(widget)) + window->alert(duration); + } else { + foreach (QWidget *topLevel, topLevelWidgets()) + QApplication::alert(topLevel, duration); + } } void qt_init(QApplicationPrivate *priv, int type) |