Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qquickmaterialtheme.cpp
Go to the documentation of this file.
1// Copyright (C) 2017 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
6
7#include <QtGui/qpa/qplatformdialoghelper.h>
8#include <QtGui/qfont.h>
9#include <QtGui/qfontinfo.h>
10#include <QtQuickTemplates2/private/qquicktheme_p.h>
11
13
15{
16 QFont systemFont;
17 QFont buttonFont;
18 QFont toolTipFont;
19 QFont itemViewFont;
20 QFont listViewFont;
21 QFont menuItemFont;
22 QFont editorFont;
23
24 QFont font;
26 QString family = QFontInfo(font).family();
27
28 if (family != QLatin1String("Roboto")) {
30 family = QFontInfo(font).family();
31 }
32
33 if (family == QLatin1String("Roboto") || family == QLatin1String("Noto")) {
34 const QStringList families{family};
35 systemFont.setFamilies(families);
36 buttonFont.setFamilies(families);
37 toolTipFont.setFamilies(families);
38 itemViewFont.setFamilies(families);
39 listViewFont.setFamilies(families);
40 menuItemFont.setFamilies(families);
41 editorFont.setFamilies(families);
42 }
43
45 systemFont.setPixelSize(dense ? 13 : 14);
46 theme->setFont(QQuickTheme::System, systemFont);
47
48 // https://material.io/guidelines/components/buttons.html#buttons-style
49 buttonFont.setPixelSize(dense ? 13 : 14);
50 buttonFont.setWeight(QFont::Medium);
51 theme->setFont(QQuickTheme::Button, buttonFont);
52 theme->setFont(QQuickTheme::TabBar, buttonFont);
53 theme->setFont(QQuickTheme::ToolBar, buttonFont);
54
55 // https://material.io/guidelines/components/tooltips.html
56 toolTipFont.setPixelSize(dense ? 10 : 14);
57 toolTipFont.setWeight(QFont::Medium);
58 theme->setFont(QQuickTheme::ToolTip, toolTipFont);
59
60 itemViewFont.setPixelSize(dense ? 13 : 14);
61 itemViewFont.setWeight(QFont::Medium);
62 theme->setFont(QQuickTheme::ItemView, itemViewFont);
63
64 // https://material.io/guidelines/components/lists.html#lists-specs
65 listViewFont.setPixelSize(dense ? 13 : 16);
66 theme->setFont(QQuickTheme::ListView, listViewFont);
67
68 menuItemFont.setPixelSize(dense ? 13 : 16);
69 theme->setFont(QQuickTheme::Menu, menuItemFont);
70 theme->setFont(QQuickTheme::MenuBar, menuItemFont);
71 theme->setFont(QQuickTheme::ComboBox, menuItemFont);
72
73 editorFont.setPixelSize(dense ? 13 : 16);
74 theme->setFont(QQuickTheme::TextArea, editorFont);
75 theme->setFont(QQuickTheme::TextField, editorFont);
76 theme->setFont(QQuickTheme::SpinBox, editorFont);
77}
78
\reentrant
Definition qfontinfo.h:14
QString family() const
Returns the family name of the matched window system font.
Definition qfont.cpp:2808
\reentrant
Definition qfont.h:20
void setFamilies(const QStringList &)
Definition qfont.cpp:2491
void setPixelSize(int)
Sets the font size to pixelSize pixels, with a maxiumum size of an unsigned 16-bit integer.
Definition qfont.cpp:1034
@ Medium
Definition qfont.h:65
void setWeight(Weight weight)
Sets the weight of the font to weight, using the scale defined by \l QFont::Weight enumeration.
Definition qfont.cpp:1190
static void initialize(QQuickTheme *theme)
void setFont(Scope scope, const QFont &font)
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
Combined button and popup list for selecting options.
QLatin1StringView QLatin1String
Definition qstringfwd.h:31