diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-12-21 12:26:02 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-12-21 16:48:02 +0000 |
commit | ac61952c992ee4cffd6f20b5f3739e44cb6c3de1 (patch) | |
tree | 0ad6a4ae2581ee9cb7dc670f31b5e601b820e91f /src/templates | |
parent | 8099ecb2a73832b930d217e7a957f190d49e6eb1 (diff) |
QQuickApplicationWindow: add locale property
Change-Id: I1292d1fb856710e38add8d77ae6e3dac28137cd9
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/templates')
-rw-r--r-- | src/templates/qquickapplicationwindow.cpp | 23 | ||||
-rw-r--r-- | src/templates/qquickapplicationwindow_p.h | 7 | ||||
-rw-r--r-- | src/templates/qquickcontrol.cpp | 3 |
3 files changed, 33 insertions, 0 deletions
diff --git a/src/templates/qquickapplicationwindow.cpp b/src/templates/qquickapplicationwindow.cpp index d2625a7b..46f07d3e 100644 --- a/src/templates/qquickapplicationwindow.cpp +++ b/src/templates/qquickapplicationwindow.cpp @@ -120,6 +120,7 @@ public: QQuickItem *footer; QQuickOverlay *overlay; QFont font; + QLocale locale; QQuickItem *activeFocusControl; QQuickApplicationWindow *q_ptr; }; @@ -410,6 +411,28 @@ void QQuickApplicationWindowPrivate::updateFont(const QFont &f) emit q->fontChanged(); } +QLocale QQuickApplicationWindow::locale() const +{ + Q_D(const QQuickApplicationWindow); + return d->locale; +} + +void QQuickApplicationWindow::setLocale(const QLocale &locale) +{ + Q_D(QQuickApplicationWindow); + if (d->locale == locale) + return; + + d->locale = locale; + QQuickControlPrivate::updateLocaleRecur(contentItem(), locale); + emit localeChanged(); +} + +void QQuickApplicationWindow::resetLocale() +{ + setLocale(QLocale()); +} + QQuickApplicationWindowAttached *QQuickApplicationWindow::qmlAttachedProperties(QObject *object) { return new QQuickApplicationWindowAttached(object); diff --git a/src/templates/qquickapplicationwindow_p.h b/src/templates/qquickapplicationwindow_p.h index a2069cd8..c9e619be 100644 --- a/src/templates/qquickapplicationwindow_p.h +++ b/src/templates/qquickapplicationwindow_p.h @@ -51,6 +51,7 @@ #include <QtQuick/private/qquickwindowmodule_p.h> #include <QtLabsTemplates/private/qtlabstemplatesglobal_p.h> #include <QtGui/qfont.h> +#include <QtCore/qlocale.h> QT_BEGIN_NAMESPACE @@ -69,6 +70,7 @@ class Q_LABSTEMPLATES_EXPORT QQuickApplicationWindow : public QQuickWindowQmlImp Q_PROPERTY(QQuickItem *footer READ footer WRITE setFooter NOTIFY footerChanged FINAL) Q_PROPERTY(QQuickOverlay *overlay READ overlay CONSTANT FINAL) Q_PROPERTY(QFont font READ font WRITE setFont RESET resetFont NOTIFY fontChanged) + Q_PROPERTY(QLocale locale READ locale WRITE setLocale RESET resetLocale NOTIFY localeChanged FINAL) Q_CLASSINFO("DefaultProperty", "data") public: @@ -92,6 +94,10 @@ public: void setFont(const QFont &); void resetFont(); + QLocale locale() const; + void setLocale(const QLocale &locale); + void resetLocale(); + static QQuickApplicationWindowAttached *qmlAttachedProperties(QObject *object); Q_SIGNALS: @@ -99,6 +105,7 @@ Q_SIGNALS: void headerChanged(); void footerChanged(); void fontChanged(); + void localeChanged(); protected: bool isComponentComplete() const; diff --git a/src/templates/qquickcontrol.cpp b/src/templates/qquickcontrol.cpp index 97a85d4b..d1abafe2 100644 --- a/src/templates/qquickcontrol.cpp +++ b/src/templates/qquickcontrol.cpp @@ -659,6 +659,9 @@ QLocale QQuickControlPrivate::calcLocale() const p = p->parentItem(); } + if (QQuickApplicationWindow *w = qobject_cast<QQuickApplicationWindow *>(q->window())) + return w->locale(); + return QLocale(); } |