diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2014-06-20 11:26:54 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@digia.com> | 2014-06-25 17:32:01 +0200 |
commit | b975f80dd4fb0e59c751ae9de7740d9da92c4693 (patch) | |
tree | bba981701990fcc6e13d4b95899bc68b0e135300 | |
parent | 435fb273355566c2888f8f685a369ce689869a14 (diff) |
QQuickApplication: do not filter LayoutDirectionChange events
The newly introduced QGuiApplication::layoutDirectionChanged() is much
cheaper to use than filtering events of the application object.
Change-Id: I356c94cc6bea806bf3644c31c2610501d90f6c35
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
-rw-r--r-- | src/quick/util/qquickapplication.cpp | 35 | ||||
-rw-r--r-- | src/quick/util/qquickapplication_p.h | 4 |
2 files changed, 4 insertions, 35 deletions
diff --git a/src/quick/util/qquickapplication.cpp b/src/quick/util/qquickapplication.cpp index 7fee2ee1fe..159d855ef0 100644 --- a/src/quick/util/qquickapplication.cpp +++ b/src/quick/util/qquickapplication.cpp @@ -50,30 +50,17 @@ QT_BEGIN_NAMESPACE -class QQuickApplicationPrivate : public QQmlApplicationPrivate -{ - Q_DECLARE_PUBLIC(QQuickApplication) -public: - QQuickApplicationPrivate() - : direction(QGuiApplication::layoutDirection()) - { - } - -private: - Qt::LayoutDirection direction; -}; - /* This object and its properties are documented as part of the Qt object, in qqmlengine.cpp */ QQuickApplication::QQuickApplication(QObject *parent) - : QQmlApplication(*new QQuickApplicationPrivate(), parent) + : QQmlApplication(parent) { if (qApp) { - qApp->installEventFilter(this); - + connect(qApp, SIGNAL(layoutDirectionChanged(Qt::LayoutDirection)), + this, SIGNAL(layoutDirectionChanged())); connect(qApp, SIGNAL(applicationStateChanged(Qt::ApplicationState)), this, SIGNAL(stateChanged(Qt::ApplicationState))); connect(qApp, SIGNAL(applicationStateChanged(Qt::ApplicationState)), @@ -92,8 +79,7 @@ bool QQuickApplication::active() const Qt::LayoutDirection QQuickApplication::layoutDirection() const { - Q_D(const QQuickApplication); - return d->direction; + return QGuiApplication::layoutDirection(); } bool QQuickApplication::supportsMultipleWindows() const @@ -106,17 +92,4 @@ Qt::ApplicationState QQuickApplication::state() const return QGuiApplication::applicationState(); } -bool QQuickApplication::eventFilter(QObject *, QEvent *event) -{ - Q_D(QQuickApplication); - if (event->type() == QEvent::ApplicationLayoutDirectionChange) { - Qt::LayoutDirection newDirection = QGuiApplication::layoutDirection(); - if (d->direction != newDirection) { - d->direction = newDirection; - emit layoutDirectionChanged(); - } - } - return false; -} - QT_END_NAMESPACE diff --git a/src/quick/util/qquickapplication_p.h b/src/quick/util/qquickapplication_p.h index 780fb1ffa6..996ed67c8f 100644 --- a/src/quick/util/qquickapplication_p.h +++ b/src/quick/util/qquickapplication_p.h @@ -50,7 +50,6 @@ QT_BEGIN_NAMESPACE -class QQuickApplicationPrivate; class Q_AUTOTEST_EXPORT QQuickApplication : public QQmlApplication { Q_OBJECT @@ -73,10 +72,7 @@ Q_SIGNALS: void stateChanged(Qt::ApplicationState state); private: - bool eventFilter(QObject *, QEvent *event); - Q_DISABLE_COPY(QQuickApplication) - Q_DECLARE_PRIVATE(QQuickApplication) }; QT_END_NAMESPACE |