Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qquickuniversaltheme.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
// Qt-Security score:significant reason:default
4
5
#
include
"qquickuniversaltheme_p.h"
6
#
include
"qquickuniversalstyle_p.h"
7
8
#
include
<
QtCore
/
qmutex
.
h
>
9
#
include
<
QtGui
/
qfontdatabase
.
h
>
10
#
include
<
QtQuickTemplates2
/
private
/
qquicktheme_p
.
h
>
11
12
QT_BEGIN_NAMESPACE
13
14
struct
QQuickUniversalThemePrivate
15
{
16
static
inline
void
addSystemStyle
(QPointer<QQuickUniversalStyle> style);
17
static
inline
void
removeSystemStyle
(QPointer<QQuickUniversalStyle> style);
18
static
inline
void
updateSystemStyles
();
19
static
inline
std
::
vector
<
QPointer
<
QQuickUniversalStyle
>>
systemStyles
= {};
20
static
inline
QMutex
mutex
;
21
};
22
23
void
QQuickUniversalThemePrivate
::addSystemStyle(QPointer<QQuickUniversalStyle> style)
24
{
25
QMutexLocker locker{&mutex};
26
auto
it = std::find(systemStyles.begin(), systemStyles.end(), style);
27
if
(it == systemStyles.end())
28
systemStyles.push_back(style);
29
}
30
void
QQuickUniversalThemePrivate
::removeSystemStyle(QPointer<QQuickUniversalStyle> style)
31
{
32
QMutexLocker locker{&mutex};
33
auto
it = std::find(systemStyles.begin(), systemStyles.end(), style);
34
if
(it != systemStyles.end())
35
systemStyles.erase(it);
36
}
37
void
QQuickUniversalThemePrivate
::
updateSystemStyles
()
38
{
39
QMutexLocker locker{&mutex};
40
for
(
auto
it = systemStyles.begin(); it != systemStyles.end(); ) {
41
if
(it->isNull()) {
42
it = systemStyles.erase(it);
43
}
else
{
44
(*it)->setTheme(QQuickUniversalStyle::System);
45
++it;
46
}
47
}
48
}
49
50
void
QQuickUniversalTheme::initialize(QQuickTheme *theme)
51
{
52
QFont systemFont;
53
QFont groupBoxTitleFont;
54
QFont tabButtonFont;
55
56
const
QLatin1String segoeUiFamilyName(
"Segoe UI"
);
57
if
(QFontDatabase::families().contains(segoeUiFamilyName)) {
58
const
QFont font(segoeUiFamilyName);
59
const
QStringList families{font.family()};
60
systemFont.setFamilies(families);
61
groupBoxTitleFont.setFamilies(families);
62
tabButtonFont.setFamilies(families);
63
}
64
65
systemFont.setPixelSize(15);
66
theme->setFont(QQuickTheme::System, systemFont);
67
68
groupBoxTitleFont.setPixelSize(15);
69
groupBoxTitleFont.setWeight(QFont::DemiBold);
70
theme->setFont(QQuickTheme::GroupBox, groupBoxTitleFont);
71
72
tabButtonFont.setPixelSize(24);
73
tabButtonFont.setWeight(QFont::Light);
74
theme->setFont(QQuickTheme::TabBar, tabButtonFont);
75
}
76
77
void
QQuickUniversalTheme::registerSystemStyle(QQuickUniversalStyle *style)
78
{
79
QQuickUniversalThemePrivate::addSystemStyle(QPointer{style});
80
}
81
82
void
QQuickUniversalTheme::unregisterSystemStyle(QQuickUniversalStyle *style)
83
{
84
QQuickUniversalThemePrivate::removeSystemStyle(QPointer{style});
85
}
86
87
void
QQuickUniversalTheme::updateTheme()
88
{
89
QQuickUniversalThemePrivate::updateSystemStyles();
90
}
91
92
QT_END_NAMESPACE
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QQuickUniversalThemePrivate
Definition
qquickuniversaltheme.cpp:15
QQuickUniversalThemePrivate::mutex
static QMutex mutex
Definition
qquickuniversaltheme.cpp:20
QQuickUniversalThemePrivate::updateSystemStyles
static void updateSystemStyles()
Definition
qquickuniversaltheme.cpp:37
QQuickUniversalThemePrivate::systemStyles
static std::vector< QPointer< QQuickUniversalStyle > > systemStyles
Definition
qquickuniversaltheme.cpp:19
QQuickUniversalThemePrivate::removeSystemStyle
static void removeSystemStyle(QPointer< QQuickUniversalStyle > style)
Definition
qquickuniversaltheme.cpp:30
QQuickUniversalThemePrivate::addSystemStyle
static void addSystemStyle(QPointer< QQuickUniversalStyle > style)
Definition
qquickuniversaltheme.cpp:23
qtdeclarative
src
quickcontrols
universal
qquickuniversaltheme.cpp
Generated on
for Qt by
1.18.0