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>
bb10
Richard Moe Gustavsen 2013-03-12 10:53:48 +01:00 committed by The Qt Project
parent 15fca980e9
commit 85ea2c0299
5 changed files with 43 additions and 5 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)