Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qqstylekitfont.cpp
Go to the documentation of this file.
1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
5
7
8QQStyleKitFont::QQStyleKitFont(QObject *parent)
10{
11}
12
13#define DEFINE_FONT_GETTER(scopeName, scopeEnum)
14 QFont QQStyleKitFont::scopeName() const
15 {
16 return m_fonts[int(QQuickTheme::scopeEnum)];
17 }
18
19DEFINE_FONT_GETTER(system, System)
20DEFINE_FONT_GETTER(button, Button)
21DEFINE_FONT_GETTER(checkBox, CheckBox)
22DEFINE_FONT_GETTER(comboBox, ComboBox)
23DEFINE_FONT_GETTER(groupBox, GroupBox)
24DEFINE_FONT_GETTER(itemDelegate, ItemView)
25DEFINE_FONT_GETTER(label, Label)
26DEFINE_FONT_GETTER(radioButton, RadioButton)
27DEFINE_FONT_GETTER(spinBox, SpinBox)
28DEFINE_FONT_GETTER(switchControl, Switch)
29DEFINE_FONT_GETTER(tabBar, TabBar)
30DEFINE_FONT_GETTER(textArea, TextArea)
31DEFINE_FONT_GETTER(textField, TextField)
32DEFINE_FONT_GETTER(toolBar, ToolBar)
33
34#define DEFINE_FONT_SETTER(scopeName, scopeEnum, signal)
35 void QQStyleKitFont::set##scopeName(const QFont &font)
36 {
37 setFontForScope(QQuickTheme::scopeEnum, font, &QQStyleKitFont::signal);
38 }
39
40DEFINE_FONT_SETTER(System, System, systemChanged)
41DEFINE_FONT_SETTER(Button, Button, buttonChanged)
42DEFINE_FONT_SETTER(CheckBox, CheckBox, checkBoxChanged)
43DEFINE_FONT_SETTER(ComboBox, ComboBox, comboBoxChanged)
44DEFINE_FONT_SETTER(GroupBox, GroupBox, groupBoxChanged)
45DEFINE_FONT_SETTER(ItemDelegate, ItemView, itemDelegateChanged)
46DEFINE_FONT_SETTER(Label, Label, labelChanged)
47DEFINE_FONT_SETTER(RadioButton, RadioButton, radioButtonChanged)
48DEFINE_FONT_SETTER(SpinBox, SpinBox, spinBoxChanged)
49DEFINE_FONT_SETTER(SwitchControl, Switch, switchControlChanged)
50DEFINE_FONT_SETTER(TabBar, TabBar, tabBarChanged)
51DEFINE_FONT_SETTER(TextArea, TextArea, textAreaChanged)
52DEFINE_FONT_SETTER(TextField, TextField, textFieldChanged)
53DEFINE_FONT_SETTER(ToolBar, ToolBar, toolBarChanged)
54
55void QQStyleKitFont::setFontForScope(QQuickTheme::Scope scope, const QFont &font, void (QQStyleKitFont::*signal)())
56{
57 const int index = int(scope);
58 if (isSet(scope) && m_fonts[index] == font)
59 return;
60
61 m_fonts[index] = font;
62 markSet(scope);
63 emit (this->*signal)();
64}
65
66// The fallback font is used to resolve unset fonts
67// The theme fonts fallback to the style fonts and
68// style fonts fallback to the fallback style fonts
69QQStyleKitFont *QQStyleKitFont::fallbackFont() const
70{
71 return m_fallback;
72}
73
74void QQStyleKitFont::setFallbackFont(QQStyleKitFont *fallback)
75{
76 if (m_fallback == fallback)
77 return;
78
79 m_fallback = fallback;
80 emit fallbackFontChanged();
81}
82
83QFont QQStyleKitFont::fontForScope(QQuickTheme::Scope scope) const
84{
85 return m_fonts[int(scope)];
86}
87
88QT_END_NAMESPACE
89#include "moc_qqstylekitfont_p.cpp"
QObject * parent
Definition qobject.h:74
\inmodule QtCore
Definition qobject.h:106
Combined button and popup list for selecting options.
#define DEFINE_FONT_GETTER(scopeName, scopeEnum)
#define DEFINE_FONT_SETTER(scopeName, scopeEnum, signal)