diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-12-01 12:08:58 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-12-01 15:04:20 +0000 |
commit | 209fea864e823323af3cd43456737e08168d4a9d (patch) | |
tree | 9ee0c6e4db703579f6ced97b45a7160f4ed43c7c /src/templates/qquickcontrol.cpp | |
parent | 36a40b1edfcb493f108d1efd3fd6e7f48a4a1bad (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.cpp | 27 |
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(); |