diff options
-rw-r--r-- | src/templates/qquickapplicationwindow.cpp | 7 | ||||
-rw-r--r-- | src/templates/qquickapplicationwindow_p.h | 1 | ||||
-rw-r--r-- | tests/auto/applicationwindow/applicationwindow.pro | 2 | ||||
-rw-r--r-- | tests/auto/applicationwindow/tst_applicationwindow.cpp | 33 |
4 files changed, 42 insertions, 1 deletions
diff --git a/src/templates/qquickapplicationwindow.cpp b/src/templates/qquickapplicationwindow.cpp index 7d58ba16..0903dcd5 100644 --- a/src/templates/qquickapplicationwindow.cpp +++ b/src/templates/qquickapplicationwindow.cpp @@ -448,6 +448,13 @@ bool QQuickApplicationWindow::isComponentComplete() const return d->complete; } +void QQuickApplicationWindow::classBegin() +{ + Q_D(QQuickApplicationWindow); + QQuickWindowQmlImpl::classBegin(); + d->resolveFont(); +} + void QQuickApplicationWindow::componentComplete() { Q_D(QQuickApplicationWindow); diff --git a/src/templates/qquickapplicationwindow_p.h b/src/templates/qquickapplicationwindow_p.h index c9e619be..f62ddee3 100644 --- a/src/templates/qquickapplicationwindow_p.h +++ b/src/templates/qquickapplicationwindow_p.h @@ -109,6 +109,7 @@ Q_SIGNALS: protected: bool isComponentComplete() const; + void classBegin() Q_DECL_OVERRIDE; void componentComplete() Q_DECL_OVERRIDE; void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; diff --git a/tests/auto/applicationwindow/applicationwindow.pro b/tests/auto/applicationwindow/applicationwindow.pro index 5a664b63..eabe81bf 100644 --- a/tests/auto/applicationwindow/applicationwindow.pro +++ b/tests/auto/applicationwindow/applicationwindow.pro @@ -4,7 +4,7 @@ SOURCES += tst_applicationwindow.cpp osx:CONFIG -= app_bundle -QT += core-private gui-private qml-private quick-private labstemplates-private testlib +QT += core-private gui-private qml-private quick-private labstemplates-private labscontrols-private testlib include (../shared/util.pri) diff --git a/tests/auto/applicationwindow/tst_applicationwindow.cpp b/tests/auto/applicationwindow/tst_applicationwindow.cpp index 8256f16b..34493ea0 100644 --- a/tests/auto/applicationwindow/tst_applicationwindow.cpp +++ b/tests/auto/applicationwindow/tst_applicationwindow.cpp @@ -41,12 +41,14 @@ #include <QtQml/qqmlcontext.h> #include <QtQuick/qquickview.h> #include <QtQuick/private/qquickitem_p.h> +#include <QtGui/private/qguiapplication_p.h> #include <QtLabsTemplates/private/qquickapplicationwindow_p.h> #include <QtLabsTemplates/private/qquickoverlay_p.h> #include <QtLabsTemplates/private/qquickcontrol_p.h> #include <QtLabsTemplates/private/qquicklabel_p.h> #include <QtLabsTemplates/private/qquicktextarea_p.h> #include <QtLabsTemplates/private/qquicktextfield_p.h> +#include <QtLabsControls/private/qquickproxytheme_p.h> #include "../shared/util.h" #include "../shared/visualtestutil.h" @@ -65,6 +67,7 @@ private slots: void implicitFill(); void attachedProperties(); void font(); + void defaultFont(); void locale(); void activeFocusControl_data(); void activeFocusControl(); @@ -492,6 +495,36 @@ void tst_applicationwindow::font() QCOMPARE(item6->font(), font); } +class TestTheme : public QQuickProxyTheme +{ +public: + TestTheme(QPlatformTheme *theme) : QQuickProxyTheme(theme), m_font("Courier") + { QGuiApplicationPrivate::platform_theme = this; } + ~TestTheme() { QGuiApplicationPrivate::platform_theme = theme(); } + + const QFont *font(Font type = SystemFont) const Q_DECL_OVERRIDE + { + Q_UNUSED(type); + return &m_font; + } + + QFont m_font; +}; + +void tst_applicationwindow::defaultFont() +{ + TestTheme theme(QGuiApplicationPrivate::platform_theme); + + QQmlEngine engine; + QQmlComponent component(&engine); + component.setData("import Qt.labs.controls 1.0; ApplicationWindow { }", QUrl()); + + QScopedPointer<QQuickApplicationWindow> window; + window.reset(static_cast<QQuickApplicationWindow *>(component.create())); + QVERIFY(!window.isNull()); + QCOMPARE(window->font(), *theme.font()); +} + void tst_applicationwindow::locale() { QQmlEngine engine; |