aboutsummaryrefslogtreecommitdiffstats
path: root/src/templates/qquickcontrol.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-12-01 12:08:58 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2015-12-01 15:04:20 +0000
commit209fea864e823323af3cd43456737e08168d4a9d (patch)
tree9ee0c6e4db703579f6ced97b45a7160f4ed43c7c /src/templates/qquickcontrol.cpp
parent36a40b1edfcb493f108d1efd3fd6e7f48a4a1bad (diff)
Added defaultFont() for QQuickControl and etc
The map between controls and QPlatformTheme::Font: * QQuickControl and etc: SystemFont * QQuickButton: PushButtonFont * QQuickToolButton: ToolButtonFont * QQuickCheckBox: CheckBoxFont * QQuickRadioButton: RadioButtonFont * QQuickLabel: LabelFont * QQuickGroupBox: MdiSubWindowTitleFont (tmp) * QQuickTabButton: DockWidgetTitleFont (tmp) Change-Id: If8c0239ece673941164fd97f52240ef27d97b950 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/templates/qquickcontrol.cpp')
-rw-r--r--src/templates/qquickcontrol.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/templates/qquickcontrol.cpp b/src/templates/qquickcontrol.cpp
index 5f5e105e..0de24493 100644
--- a/src/templates/qquickcontrol.cpp
+++ b/src/templates/qquickcontrol.cpp
@@ -45,6 +45,9 @@
#include "qquicktextfield_p.h"
#include "qquicktextfield_p_p.h"
+#include <QtGui/private/qguiapplication_p.h>
+#include <QtGui/qpa/qplatformtheme.h>
+
#ifndef QT_NO_ACCESSIBILITY
#include <QtQuick/private/qquickaccessibleattached_p.h>
#endif
@@ -206,7 +209,14 @@ void QQuickControl::accessibilityActiveChanged(bool active)
*/
QFont QQuickControlPrivate::naturalControlFont(const QQuickItem *q)
{
- QFont naturalFont = QGuiApplication::font();
+ QFont naturalFont = themeFont(QPlatformTheme::SystemFont);
+ if (const QQuickControl *qc = qobject_cast<const QQuickControl *>(q)) {
+ naturalFont = qc->defaultFont();
+ } else if (const QQuickLabel *label = qobject_cast<const QQuickLabel *>(q)) {
+ Q_UNUSED(label);
+ naturalFont = themeFont(QPlatformTheme::LabelFont);
+ }
+
QQuickItem *p = q->parentItem();
while (p) {
if (QQuickControl *qc = qobject_cast<QQuickControl *>(p)) {
@@ -221,6 +231,16 @@ QFont QQuickControlPrivate::naturalControlFont(const QQuickItem *q)
return naturalFont;
}
+QFont QQuickControlPrivate::themeFont(QPlatformTheme::Font type)
+{
+ if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
+ if (const QFont *font = theme->font(type))
+ return *font;
+ }
+
+ return QGuiApplication::font();
+}
+
/*!
\internal
@@ -710,6 +730,11 @@ void QQuickControl::componentComplete()
#endif
}
+QFont QQuickControl::defaultFont() const
+{
+ return QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont);
+}
+
void QQuickControl::mousePressEvent(QMouseEvent *event)
{
event->accept();