summaryrefslogtreecommitdiffstats
path: root/src
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
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')
-rw-r--r--src/corelib/kernel/qcoreevent.cpp9
-rw-r--r--src/corelib/kernel/qcoreevent.h5
-rw-r--r--src/gui/kernel/qevent.cpp17
-rw-r--r--src/gui/kernel/qevent.h10
-rw-r--r--src/gui/kernel/qguiapplication.cpp7
5 files changed, 43 insertions, 5 deletions
diff --git a/src/corelib/kernel/qcoreevent.cpp b/src/corelib/kernel/qcoreevent.cpp
index 7f91d61189..09fe7c60ca 100644
--- a/src/corelib/kernel/qcoreevent.cpp
+++ b/src/corelib/kernel/qcoreevent.cpp
@@ -98,12 +98,13 @@ QT_BEGIN_NAMESPACE
\value ActionChanged An action has been changed (QActionEvent).
\value ActionRemoved An action has been removed (QActionEvent).
\value ActivationChange A widget's top-level window activation state has changed.
- \value ApplicationActivate The application has been made available to the user.
- \value ApplicationActivated This enum has been deprecated. Use ApplicationActivate instead.
- \value ApplicationDeactivate The application has been suspended, and is unavailable to the user.
+ \value ApplicationActivate This enum has been deprecated. Use ApplicationStateChange instead.
+ \value ApplicationActivated This enum has been deprecated. Use ApplicationStateChange instead.
+ \value ApplicationDeactivate This enum has been deprecated. Use ApplicationStateChange instead.
\value ApplicationFontChange The default application font has changed.
\value ApplicationLayoutDirectionChange The default application layout direction has changed.
\value ApplicationPaletteChange The default application palette has changed.
+ \value ApplicationStateChange The state of the application has changed.
\value ApplicationWindowIconChange The application's icon has changed.
\value ChildAdded An object gets a child (QChildEvent).
\value ChildPolished A widget child gets polished (QChildEvent).
@@ -264,7 +265,9 @@ QT_BEGIN_NAMESPACE
\omitvalue Style
\omitvalue StyleAnimationUpdate
\omitvalue ZeroTimerEvent
+ \omitvalue ApplicationActivate
\omitvalue ApplicationActivated
+ \omitvalue ApplicationDeactivate
\omitvalue ApplicationDeactivated
\omitvalue MacGLWindowChange
\omitvalue MacGLClearDrawable
diff --git a/src/corelib/kernel/qcoreevent.h b/src/corelib/kernel/qcoreevent.h
index 47a461d330..2ca0a7d0b0 100644
--- a/src/corelib/kernel/qcoreevent.h
+++ b/src/corelib/kernel/qcoreevent.h
@@ -167,9 +167,9 @@ public:
ToolBarChange = 120, // toolbar visibility toggled
- ApplicationActivate = 121, // application has been changed to active
+ ApplicationActivate = 121, // deprecated. Use ApplicationStateChange instead.
ApplicationActivated = ApplicationActivate, // deprecated
- ApplicationDeactivate = 122, // application has been changed to inactive
+ ApplicationDeactivate = 122, // deprecated. Use ApplicationStateChange instead.
ApplicationDeactivated = ApplicationDeactivate, // deprecated
QueryWhatsThis = 123, // query what's this widget help
@@ -276,6 +276,7 @@ public:
PlatformPanel = 212,
StyleAnimationUpdate = 213, // style animation target should be updated
+ ApplicationStateChange = 214,
// 512 reserved for Qt Jambi's MetaCall event
// 513 reserved for Qt Jambi's DeleteOnMainThread event
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)