Skip to content

Commit 42ca45b

Browse files
committed
Theme: ThemeUtils component added
1 parent a21474e commit 42ca45b

File tree

5 files changed

+76
-0
lines changed

5 files changed

+76
-0
lines changed

ui/StatusQ/include/StatusQ/theme.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class Theme : public QQuickAttachedPropertyPropagator
1010
{
1111
Q_OBJECT
1212

13+
Q_PROPERTY(qreal defaultPadding READ defaultPadding CONSTANT)
1314
Q_PROPERTY(qreal padding READ padding WRITE setPadding
1415
RESET resetPadding NOTIFY paddingChanged)
1516
Q_PROPERTY(qreal xlPadding READ xlPadding NOTIFY paddingChanged)
@@ -61,6 +62,7 @@ class Theme : public QQuickAttachedPropertyPropagator
6162
explicit Theme(QObject *parent = nullptr);
6263

6364
// paddings
65+
qreal defaultPadding() const;
6466
qreal padding() const;
6567
qreal xlPadding() const;
6668
qreal bigPadding() const;
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
pragma Singleton
2+
3+
import QtQml
4+
import QtQuick.Window
5+
6+
import StatusQ.Theme
7+
8+
QtObject {
9+
enum FontSize {
10+
FontSizeXS,
11+
FontSizeS,
12+
FontSizeM,
13+
FontSizeL,
14+
FontSizeXL,
15+
FontSizeXXL
16+
}
17+
18+
enum PaddingFactor {
19+
PaddingXXS,
20+
PaddingXS,
21+
PaddingS,
22+
PaddingM,
23+
PaddingL
24+
}
25+
26+
function setFontSize(target: QtObject, fontSize: int) {
27+
switch (fontSize) {
28+
case ThemeUtils.FontSizeXS:
29+
target.Theme.fontSizeOffset = -2
30+
break
31+
case ThemeUtils.FontSizeS:
32+
target.Theme.fontSizeOffset = -1
33+
break
34+
case ThemeUtils.FontSizeM:
35+
target.Theme.fontSizeOffset = 0
36+
break
37+
case ThemeUtils.FontSizeL:
38+
target.Theme.fontSizeOffset = 1
39+
break
40+
case ThemeUtils.FontSizeXL:
41+
target.Theme.fontSizeOffset = 2
42+
break
43+
case ThemeUtils.FontSizeXXL:
44+
target.Theme.fontSizeOffset = 3
45+
break
46+
}
47+
}
48+
49+
function setPaddingFactor(target: QtObject, paddingFactor: int) {
50+
switch (paddingFactor) {
51+
case ThemeUtils.PaddingXXS:
52+
target.Theme.padding = target.Theme.defaultPadding * 0.4
53+
break
54+
case ThemeUtils.PaddingXS:
55+
target.Theme.padding = target.Theme.defaultPadding * 0.6
56+
break
57+
case ThemeUtils.PaddingS:
58+
target.Theme.padding = target.Theme.defaultPadding * 0.8
59+
break
60+
case ThemeUtils.PaddingM:
61+
target.Theme.padding = target.Theme.defaultPadding
62+
break
63+
case ThemeUtils.PaddingL:
64+
target.Theme.padding = target.Theme.defaultPadding * 1.2
65+
break
66+
}
67+
}
68+
}

ui/StatusQ/src/StatusQ/Core/Theme/qmldir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ singleton Assets 0.1 Assets.qml
77
singleton Fonts 0.1 Fonts.qml
88
singleton StatusColors 0.1 StatusColors.qml
99
singleton Theme 0.1 Theme.qml
10+
singleton ThemeUtils 0.1 ThemeUtils.qml

ui/StatusQ/src/statusq.qrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@
192192
<file>StatusQ/Core/Theme/StatusDarkTheme.qml</file>
193193
<file>StatusQ/Core/Theme/StatusLightTheme.qml</file>
194194
<file>StatusQ/Core/Theme/Theme.qml</file>
195+
<file>StatusQ/Core/Theme/ThemeUtils.qml</file>
195196
<file>StatusQ/Core/Theme/ThemePalette.qml</file>
196197
<file>StatusQ/Core/Theme/qmldir</file>
197198
<file>StatusQ/Core/Utils/AmountsArithmetic.qml</file>

ui/StatusQ/src/theme.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ Theme::Theme(QObject *parent)
2929
initialize();
3030
}
3131

32+
qreal Theme::defaultPadding() const {
33+
return s_defaultPadding;
34+
}
35+
3236
qreal Theme::padding() const {
3337
return m_padding;
3438
}

0 commit comments

Comments
 (0)