aboutsummaryrefslogtreecommitdiffstats
path: root/src/templates/qquickapplicationwindow.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-12-03 13:23:27 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2015-12-03 17:18:26 +0000
commite3adcf27372e571f9ca032c736e2bb40a5346d49 (patch)
treea3a3e025d4252967a75a4cd2b654617458973831 /src/templates/qquickapplicationwindow.cpp
parentc09b3365feab8434ffd45ad5d9882142ce57c830 (diff)
QQuickApplicationWindow: add font property
Change-Id: I6f946994f789704aa2efa94aaea0129d0d73d005 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
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);