diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2014-06-20 11:22:26 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@digia.com> | 2014-06-23 17:28:23 +0200 |
commit | 01660fd569f78ce48364e1b9d9df3137f35a9a57 (patch) | |
tree | 7de9bfe70eec3bbb1ee3e48a23a6ef56a5798f64 /src/quick/util/qquickapplication.cpp | |
parent | 5dd2e2b895af03f0aaa0ffaef7615ff41960cec6 (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.cpp | 24 |
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; |