summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@digia.com>2013-03-12 10:53:48 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-04-03 10:15:40 +0200
commit85ea2c02992660bc559736462bb2d99d03ccd681 (patch)
tree9ef34d2f8bc02675717e0438112e02d7e75ebf36 /src/gui/kernel
parent15fca980e947b13069e85b51c9cd2240eb3c5fa5 (diff)
ApplicationState: Add new event class: ApplicationStateChangeEvent
This patch will follow up on e27ca37 (add more state to QT::ApplicationState), and add a new event class QApplicationStateChangeEvent with type Qt::ApplicationStateChange. Change-Id: Idee724f181f1fbb2321ddad7e0df00c88b3488b1 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qevent.cpp17
-rw-r--r--src/gui/kernel/qevent.h10
-rw-r--r--src/gui/kernel/qguiapplication.cpp7
3 files changed, 34 insertions, 0 deletions
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index f7b7410278..4f1f7d838f 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -4400,4 +4400,21 @@ Qt::ScreenOrientation QScreenOrientationChangeEvent::orientation() const
return m_orientation;
}
+/*!
+ Creates a new QApplicationStateChangeEvent.
+ \a applicationState is the new state.
+*/
+QApplicationStateChangeEvent::QApplicationStateChangeEvent(Qt::ApplicationState applicationState)
+ : QEvent(QEvent::ApplicationStateChange), m_applicationState(applicationState)
+{
+}
+
+/*!
+ Returns the state of the application.
+*/
+Qt::ApplicationState QApplicationStateChangeEvent::applicationState() const
+{
+ return m_applicationState;
+}
+
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h
index 0b4e708bdb..79dcc6d250 100644
--- a/src/gui/kernel/qevent.h
+++ b/src/gui/kernel/qevent.h
@@ -905,6 +905,16 @@ private:
Qt::ScreenOrientation m_orientation;
};
+class Q_GUI_EXPORT QApplicationStateChangeEvent : public QEvent
+{
+public:
+ explicit QApplicationStateChangeEvent(Qt::ApplicationState state);
+ Qt::ApplicationState applicationState() const;
+
+private:
+ Qt::ApplicationState m_applicationState;
+};
+
QT_END_NAMESPACE
#endif // QEVENT_H
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index a1c9af45b8..c2e19ca2a8 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -1604,6 +1604,8 @@ void QGuiApplicationPrivate::processActivatedEvent(QWindowSystemInterfacePrivate
} else if (!platformIntegration()->hasCapability(QPlatformIntegration::ApplicationState)) {
QEvent appActivate(QEvent::ApplicationActivate);
qApp->sendSpontaneousEvent(qApp, &appActivate);
+ QApplicationStateChangeEvent appState(Qt::ApplicationActive);
+ qApp->sendSpontaneousEvent(qApp, &appState);
}
if (QGuiApplicationPrivate::focus_window) {
@@ -1614,6 +1616,8 @@ void QGuiApplicationPrivate::processActivatedEvent(QWindowSystemInterfacePrivate
} else if (!platformIntegration()->hasCapability(QPlatformIntegration::ApplicationState)) {
QEvent appActivate(QEvent::ApplicationDeactivate);
qApp->sendSpontaneousEvent(qApp, &appActivate);
+ QApplicationStateChangeEvent appState(Qt::ApplicationInactive);
+ qApp->sendSpontaneousEvent(qApp, &appState);
}
if (self) {
@@ -1653,6 +1657,9 @@ void QGuiApplicationPrivate::processApplicationStateChangedEvent(QWindowSystemIn
default:
break;
}
+
+ QApplicationStateChangeEvent event(applicationState);
+ qApp->sendSpontaneousEvent(qApp, &event);
}
void QGuiApplicationPrivate::processThemeChanged(QWindowSystemInterfacePrivate::ThemeChangeEvent *tce)