aboutsummaryrefslogtreecommitdiffstats
path: root/src/templates/qquickapplicationwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/templates/qquickapplicationwindow.cpp')
-rw-r--r--src/templates/qquickapplicationwindow.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/templates/qquickapplicationwindow.cpp b/src/templates/qquickapplicationwindow.cpp
index 2c4cd7c9..ebbd0808 100644
--- a/src/templates/qquickapplicationwindow.cpp
+++ b/src/templates/qquickapplicationwindow.cpp
@@ -36,6 +36,7 @@
#include "qquickapplicationwindow_p.h"
#include "qquickoverlay_p.h"
+#include "qquickcontrol_p_p.h"
#include <QtCore/private/qobject_p.h>
#include <QtQuick/private/qquickitem_p.h>
@@ -79,11 +80,20 @@ public:
void itemImplicitWidthChanged(QQuickItem *item) Q_DECL_OVERRIDE;
void itemImplicitHeightChanged(QQuickItem *item) Q_DECL_OVERRIDE;
+ void updateFont(const QFont &);
+ inline void setFont_helper(const QFont &f) {
+ if (font.resolve() == f.resolve() && font == f)
+ return;
+ updateFont(f);
+ }
+ void resolveFont();
+
bool complete;
QQuickItem *contentItem;
QQuickItem *header;
QQuickItem *footer;
QQuickOverlay *overlay;
+ QFont font;
QQuickApplicationWindow *q_ptr;
};
@@ -241,6 +251,48 @@ QQuickItem *QQuickApplicationWindow::overlay() const
return d->overlay;
}
+/*!
+ \qmlproperty font Qt.labs.controls::ApplicationWindow::font
+
+ This property holds the font currently set for the window.
+*/
+QFont QQuickApplicationWindow::font() const
+{
+ Q_D(const QQuickApplicationWindow);
+ return d->font;
+}
+
+void QQuickApplicationWindow::setFont(const QFont &f)
+{
+ Q_D(QQuickApplicationWindow);
+ if (d->font == f)
+ return;
+
+ QFont resolvedFont = f.resolve(QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont));
+ d->setFont_helper(resolvedFont);
+}
+
+void QQuickApplicationWindow::resetFont()
+{
+ setFont(QFont());
+}
+
+void QQuickApplicationWindowPrivate::resolveFont()
+{
+ QFont resolvedFont = font.resolve(QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont));
+ setFont_helper(resolvedFont);
+}
+
+void QQuickApplicationWindowPrivate::updateFont(const QFont &f)
+{
+ Q_Q(QQuickApplicationWindow);
+ font = f;
+
+ QQuickControlPrivate::updateFontRecur(q->contentItem(), f);
+
+ emit q->fontChanged();
+}
+
QQuickApplicationWindowAttached *QQuickApplicationWindow::qmlAttachedProperties(QObject *object)
{
return new QQuickApplicationWindowAttached(object);