Skip to content

Commit 6d647cb

Browse files
improv: generate Steam Deck stylesheet through qstylizer
1 parent 385b357 commit 6d647cb

File tree

4 files changed

+307
-158
lines changed

4 files changed

+307
-158
lines changed

pupgui2/resources/themes/steamdeck/__init__.py

Lines changed: 90 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -6,91 +6,91 @@
66
from PySide6 import QtCore
77

88
qt_resource_data = b"\
9-
\x00\x00\x02w\
10-
(\
11-
\xb5/\xfd`\xed\x07m\x13\x00\xb6\xdaQ% \x8d\xb8\
12-
\x01h\x1f\xd1Bb\xb3\xcf\x97\xfe\x08\x9b\x87\xaeKc\
13-
\x95?\x18\xfa\x12\x80\x0e\xf6\xadny\x12\xab\x00FT\
14-
\xa0\x08K\x00G\x00B\x00\x8d\xad\x027\x84}\xae\xdb\
15-
\x81\x92\x8b\x89\x96\xb4d\xf5\x01%\x17\x1fy\x81\x92\x8b\
16-
\xd7\xff\x97\xa4\x8a\x17\x03\x85a*\x18\x03\xc7\x89R\xbf\
17-
\xa2x-\xcd\xbf\x8e(\x80&\xcf\xe3i\xda\xbb\xda)\
18-
\x89\x89I\x06\x08\x01\xa9\xde\xae\xa7\xccL\xe6\x92\xbfT\
19-
c\x08J\x95>\x0e\xc8\x81&\x8f\x93X\xe4\x16i$\
20-
D\x91\xa8m\x8c\xebP!\x05\x93\x86\xa3\xe1[\xe9J\
21-
\x1b\x97\xb4\xf6Y\x15\x92J=n\x8d\xc1\x09\x08\xa5\xc6\
22-
\x8b\x1b\xf3f_\xbfT\xdf\xe6-9\xa2\x09\x04\x81.\
23-
\xf9\x9a\x7f\xda\xa8jY~\xf0\x0dW\xc7u\x86\x02\x08\
24-
8\xbfR\x97b\x16;\x9e\xd4\xea\x1b[\x12\xf6'\xc7\
25-
\x86\xfa\x98b\xef\xc6\xb5\xff\xebI\xba\xa2\xa5[\x03\xdb\
26-
\x9b*\xe3`\xf5\x7fK\xb0\x7f\xe2\xf7\xad@\xee\xa4~\
27-
\xc4\xba\xe61\xe5\xccr\xec_S\xb0wQtIK\
28-
\xbb\xb3\x06^N\xe4D\xcdck]{\xac\x82\xfd\x8f\
29-
\xc7#]q\xb1\x8f]\xd3\x1a\xd3*2\x01#O\xea\
30-
\xbfu\x06\xe3c\xfe\xce$\xce\xb5O\x0d\x03\x00T%\
31-
\x124\xaf'fHL\xdb,\xb6\x1f\x19q\xad\xad\x9e\
32-
\x11w\xf2{\xa0\xf1\xa5\x19\x91\x0bf4\x05%\xc9r\
33-
@Bb\x10\xb3\xea\x01\xa2\x9b\xd0\x05\xfeQ\x94sw\
34-
(\x81\x01{/J\xcc\x0fw\xd7m=\xaf:\x7f.\
35-
\x0f\x11\x0cL\xae\xc9Q \xfe\x8c\xceP\xce\x1b\x06#\
36-
d /Q\x1b3\xa5E2bi\xfa\xb8\xe8\x184\
37-
F\xb2LC%\x11\xf1\x11g\x18uV\x0e\xb5:\x86\
38-
\x84(\xb0y\xed\xf0pl\x01\xd6;\xc0-F)\xa6\
39-
I[d\xe7\xbd\x00\xce7\x97\x03k\xcbP\xd0\x1a\x01\
40-
3\xa1\x13@\x168\x94\xd2\x88$\x11\x9b+\x8b\xc85\
41-
%Hb\xb6\xf4\x91\xc0:\xcb\xac\xd6z\xd6\xe4\x86\xe7\
42-
#\x1f\x0bBv5\xe7\xde\x08\x8c\xc8\xb0\x7f\x08\x1a\x8f\
43-
\xd3P*\x91X\x15\x90\xd8\xa5\x85\x08h@Zi\xc7\
44-
q[\x9eLA\xc4t\x18|\x98S.'\xfaC!\
45-
w\xc6\x84C\xb7\xe6\xb8a\x05\x83H\xb72\xd6C\xf2\
46-
\x0eL\x03\x1b4\xb6\xe4\xb4E+\x14\xe8\xc3\xa6\xb4`\
47-
\x9fA\x95t\x0b\x06t1z\x1e\xe4\xb1\x935\xabG\
48-
\xcb\x9b\xd0x\x19\x93\x8c\x12\xd4\x92\xb3\xe2%-cS\
49-
1\x1f\x83\xfe\x91@\x99\xac\x1cRL\xaf\x1a\xab\xc7\x13\
50-
H8\xbez\x0b\xfe\
51-
\x00\x00\x00\xbc\
52-
(\
53-
\xb5/\xfd \xf0\x9d\x05\x00\x22\x8c& `g\xab\x03\
54-
\xc0\x16d\x14q\xb4~Iq\xb1\x86)\x0b\xff\xa3\xd5\
55-
\x8d/\x84\xd2\xe8\x13\x96\x0cq\x04\xc6\x01\x09l\x18\x84\
56-
\x18\x09\xd2\xf7\x1eA\xdd\xb2(\x047\xf4\x80\xfb0>\
57-
\xf7\xe9m\xde\x83\xcf\xe3Mo\xbbVa[\x9d\xde\xf6\
58-
\xdev^c~c>\x0b\xf7\x19\xbf\xed\xa1\xce\xdb\xcb\
59-
\xea\x01,\x15\x0f\xd6[`\xe7F\xa83<\xca\x01\x05\
60-
\xf2\xffF\xa2\xb0aPJI!h\x90\xd85w\xce\
61-
\x89P\x80B\xca\xa8\x8e)X\x10\x8b(\x0d\xca\xbc\xaa\
62-
\xf5\xf4\xa4n\x91\x10\x98\x07\xa5\xb9&\xb5\xd4\xc9\x08\x95\
63-
C<l\x18$\x08\x00pe\xa1LI\x09\x5c\xd4\x15\
64-
\xb2\xda\x13_\x10\xa6\xa8\xdc\xb9uO\
65-
\x00\x00\x00\xcd\
66-
(\
67-
\xb5/\xfd`\x0a\x00\x1d\x06\x00\xd2\x8d* `G\xdc\
68-
\x060;\x1c=\xa2n[\xa3\x11\xd1 \x88R\x87W\
69-
\xa5\x1a\xb6\xd0\xcav\x85\xb4\xb9\xe0A\x80\x03\x0a\x13=\
70-
\x0a)\x14\x85\xcb\xb2\x00`\xe28M\xc1\x0bL\xd8~\
71-
Kc\xd3\xf6Y\xf67\xd9\x9e\x93\xed\xdb\xae\xa3o\xb9\
72-
\x96\x91\xcd\xefl\xa9\xb3-m7\x05\xec:\xdb\xe9\xd8\
73-
\xd4\x92qZ\xdd\xe4\x95\xf4\x9d\xcbi9Z\x1e\x8b\x93\
74-
c\xccr5\xdfh\xb6\x9a\xed\xe0\x03&\x85;\x88 \
75-
\x81\xfc\x7f\xa1 \x13=JUY1\x07\x88\x5c/\xdf\
76-
{J\x09$ \xc8a\xf2\x188\x07\x04\x07\x15\x9aw\
77-
\xe4u\xbdb\x82\x80\x18x\x86&:*/L \xc7\
78-
4\x06w&z\x90\x08\x00\xe0\xca\x0d\x15>\xcb]\x98\
79-
\xca\x05XUp6\x16\x95&\xb7\xee\x09\
80-
\x00\x00\x00\xbf\
81-
(\
82-
\xb5/\xfd \xf1\xb5\x05\x00\xa2\xcc' Pg\xac\x03\
83-
\x88\xd0\xe2\x8d\xa0\x9f'Z\xa0\x223\xd3\x08\xf8d\xce\
84-
,dS\x1a\xf5\xf0\xe5\xa8\x1aV\x0f\x01\x0a|\x9c\x94\
85-
\x14J\xd2\xf7\x1eA]\xd30\x04/\xf4\x80\x1b!|\
86-
n\xd4\xdb\xbc\x06\xa3\xc7\xab\xde\x96\xb1c{\xa1\xde\xf6\
87-
\xde\x86^c~cF\x0d\xf7\x11~[c\x9d\xb7\x97\
88-
\xd7\x03`+\x1aH\xef\xc1\xd6\xb9\x0d\xea\x96G9\x80\
89-
H\xfe\xbfP\x14>NRJ\xad\x04\x0d\x0e\xcb\xe6\xce\
90-
9S\x0a@H\x19\xd59\x05\x8d!qU\x8b\xa9\x8b\
91-
ra\xe6\xd5bWW\xea\x12\x07\x81Y`\x9e\xab\xea\
92-
C\x9d\x8c\x90)\xc4\xc3\xc7I\x02\x07\x00pe\xa1L\
93-
I\x09\x5c\xd4\x15\xb2\xdaG`\x10\xb3\xbc&\x19\
9+
\x00\x00\x02~\
10+
\x00\
11+
\x00\x0a\xf2x\x9c\xd5V\xc9n\xdb0\x10\xbd\xfb+\x18\
12+
\xf7\xd2\x1a\x90eK\x8e\x17\xfa\xe6&@\x0b\x14M\x83\
13+
\x1a\xed\x99\x16\xc7\x12\x11I\x14H*vZ\xf4\xdf;\
14+
\xd6b\xc5Z\x8c\xa2u\x80F\x17\x01\xc3\xe1\x9b\xf7f\
15+
\x93\xec\x01Y\x07B\x93\xad\x08\x81\xe0\x9b\xa5FZ>\
16+
\xc4\xa0\x98\x01N\xb6JF\xa4\xaf\xcdS\x08:\x000\
17+
\xc3\xe4\xa9O\x06v\xcf\x1e\x90\x9b;\xf2\xf9nMn\
18+
o>\xae\xaf\xae\xae\x0e\xc6\xde\xfdw\xc1}0\xe4g\
19+
\x8f\xe0\xe3\xc9P*J\xde@\xf6,3\xdb\x86y\x0f\
20+
\xbe\x92i\xcc\xad\xf2x<\x1bs\xe7:?\xde\xca\xd8\
21+
X;\x10~`(qG\xa3e\xefW\xef\xfeK\xaa\
22+
\x83Uj\x8c\x8c\x0b\xe0\x16\x10g\xeepwZ\xc4\x90\
23+
\x8a\x83\xb2\x14\xe3\x22\xd5\x948\xc9>\xb7'\x8cs\x11\
24+
\xfb\x94\xcc\x0f\x16\x04\xfe$\xb49a|)\xe0\xf72\
25+
\xda\xc8\x95\xdc_\x18v-e\xf8B\x89\x88\xe1\x96\x8b\
26+
K\xa7\xe1\x030t\xfc&`W\x00\x1f=\xc6\x0d\x0f\
27+
J5xF\x5cL\xda\xa4QcJ\x85\x81\xa8\xce\xa4\
28+
\xf4\xab\x9a\x8c\x06\xf2\x11T7\x8d\xc9t\xc2\xaf\xe7\xf5\
29+
K\x89\x02\xadq`:\xaf\xb9\x0bw;Y\xd4\xafq\
30+
\xa1\xd9&<w\x0f\x87c\xe4L\xbb\xb2\x85d\x95\xf8\
31+
\x81S\xc3\xc2\x02\x22b\xca\x17\xb1\x15\xc2\x16GhT\
32+
\xe6\xa5\xb0\xaa|\xb2\x9c\xee\xf4S\xd4n\x84W\x873\
33+
2i\xa2m$j\x88*\xb8\xf5AJ\x8e\xf6,\xd5\
34+
'\x84\xc6\xb5\x09\xa1\x94+\x99X\x5c\xee\xca\xc2\xebt\
35+
\xe3\xa1\x1e%C\x0b\xa5\xe1MZ\x14{Y?N\xa4\
36+
\x16\x19e\x82\xecH&\xad\xd6\x04\xcepTk\x8c2\
37+
\x03\x93\xd2\xde\xd5H;\xc1M\x80|\xa7\xa5AD\xcc\
38+
\x07JR\x15\xbe\xedS\x1b\xab-S\xe5\x81\xb6M\x00\
39+
\x11\xbe\xb4\x01\x16q\xf0\x1el\x81\xfc\xac\xa3\xaa\xa1~\
40+
\xf4\xfb\xef2\xcd_=d\x1d\xae\x98j\x9d\x86sd\
41+
\x9ama\x14\x8bu\xc2\x14\xc4\xe6\x14\xbb\xbd~\x18c\
42+
\x91\xec\xab\x02\x96\xea\x16E9\xaa\xeb\x1d\xfd\x94\x15\xbf\
43+
\xf0?X\x83bG\xb7 P\x94e\x85\xb8Q:\xa9\
44+
\xfci\xeeg\x8dh\xb3\xee\x8c\x9c\xac\x87\x96&\xca\xa3\
45+
\x9fi\xa2\xbc\x9b\xebb\xd0\xf55\x8a\xc1\x89\xe8,K\
46+
g\x89\xffS-\xc5dw\xd4\xe5\xb5\xa99\xec\xc1\xba\
47+
\x98\x80\xc5\x1c\x7f\xbf\xfe\xe9\xcb\x17\xe1\x8e-\x14\xb9\xa3\
48+
\xe7\xc6\xe0\xf8;\xd5\x1c\xd54\xb1\x98R\xb2\xfc>\x97\
49+
\x19q\x1b\x19q\xffn\x0d\x96\xf8m[\x10W?\xee\
50+
\xc7\x97\x8d_E\xa8\x18\xfc\x06\x87\x97s]\
51+
\x00\x00\x00\xb6\
52+
\x00\
53+
\x00\x00\xf0x\x9c-\x8e\xd1\x0e\x820\x0cE\xdf\xf9\x8a\
54+
\xa6>\xb3\xad\xdb\x001\x8c\x07\xff\xc4Le$ F\
55+
\x17F\xfcz\xcb\xb4Ion\xda\x93\xdbv\xefu\x80\
56+
p\x1b\x87\x10\x1d\x1a\xad\x10\xd6\xf1\x96\xce\xcb\xe6P\x81\
57+
\x02\x9e@\x9e\xa6\xf1\x1a\xc3\x9f\xd8\xe6\xe9\xf1v\x18b\
58+
|\x9e\xa4L)\x89d\xc4\xf2\x1a\xa4VJI\x0e\xc4\
59+
\xbe\x00\xae\xeey\x89\x01\xae\x0egK\xd0\xd4\xc26U\
60+
\xd0\xe6\xe85\x09\x9b\xb3\x05\x81\xaeD\x0b\xd4\x80\xa5\xa9\
61+
$bK\xad/[\xdes\x97\xda\x8a:\x1bc\x98R\
62+
\x99\x10Tf\x86\xaa\xdd\xedb\x19\xe0\x03\xd4\xb0~0\
63+
_\xfe\xd5}\x9c&\x87\x07\xef=\xca\xbe\xe8\xf6\xcf\xfa\
64+
/WB:\x18\
65+
\x00\x00\x00\xc9\
66+
\x00\
67+
\x00\x01\x0ax\x9c-\x8e\xcd\x8a\xc30\x0c\x84\xef}\x0a\
68+
\xe1=[\x96d;Y/q\x0e}\x93\xe2\xb6q \
69+
\xfdak\xea\xb2O\xbfN\xda\x0f$\xc4\xcc fx\
70+
<'\xc8\xa7y\xca%*+\xa4\xe09\x9f\xea\xfe\xf6\
71+
\x8a\x8a\x80\xa0)\xb0\xa9u>\x96\xfcI\xbc.\xcb\xf5\
72+
\x11U.\xe5\xfecL\xad\x15\xab\xc5\xdb\xefd\x84\x88\
73+
L{\xa8\xc6\x1d4\x86\xfb\xa1d8Fu\x91> \
74+
\xb1w\x1d\x88\xb3\xe8\xc5g-\xb6\xc7\xb0\xd2'-\x8c\
75+
\x0eH[A\xa6\x15\xd6\xe21h\xee\xb5\xe3\x85\xf9\xfb\
76+
\x13\xd4\xcc!\x05t\xbaM{\x84\xddvX\x8b\x01\xa8\
77+
\xc5\x02\xac>{\x14h\x8b\xc1\xa1\x07\xc7\x9a\xbb\xe6;\
78+
\xfeS[\xa77\xe7yY\xa2\xfaJ))3\xee\x86\
79+
\xb5\xf3\xf8\x0f\x89K?\x8a\
80+
\x00\x00\x00\xb8\
81+
\x00\
82+
\x00\x00\xf1x\x9c%N]\x0f\x820\x0c|\xf7W4\
83+
\xf5y\x1f\xdd\x06\x88a<\xf8O\xccTF\x02bt\
84+
a\xc4_o\x99M\xda\x5c\xaf\x97\xbbv\x9fu\x80x\
85+
\x1f\x87\x98<\xd6N#\xac\xe3=_\x96\xcd\xa3\x06\x0d\
86+
\xd6h(l\x1eo)z\xe4\x1da\x9b\xa7\xe7\xc7c\
87+
L\xe9uV*\xe7,\xb3\x95\xcb{PFk\xad\xd8\
88+
\x10\xfb\x03pu\xafk\x8ap\xf38;\x02ck\xe9\
89+
\x9a*\x1a{\x0a\x86\xa4+\xe6\x92\xf9J\xb6@\x0d8\
90+
\x9a\x04\x11Cj\x83h\xf9\xce-\x8c\x93u\x01\xd6\xb2\
91+
J\x17\x85$Q4T\xedh\x1f\x8e\x05\x9c@\x0d\xcf\
92+
/\x96\xe8\x7f=\xc6i\xf2x\x0c!\xa0\xea\x0f\xdd\xfe\
93+
Z\xff\x03\x96\x01:P\
9494
"
9595

9696
qt_resource_name = b"\
@@ -136,13 +136,13 @@
136136
\x00\x00\x00\x00\x00\x00\x00\x00\
137137
\x00\x00\x00*\x00\x02\x00\x00\x00\x04\x00\x00\x00\x04\
138138
\x00\x00\x00\x00\x00\x00\x00\x00\
139-
\x00\x00\x00\x90\x00\x04\x00\x00\x00\x01\x00\x00\x03;\
139+
\x00\x00\x00\x90\x00\x01\x00\x00\x00\x01\x00\x00\x03<\
140140
\x00\x00\x01\x96+}A\xa5\
141-
\x00\x00\x00B\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\
142-
\x00\x00\x01\x963FC\xbc\
143-
\x00\x00\x00\xb8\x00\x04\x00\x00\x00\x01\x00\x00\x04\x0c\
141+
\x00\x00\x00B\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
142+
\x00\x00\x01\x965\xf4`\xd2\
143+
\x00\x00\x00\xb8\x00\x01\x00\x00\x00\x01\x00\x00\x04\x09\
144144
\x00\x00\x01\x96+}A\xa5\
145-
\x00\x00\x00d\x00\x04\x00\x00\x00\x01\x00\x00\x02{\
145+
\x00\x00\x00d\x00\x01\x00\x00\x00\x01\x00\x00\x02\x82\
146146
\x00\x00\x01\x96+}A\xa5\
147147
"
148148

pupgui2/resources/themes/steamdeck/make_resource.py

Lines changed: 0 additions & 23 deletions
This file was deleted.
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
import os
2+
3+
import qstylizer.style
4+
from PySide6.QtGui import QColor
5+
from PySide6.scripts.pyside_tool import qt_tool_wrapper
6+
7+
verbose = True
8+
compressLevel = 6
9+
compressAlgo = "zlib"
10+
compressThreshold = 0
11+
12+
color = QColor("#EEEEEE")
13+
background_color_base = QColor("#171D25")
14+
background_color_item = QColor("#282D36")
15+
background_color_hover = QColor("#464D58")
16+
background_color_pressed = QColor("#393F49")
17+
background_color_disabled = QColor("#1D2026")
18+
19+
border_radius_base = 2
20+
21+
margin_min = 1
22+
23+
padding_min = 1
24+
padding_base = 8
25+
padding_item = 4
26+
27+
subcontrol_width_base = 18
28+
subcontrol_width_sbar = subcontrol_width_base + padding_min
29+
subcontrol_width_sbar_control = subcontrol_width_base - padding_min
30+
31+
style = qstylizer.style.StyleSheet()
32+
33+
style.QWidget.setValues(
34+
color=color.name(),
35+
backgroundColor=background_color_base.name(),
36+
fontWeight=300,
37+
)
38+
39+
for widget in (
40+
style.QPushButton,
41+
style.QListWidget,
42+
style.QComboBox,
43+
style.QToolButton,
44+
style.QLineEdit,
45+
style.QHeaderView.section,
46+
):
47+
widget.setValues(
48+
backgroundColor=background_color_item.name(),
49+
border=None,
50+
borderRadius=f"{border_radius_base}px",
51+
padding=f"{padding_base}px",
52+
)
53+
54+
style.QListWidget.item.setValues(padding=f"{padding_item}px")
55+
style.QPushButton.hover.setValues(backgroundColor=background_color_hover.name())
56+
style.QPushButton.pressed.setValues(backgroundColor=background_color_pressed.name())
57+
style.QPushButton.disabled.setValues(backgroundColor=background_color_disabled.name())
58+
59+
style.QHeaderView.setValues(padding=f"{padding_min}px")
60+
style.QHeaderView.section.setValues(padding=f"{padding_item}px")
61+
style.QHeaderView.section.horizontal.setValues(marginLeft="0px", marginRight="2px")
62+
style.QHeaderView.section.vertical.setValues(marginTop="0px", marginBottom="2px")
63+
style.QTableView.item.setValues(marginLeft="1px")
64+
65+
style.QComboBox.dropDown.setValues(
66+
subcontrolOrigin="border",
67+
subcontrolPosition="top right",
68+
padding=f"{padding_item / 2}px",
69+
paddingRight=f"{padding_item}px",
70+
border=None,
71+
borderRadius=f"{border_radius_base}px",
72+
width=f"{subcontrol_width_base - 2}px",
73+
image='url(":/resources/themes/steamdeck/icon-drop-down.svg")',
74+
)
75+
76+
style.QScrollBar.setValues(
77+
padding=f"{padding_min}px",
78+
borderRadius=f"{border_radius_base}px",
79+
backgroundColor="transparent",
80+
)
81+
style.QScrollBar.vertical.setValues(
82+
margin=f"{subcontrol_width_sbar}px 0px",
83+
width=f"{subcontrol_width_sbar}px",
84+
)
85+
style.QScrollBar.horizontal.setValues(
86+
margin=f"0px {subcontrol_width_sbar}px",
87+
height=f"{subcontrol_width_sbar}px",
88+
)
89+
90+
for subcontrol in (
91+
style.QScrollBar.addLine.vertical,
92+
style.QScrollBar.subLine.vertical,
93+
style.QScrollBar.addLine.horizontal,
94+
style.QScrollBar.subLine.horizontal,
95+
):
96+
subcontrol.setValues(
97+
margin=f"{margin_min}px",
98+
border=None,
99+
borderRadius=f"{border_radius_base}px",
100+
width=f"{subcontrol_width_sbar_control}px",
101+
height=f"{subcontrol_width_sbar_control}px",
102+
backgroundColor=background_color_item.name(),
103+
subcontrolOrigin="margin",
104+
)
105+
style.QScrollBar.addLine.vertical.subcontrolPosition.setValue("bottom")
106+
style.QScrollBar.subLine.vertical.subcontrolPosition.setValue("top")
107+
style.QScrollBar.addLine.horizontal.subcontrolPosition.setValue("right")
108+
style.QScrollBar.subLine.horizontal.subcontrolPosition.setValue("left")
109+
style.QScrollBar.handle.setValues(
110+
backgroundColor=background_color_item.name(),
111+
borderRadius=f"{border_radius_base}px",
112+
minWidth="30px",
113+
minHeight="30px",
114+
)
115+
scrollbar_arrow_style = {
116+
"width": "13px",
117+
"height": "13px",
118+
}
119+
style.QScrollBar.upArrow.setValues(
120+
**scrollbar_arrow_style,
121+
image='url(":/resources/themes/steamdeck/icon-up-arrow.svg")',
122+
)
123+
style.QScrollBar.downArrow.setValues(
124+
**scrollbar_arrow_style,
125+
image='url(":/resources/themes/steamdeck/icon-down-arrow.svg")',
126+
)
127+
128+
129+
if __name__ == "__main__":
130+
with open(os.path.join(os.path.dirname(__file__), "stylesheet.qss"), "w", encoding="utf-8") as qss:
131+
qss.write(f'/* This file is auto-generated from "{os.path.basename(__file__)}" */\n')
132+
qss.write(f'/* DO NOT EDIT!!! */\n\n')
133+
qss.write(style.toString())
134+
135+
qt_tool_wrapper(
136+
"rcc",
137+
[
138+
"-g",
139+
"python",
140+
"--compress", str(compressLevel),
141+
"--compress-algo", compressAlgo,
142+
"--threshold", str(compressThreshold),
143+
"--verbose" if verbose else "",
144+
os.path.join(os.path.dirname(__file__), "stylesheet.qrc"),
145+
"-o", os.path.join(os.path.dirname(__file__), "__init__.py"),
146+
],
147+
True,
148+
)

0 commit comments

Comments
 (0)