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 | |
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>
-rw-r--r-- | src/templates/qquickbutton.cpp | 7 | ||||
-rw-r--r-- | src/templates/qquickbutton_p.h | 3 | ||||
-rw-r--r-- | src/templates/qquickcheckbox.cpp | 7 | ||||
-rw-r--r-- | src/templates/qquickcheckbox_p.h | 2 | ||||
-rw-r--r-- | src/templates/qquickcontrol.cpp | 27 | ||||
-rw-r--r-- | src/templates/qquickcontrol_p.h | 2 | ||||
-rw-r--r-- | src/templates/qquickcontrol_p_p.h | 4 | ||||
-rw-r--r-- | src/templates/qquickgroupbox.cpp | 7 | ||||
-rw-r--r-- | src/templates/qquickgroupbox_p.h | 3 | ||||
-rw-r--r-- | src/templates/qquickradiobutton.cpp | 8 | ||||
-rw-r--r-- | src/templates/qquickradiobutton_p.h | 2 | ||||
-rw-r--r-- | src/templates/qquicktabbutton.cpp | 8 | ||||
-rw-r--r-- | src/templates/qquicktabbutton_p.h | 2 | ||||
-rw-r--r-- | src/templates/qquicktoolbutton.cpp | 8 | ||||
-rw-r--r-- | src/templates/qquicktoolbutton_p.h | 3 |
15 files changed, 92 insertions, 1 deletions
diff --git a/src/templates/qquickbutton.cpp b/src/templates/qquickbutton.cpp index 7ec87cbf..4f5df5fa 100644 --- a/src/templates/qquickbutton.cpp +++ b/src/templates/qquickbutton.cpp @@ -37,6 +37,8 @@ #include "qquickbutton_p.h" #include "qquickabstractbutton_p_p.h" +#include <QtGui/qpa/qplatformtheme.h> + QT_BEGIN_NAMESPACE /*! @@ -124,4 +126,9 @@ void QQuickButton::setHighlighted(bool highlighted) } } +QFont QQuickButton::defaultFont() const +{ + return QQuickControlPrivate::themeFont(QPlatformTheme::PushButtonFont); +} + QT_END_NAMESPACE diff --git a/src/templates/qquickbutton_p.h b/src/templates/qquickbutton_p.h index 7ca0252b..5b9c7df5 100644 --- a/src/templates/qquickbutton_p.h +++ b/src/templates/qquickbutton_p.h @@ -68,6 +68,9 @@ public: Q_SIGNALS: void highlightedChanged(); +protected: + QFont defaultFont() const Q_DECL_OVERRIDE; + private: Q_DISABLE_COPY(QQuickButton) Q_DECLARE_PRIVATE(QQuickButton) diff --git a/src/templates/qquickcheckbox.cpp b/src/templates/qquickcheckbox.cpp index 5cef0c47..9a416419 100644 --- a/src/templates/qquickcheckbox.cpp +++ b/src/templates/qquickcheckbox.cpp @@ -37,6 +37,8 @@ #include "qquickcheckbox_p.h" #include "qquickabstractbutton_p_p.h" +#include <QtGui/qpa/qplatformtheme.h> + QT_BEGIN_NAMESPACE /*! @@ -156,6 +158,11 @@ void QQuickCheckBox::setCheckState(Qt::CheckState state) } } +QFont QQuickCheckBox::defaultFont() const +{ + return QQuickControlPrivate::themeFont(QPlatformTheme::CheckBoxFont); +} + void QQuickCheckBox::checkStateSet() { setCheckState(isChecked() ? Qt::Checked : Qt::Unchecked); diff --git a/src/templates/qquickcheckbox_p.h b/src/templates/qquickcheckbox_p.h index f347ef82..5cf97476 100644 --- a/src/templates/qquickcheckbox_p.h +++ b/src/templates/qquickcheckbox_p.h @@ -74,6 +74,8 @@ Q_SIGNALS: void checkStateChanged(); protected: + QFont defaultFont() const Q_DECL_OVERRIDE; + void checkStateSet() Q_DECL_OVERRIDE; void nextCheckState() Q_DECL_OVERRIDE; 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(); diff --git a/src/templates/qquickcontrol_p.h b/src/templates/qquickcontrol_p.h index 82b91343..1e3b6830 100644 --- a/src/templates/qquickcontrol_p.h +++ b/src/templates/qquickcontrol_p.h @@ -136,6 +136,8 @@ Q_SIGNALS: void contentItemChanged(); protected: + virtual QFont defaultFont() const; + QQuickControl(QQuickControlPrivate &dd, QQuickItem *parent); void componentComplete() Q_DECL_OVERRIDE; diff --git a/src/templates/qquickcontrol_p_p.h b/src/templates/qquickcontrol_p_p.h index 126eab60..ab185952 100644 --- a/src/templates/qquickcontrol_p_p.h +++ b/src/templates/qquickcontrol_p_p.h @@ -48,7 +48,10 @@ // We mean it. // +#include "qquickcontrol_p.h" + #include <QtQuick/private/qquickitem_p.h> +#include <qpa/qplatformtheme.h> #ifndef QT_NO_ACCESSIBILITY #include <QtGui/qaccessible.h> @@ -98,6 +101,7 @@ public: } void resolveFont(); static QFont naturalControlFont(const QQuickItem *); + static QFont themeFont(QPlatformTheme::Font type); QFont font; bool hasTopPadding; diff --git a/src/templates/qquickgroupbox.cpp b/src/templates/qquickgroupbox.cpp index 1f1e5f2f..2f120879 100644 --- a/src/templates/qquickgroupbox.cpp +++ b/src/templates/qquickgroupbox.cpp @@ -37,6 +37,8 @@ #include "qquickgroupbox_p.h" #include "qquickframe_p_p.h" +#include <QtGui/qpa/qplatformtheme.h> + QT_BEGIN_NAMESPACE /*! @@ -122,4 +124,9 @@ void QQuickGroupBox::setLabel(QQuickItem *label) } } +QFont QQuickGroupBox::defaultFont() const +{ + return QQuickControlPrivate::themeFont(QPlatformTheme::MdiSubWindowTitleFont); // tmp +} + QT_END_NAMESPACE diff --git a/src/templates/qquickgroupbox_p.h b/src/templates/qquickgroupbox_p.h index dfaa6de0..5dcfe971 100644 --- a/src/templates/qquickgroupbox_p.h +++ b/src/templates/qquickgroupbox_p.h @@ -73,6 +73,9 @@ Q_SIGNALS: void titleChanged(); void labelChanged(); +protected: + QFont defaultFont() const Q_DECL_OVERRIDE; + private: Q_DISABLE_COPY(QQuickGroupBox) Q_DECLARE_PRIVATE(QQuickGroupBox) diff --git a/src/templates/qquickradiobutton.cpp b/src/templates/qquickradiobutton.cpp index 08244d82..9aca5808 100644 --- a/src/templates/qquickradiobutton.cpp +++ b/src/templates/qquickradiobutton.cpp @@ -35,6 +35,9 @@ ****************************************************************************/ #include "qquickradiobutton_p.h" +#include "qquickcontrol_p_p.h" + +#include <QtGui/qpa/qplatformtheme.h> QT_BEGIN_NAMESPACE @@ -91,6 +94,11 @@ QQuickRadioButton::QQuickRadioButton(QQuickItem *parent) : setAutoExclusive(true); } +QFont QQuickRadioButton::defaultFont() const +{ + return QQuickControlPrivate::themeFont(QPlatformTheme::RadioButtonFont); +} + #ifndef QT_NO_ACCESSIBILITY QAccessible::Role QQuickRadioButton::accessibleRole() const { diff --git a/src/templates/qquickradiobutton_p.h b/src/templates/qquickradiobutton_p.h index 87ac919b..1667de22 100644 --- a/src/templates/qquickradiobutton_p.h +++ b/src/templates/qquickradiobutton_p.h @@ -60,6 +60,8 @@ public: explicit QQuickRadioButton(QQuickItem *parent = Q_NULLPTR); protected: + QFont defaultFont() const Q_DECL_OVERRIDE; + #ifndef QT_NO_ACCESSIBILITY QAccessible::Role accessibleRole() const Q_DECL_OVERRIDE; #endif diff --git a/src/templates/qquicktabbutton.cpp b/src/templates/qquicktabbutton.cpp index 23e8a221..07dc533c 100644 --- a/src/templates/qquicktabbutton.cpp +++ b/src/templates/qquicktabbutton.cpp @@ -35,6 +35,9 @@ ****************************************************************************/ #include "qquicktabbutton_p.h" +#include "qquickcontrol_p_p.h" + +#include <QtGui/qpa/qplatformtheme.h> QT_BEGIN_NAMESPACE @@ -62,6 +65,11 @@ QQuickTabButton::QQuickTabButton(QQuickItem *parent) : setAutoExclusive(true); } +QFont QQuickTabButton::defaultFont() const +{ + return QQuickControlPrivate::themeFont(QPlatformTheme::DockWidgetTitleFont); // tmp +} + #ifndef QT_NO_ACCESSIBILITY QAccessible::Role QQuickTabButton::accessibleRole() const { diff --git a/src/templates/qquicktabbutton_p.h b/src/templates/qquicktabbutton_p.h index 820fa365..0170a2b0 100644 --- a/src/templates/qquicktabbutton_p.h +++ b/src/templates/qquicktabbutton_p.h @@ -60,6 +60,8 @@ public: explicit QQuickTabButton(QQuickItem *parent = Q_NULLPTR); protected: + QFont defaultFont() const Q_DECL_OVERRIDE; + #ifndef QT_NO_ACCESSIBILITY QAccessible::Role accessibleRole() const Q_DECL_OVERRIDE; #endif diff --git a/src/templates/qquicktoolbutton.cpp b/src/templates/qquicktoolbutton.cpp index 4de82403..3505346c 100644 --- a/src/templates/qquicktoolbutton.cpp +++ b/src/templates/qquicktoolbutton.cpp @@ -35,6 +35,9 @@ ****************************************************************************/ #include "qquicktoolbutton_p.h" +#include "qquickcontrol_p_p.h" + +#include <QtGui/qpa/qplatformtheme.h> QT_BEGIN_NAMESPACE @@ -78,4 +81,9 @@ QQuickToolButton::QQuickToolButton(QQuickItem *parent) : { } +QFont QQuickToolButton::defaultFont() const +{ + return QQuickControlPrivate::themeFont(QPlatformTheme::ToolButtonFont); +} + QT_END_NAMESPACE diff --git a/src/templates/qquicktoolbutton_p.h b/src/templates/qquicktoolbutton_p.h index e0e7892d..d3bb4fe7 100644 --- a/src/templates/qquicktoolbutton_p.h +++ b/src/templates/qquicktoolbutton_p.h @@ -58,6 +58,9 @@ class Q_LABSTEMPLATES_EXPORT QQuickToolButton : public QQuickButton public: explicit QQuickToolButton(QQuickItem *parent = Q_NULLPTR); + +protected: + QFont defaultFont() const Q_DECL_OVERRIDE; }; Q_DECLARE_TYPEINFO(QQuickToolButton, Q_COMPLEX_TYPE); |