aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/templates/qquickapplicationwindow.cpp7
-rw-r--r--src/templates/qquickapplicationwindow_p.h1
-rw-r--r--tests/auto/applicationwindow/applicationwindow.pro2
-rw-r--r--tests/auto/applicationwindow/tst_applicationwindow.cpp33
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;