aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/util/qquickapplication.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2014-06-20 11:22:26 +0200
committerJ-P Nurmi <jpnurmi@digia.com>2014-06-23 17:28:23 +0200
commit01660fd569f78ce48364e1b9d9df3137f35a9a57 (patch)
tree7de9bfe70eec3bbb1ee3e48a23a6ef56a5798f64 /src/quick/util/qquickapplication.cpp
parent5dd2e2b895af03f0aaa0ffaef7615ff41960cec6 (diff)
QQuickApplication: do not filter ApplicationActive/Inactive events
Listening to QGuiApplication::applicationStateChanged() is enough, no need to do expensive event filtering for listening to application state changes. Change-Id: Iba71bc8cefec236f2f7e2e25c57c5c6b9c9fb1ea Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Diffstat (limited to 'src/quick/util/qquickapplication.cpp')
-rw-r--r--src/quick/util/qquickapplication.cpp24
1 files changed, 5 insertions, 19 deletions
diff --git a/src/quick/util/qquickapplication.cpp b/src/quick/util/qquickapplication.cpp
index fb7c900252..7fee2ee1fe 100644
--- a/src/quick/util/qquickapplication.cpp
+++ b/src/quick/util/qquickapplication.cpp
@@ -55,13 +55,11 @@ class QQuickApplicationPrivate : public QQmlApplicationPrivate
Q_DECLARE_PUBLIC(QQuickApplication)
public:
QQuickApplicationPrivate()
- : isActive(QGuiApplication::focusWindow() != 0),
- direction(QGuiApplication::layoutDirection())
+ : direction(QGuiApplication::layoutDirection())
{
}
private:
- bool isActive;
Qt::LayoutDirection direction;
};
@@ -78,6 +76,8 @@ QQuickApplication::QQuickApplication(QObject *parent)
connect(qApp, SIGNAL(applicationStateChanged(Qt::ApplicationState)),
this, SIGNAL(stateChanged(Qt::ApplicationState)));
+ connect(qApp, SIGNAL(applicationStateChanged(Qt::ApplicationState)),
+ this, SIGNAL(activeChanged()));
}
}
@@ -87,8 +87,7 @@ QQuickApplication::~QQuickApplication()
bool QQuickApplication::active() const
{
- Q_D(const QQuickApplication);
- return d->isActive;
+ return QGuiApplication::applicationState() == Qt::ApplicationActive;
}
Qt::LayoutDirection QQuickApplication::layoutDirection() const
@@ -110,20 +109,7 @@ Qt::ApplicationState QQuickApplication::state() const
bool QQuickApplication::eventFilter(QObject *, QEvent *event)
{
Q_D(QQuickApplication);
- if ((event->type() == QEvent::ApplicationActivate) ||
- (event->type() == QEvent::ApplicationDeactivate) ||
- (event->type() == QEvent::ApplicationStateChange)) {
- bool wasActive = d->isActive;
- if (event->type() == QEvent::ApplicationStateChange) {
- QApplicationStateChangeEvent * e= static_cast<QApplicationStateChangeEvent*>(event);
- d->isActive = e->applicationState() == Qt::ApplicationActive;
- } else {
- d->isActive = (event->type() == QEvent::ApplicationActivate);
- }
- if (d->isActive != wasActive) {
- emit activeChanged();
- }
- } else if (event->type() == QEvent::ApplicationLayoutDirectionChange) {
+ if (event->type() == QEvent::ApplicationLayoutDirectionChange) {
Qt::LayoutDirection newDirection = QGuiApplication::layoutDirection();
if (d->direction != newDirection) {
d->direction = newDirection;